c09fcc4b2b
With the msi_list and the msi_domain properties now being at the generic device level, it is starting to be relatively easy to offer a generic way of providing non-PCI MSIs. The two major hurdles with this idea are: - Lack of global ID that identifies a device: this is worked around by having a global ID allocator for each device that gets enrolled in the platform MSI subsystem - Lack of standard way to write the message in the generating device. This is solved by mandating driver code to provide a write_msg callback, so that everyone can have their own square wheel Apart from that, the API is fairly straightforward: - platform_msi_create_irq_domain creates an MSI domain that gets tagged with DOMAIN_BUS_PLATFORM_MSI - platform_msi_domain_alloc_irqs allocate MSIs for a given device, populating the msi_list - platform_msi_domain_free_irqs does what is written on the tin [ tglx: Created a seperate struct platform_msi_desc and added kerneldoc entries ] 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: Hanjun Guo <hanjun.guo@linaro.org> 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-10-git-send-email-marc.zyngier@arm.com Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
29 lines
967 B
Makefile
29 lines
967 B
Makefile
# Makefile for the Linux device tree
|
|
|
|
obj-y := component.o core.o bus.o dd.o syscore.o \
|
|
driver.o class.o platform.o \
|
|
cpu.o firmware.o init.o map.o devres.o \
|
|
attribute_container.o transport_class.o \
|
|
topology.o container.o property.o cacheinfo.o
|
|
obj-$(CONFIG_DEVTMPFS) += devtmpfs.o
|
|
obj-$(CONFIG_DMA_CMA) += dma-contiguous.o
|
|
obj-y += power/
|
|
obj-$(CONFIG_HAS_DMA) += dma-mapping.o
|
|
obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += dma-coherent.o
|
|
obj-$(CONFIG_ISA) += isa.o
|
|
obj-$(CONFIG_FW_LOADER) += firmware_class.o
|
|
obj-$(CONFIG_NUMA) += node.o
|
|
obj-$(CONFIG_MEMORY_HOTPLUG_SPARSE) += memory.o
|
|
ifeq ($(CONFIG_SYSFS),y)
|
|
obj-$(CONFIG_MODULES) += module.o
|
|
endif
|
|
obj-$(CONFIG_SYS_HYPERVISOR) += hypervisor.o
|
|
obj-$(CONFIG_REGMAP) += regmap/
|
|
obj-$(CONFIG_SOC_BUS) += soc.o
|
|
obj-$(CONFIG_PINCTRL) += pinctrl.o
|
|
obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
|
|
obj-$(CONFIG_GENERIC_MSI_IRQ_DOMAIN) += platform-msi.o
|
|
|
|
ccflags-$(CONFIG_DEBUG_DRIVER) := -DDEBUG
|
|
|