Files
odroid-linux/include/linux
Marc Zyngier ad3aedfbb0 genirq/irqdomain: Allow irq domain aliasing
It is not uncommon (at least with the ARM stuff) to have a piece
of hardware that implements different flavours of "interrupts".
A typical example of this is the GICv3 ITS, which implements
standard PCI/MSI support, but also some form of "generic MSI".

So far, the PCI/MSI domain is registered using the ITS device_node,
so that irq_find_host can return it. On the contrary, the raw MSI
domain is not registered with an device_node, making it impossible
to be looked up by another subsystem (obviously, using the same
device_node twice would only result in confusion, as it is not
defined which one irq_find_host would return).

A solution to this is to "type" domains that may be aliasing, and
to be able to lookup an device_node that matches a given type.
For this, we introduce irq_find_matching_host() as a superset
of irq_find_host:

struct irq_domain *irq_find_matching_host(struct device_node *node,
                                enum irq_domain_bus_token bus_token);

where bus_token is the "type" we want to match the domain against
(so far, only DOMAIN_BUS_ANY is defined). This result in some
moderately invasive changes on the PPC side (which is the only
user of the .match method).

This has otherwise no functionnal change.

Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: <linux-arm-kernel@lists.infradead.org>
Cc: Yijing Wang <wangyijing@huawei.com>
Cc: Ma Jun <majun258@huawei.com>
Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Duc Dang <dhdang@apm.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jiang Liu <jiang.liu@linux.intel.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Link: http://lkml.kernel.org/r/1438091186-10244-2-git-send-email-marc.zyngier@arm.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2015-07-30 00:14:36 +02:00
..
2015-07-17 16:39:53 -07:00
2015-06-25 11:49:31 +03:00
2015-05-31 13:40:53 +02:00
2015-05-13 12:04:55 -05:00
2015-07-07 22:48:25 +02:00
2015-03-25 20:28:11 -04:00
2015-06-02 08:33:34 -06:00
2015-04-17 09:03:53 -04:00
2015-06-01 14:35:56 -06:00
2015-02-12 18:54:15 -08:00
2014-12-19 22:55:06 +01:00
2015-07-30 00:13:24 +02:00
2015-05-05 13:35:39 -06:00
2015-01-21 19:21:30 +01:00
2014-12-31 13:06:50 -05:00
2015-06-24 17:49:45 -07:00
2015-05-12 10:46:53 +02:00
2015-06-01 14:33:35 +02:00
2015-06-19 15:18:28 +02:00
2015-03-16 21:45:54 +11:00
2015-05-05 13:40:42 -06:00
2015-01-27 11:09:13 +01:00
2015-06-25 12:06:45 +02:00
2015-01-15 10:34:54 +01:00
2015-04-29 17:17:17 -05:00
2015-01-04 23:11:43 -05:00
2015-04-14 16:49:05 -07:00
2015-03-25 11:44:52 +01:00
2015-06-24 17:49:41 -07:00
2015-06-25 04:20:04 -04:00
2015-05-09 22:15:31 -04:00
2015-07-04 14:04:44 -04:00
2015-06-05 10:58:34 -06:00
2015-03-11 17:56:28 -04:00
2015-04-12 21:03:31 +02:00
2015-01-25 23:17:28 -05:00
2015-06-19 01:18:14 +02:00
2015-06-12 11:36:30 +02:00
2015-06-10 19:14:04 +08:00
2015-05-27 12:58:04 -07:00
2015-05-26 15:23:23 +02:00
2015-06-25 01:13:43 +02:00
2015-06-23 18:01:07 -04:00
2015-06-29 10:49:51 -07:00
2015-02-13 21:21:41 -08:00
2015-04-11 15:53:35 -04:00
2015-06-25 17:00:40 -07:00
2015-05-19 09:19:59 -06:00
2015-06-25 17:00:39 -07:00
2015-05-18 14:08:58 -07:00
2015-05-29 17:21:45 -05:00
2015-04-11 22:29:44 -04:00
2015-06-12 17:26:57 -07:00
2015-03-24 09:48:14 -07:00
2015-06-25 17:00:37 -07:00
2015-04-15 16:35:20 -07:00