WLAN设备停止并重新启动时,Linux SDIO MMC出错

时间:2014-09-19 11:28:23

标签: linux-device-driver android-wifi

我们有一个基于iMX53的自定义平台,运行Android Gingerbread,Linux内核2.6.35,带有TiWi-BLE Wlan /蓝牙设备,使用SDIO接口进行WLAN。我们正在使用飞思卡尔BSP。 TiWi-BLE是重新包装的TI wl1271器件。我按照TI的建议从TI站点下载了wl1271驱动程序。

当WLAN设备停止并重新启动时,我收到SDIO错误。该器件具有WL_EN信号,当器件停止并在启动时置1时,驱动器将清除该信号。切换此信号会重置设备。

我调查了这个问题,并在TI论坛http://e2e.ti.com/support/wireless_connectivity/f/307/t/181835.aspx?pi310978=2

上看到了同样的问题

看起来SDIO流量存在时设备可能无法打开,我实施了建议的修复程序以解决此问题,但问题并没有消失。它正在获得SDIO MMC超时错误。这是我在停止后重启设备时在控制台上得到的内容。

------------[ cut here ]------------
WARNING: at /home/wlan/compat-wireless/drivers/net/wireless/wl12xx/sdio.c:126 wl12xx_sdio_raw_write+0xac/0xe8 [wl12xx_sdio]()
Modules linked in: wl12xx_sdio wl12xx mac80211 cfg80211 compat
[<8003e578>] (unwind_backtrace+0x0/0xf0) from [<80068e6c>] (warn_slowpath_common+0x4c/0x64)
[<80068e6c>] (warn_slowpath_common+0x4c/0x64) from [<80068e9c>] (warn_slowpath_null+0x18/0x1c)
[<80068e9c>] (warn_slowpath_null+0x18/0x1c) from [<7f0e0264>] (wl12xx_sdio_raw_write+0xac/0xe8 [wl12xx_sdio])
[<7f0e0264>] (wl12xx_sdio_raw_write+0xac/0xe8 [wl12xx_sdio]) from [<7f0aecac>] (wl1271_set_partition+0xe0/0x3d0 [wl12xx])
[<7f0aecac>] (wl1271_set_partition+0xe0/0x3d0 [wl12xx]) from [<7f0a678c>] (wl12xx_set_power_on+0x70/0x138 [wl12xx])
[<7f0a678c>] (wl12xx_set_power_on+0x70/0x138 [wl12xx]) from [<7f0a999c>] (wl12xx_chip_wakeup+0x10/0x2b8 [wl12xx])
[<7f0a999c>] (wl12xx_chip_wakeup+0x10/0x2b8 [wl12xx]) from [<7f0a9f5c>] (wl1271_op_add_interface+0x318/0x574 [wl12xx])
[<7f0a9f5c>] (wl1271_op_add_interface+0x318/0x574 [wl12xx]) from [<7f0581c8>] (ieee80211_do_open+0x2e0/0x6c0 [mac80211])
[<7f0581c8>] (ieee80211_do_open+0x2e0/0x6c0 [mac80211]) from [<80371bb8>] (__dev_open+0xa0/0xf0)
[<80371bb8>] (__dev_open+0xa0/0xf0) from [<8036f4f8>] (__dev_change_flags+0x8c/0x110)
[<8036f4f8>] (__dev_change_flags+0x8c/0x110) from [<80371ae4>] (dev_change_flags+0x10/0x44)
[<80371ae4>] (dev_change_flags+0x10/0x44) from [<803c793c>] (devinet_ioctl+0x3ac/0x77c)
[<803c793c>] (devinet_ioctl+0x3ac/0x77c) from [<80361058>] (sock_ioctl+0x1f4/0x244)
[<80361058>] (sock_ioctl+0x1f4/0x244) from [<800da3e4>] (vfs_ioctl+0x2c/0xac)
[<800da3e4>] (vfs_ioctl+0x2c/0xac) from [<800daa98>] (do_vfs_ioctl+0x540/0x5a0)
[<800daa98>] (do_vfs_ioctl+0x540/0x5a0) from [<800dab44>] (sys_ioctl+0x4c/0x6c)
[<800dab44>] (sys_ioctl+0x4c/0x6c) from [<80039f80>] (ret_fast_syscall+0x0/0x30)
---[ end trace 28f46a0aaed28e6a ]---
wl1271_sdio mmc1:0001:2: sdio write failed (-110)

我们相信我们正在遵守datsheet中所述的WL_EN上/下设备要求。

这似乎是某种SDIO / MMC问题,其中第二次接口没有正确显示,可能是由于某些重新初始化问题。

任何人都可以建议可能发生的事情或更深入地调试此事的可能方法。

谢谢, 布鲁诺

0 个答案:

没有答案