- 22 Jun, 2020 8 commits
-
-
Jouko Haapaluoma authored
Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
Jouko Haapaluoma authored
Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
Jouko Haapaluoma authored
for the clock events. Then it makes no sense to use slow 32k clock at all. Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
Benedikt Spranger authored
Add a compile time selection to allow higher clock resolution. (fixed up by Sami Pietikäinen <Sami.Pietikainen@wapice.com>) (merged to ipipe-arm by Jouko Haapaluoma <jouko.haapaluoma@wapice.com>) Signed-off-by:
Benedikt Spranger <b.spranger@linutronix.de> Signed-off-by:
Thomas Gleixner <tglx@linutronix.de> Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
Alexandre Belloni authored
default value so it can be disabled. Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by:
Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
Alexandre Belloni authored
sched_clock which is much more accurate than the jiffies implementation. Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by:
Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
Alexandre Belloni authored
TCB as the boot clocksource. This is an issue for SoCs without the PIT (sams70, samv70 and samv71 families) as they simply currently can't boot. Get rid of the atmel_tclib dependency and probe everything on our own using the correct device tree binding. This also allows getting rid of ATMEL_TCB_CLKSRC_BLOCK and makes the driver a bit more flexible as the TCB is not hardcoded in the kernel anymore. Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by:
Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
Alexandre Belloni authored
Signed-off-by:
Alexandre Belloni <alexandre.belloni@bootlin.com> Acked-by:
Thierry Reding <thierry.reding@gmail.com> Acked-by:
Arnd Bergmann <arnd@arndb.de> Signed-off-by:
Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
- 20 Jun, 2020 1 commit
-
-
Tuomo Jauhiainen authored
Signed-off-by:
Jouko Haapaluoma <jouko.haapaluoma@wapice.com>
-
- 02 Mar, 2020 1 commit
-
-
Greg Gallagher authored
OMAP gpio driver was changed upstream to be able to support threaded IRQ handler, this change impacted how the ipipe dealt with this driver. Since the ipipe expects a chained handler and now it's a generic one, we need to ack the event in the interrupt controller before calling the handler and unmask it after. Level flow handler must be used for pipelined interrupts. Since the IRQ handler on the root stage may be delayed until the real-time core releases the CPU, we need to mask the IRQ to prevent an IRQ storm when the interrupts are enabled again. Convert wa_lock to ipipe_spinlock, since wa_lock is used in the irq_chip functions which when called from the head stage can't use a Linux kernel service. Add the hold/release handlers for robustness. Signed-off-by:
Greg Gallagher <greg@embeddedgreg.com> Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
- 12 Dec, 2019 3 commits
-
-
Philippe Gerum authored
When a huge number of CPUs is available (e.g. CONFIG_MAXSMP/x86), we might overflow the stack with cpumask_t variables in ipipe_select_timer(). Allocate the cpumask we need there dynamically instead.
-
Philippe Gerum authored
When a huge number of CPUs is available (e.g. CONFIG_MAXSMP/x86), we might overflow the stack with cpumask_t variables in ipipe_critical_enter(). Instead of allocating cpumask_var_t dynamically for these, rely on the fact that we cannot reenter the code accessing them by design, so those variables may be moved to local static storage.
-
Philippe Gerum authored
Some configurations may define more than 256K distinct interrupts (e.g. CONFIG_MAXSMP/x86), which is the limit for the current 3-level mapping used for logging IRQs. Add a 4th mapping level to support configurations up to 16M interrupts.
-
- 16 Nov, 2019 1 commit
-
-
Philippe Gerum authored
-
- 15 Nov, 2019 1 commit
-
-
Philippe Gerum authored
-
- 08 Nov, 2019 25 commits
-
-
Philippe Gerum authored
-
Philippe Gerum authored
This is a pretty bad issue affecting the logic involved in reconciling the virtual interrupt state with the hardware interrupt flags received on entry to any CPU exception. The net effect was a potentially corrupted virtual interrupt state on exit from the fault handlers.
-
Jan Kiszka authored
Needed on x86 at least when CONFIG_IPIPE is off. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Jan Kiszka authored
x86 may generate one, so change the signature. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
Likely needed since c942cee4 which split enabling and startup. This fixes unpopulated vectors in the IOAPIC on x86 at least, possibly more. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
It's time to let ipipe_enable_irq return a proper error as it will gain another function that may fail. Drop the WARN_ON_ONCE in favor of that. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
Breaks in non-debug builds otherwise, e.g. https://travis-ci.com/xenomai-ci/xenomai/jobs/212725223Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
All callers of lockdep_hardirqs_on/off already filter out !ipipe_root_p. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
Lost in d7fc2c06 ("lockdep: ipipe: exclude the head stage from IRQ state tracing") but still needed by x86 at least. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Philippe Gerum authored
These changes are paired with updates to lockdep+ftrace in order to keep the (perceived) IRQ state consistent with the expectations of the latter. Bottom line: IRQ events which preempt the root stage while stalled must not alter the tracer state incorrectly.
-
Philippe Gerum authored
The change in #5a7e6eeede58 does not fix the root issue, but causes __ipipe_tsc_register() to refer to .init data which is a section violation too. Unfortunately, __ipipe_tsc_register() may be called long after boot when loading a clocksource dynamically (which is what the above commit was trying to address), but the position of TSC helpers in the KUSER page depends on other -unrelated- helpers so we have to define them in the same section. To escape this stalemate, move the whole KUSER setup code and variables outside of the .init section (TSC and other helpers), which should only amount to a few hundreds of bytes.
-
Philippe Gerum authored
-
Philippe Gerum authored
-
Jan Kiszka authored
CONFIG_DEBUG_SECTION_MISMATCH=y reports: The function dw_apb_clocksource_register() references the function __init __ipipe_tsc_register(). Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-
Jan Kiszka authored
This adds the arm-specific bits to implement the userspace return notifier. Signed-off-by:
Jan Kiszka <jan.kiszka@siemens.com>
-