[PATCH v3 0/3] powerpc: Add IO event interrupt support
Tseng-Hui (Frank) Lin
thlin at linux.vnet.ibm.com
Tue Mar 15 07:29:29 EST 2011
This series of patches adds support for handling IO Event interrupts which
come through at the /event-sources/ibm,io-events device tree node.
Change log from V2:
- rename RTAS general extended event log version 6 structure from
rtas_error_log_v6ext to rtas_ext_event_log_v6.
- Re-implement interrupt call list with atomic notifier.
platforms/pseries/io_event_irq.c:
- Move IO Event data copy to ioei_interrupt(). Rename ioei_get_event()
to ioei_find_event().
- Remove unused ioei_call_handlers(), pseries_ioei_register_handler(),
pseries_ioei_unregister_handler() as the functions are replaced by
notifier.
Change log from v1:
- Restructure the patch into 3 patches.
= Move non-IBM specific v6 extended log definition to rtas.h.
= Move IBM specific v6 extended log definition to pseries_event_log.h
and code to pseries_event_log.c.
- Add CONFIG_PSERIES_EVENT_LOG to pseries Kconfig
- Add CONFIG_IO_EVENT_IRQ to pseries Kconfig
io_events.h:
- Change C++ comments to C format.
- Add definitions for all known type, sub-types, and scopes.
- Change data type of rpc_data from u32 to u8 as the size of rpc_data is
specified in rpc_field_len in bytes.
- Set maximum length for rpc_data.
- Change ioei_register_isr() and ioei_unregister_isr() declearation to match
the change in io_events.c file
io_events.c:
- Use pseries_/PSERIES_ prefix for global symbols.
- Change to use list_head for ioei_consumer list.
- Remove scope from handler registeration.
- Change device_initcall() to machine_device_initcall()
- ioei_register_handler():
= Return -ENODEV if IOEI not supported on the machine.
= Change use spin_lock() to use spin_lock_irq().
- ioei_unregister_handler():
= Change use spin_lock() to use spin_lock_irq().
- ioei_call_consumers():
= Change spin_lock_irqsave() to spin_lock() because we are called from
an interrupt handler.
= Return IRQ_HANDLED/IRQ_NONE if interrupt is handled/not handled.
= Print an error message if no one claims the interrupt.
- io_event_interrupt():
= Change to use rtas_data_buf and RTAS_DATA_BUF_SIZE for rtas_call().
= Loop calling rtas_call() to pull in multiple events in one interrupt.
= Split IO event section searching code into ioei_get_event().
- init_ioei_IRQ()
= Check rtas_token() return code.
Signed-off-by: Mark Nelson <markn at au1.ibm.com>
Signed-off-by: Tseng-Hui (Frank) Lin <tsenglin at us.ibm.com>
---
More information about the Linuxppc-dev
mailing list