.. | .. |
---|
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 | } |
---|
.. | .. |
---|
316 | 319 | } |
---|
317 | 320 | |
---|
318 | 321 | wifi_power_state = 0; |
---|
319 | | - |
---|
320 | | - if (!rfkill_get_bt_power_state(&bt_power, &toggle)) { |
---|
321 | | - LOG("%s: toggle = %s\n", __func__, toggle ? "true" : "false"); |
---|
322 | | - } |
---|
323 | | - |
---|
324 | 322 | if (toggle) { |
---|
325 | 323 | if (!bt_power) { |
---|
326 | 324 | LOG("%s: wifi will set vbat to low\n", __func__); |
---|
.. | .. |
---|
342 | 340 | * Wifi Sdio Detect Func |
---|
343 | 341 | * |
---|
344 | 342 | *************************************************************************/ |
---|
345 | | -extern int mmc_host_rescan(struct mmc_host *host, int val, int irq_type); |
---|
346 | 343 | int rockchip_wifi_set_carddetect(int val) |
---|
347 | 344 | { |
---|
348 | | - return mmc_host_rescan(NULL, val, 1); |
---|
| 345 | + return 0; |
---|
349 | 346 | } |
---|
350 | 347 | EXPORT_SYMBOL(rockchip_wifi_set_carddetect); |
---|
351 | 348 | |
---|
.. | .. |
---|
439 | 436 | addr[5]); |
---|
440 | 437 | ret = rk_vendor_write(WIFI_MAC_ID, addr, 6); |
---|
441 | 438 | if (ret != 0) { |
---|
442 | | - LOG("%s: rk_vendor_write failed %d\n" |
---|
| 439 | + LOG("%s: rk_vendor_write failed %d\n", |
---|
443 | 440 | __func__, ret); |
---|
444 | 441 | memset(addr, 0, 6); |
---|
445 | 442 | return -1; |
---|
.. | .. |
---|
562 | 559 | __func__); |
---|
563 | 560 | strcpy(wifi_chip_type_string, "rkwifi"); |
---|
564 | 561 | } else { |
---|
565 | | - strcpy(wifi_chip_type_string, strings); |
---|
| 562 | + if (strings && strlen(strings) < 64) |
---|
| 563 | + strcpy(wifi_chip_type_string, strings); |
---|
566 | 564 | } |
---|
567 | 565 | LOG("%s: wifi_chip_type = %s\n", __func__, wifi_chip_type_string); |
---|
568 | 566 | |
---|
.. | .. |
---|
860 | 858 | if (ret) |
---|
861 | 859 | goto fail_alloc; |
---|
862 | 860 | |
---|
863 | | - ret = rfkill_rk_setup_gpio(&pdata->power_n, wlan_name, |
---|
864 | | - "wlan_poweren"); |
---|
865 | | - if (ret) |
---|
866 | | - goto fail_alloc; |
---|
867 | | - |
---|
868 | 861 | ret = rfkill_rk_setup_gpio(&pdata->reset_n, wlan_name, |
---|
869 | 862 | "wlan_reset"); |
---|
870 | 863 | if (ret) |
---|
.. | .. |
---|
878 | 871 | |
---|
879 | 872 | #ifdef CONFIG_SDIO_KEEPALIVE |
---|
880 | 873 | if (gpio_is_valid(pdata->power_n.io) && |
---|
881 | | - primary_sdio_host && primary_sdio_host->support_chip_alive) |
---|
882 | 874 | 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 | 875 | #endif |
---|
887 | 876 | |
---|
888 | 877 | |
---|
.. | .. |
---|
935 | 924 | return 0; |
---|
936 | 925 | } |
---|
937 | 926 | |
---|
| 927 | +static void rfkill_wlan_shutdown(struct platform_device *pdev) |
---|
| 928 | +{ |
---|
| 929 | + LOG("Enter %s\n", __func__); |
---|
| 930 | + |
---|
| 931 | + rockchip_wifi_power(0); |
---|
| 932 | + rfkill_set_wifi_bt_power(0); |
---|
| 933 | +} |
---|
| 934 | + |
---|
938 | 935 | static int rfkill_wlan_suspend(struct platform_device *pdev, pm_message_t state) |
---|
939 | 936 | { |
---|
940 | 937 | LOG("Enter %s\n", __func__); |
---|
.. | .. |
---|
958 | 955 | static struct platform_driver rfkill_wlan_driver = { |
---|
959 | 956 | .probe = rfkill_wlan_probe, |
---|
960 | 957 | .remove = rfkill_wlan_remove, |
---|
| 958 | + .shutdown = rfkill_wlan_shutdown, |
---|
961 | 959 | .suspend = rfkill_wlan_suspend, |
---|
962 | 960 | .resume = rfkill_wlan_resume, |
---|
963 | 961 | .driver = { |
---|