This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Multiple TiWi Instances

Other Parts Discussed in Thread: WL1271

We have a Pandaboard with a built-in LS Research W-Fi card and are trying to add a second WL1271 instance using a plug-in card. The driver is objecting. Does anyone know what should be changed?

Thanks.

  • Hi David,

    I think it is possible  to have multiple WLAN instances, can you send the logs that you get?

    Thanks,

    Eyal

  • Hi Eyal,

    Here is a log. We might be able to avoid this error message, but we will still be concerned that there may be data structures that cannot handle two or more plug-in cards.

    [ 6726.659088] ------------[ cut here ]------------
    [ 6726.659118] WARNING: at fs/sysfs/dir.c:455 sysfs_add_one+0x84/0xa4()
    [ 6726.659118] sysfs: cannot create duplicate filename '/devices/platform/wl1271'
    [ 6726.659149] Modules linked in: btsdio cfg80211 usbhid joydev mac80211 l2cap bnep sco dm_crypt fuse wl12xx wl12xx_sdio icoral [last unloaded: wl12xx]
    [ 6726.659210] [<c005a8b0>] (unwind_backtrace+0x0/0xe0) from [<c0093690>] (warn_slowpath_common+0x4c/0x64)
    [ 6726.659240] [<c0093690>] (warn_slowpath_common+0x4c/0x64) from [<c0093728>] (warn_slowpath_fmt+0x2c/0x3c)
    [ 6726.659240] [<c0093728>] (warn_slowpath_fmt+0x2c/0x3c) from [<c0194a1c>] (sysfs_add_one+0x84/0xa4)
    [ 6726.659271] [<c0194a1c>] (sysfs_add_one+0x84/0xa4) from [<c0194a98>] (create_dir+0x5c/0xac)
    [ 6726.659301] [<c0194a98>] (create_dir+0x5c/0xac) from [<c0194bbc>] (sysfs_create_dir+0xb8/0xd4)
    [ 6726.659301] [<c0194bbc>] (sysfs_create_dir+0xb8/0xd4) from [<c02c7894>] (kobject_add_internal+0xd0/0x1e8)
    [ 6726.659332] [<c02c7894>] (kobject_add_internal+0xd0/0x1e8) from [<c02c7c80>] (kobject_add+0x68/0x8c)
    [ 6726.659332] [<c02c7c80>] (kobject_add+0x68/0x8c) from [<c0340bf0>] (device_add+0xac/0x54c)
    [ 6726.659362] [<c0340bf0>] (device_add+0xac/0x54c) from [<c0344730>] (platform_device_add+0x108/0x164)
    [ 6726.659454] [<c0344730>] (platform_device_add+0x108/0x164) from [<bf1654fc>] (wl1271_alloc_hw+0x27c/0x38c [wl12xx])
    [ 6726.659515] [<bf1654fc>] (wl1271_alloc_hw+0x27c/0x38c [wl12xx]) from [<bf1873d4>] (wl1271_probe+0x24/0x184 [wl12xx_sdio])
    [ 6726.659545] [<bf1873d4>] (wl1271_probe+0x24/0x184 [wl12xx_sdio]) from [<c03ffbdc>] (sdio_bus_probe+0x88/0xf4)
    [ 6726.659545] [<c03ffbdc>] (sdio_bus_probe+0x88/0xf4) from [<c034335c>] (driver_probe_device+0xc8/0x184)
    [ 6726.659576] [<c034335c>] (driver_probe_device+0xc8/0x184) from [<c034231c>] (bus_for_each_drv+0x4c/0x84)
    [ 6726.659606] [<c034231c>] (bus_for_each_drv+0x4c/0x84) from [<c03431b0>] (device_attach+0x64/0x90)
    [ 6726.659606] [<c03431b0>] (device_attach+0x64/0x90) from [<c0342b28>] (bus_probe_device+0x24/0x40)
    [ 6726.659637] [<c0342b28>] (bus_probe_device+0x24/0x40) from [<c0340eec>] (device_add+0x3a8/0x54c)
    [ 6726.659637] [<c0340eec>] (device_add+0x3a8/0x54c) from [<c03ffd00>] (sdio_add_func+0x34/0x4c)
    [ 6726.659667] [<c03ffd00>] (sdio_add_func+0x34/0x4c) from [<c03ff2fc>] (mmc_attach_sdio+0x278/0x324)
    [ 6726.659667] [<c03ff2fc>] (mmc_attach_sdio+0x278/0x324) from [<c03fab44>] (mmc_rescan+0x1e0/0x250)
    [ 6726.659698] [<c03fab44>] (mmc_rescan+0x1e0/0x250) from [<c00ab1c8>] (process_one_work+0x27c/0x444)
    [ 6726.659729] [<c00ab1c8>] (process_one_work+0x27c/0x444) from [<c00ad3e4>] (worker_thread+0x1c4/0x2c0)
    [ 6726.659729] [<c00ad3e4>] (worker_thread+0x1c4/0x2c0) from [<c00b0a58>] (kthread+0x7c/0x84)
    [ 6726.659759] [<c00b0a58>] (kthread+0x7c/0x84) from [<c0054594>] (kernel_thread_exit+0x0/0x8)
    [ 6726.659790] ---[ end trace 25b9ec48c52dd857 ]---
    [ 6726.659790] kobject_add_internal failed for wl1271 with -EEXIST, don't try to register things with the same name in the same directory.
    [ 6726.659820] [<c005a8b0>] (unwind_backtrace+0x0/0xe0) from [<c02c7980>] (kobject_add_internal+0x1bc/0x1e8)
    [ 6726.659820] [<c02c7980>] (kobject_add_internal+0x1bc/0x1e8) from [<c02c7c80>] (kobject_add+0x68/0x8c)
    [ 6726.659851] [<c02c7c80>] (kobject_add+0x68/0x8c) from [<c0340bf0>] (device_add+0xac/0x54c)
    [ 6726.659851] [<c0340bf0>] (device_add+0xac/0x54c) from [<c0344730>] (platform_device_add+0x108/0x164)
    [ 6726.659912] [<c0344730>] (platform_device_add+0x108/0x164) from [<bf1654fc>] (wl1271_alloc_hw+0x27c/0x38c [wl12xx])
    [ 6726.659912] [<bf1654fc>] (wl1271_alloc_hw+0x27c/0x38c [wl12xx]) from [<bf1873d4>] (wl1271_probe+0x24/0x184 [wl12xx_sdio])
    [ 6726.659942] [<bf1873d4>] (wl1271_probe+0x24/0x184 [wl12xx_sdio]) from [<c03ffbdc>] (sdio_bus_probe+0x88/0xf4)
    [ 6726.659973] [<c03ffbdc>] (sdio_bus_probe+0x88/0xf4) from [<c034335c>] (driver_probe_device+0xc8/0x184)
    [ 6726.659973] [<c034335c>] (driver_probe_device+0xc8/0x184) from [<c034231c>] (bus_for_each_drv+0x4c/0x84)
    [ 6726.660003] [<c034231c>] (bus_for_each_drv+0x4c/0x84) from [<c03431b0>] (device_attach+0x64/0x90)
    [ 6726.660003] [<c03431b0>] (device_attach+0x64/0x90) from [<c0342b28>] (bus_probe_device+0x24/0x40)
    [ 6726.660034] [<c0342b28>] (bus_probe_device+0x24/0x40) from [<c0340eec>] (device_add+0x3a8/0x54c)
    [ 6726.660034] [<c0340eec>] (device_add+0x3a8/0x54c) from [<c03ffd00>] (sdio_add_func+0x34/0x4c)
    [ 6726.660064] [<c03ffd00>] (sdio_add_func+0x34/0x4c) from [<c03ff2fc>] (mmc_attach_sdio+0x278/0x324)
    [ 6726.660064] [<c03ff2fc>] (mmc_attach_sdio+0x278/0x324) from [<c03fab44>] (mmc_rescan+0x1e0/0x250)
    [ 6726.660095] [<c03fab44>] (mmc_rescan+0x1e0/0x250) from [<c00ab1c8>] (process_one_work+0x27c/0x444)
    [ 6726.660095] [<c00ab1c8>] (process_one_work+0x27c/0x444) from [<c00ad3e4>] (worker_thread+0x1c4/0x2c0)
    [ 6726.660125] [<c00ad3e4>] (worker_thread+0x1c4/0x2c0) from [<c00b0a58>] (kthread+0x7c/0x84)
    [ 6726.660156] [<c00b0a58>] (kthread+0x7c/0x84) from [<c0054594>] (kernel_thread_exit+0x0/0x8)
    [ 6726.660156] wl1271: ERROR couldn't register platform device
    [ 6726.660186] wl1271_sdio: probe of mmc2:0001:2 failed with error -17

     

    Thanks for your help.

    - David.

  • Hi,

     

    I verified with WLAN driver architect and In case it is 2 physical devices the WLAN driver don’t support it as is, and some modifications needed to be done.

    Unfortunately we will not be able to support the needed modifications in the e2e forum since it will require investigation and testing and it is beyond e2e support.

     

    Regards,

    Eyal

  • Hi David,

    From the log you have send, it's seems like you are doing 2 insmod to the same KO.

    There are 2 approaches you can take:

    • Duplicate the driver into 2 different binaries (and modify mach/arm/omap-XXX)
    • Or stay with a single binary, just expose 2 wlan interfaces (tiwlan0 & tiwlan1) and modify wlandrvif to use different sdio/hw_platform files to init the adapter. I wouldn't recommend this approch, since you will have to duplicate the WLAN driver thread which is single. So this approach is much more complex.

    - Elad