<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How can reset SDIO interface for wifi? in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180422#M7553</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;Hello:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jianzheng zhou !&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hps"&gt;freescale&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;can support&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;boardcom wifi&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;module ? if &lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;support,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;please give&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;a&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;porting&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;manual !&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks !&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 07 Mar 2014 05:58:13 GMT</pubDate>
    <dc:creator>liyu1</dc:creator>
    <dc:date>2014-03-07T05:58:13Z</dc:date>
    <item>
      <title>How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180415#M7546</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all:&lt;/P&gt;&lt;P&gt;Sorry for my poor English,&amp;nbsp; i am debuging bcm4330 wifi module on Android2.3 platform,&lt;/P&gt;&lt;P&gt;when wifi power on (power off) , it needs reset sdio interface, i found a function code sdio_reset_comm() from internet and put them into sdio.c file,&amp;nbsp; code runs with errors,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;my wifi module connecting to the sdio 2 (sdio&amp;nbsp;1 for sd card, sdio 3 for eMMC) of mx535 mcu,&lt;/P&gt;&lt;P&gt;please help me how to reset sdio interface correctlry,&lt;/P&gt;&lt;P&gt;thanks in advance!!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;enabling adb&lt;BR /&gt;# input: eCompass as /devices/virtual/input/input7&lt;BR /&gt;warning: `zygote' uses 32-bit capabilities (legacy support in use)&lt;BR /&gt;pmem: request for physical address of pmem region from process 2278.&lt;BR /&gt;rfkill: BT RF going to : on&lt;BR /&gt;tootzoe wifi bcm_wlan_power_on now.....&lt;BR /&gt;tootzoe wifi power on now.....&lt;BR /&gt;sdio_reset_comm(): --tootzoe------&lt;BR /&gt;------------[ cut here ]------------&lt;BR /&gt;WARNING: at drivers/mmc/core/core.c:240 mmc_wait_for_cmd+0x2c/0x74()&lt;BR /&gt;Modules linked in: bcm4330(+)&lt;BR /&gt;[&amp;lt;8003e58c&amp;gt;] (unwind_backtrace+0x0/0xf0) from [&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64)&lt;BR /&gt;[&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64) from [&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c)&lt;BR /&gt;[&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c) from [&amp;lt;8033d510&amp;gt;] (mmc_wait_for_cmd+0x2c/0x74)&lt;BR /&gt;[&amp;lt;8033d510&amp;gt;] (mmc_wait_for_cmd+0x2c/0x74) from [&amp;lt;8033f8f0&amp;gt;] (mmc_go_idle+0x60/0xac)&lt;BR /&gt;[&amp;lt;8033f8f0&amp;gt;] (mmc_go_idle+0x60/0xac) from [&amp;lt;80341600&amp;gt;] (sdio_reset_comm+0x20/0x110)&lt;BR /&gt;[&amp;lt;80341600&amp;gt;] (sdio_reset_comm+0x20/0x110) from [&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24)&lt;BR /&gt;[&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24) from [&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330])&lt;BR /&gt;[&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330]) from [&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330])&lt;BR /&gt;[&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330]) from [&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4)&lt;BR /&gt;[&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4) from [&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac)&lt;BR /&gt;[&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac) from [&amp;lt;80039f80&amp;gt;] (ret_fast_syscall+0x0/0x30)&lt;BR /&gt;---[ end trace d1ecc3005255da0b ]---&lt;BR /&gt;------------[ cut here ]------------&lt;BR /&gt;WARNING: at drivers/mmc/core/core.c:167 mmc_wait_for_req+0x50/0x120()&lt;BR /&gt;Modules linked in: bcm4330(+)&lt;BR /&gt;[&amp;lt;8003e58c&amp;gt;] (unwind_backtrace+0x0/0xf0) from [&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64)&lt;BR /&gt;[&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64) from [&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c)&lt;BR /&gt;[&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c) from [&amp;lt;8033d414&amp;gt;] (mmc_wait_for_req+0x50/0x120)&lt;BR /&gt;[&amp;lt;8033d414&amp;gt;] (mmc_wait_for_req+0x50/0x120) from [&amp;lt;8033d548&amp;gt;] (mmc_wait_for_cmd+0x64/0x74)&lt;BR /&gt;[&amp;lt;8033d548&amp;gt;] (mmc_wait_for_cmd+0x64/0x74) from [&amp;lt;8033f8f0&amp;gt;] (mmc_go_idle+0x60/0xac)&lt;BR /&gt;[&amp;lt;8033f8f0&amp;gt;] (mmc_go_idle+0x60/0xac) from [&amp;lt;80341600&amp;gt;] (sdio_reset_comm+0x20/0x110)&lt;BR /&gt;[&amp;lt;80341600&amp;gt;] (sdio_reset_comm+0x20/0x110) from [&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24)&lt;BR /&gt;[&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24) from [&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330])&lt;BR /&gt;[&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330]) from [&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330])&lt;BR /&gt;[&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330]) from [&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4)&lt;BR /&gt;[&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4) from [&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac)&lt;BR /&gt;[&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac) from [&amp;lt;80039f80&amp;gt;] (ret_fast_syscall+0x0/0x30)&lt;BR /&gt;---[ end trace d1ecc3005255da0c ]---&lt;BR /&gt;mmc_send_io_op_cond--tootzoe------&lt;BR /&gt;------------[ cut here ]------------&lt;BR /&gt;WARNING: at drivers/mmc/core/core.c:240 mmc_wait_for_cmd+0x2c/0x74()&lt;BR /&gt;Modules linked in: bcm4330(+)&lt;BR /&gt;[&amp;lt;8003e58c&amp;gt;] (unwind_backtrace+0x0/0xf0) from [&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64)&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2b530054&lt;BR /&gt;[&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64) from [&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c)&lt;BR /&gt;[&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c) from [&amp;lt;8033d510&amp;gt;] (mmc_wait_for_cmd+0x2c/0x74)&lt;BR /&gt;request_suspend_state: on (3-&amp;gt;0) at 21354691253 (1970-01-02 00:00:05.189001375 UTC)&lt;BR /&gt;[&amp;lt;8033d510&amp;gt;] (mmc_wait_for_cmd+0x2c/0x74) from [&amp;lt;80341b14&amp;gt;] (mmc_send_io_op_cond+0x58/0xc8)&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2b530054&lt;BR /&gt;[&amp;lt;80341b14&amp;gt;] (mmc_send_io_op_cond+0x58/0xc8) from [&amp;lt;80341624&amp;gt;] (sdio_reset_comm+0x44/0x110)&lt;BR /&gt;[&amp;lt;80341624&amp;gt;] (sdio_reset_comm+0x44/0x110) from [&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24)&lt;BR /&gt;[&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24) from [&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330])&lt;BR /&gt;[&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330]) from [&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330])&lt;BR /&gt;binder: release proc 2335, transaction 516, not freed&lt;BR /&gt;[&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330]) from [&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4)&lt;BR /&gt;[&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4) from [&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac)&lt;BR /&gt;[&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac) from [&amp;lt;80039f80&amp;gt;] (ret_fast_syscall+0x0/0x30)&lt;BR /&gt;---[ end trace d1ecc3005255da0d ]---&lt;BR /&gt;------------[ cut here ]------------&lt;BR /&gt;WARNING: at drivers/mmc/core/core.c:167 mmc_wait_for_req+0x50/0x120()&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2bb3e054&lt;BR /&gt;Modules linked in: bcm4330(+)&lt;BR /&gt;[&amp;lt;8003e58c&amp;gt;] (unwind_backtrace+0x0/0xf0) from [&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64)&lt;BR /&gt;[&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64) from [&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c)&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2bbdb054&lt;BR /&gt;[&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c) from [&amp;lt;8033d414&amp;gt;] (mmc_wait_for_req+0x50/0x120)&lt;BR /&gt;[&amp;lt;8033d414&amp;gt;] (mmc_wait_for_req+0x50/0x120) from [&amp;lt;8033d548&amp;gt;] (mmc_wait_for_cmd+0x64/0x74)&lt;BR /&gt;[&amp;lt;8033d548&amp;gt;] (mmc_wait_for_cmd+0x64/0x74) from [&amp;lt;80341b14&amp;gt;] (mmc_send_io_op_cond+0x58/0xc8)&lt;BR /&gt;[&amp;lt;80341b14&amp;gt;] (mmc_send_io_op_cond+0x58/0xc8) from [&amp;lt;80341624&amp;gt;] (sdio_reset_comm+0x44/0x110)&lt;BR /&gt;[&amp;lt;80341624&amp;gt;] (sdio_reset_comm+0x44/0x110) from [&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24)&lt;BR /&gt;[&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24) from [&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330])&lt;BR /&gt;[&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330]) from [&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330])&lt;BR /&gt;[&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330]) from [&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4)&lt;BR /&gt;[&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4) from [&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac)&lt;BR /&gt;[&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac) from [&amp;lt;80039f80&amp;gt;] (ret_fast_syscall+0x0/0x30)&lt;BR /&gt;---[ end trace d1ecc3005255da0e ]---&lt;BR /&gt;mmc2: Error resetting SDIO communications (-110)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;------------------ Error here....&lt;BR /&gt;------------[ cut here ]------------&lt;BR /&gt;WARNING: at drivers/mmc/core/core.c:599 mmc_release_host+0x20/0x38()&lt;BR /&gt;Modules linked in: bcm4330(+)&lt;BR /&gt;[&amp;lt;8003e58c&amp;gt;] (unwind_backtrace+0x0/0xf0) from [&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64)&lt;BR /&gt;[&amp;lt;8006a078&amp;gt;] (warn_slowpath_common+0x4c/0x64) from [&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c)&lt;BR /&gt;[&amp;lt;8006a0a8&amp;gt;] (warn_slowpath_null+0x18/0x1c) from [&amp;lt;8033c5f0&amp;gt;] (mmc_release_host+0x20/0x38)&lt;BR /&gt;[&amp;lt;8033c5f0&amp;gt;] (mmc_release_host+0x20/0x38) from [&amp;lt;803416c8&amp;gt;] (sdio_reset_comm+0xe8/0x110)&lt;BR /&gt;[&amp;lt;803416c8&amp;gt;] (sdio_reset_comm+0xe8/0x110) from [&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24)&lt;BR /&gt;[&amp;lt;80341708&amp;gt;] (tootResetSdio+0x18/0x24) from [&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330])&lt;BR /&gt;[&amp;lt;7f008264&amp;gt;] (dhd_customer_gpio_wlan_ctrl+0x58/0x70 [bcm4330]) from [&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330])&lt;BR /&gt;[&amp;lt;7f034070&amp;gt;] (dhd_module_init+0x70/0x134 [bcm4330]) from [&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4)&lt;BR /&gt;[&amp;lt;80039384&amp;gt;] (do_one_initcall+0x5c/0x1b4) from [&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac)&lt;BR /&gt;[&amp;lt;800964c8&amp;gt;] (sys_init_module+0x90/0x1ac) from [&amp;lt;80039f80&amp;gt;] (ret_fast_syscall+0x0/0x30)&lt;BR /&gt;---[ end trace d1ecc3005255da0f ]---&lt;BR /&gt;[DHD] sih-&amp;gt;chiprev = 4&lt;BR /&gt;[DHD] DHD: dongle ram size is set to 294912(orig 294912)&lt;BR /&gt;[DHD] load firmware from /system/etc/firmware/bcm4330.bin&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2bc3e054&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2bcdb054&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2bd3e054&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2bddb054&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2b8b6054&lt;BR /&gt;Unhandled fault: external abort on non-linefetch (0x1018) at 0x2b8b6054&lt;BR /&gt;[DHD] dhdsdio_download_nvram: nvram_path=/system/etc/firmware/nvram.txt&lt;BR /&gt;Not all allocated memory blocks were freed. Doing it now.&lt;BR /&gt;Freeing list entry #0, gpuaddr=166000&lt;BR /&gt;Freeing list entry #1, gpuaddr=167000&lt;BR /&gt;Freeing list entry #2, gpuaddr=177000&lt;BR /&gt;Freeing list entry #3, gpuaddr=1a9000&lt;BR /&gt;Freeing list entry #6, gpuaddr=1fa000&lt;BR /&gt;Freeing list entry #7, gpuaddr=1fc000&lt;BR /&gt;Freeing list entry #8, gpuaddr=21c000&lt;BR /&gt;Freeing list entry #87, gpuaddr=bcc000&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;my reset function found from internet (&amp;nbsp;in file&amp;nbsp;&amp;nbsp; ~/myandroid/kernel_imx/drivers/mmc/core/sdio.c)&lt;/P&gt;&lt;P&gt;int sdio_reset_comm(struct mmc_card *card)&lt;BR /&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct mmc_host *host = card-&amp;gt;host;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; u32 ocr;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int err;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printk("sdio_reset_comm(): --tootzoe------\n" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmc_go_idle(host);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmc_set_clock(host, host-&amp;gt;f_min);&lt;BR /&gt;printk("mmc_send_io_op_cond--tootzoe------\n" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = mmc_send_io_op_cond(host, 0, &amp;amp;ocr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goto err;&lt;BR /&gt;printk("mmc_select_voltage --tootzoe------\n" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; host-&amp;gt;ocr = mmc_select_voltage(host, ocr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!host-&amp;gt;ocr) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = -EINVAL;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goto err;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;printk("mmc_send_io_op_cond 2--tootzoe------\n" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = mmc_send_io_op_cond(host, host-&amp;gt;ocr, &amp;amp;ocr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goto err;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (mmc_host_is_spi(host)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = mmc_spi_set_crc(host, use_spi_crc);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goto err;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!mmc_host_is_spi(host)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = mmc_send_relative_addr(host, &amp;amp;card-&amp;gt;rca);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goto err;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmc_set_bus_mode(host, MMC_BUSMODE_PUSHPULL);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!mmc_host_is_spi(host)) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = mmc_select_card(card);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goto err;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;printk("mmc_set_clock 2--tootzoe------\n" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmc_set_clock(host, card-&amp;gt;cis.max_dtr);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printk("sdio_enable_wide--tootzoe------\n" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; err = sdio_enable_wide(card);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (err)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goto err;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printk("sdio_reset_comm good\n" );&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;BR /&gt;err:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; printk("%s: Error resetting SDIO communications (%d)\n",&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmc_hostname(host), err);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mmc_release_host(host);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return err;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Aug 2012 02:27:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180415#M7546</guid>
      <dc:creator>tootzoe</dc:creator>
      <dc:date>2012-08-03T02:27:46Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180416#M7547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think you should have two steps to do not only reset.&lt;/P&gt;&lt;P&gt;After power on, you should force detect sdio, then do reset_sdio_comm&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Aug 2012 03:06:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180416#M7547</guid>
      <dc:creator>waterzhou</dc:creator>
      <dc:date>2012-08-03T03:06:22Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180417#M7548</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi jianzheng zhou, are you chinese,&lt;/P&gt;&lt;P&gt;thanks for reply, i will try and post result here....&lt;BR /&gt;&lt;BR /&gt;&lt;CITE&gt;Jianzheng Zhou said:&lt;/CITE&gt;&lt;/P&gt;&lt;BLOCKQUOTE cite="http://imxcommunity.org/forum/topics/how-can-reset-sdio-interface-for-wifi?groupUrl=androiddevelopers&amp;amp;#4103961Comment77649"&gt;&lt;DIV&gt;&lt;DIV class="xg_user_generated"&gt;&lt;P&gt;I think you should have two steps to do not only reset.&lt;/P&gt;&lt;P&gt;After power on, you should force detect sdio, then do reset_sdio_comm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Aug 2012 03:17:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180417#M7548</guid>
      <dc:creator>tootzoe</dc:creator>
      <dc:date>2012-08-03T03:17:40Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180418#M7549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hai:&lt;STRONG style="font-size: 12px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; color: #3d3d3d;"&gt;&lt;A href="https://community.nxp.com/people/tootzoe"&gt;tootzoe&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3d3d3d; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;are you debuging bcm4330 wifi module on Android2.3 platform succefully?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;why kernel don't &lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;distinguish sdio?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;void mmc_rescan(struct work_struct *work)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;&amp;nbsp; * First we search for SDIO...&lt;/P&gt;&lt;P&gt;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; printk("================First we search for SDIO...\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp; err = mmc_send_io_op_cond(host, 0, &amp;amp;ocr);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (!err) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (mmc_attach_sdio(host, ocr))&lt;/P&gt;&lt;P&gt;&amp;nbsp; mmc_power_off(host);&lt;/P&gt;&lt;P&gt;&amp;nbsp; goto out;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp; * ...then normal SD...&lt;/P&gt;&lt;P&gt;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; printk("================...then normal SD...\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp; err = mmc_send_app_op_cond(host, 0, &amp;amp;ocr);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (!err) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (mmc_attach_sd(host, ocr))&lt;/P&gt;&lt;P&gt;&amp;nbsp; mmc_power_off(host);&lt;/P&gt;&lt;P&gt;&amp;nbsp; goto out;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; /*&lt;/P&gt;&lt;P&gt;&amp;nbsp; * ...and finally MMC.&lt;/P&gt;&lt;P&gt;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; printk("================...and finally MMC.\n");&lt;/P&gt;&lt;P&gt;&amp;nbsp; err = mmc_send_op_cond(host, 0, &amp;amp;ocr);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (!err) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (mmc_attach_mmc(host, ocr))&lt;/P&gt;&lt;P&gt;&amp;nbsp; mmc_power_off(host);&lt;/P&gt;&lt;P&gt;&amp;nbsp; goto out;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; mmc_release_host(host);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mmc_power_off(host);&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;I find&amp;nbsp; err = mmc_send_io_op_cond(host, 0, &amp;amp;ocr) failed,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #000000; font-family: arial, sans-serif; text-decoration: underline;"&gt;so can't entery (mmc_attach_sdio(host, ocr).&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;can you help me?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Aug 2013 08:22:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180418#M7549</guid>
      <dc:creator>zhuhaigang</dc:creator>
      <dc:date>2013-08-28T08:22:02Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180419#M7550</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;H6&gt; Hello&amp;nbsp; !&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/H6&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN class="j-post-author"&gt;&amp;nbsp; &lt;STRONG&gt;&amp;nbsp;&amp;nbsp; &lt;A href="https://community.nxp.com/people/waterzhou"&gt;waterzhou&lt;/A&gt;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; please tell me ! how to force detect sdio&amp;nbsp; .&amp;nbsp; &lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Mar 2014 03:47:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180419#M7550</guid>
      <dc:creator>liyu1</dc:creator>
      <dc:date>2014-03-06T03:47:14Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180420#M7551</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;From 716bf64c825fba7d1b941d2f2b46ba3f78e762e0 Mon Sep 17 00:00:00 2001&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;From: Jianzheng Zhou &amp;lt;&lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:B38613@freescale.com"&gt;B38613@freescale.com&lt;/A&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Date: Wed, 27 Jun 2012 12:15:04 +0800&lt;/P&gt;&lt;P&gt;Subject: [PATCH 2/2] ENGR00214870-2:export sdio force detect or remove feature for some special case&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For dongle sdio wifi modules,power and clock will still on althrough rmmod wifi&lt;/P&gt;&lt;P&gt;drivers. Add force detect or remove feature, wifi driver can control their own&lt;/P&gt;&lt;P&gt;power and clock when enable/disable wifi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Signed-off-by: Jianzheng Zhou &amp;lt;&lt;/SPAN&gt;&lt;A class="jive-link-email-small" href="mailto:B38613@freescale.com"&gt;B38613@freescale.com&lt;/A&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;---&lt;/P&gt;&lt;P&gt; drivers/mmc/host/sdhci-esdhc-imx.c |&amp;nbsp;&amp;nbsp;&amp;nbsp; 2 ++&lt;/P&gt;&lt;P&gt; drivers/mmc/host/sdhci-pltfm.c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; 23 +++++++++++++++++++++++&lt;/P&gt;&lt;P&gt; drivers/mmc/host/sdhci.c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 +&lt;/P&gt;&lt;P&gt; include/linux/mmc/sdio_func.h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp;&amp;nbsp; 1 +&lt;/P&gt;&lt;P&gt; 4 files changed, 27 insertions(+), 0 deletions(-)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c&lt;/P&gt;&lt;P&gt;index 1a81571..a438242 100644&lt;/P&gt;&lt;P&gt;--- a/drivers/mmc/host/sdhci-esdhc-imx.c&lt;/P&gt;&lt;P&gt;+++ b/drivers/mmc/host/sdhci-esdhc-imx.c&lt;/P&gt;&lt;P&gt;@@ -674,6 +674,8 @@ static irqreturn_t cd_irq(int irq, void *data)&lt;/P&gt;&lt;P&gt;&amp;nbsp; esdhc_reset(sdhost);&lt;/P&gt;&lt;P&gt;&amp;nbsp; mdelay(1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;+ if (sdhost-&amp;gt;mmc-&amp;gt;sdio_force_remove)&lt;/P&gt;&lt;P&gt;+ sdhost-&amp;gt;mmc-&amp;gt;sdio_force_remove = false;&lt;/P&gt;&lt;P&gt;&amp;nbsp; tasklet_schedule(&amp;amp;sdhost-&amp;gt;card_tasklet);&lt;/P&gt;&lt;P&gt;&amp;nbsp; return IRQ_HANDLED;&lt;/P&gt;&lt;P&gt; };&lt;/P&gt;&lt;P&gt;diff --git a/drivers/mmc/host/sdhci-pltfm.c b/drivers/mmc/host/sdhci-pltfm.c&lt;/P&gt;&lt;P&gt;index dbab040..18b1944 100644&lt;/P&gt;&lt;P&gt;--- a/drivers/mmc/host/sdhci-pltfm.c&lt;/P&gt;&lt;P&gt;+++ b/drivers/mmc/host/sdhci-pltfm.c&lt;/P&gt;&lt;P&gt;@@ -41,10 +41,30 @@&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt; \*****************************************************************************/&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;+struct sdhci_host *__host;&lt;/P&gt;&lt;P&gt; static struct sdhci_ops sdhci_pltfm_ops = {&lt;/P&gt;&lt;P&gt; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; /*****************************************************************************\&lt;/P&gt;&lt;P&gt;+*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;+* Force detect with force remove sysmbol&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;+* remove = false: force detect&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;+* remove = true : force remove&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;+*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;+******************************************************************************/&lt;/P&gt;&lt;P&gt;+&lt;/P&gt;&lt;P&gt;+void mmc_force_remove_sdio_detect(bool remove)&lt;/P&gt;&lt;P&gt;+{&lt;/P&gt;&lt;P&gt;+ struct mmc_host *host;&lt;/P&gt;&lt;P&gt;+ if (__host != NULL) {&lt;/P&gt;&lt;P&gt;+ host = __host-&amp;gt;mmc;&lt;/P&gt;&lt;P&gt;+ host-&amp;gt;sdio_force_remove = remove;&lt;/P&gt;&lt;P&gt;+ tasklet_schedule(&amp;amp;__host-&amp;gt;card_tasklet);&lt;/P&gt;&lt;P&gt;+ }&lt;/P&gt;&lt;P&gt;+}&lt;/P&gt;&lt;P&gt;+EXPORT_SYMBOL_GPL(mmc_force_remove_sdio_detect);&lt;/P&gt;&lt;P&gt;+&lt;/P&gt;&lt;P&gt;+/*****************************************************************************\&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;&amp;nbsp; * Device probing/removal&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;&amp;nbsp; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/P&gt;&lt;P&gt;@@ -80,6 +100,8 @@ static int __devinit sdhci_pltfm_probe(struct platform_device *pdev)&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; host = sdhci_alloc_host(&amp;amp;pdev-&amp;gt;dev, sizeof(*pltfm_host));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;+ __host = host;&lt;/P&gt;&lt;P&gt;+&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (IS_ERR(host)) {&lt;/P&gt;&lt;P&gt;&amp;nbsp; ret = PTR_ERR(host);&lt;/P&gt;&lt;P&gt;&amp;nbsp; goto err;&lt;/P&gt;&lt;P&gt;@@ -157,6 +179,7 @@ static int __devexit sdhci_pltfm_remove(struct platform_device *pdev)&lt;/P&gt;&lt;P&gt;&amp;nbsp; iounmap(host-&amp;gt;ioaddr);&lt;/P&gt;&lt;P&gt;&amp;nbsp; release_mem_region(iomem-&amp;gt;start, resource_size(iomem));&lt;/P&gt;&lt;P&gt;&amp;nbsp; sdhci_free_host(host);&lt;/P&gt;&lt;P&gt;+ __host = NULL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; platform_set_drvdata(pdev, NULL);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; return 0;&lt;/P&gt;&lt;P&gt;diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c&lt;/P&gt;&lt;P&gt;index 2f200b8..265c544 100755&lt;/P&gt;&lt;P&gt;--- a/drivers/mmc/host/sdhci.c&lt;/P&gt;&lt;P&gt;+++ b/drivers/mmc/host/sdhci.c&lt;/P&gt;&lt;P&gt;@@ -1556,6 +1556,7 @@ out:&lt;/P&gt;&lt;P&gt;&amp;nbsp; mmiowb();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; spin_unlock_irqrestore(&amp;amp;host-&amp;gt;lock, flags);&lt;/P&gt;&lt;P&gt;+ sdhci_disable_clk(host, 0);&lt;/P&gt;&lt;P&gt; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; static int sdhci_start_signal_voltage_switch(struct mmc_host *mmc,&lt;/P&gt;&lt;P&gt;diff --git a/include/linux/mmc/sdio_func.h b/include/linux/mmc/sdio_func.h&lt;/P&gt;&lt;P&gt;index 557acae..d021702 100755&lt;/P&gt;&lt;P&gt;--- a/include/linux/mmc/sdio_func.h&lt;/P&gt;&lt;P&gt;+++ b/include/linux/mmc/sdio_func.h&lt;/P&gt;&lt;P&gt;@@ -170,6 +170,7 @@ extern void sdio_f0_writeb(struct sdio_func *func, unsigned char b,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; extern mmc_pm_flag_t sdio_get_host_pm_caps(struct sdio_func *func);&lt;/P&gt;&lt;P&gt; extern int sdio_set_host_pm_flags(struct sdio_func *func, mmc_pm_flag_t flags);&lt;/P&gt;&lt;P&gt;+extern void mmc_force_remove_sdio_detect(bool remove);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; #endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-- &lt;/P&gt;&lt;P&gt;1.7.1&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Mar 2014 09:23:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180420#M7551</guid>
      <dc:creator>waterzhou</dc:creator>
      <dc:date>2014-03-06T09:23:39Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180421#M7552</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P class="gt-baf-cell gt-baf-word-clickable"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I will　test and verify　it&amp;nbsp;&amp;nbsp; !&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Mar 2014 09:53:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180421#M7552</guid>
      <dc:creator>liyu1</dc:creator>
      <dc:date>2014-03-06T09:53:29Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180422#M7553</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;Hello:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; jianzheng zhou !&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="hps"&gt;freescale&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;can support&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;boardcom wifi&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;module ? if &lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;support,&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;please give&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;a&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;porting&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;manual !&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thanks !&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Mar 2014 05:58:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180422#M7553</guid>
      <dc:creator>liyu1</dc:creator>
      <dc:date>2014-03-07T05:58:13Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180423#M7554</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We default use atheros and realtek's. For broadcom's we don't have portal.Sorry.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2014 01:54:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180423#M7554</guid>
      <dc:creator>waterzhou</dc:creator>
      <dc:date>2014-04-02T01:54:12Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180424#M7555</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello !&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG class="font-color-meta"&gt;&lt;SPAN class="replyToName"&gt;Jianzheng Zhou !&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG class="font-color-meta"&gt;&lt;SPAN class="replyToName"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG class="font-color-meta"&gt;&lt;SPAN class="replyToName"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN lang="en"&gt;&lt;SPAN class="hps"&gt;I found that I&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;would&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;sdio&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;reset&lt;/SPAN&gt;, mmc_force_remove_sdio_detect () &lt;SPAN class="hps"&gt;function can not&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;enforce&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;this interface&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;detection&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;sdio&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;device&lt;/SPAN&gt;, &lt;SPAN class="hps"&gt;please tell&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;me how&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;to do it&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;can do&lt;/SPAN&gt; &lt;SPAN class="hps"&gt;this function.&lt;/SPAN&gt;&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 27 Aug 2014 06:32:38 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180424#M7555</guid>
      <dc:creator>liyu1</dc:creator>
      <dc:date>2014-08-27T06:32:38Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180425#M7556</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Jianzheng Zhou,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please tell me why sdio_reset_comm function is not present in imx 3.10.17 Kernel.&lt;/P&gt;&lt;P&gt;While inserting module &lt;/P&gt;&lt;P&gt;its giving error&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; insmod &lt;SPAN style="color: blue; text-decoration: underline;"&gt;bcmdhd.ko&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Error: could not insert module &lt;SPAN style="color: blue; text-decoration: underline;"&gt;bcmdhd.ko&lt;/SPAN&gt;: Unknown symbol in module&lt;/P&gt;&lt;P&gt;bcmdhd: Unknown symbol sdio_reset_comm (err 0)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you have patch for this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 30 Jul 2015 14:15:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180425#M7556</guid>
      <dc:creator>dilshad_alam</dc:creator>
      <dc:date>2015-07-30T14:15:05Z</dc:date>
    </item>
    <item>
      <title>Re: How can reset SDIO interface for wifi?</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180426#M7557</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;&lt;A href="https://community.nxp.com/people/zhuhaigang"&gt;zhuhaigang&lt;/A&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have ported BCM4329 to android2.2,&amp;nbsp; I have a record for it, but it was written in Chinese, not English. &lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;See attachment! &lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hope it can help you !&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;Regards,&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="j-post-author"&gt;&lt;STRONG&gt;Weidong&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Aug 2015 05:51:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/How-can-reset-SDIO-interface-for-wifi/m-p/180426#M7557</guid>
      <dc:creator>weidong_sun</dc:creator>
      <dc:date>2015-08-03T05:51:43Z</dc:date>
    </item>
  </channel>
</rss>

