77eafe101a
This patch adds support for handling IO Event interrupts which come through at the /event-sources/ibm,io-events device tree node. The interrupts come through ibm,io-events device tree node are generated by the firmware to report IO events. The firmware uses the same interrupt to report multiple types of events for multiple devices. Each device may have its own event handler. This patch implements a plateform interrupt handler that is triggered by the IO event interrupts come through ibm,io-events device tree node, pull in the IO events from RTAS and call device event handlers registered in the notifier list. Device event handlers are expected to use atomic_notifier_chain_register() and atomic_notifier_chain_unregister() to register/unregister their event handler in pseries_ioei_notifier_list list with IO event interrupt. Device event handlers are responsible to identify if the event belongs to the device event handler. The device event handle should return NOTIFY_OK after the event is handled if the event belongs to the device event handler, or NOTIFY_DONE otherwise. Signed-off-by: Tseng-Hui (Frank) Lin <thlin@us.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
28 lines
952 B
Makefile
28 lines
952 B
Makefile
ccflags-$(CONFIG_PPC64) := -mno-minimal-toc
|
|
ccflags-$(CONFIG_PPC_PSERIES_DEBUG) += -DDEBUG
|
|
|
|
obj-y := lpar.o hvCall.o nvram.o reconfig.o \
|
|
setup.o iommu.o event_sources.o ras.o \
|
|
firmware.o power.o dlpar.o mobility.o
|
|
obj-$(CONFIG_SMP) += smp.o
|
|
obj-$(CONFIG_SCANLOG) += scanlog.o
|
|
obj-$(CONFIG_EEH) += eeh.o eeh_cache.o eeh_driver.o eeh_event.o eeh_sysfs.o
|
|
obj-$(CONFIG_KEXEC) += kexec.o
|
|
obj-$(CONFIG_PCI) += pci.o pci_dlpar.o
|
|
obj-$(CONFIG_PSERIES_MSI) += msi.o
|
|
obj-$(CONFIG_PSERIES_ENERGY) += pseries_energy.o
|
|
|
|
obj-$(CONFIG_HOTPLUG_CPU) += hotplug-cpu.o
|
|
obj-$(CONFIG_MEMORY_HOTPLUG) += hotplug-memory.o
|
|
|
|
obj-$(CONFIG_HVC_CONSOLE) += hvconsole.o
|
|
obj-$(CONFIG_HVCS) += hvcserver.o
|
|
obj-$(CONFIG_HCALL_STATS) += hvCall_inst.o
|
|
obj-$(CONFIG_PHYP_DUMP) += phyp_dump.o
|
|
obj-$(CONFIG_CMM) += cmm.o
|
|
obj-$(CONFIG_DTL) += dtl.o
|
|
obj-$(CONFIG_IO_EVENT_IRQ) += io_event_irq.o
|
|
|
|
ifeq ($(CONFIG_PPC_PSERIES),y)
|
|
obj-$(CONFIG_SUSPEND) += suspend.o
|
|
endif
|