Skip to content
  • Bob Copeland's avatar
    wl1251: make irq handling interface specific · b5ed9c1b
    Bob Copeland authored
    
    
    In SDIO, the host driver requests the IRQ and invokes a callback to the
    card driver.  This differs from SPI, so the relevant code needs to be
    interface-specific.  This patch pushes the irq code down into _spi.c
    and _sdio.c, and adds enable/disable callbacks.
    
    This fixes the following warning:
    
    [  566.343887] ------------[ cut here ]------------
    [  566.349105] WARNING: at kernel/irq/manage.c:222 __enable_irq+0x3c/0x6c()
    [  566.356735] Unbalanced enable for IRQ 0
    [  566.361099] Modules linked in: msm_wifi wl12xx_sdio wl12xx mac80211 cfg80211 rfkill_backport lib80211_crypt_ccmp lib80211_crypt_wep lib80211_crypt_tkip lib80211
    [  566.381240] [<c025acec>] (dump_stack+0x0/0x14) from [<c004b610>] (warn_slowpath+0x70/0x8c)
    [  566.391860] [<c004b5a0>] (warn_slowpath+0x0/0x8c) from [<c0077c10>] (__enable_irq+0x3c/0x6c)
    [  566.402572]  r3:00000000 r2:c02cad13
    [  566.407516]  r7:00001002 r6:00000000 r5:c0310be4 r4:c0310be4
    [  566.415786] [<c0077bd4>] (__enable_irq+0x0/0x6c) from [<c0077fd0>] (enable_irq+0x38/0x64)
    [  566.425826]  r5:c0310be4 r4:a0000013
    [  566.430709] [<c0077f98>] (enable_irq+0x0/0x64) from [<bf0dfa78>] (wl12xx_boot_run_firmware+0xfc/0x170 [wl12xx])
    [  566.442947]  r7:00001002 r6:c440a9fc r5:00000072 r4:c440a9e0
    [  566.450851] [<bf0df97c>] (wl12xx_boot_run_firmware+0x0/0x170 [wl12xx]) from [<bf0e05f0>] (wl1251_boot+0xd4/0x108 [wl12xx])
    [  566.464492]  r5:00000000 r4:c440a9e0
    [  566.469466] [<bf0e051c>] (wl1251_boot+0x0/0x108 [wl12xx]) from [<bf0dd27c>] (wl12xx_op_start+0x54/0xb8 [wl12xx])
    [  566.482162]  r5:00000000 r4:c440a9e0
    [  566.487472] [<bf0dd228>] (wl12xx_op_start+0x0/0xb8 [wl12xx]) from [<bf0b96dc>] (ieee80211_open+0x2dc/0x720 [mac80211])
    [  566.500594]  r7:00001002 r6:c4950800 r5:c440a220 r4:00000000
    [  566.508865] [<bf0b9400>] (ieee80211_open+0x0/0x720 [mac80211]) from [<c01f1edc>] (dev_open+0x9c/0xfc)
    [  566.520705] [<c01f1e40>] (dev_open+0x0/0xfc) from [<c01f17dc>] (dev_change_flags+0x98/0x170)
    [  566.531417]  r5:00000041 r4:c4950800
    [  566.536330] [<c01f1744>] (dev_change_flags+0x0/0x170) from [<c023041c>] (devinet_ioctl+0x3a8/0x784)
    [  566.547683]  r7:c128e380 r6:00000001 r5:00008914 r4:00000000
    [  566.555587] [<c0230074>] (devinet_ioctl+0x0/0x784) from [<c02318cc>] (inet_ioctl+0xdc/0x114)
    [  566.566299] [<c02317f0>] (inet_ioctl+0x0/0x114) from [<c01e1a60>] (sock_ioctl+0x1f0/0x248)
    [  566.576827]  r5:00008914 r4:c572c1a0
    [  566.581771] [<c01e1870>] (sock_ioctl+0x0/0x248) from [<c00b23a0>] (vfs_ioctl+0x34/0x94)
    [  566.592086]  r7:c572c1a0 r6:bee497e8 r5:00008914 r4:c572c1a0
    [  566.599990] [<c00b236c>] (vfs_ioctl+0x0/0x94) from [<c00b2a28>] (do_vfs_ioctl+0x52c/0x584)
    [  566.610549]  r7:c572c1a0 r6:00008914 r5:c572c1a0 r4:c3201228
    [  566.618453] [<c00b24fc>] (do_vfs_ioctl+0x0/0x584) from [<c00b2ac0>] (sys_ioctl+0x40/0x64)
    [  566.628890] [<c00b2a80>] (sys_ioctl+0x0/0x64) from [<c0021da0>] (ret_fast_syscall+0x0/0x2c)
    [  566.639541]  r7:00000036 r6:00000000 r5:00000004 r4:001a11f3
    [  566.647445] ---[ end trace 15c26ef7dd5e7b03 ]---
    
    Signed-off-by: default avatarBob Copeland <me@bobcopeland.com>
    Signed-off-by: default avatarKalle Valo <kalle.valo@nokia.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    b5ed9c1b