* Janusz Krzysztofik jkrzyszt@tis.icnet.pl [100422 18:20]:
Friday 23 April 2010 01:17:26 Tony Lindgren napisaĆ(a):
- Janusz Krzysztofik jkrzyszt@tis.icnet.pl [100414 19:24]:
This patch introduces an IRQ handler used for processing interrupts generated by the FIQ handler when it decides there are data ready for processing.
The handler further invokes device specific interrupt routines based on an interrupt source as passed from the FIQ handler.
It can be registered by the board as a handler for the otherwise unused 32k timer interrupt.
Created and tested against linux-2.6.34-rc4. Applies on top of PATCH v3 1/5(7), "OMAP1: Amstrad Delta: add FIQ handler for serial keyboard port interrupt processing".
Signed-off-by: Janusz Krzysztofik jkrzyszt@tis.icnet.pl
v2 changes:
- add fiq_buffer[] declaration missing from the header file,
- refresh against 2.6.34-rc2.
v3 changes:
- follow Dmitry's serio cleanup suggestions here as well,
- follow default OMAP GPIO interrupt processing path more closely,
- more optimizations and cleanups.
arch/arm/mach-omap1/Makefile | 2 arch/arm/mach-omap1/ams-delta-fiq.c | 155 +++++++++++++++++++++++ arch/arm/mach-omap1/include/mach/ams-delta-fiq.h | 7 + 3 files changed, 163 insertions(+), 1 deletion(-)
diff -uprN git.orig/arch/arm/mach-omap1/Makefile git/arch/arm/mach-omap1/Makefile --- git.orig/arch/arm/mach-omap1/Makefile 2010-04-14 22:35:22.000000000 +0200 +++ git/arch/arm/mach-omap1/Makefile 2010-04-14 23:18:10.000000000 +0200 @@ -37,7 +37,7 @@ obj-$(CONFIG_MACH_OMAP_PALMZ71) += boar obj-$(CONFIG_MACH_OMAP_PALMTT) += board-palmtt.o obj-$(CONFIG_MACH_NOKIA770) += board-nokia770.o obj-$(CONFIG_MACH_AMS_DELTA) += board-ams-delta.o -obj-$(CONFIG_AMS_DELTA_FIQ) += ams-delta-fiq-handler.o +obj-$(CONFIG_AMS_DELTA_FIQ) += ams-delta-fiq.o ams-delta-fiq-handler.o obj-$(CONFIG_MACH_SX1) += board-sx1.o board-sx1-mmc.o obj-$(CONFIG_MACH_HERALD) += board-htcherald.o
Do you really need a separate option for CONFIG_AMS_DELTA_FIQ?
Not really, but could we keep it for now, until the code gets a bit matured?
To me it seems you can just compile it in when CONFIG_MACH_AMS_DELTA is selected.
If you agree, I will change it this way with a followup patch prepared for the next + 1 kernel release.
OK
Also, please make sure the FIQ only gets initialized for the right board when multiple boards are compiled in.
I believe it works this way. The ams_delta_init_fiq() routine, that sets up both FIQ and IRQ handlers, is invoked from the machines' init_machine() callback. Can I assume it won't be called for other machine types then?
Just please check that compile works OK if you compile in other omap1 boards.
Tony