.. | .. |
---|
216 | 216 | |
---|
217 | 217 | return 0; |
---|
218 | 218 | } |
---|
| 219 | +EXPORT_SYMBOL(rfkill_get_wifi_power_state); |
---|
219 | 220 | |
---|
220 | 221 | /************************************************************************** |
---|
221 | 222 | * |
---|
.. | .. |
---|
233 | 234 | bool toggle = false; |
---|
234 | 235 | |
---|
235 | 236 | LOG("%s: %d\n", __func__, on); |
---|
236 | | - |
---|
237 | | - if (!on && primary_sdio_host) |
---|
238 | | - mmc_pwrseq_power_off(primary_sdio_host); |
---|
239 | 237 | |
---|
240 | 238 | if (!mrfkill) { |
---|
241 | 239 | LOG("%s: rfkill-wlan driver has not Successful initialized\n", |
---|
.. | .. |
---|
271 | 269 | regulator_set_voltage(ldo, 3000000, 3000000); |
---|
272 | 270 | LOG("%s: %s enabled\n", __func__, ldostr); |
---|
273 | 271 | ret = regulator_enable(ldo); |
---|
| 272 | + if (ret) |
---|
| 273 | + LOG("ldo enable failed\n"); |
---|
274 | 274 | wifi_power_state = 1; |
---|
275 | 275 | LOG("wifi turn on power.\n"); |
---|
276 | 276 | } else { |
---|
277 | 277 | LOG("%s: %s disabled\n", __func__, ldostr); |
---|
278 | | - while (regulator_is_enabled(ldo) > 0) |
---|
| 278 | + while (regulator_is_enabled(ldo) > 0) { |
---|
279 | 279 | ret = regulator_disable(ldo); |
---|
| 280 | + if (ret) |
---|
| 281 | + LOG("ldo disable failed\n"); |
---|
| 282 | + } |
---|
280 | 283 | wifi_power_state = 0; |
---|
281 | 284 | LOG("wifi shut off power.\n"); |
---|
282 | 285 | } |
---|
.. | .. |
---|
342 | 345 | * Wifi Sdio Detect Func |
---|
343 | 346 | * |
---|
344 | 347 | *************************************************************************/ |
---|
345 | | -extern int mmc_host_rescan(struct mmc_host *host, int val, int irq_type); |
---|
346 | 348 | int rockchip_wifi_set_carddetect(int val) |
---|
347 | 349 | { |
---|
348 | | - return mmc_host_rescan(NULL, val, 1); |
---|
| 350 | + return 0; |
---|
349 | 351 | } |
---|
350 | 352 | EXPORT_SYMBOL(rockchip_wifi_set_carddetect); |
---|
351 | 353 | |
---|
.. | .. |
---|
439 | 441 | addr[5]); |
---|
440 | 442 | ret = rk_vendor_write(WIFI_MAC_ID, addr, 6); |
---|
441 | 443 | if (ret != 0) { |
---|
442 | | - LOG("%s: rk_vendor_write failed %d\n" |
---|
| 444 | + LOG("%s: rk_vendor_write failed %d\n", |
---|
443 | 445 | __func__, ret); |
---|
444 | 446 | memset(addr, 0, 6); |
---|
445 | 447 | return -1; |
---|
.. | .. |
---|
562 | 564 | __func__); |
---|
563 | 565 | strcpy(wifi_chip_type_string, "rkwifi"); |
---|
564 | 566 | } else { |
---|
565 | | - strcpy(wifi_chip_type_string, strings); |
---|
| 567 | + if (strings && strlen(strings) < 64) |
---|
| 568 | + strcpy(wifi_chip_type_string, strings); |
---|
566 | 569 | } |
---|
567 | 570 | LOG("%s: wifi_chip_type = %s\n", __func__, wifi_chip_type_string); |
---|
568 | 571 | |
---|
.. | .. |
---|
860 | 863 | if (ret) |
---|
861 | 864 | goto fail_alloc; |
---|
862 | 865 | |
---|
863 | | - ret = rfkill_rk_setup_gpio(&pdata->power_n, wlan_name, |
---|
864 | | - "wlan_poweren"); |
---|
865 | | - if (ret) |
---|
866 | | - goto fail_alloc; |
---|
867 | | - |
---|
868 | 866 | ret = rfkill_rk_setup_gpio(&pdata->reset_n, wlan_name, |
---|
869 | 867 | "wlan_reset"); |
---|
870 | 868 | if (ret) |
---|
.. | .. |
---|
878 | 876 | |
---|
879 | 877 | #ifdef CONFIG_SDIO_KEEPALIVE |
---|
880 | 878 | if (gpio_is_valid(pdata->power_n.io) && |
---|
881 | | - primary_sdio_host && primary_sdio_host->support_chip_alive) |
---|
882 | 879 | gpio_direction_output(pdata->power_n.io, pdata->power_n.enable); |
---|
883 | | -#else |
---|
884 | | - if (gpio_is_valid(pdata->power_n.io)) |
---|
885 | | - gpio_direction_output(pdata->power_n.io, !pdata->power_n.enable); |
---|
886 | 880 | #endif |
---|
887 | 881 | |
---|
888 | 882 | |
---|
.. | .. |
---|
935 | 929 | return 0; |
---|
936 | 930 | } |
---|
937 | 931 | |
---|
| 932 | +static void rfkill_wlan_shutdown(struct platform_device *pdev) |
---|
| 933 | +{ |
---|
| 934 | + LOG("Enter %s\n", __func__); |
---|
| 935 | + |
---|
| 936 | + rockchip_wifi_power(0); |
---|
| 937 | + rfkill_set_wifi_bt_power(0); |
---|
| 938 | +} |
---|
| 939 | + |
---|
938 | 940 | static int rfkill_wlan_suspend(struct platform_device *pdev, pm_message_t state) |
---|
939 | 941 | { |
---|
940 | 942 | LOG("Enter %s\n", __func__); |
---|
.. | .. |
---|
958 | 960 | static struct platform_driver rfkill_wlan_driver = { |
---|
959 | 961 | .probe = rfkill_wlan_probe, |
---|
960 | 962 | .remove = rfkill_wlan_remove, |
---|
| 963 | + .shutdown = rfkill_wlan_shutdown, |
---|
961 | 964 | .suspend = rfkill_wlan_suspend, |
---|
962 | 965 | .resume = rfkill_wlan_resume, |
---|
963 | 966 | .driver = { |
---|