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.

Wl12XX back porting issue with PM_RUNTIME on AM3505 platform using compat wireless package 2.6.37

Other Parts Discussed in Thread: WL1271

Hello TI,

I am back porting wl12xx to my kernel (modified version of TI's linux-03.00.01.06 kernel for AM3517EVM kernel) and platform is AM3505. We have interfaced WL1271 through SDIO (MMC slot 0).

I am able to load sdio based modules of Compat Wireless package 2.6.37. With this I am able to up the wlan0 interface using ifconfig wlan0 up when PM_RUNTIME is disabled and i can scan and connect to Access Point successfully. But as i want to run calibrator utility i need to power it down, up, down and so on. So must enable PM_RUNTIME in my kernel.

Please let me know whether PM_RUNTIME is available for this kernel linux-03.00.01.0 ( which is 2.6.32 baseline kernel, if i am not wrong). And please give me direction if it is not available in this kernel. I already tried the patches given on the wireless community and i am failed to apply those patches as it seems some files should be in my kernel and which is not in my kernel.

My end goal is to run calibrator utility and hence i selected Compat wireless package 2.6.37.

Regards,

Hitesh V.

  • Hi,

    When you disable PM_RUNTIME are you able to do multiple "ifconfig wlan0 down/up" scenarios. I believe this should be possible even with PM_RUNTIME disabled.

    If this works out then you should also be able to perform calibration as it.

    The kernel we use for am35xx/am37xx (linux-omap3-2.6.37-psp04.02.00.07) is 2.6.37 based we have not tried that with a 2.6.32 kernel.

    Best Regards,

    Eyal Reizer

  • Additionally if down/up without PM_RUNTIME is not working you may try to look at the link below and prepare a specific set_power function that can be used

    to control the power to the wl12xx module when it is brought down/up.

     

    ttp://processors.wiki.ti.com/index.php/OMAP_Wireless_Connectivity_Hardware_Porting_for_new_Platform#Power_Control_.E2.80.93_without_voltage_regulator

     

    Best Regards,

    Eyal Reizer

     

  • Hello Eyal,

    Thanks for the reply.

    You are right regarding PM_RUNTIME. Even if i disabled the PM_RUNTIME, I got the same behaviour. And i did all the changes available at the link you specified but the issue that i am facing is if i assigned the mmc[1].dev->platform_data->slots[0].set_power = wl12xx_set_power then during booting sequence itself MMC controller fails to claim the SDIO Card. And without assigning this function pointer MMC controller claims the SDIO with print as shown below:

    mmc1: clock 25000000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 0 timing 0
    mmc1: clock 25000000Hz busmode 2 powermode 2 cs 0 Vdd 7 width 2 timing 0
    mmc1: queuing unknown CIS tuple 0x91 (3 bytes)
    mmc1: new SDIO card at address 0001

    I tried to debug it into drivers/mmc/host/omap_hsmmc.c and drivers/mmc/core/core.c files but i failed to get why this is happening !!

    And as i know MMC controller must claim to glue of my wl1271_sdio driver. Please let me help in the resolving this problem.

    Thanks & Regards,

    Hitesh V.

  • Hi,

     

    Your 2.6.32 kernel might be missing some important patches required for working poperly.

    Please try to look at the following link:

     

    http://linuxwireless.org/en/users/Drivers/wl12xx

     

    Look the "Notes about using compat-wireless on older kernels" section in this page and try to apply all the kernel related patches (2.6.32 and up) and see if it helps.

     

    Best Regards,

    Eyal Reizer

  • Hello Eyal,

    I already tried as explained in the section that you mentioned. But i am getting the same result. Most of the patches shown there are SDIO runtime power management and i am getting same result even if i enable PM_RUNTIME or disabled it.

    How i made my driver working is, I implement one function that toggles my WLAN_EN gpio and i am keeping it ON during init of my board file (As set_power function pointer not working properly) that makes my WL1271 powered on, so MMC Controller can claim SDIO and so as while loading wl1271_sdio.ko my driver glue successfully and so rest of the functionality is working.

    Any idea regarding what happens if i just assign function pointer and it calls my wl12xx_set_power and does not claim SDIO ??

    Regards,

    Hitesh V.

  • Hey Eyal,

    Any updates on this thread ?

    Regards,

    Hitesh V.

  • Hitesh,

     

    At this point it would be hard to answer without actually debugging what is going on in the kernel.

    You would probably need to add debug prints and see why it is failing.

     

    Best Regards,

    Eyal Reizer