I did some work on the irq type configuration for the at86rf230 the last days. I realized, that dropping the calls to disable_irq_nosync() and enable_irq() would break setups which have their irq type configured to IRQ_TYPE_LEVEL_*. The irq would be continues refired each time the isr returns, until the status register is read inside the irq work function. So I disabled this calls only when a level type irq is configured. I'm not that sure, that putting the if statements into the irq handler functions is a nice solution, but have no better idea that wouldn't be overkill for such a rather slow device.
For patch 3 it was necessary to keep the irq_type variable in the at86rf230_local struct. I would be happy to hear some opinions about this patches. Sascha Herrmann (3): at86rf230: remove unnecessary / dead code at86rf230: add irq type configuration option at86rf230: changed irq handling to not disable irq for edge type interrupt drivers/net/ieee802154/at86rf230.c | 40 +++++++++++++++++++++--------------- include/linux/spi/at86rf230.h | 5 +++++ 2 files changed, 29 insertions(+), 16 deletions(-) -- 1.7.10.4 ------------------------------------------------------------------------------ Everyone hates slow websites. So do we. Make your web apps faster with AppDynamics Download AppDynamics Lite for free today: http://p.sf.net/sfu/appdyn_d2d_feb _______________________________________________ Linux-zigbee-devel mailing list Linux-zigbee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-zigbee-devel