summaryrefslogtreecommitdiff
path: root/Kconfig
diff options
context:
space:
mode:
authorSolomon Peachy <pizza@shaftnet.org>2013-08-27 20:29:46 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-10-01 09:41:02 -0700
commit2236ad2913d353ecb1d78231600372def5c94473 (patch)
treec4f777d58d04d16f535d2a3925d9fbe060d0c4bf /Kconfig
parent524a992af32af99a4fa8521640ba5bb38fde41d1 (diff)
cw1200: Don't perform SPI transfers in interrupt context
commit aec8e88c947b7017e2b4bbcb68a4bfc4a1f8ad35 upstream. When we get an interrupt from the hardware, the first thing the driver does is tell the device to mask off the interrupt line. Unfortunately this involves a SPI transaction in interrupt context. Some (most?) SPI controllers perform the transfer asynchronously and try to sleep. This is bad, and triggers a BUG(). So, work around this by using adding a hwbus hook for the cw1200 driver core to call. The cw1200_spi driver translates this into irq_disable()/irq_enable() calls instead, which can safely be called in interrupt context. Apparently the platforms I used to develop the cw1200_spi driver used synchronous spi_sync() implementations, which is why this didn't surface until now. Many thanks to Dave Sizeburns for the inital bug report and his services as a tester. Signed-off-by: Solomon Peachy <pizza@shaftnet.org> Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'Kconfig')
0 files changed, 0 insertions, 0 deletions