1. 14 8月, 2009 6 次提交
    • B
      wl1251: make irq handling interface specific · b5ed9c1b
      Bob Copeland 提交于
      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: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b5ed9c1b
    • B
      wl1251: split spi interface into separate module · af8c78eb
      Bob Copeland 提交于
      This creates a module called wl1251_spi.ko which contains just the
      SPI-specific code.  The core remains in the module wl1251.ko.
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      af8c78eb
    • B
      wl1251: move module probe methods into spi.c · 8e639c06
      Bob Copeland 提交于
      This change moves all of the spi specific code from main.c into
      spi.c.  The module initialization code also moves, but common
      code for initializing mac80211 etc. stays in main.c, as this will
      eventually form a common library module also used by wl1251_sdio.
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      8e639c06
    • B
      wl1251: introduce wl1251_if_operations struct · 08d9f572
      Bob Copeland 提交于
      Introduce an ops struct with read, write, and reset functions to
      abstract away the details of the wl1251 bus interface.  Doing this
      will allow SDIO to coexist with SPI by supplying its own I/O
      routines.
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      08d9f572
    • B
      wl1251: use wiphy_dev instead of wl->spi->dev · 6c766f41
      Bob Copeland 提交于
      Remove a dependency on the bus-specific struct device by using wiphy_dev
      when requesting firmware.
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      6c766f41
    • B
      wl1251: separate bus i/o code into io.c · 0764de64
      Bob Copeland 提交于
      In order to eventually support wl1251 spi and sdio interfaces, move
      the register and memory transfer functions to a common file.  Also
      rename wl1251_spi_mem_{read,write} to indicate its common usage.
      We still use spi_read internally until SDIO interface is introduced
      so nothing functional should change here.
      Signed-off-by: NBob Copeland <me@bobcopeland.com>
      Signed-off-by: NKalle Valo <kalle.valo@nokia.com>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      0764de64
  2. 25 7月, 2009 3 次提交
  3. 11 7月, 2009 17 次提交
  4. 07 5月, 2009 2 次提交