Age | Commit message (Collapse) | Author | Files | Lines |
|
Register the Xilinx driver as the root interrupt controller using
the GENERIC_IRQ_MULTI_HANDLER API, instead of the arch-specific hack.
Signed-off-by: Michal Simek <[email protected]>
Reviewed-by: Stefan Asserhall <[email protected]>
[maz: repainted commit message]
Signed-off-by: Marc Zyngier <[email protected]>
Link: https://lore.kernel.org/r/e6c6595a81f662bf839cee3109d0fa58a596ea47.1646380284.git.michal.simek@xilinx.com
|
|
This reverts commit a0789993bf8266e62fea6b4613945ba081c71e7d, which
breaks a number of PPC platforms.
Reported-by: Stephen Rothwell <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
|
|
Register default arch handler via driver instead of directly pointing to
xilinx intc controller. This patch makes architecture code more generic.
Driver calls generic domain specific irq handler which does the most of
things self. Also get rid of concurrent_irq counting which hasn't been
exported anywhere.
Based on this loop was also optimized by using do/while loop instead of
goto loop.
Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Reviewed-by: Stefan Asserhall <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
|
|
Now that the driver is generic and used by multiple archs,
get_irq is too generic.
Rename get_irq to xintc_get_irq to avoid any conflicts
Acked-by: Michal Simek <[email protected]>
Signed-off-by: Zubair Lutfullah Kakakhel <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
|
|
- Move init_IRQ to irq.c
- Use IRQCHIP_DECLARE macro
Signed-off-by: Michal Simek <[email protected]>
|
|
Trivial.
Signed-off-by: Michal Simek <[email protected]>
|
|
This patch converts Microblaze to use the irq_domain remapper and get
away from hard coding the offset between hwirq number and the linux irq
number space. This also paves the way for multiple interrupt controllers.
v2: Don't enable SPARSE_IRQ and keep NR_IRQS set to 33
Signed-off-by: Grant Likely <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
Cc: Rob Herring <[email protected]>
Cc: John Williams <[email protected]>
Cc: John Linn <[email protected]>
|
|
Trivial change, microblaze doesn't use irq remapping yet.
Signed-off-by: Grant Likely <[email protected]>
Cc: Michal Simek <[email protected]>
Cc: Thomas Gleixner <[email protected]>
|
|
As has been discussed many times[1], Using NO_IRQ set to anything other
than 0 is bug waiting to happen since many drivers follow the pattern
"if (!irq)" for testing whether or not an irq has been set.
This patch changes the Microblaze NO_IRQ setting from -1 to 0 to bring
it in line with most of the rest of the kernel. It also prepares for
Microblaze eventually supporting multiple interrupt controllers by
breaking the assumption that hwirq# == Linux IRQ#. The Linux IRQ
number is just a cookie with no guarantee of a direct relationship
with the hardware irq arrangement.
At this point, Microblaze interrupt handling only supports only one
instance of one kind of interrupt controller (xilinx_intc). This change
shouldn't affect any architecture code outside of the interrupt
controller driver and the irq_of mapping.
Updated to 3.2 and to use irq_data.hwirq by Rob Herring.
Tested and fixed by Michal Simek.
[1] http://lkml.org/lkml/2005/11/21/221
Signed-off-by: Grant Likely <[email protected]>
Signed-off-by: Rob Herring <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
|
|
For access to the EXPORT_SYMBOL variants and THIS_MODULE macros.
Signed-off-by: Paul Gortmaker <[email protected]>
|
|
Signed-off-by: Thomas Gleixner <[email protected]>
|
|
Use proper irq_desc wrappers while at it.
Signed-off-by: Thomas Gleixner <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
|
|
* 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6: (63 commits)
of/platform: Register of_platform_drivers with an "of:" prefix
of/address: Clean up function declarations
of/spi: call of_register_spi_devices() from spi core code
of: Provide default of_node_to_nid() implementation.
of/device: Make of_device_make_bus_id() usable by other code.
of/irq: Fix endian issues in parsing interrupt specifiers
of: Fix phandle endian issues
of/flattree: fix of_flat_dt_is_compatible() to match the full compatible string
of: remove of_default_bus_ids
of: make of_find_device_by_node generic
microblaze: remove references to of_device and to_of_device
sparc: remove references to of_device and to_of_device
powerpc: remove references to of_device and to_of_device
of/device: Replace of_device with platform_device in includes and core code
of/device: Protect against binding of_platform_drivers to non-OF devices
of: remove asm/of_device.h
of: remove asm/of_platform.h
of/platform: remove all of_bus_type and of_platform_bus_type references
of: Merge of_platform_bus_type with platform_bus_type
drivercore/of: Add OF style matching to platform bus
...
Fix up trivial conflicts in arch/microblaze/kernel/Makefile due to just
some obj-y removals by the devicetree branch, while the microblaze
updates added a new file.
|
|
Add trace_hardirqs_off and trace_hardirqs_on to do_IRQ function.
Signed-off-by: Michal Simek <[email protected]>
|
|
Merge common code between PowerPC and Microblaze. SPARC implements
irq_of_parse_and_map(), but the implementation is different, so it
does not use this code.
Signed-off-by: Grant Likely <[email protected]>
Acked-by: Benjamin Herrenschmidt <[email protected]>
Cc: Michal Simek <[email protected]>
Cc: "David S. Miller" <[email protected]>
Cc: Stephen Rothwell <[email protected]>
Cc: Jeremy Kerr <[email protected]>
|
|
Function traces on Microblaze don't include IRQ entry and exit arrows,
i.e.
0) | memcpy_toiovec() {
0) ==========> |
0) | do_IRQ() {
...
0) <========== |
0) ! 5414.000 us | }
...because do_IRQ() doesn't have the proper attributes.
Signed-off-by: Steven J. Magnani <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
|
|
Support function for PCI. We don't use any advance mapping mechanism
that's why implementation is simple.
Signed-off-by: Michal Simek <[email protected]>
|
|
Convert locks which cannot be sleeping locks in preempt-rt to
raw_spinlocks.
Signed-off-by: Thomas Gleixner <[email protected]>
Acked-by: Peter Zijlstra <[email protected]>
Acked-by: Ingo Molnar <[email protected]>
|
|
Signed-off-by: Christoph Hellwig <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
|
|
Reviewed-by: Thomas Gleixner <[email protected]>
Reviewed-by: Ingo Molnar <[email protected]>
Reviewed-by: Stephen Neuendorffer <[email protected]>
Acked-by: John Linn <[email protected]>
Acked-by: John Williams <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
|