summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorD. Andrei Măceș <dmaces@nd.edu>2016-06-18 10:54:07 -0400
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-07-18 20:51:16 -0700
commit0d6fc9dc0513a9b2071780ad882d8bb70905f410 (patch)
treed5691bc8706b33d8554c59f3032735b824959ff7
parent2a8637cb05cba61f990e61333b164ba3626563f5 (diff)
downloadandroid_hardware_ti_wlan-0d6fc9dc0513a9b2071780ad882d8bb70905f410.tar.gz
android_hardware_ti_wlan-0d6fc9dc0513a9b2071780ad882d8bb70905f410.tar.bz2
android_hardware_ti_wlan-0d6fc9dc0513a9b2071780ad882d8bb70905f410.zip
wl12xx_sdio: Use pdata power callback if defined (needed before probe)
Similar to wl1251, "power is controlled by runtime PM, but we still call board callback in case it wants to do any additional setup" (i.e., regu- lators, clock buffers, etc). This allow us to get rid of ugly MMC hacks, such as: https://github.com/CyanogenMod/android_kernel_bn_omap/commit/4611a54 & https://github.com/CyanogenMod/android_kernel_bn_omap/commit/172f588. Change-Id: I1264beeacf7841a52c664495fbafe9bc9bb8f03d
-rw-r--r--mac80211/compat_wl12xx/drivers/net/wireless/wl12xx/sdio.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/mac80211/compat_wl12xx/drivers/net/wireless/wl12xx/sdio.c b/mac80211/compat_wl12xx/drivers/net/wireless/wl12xx/sdio.c
index c7505d0d..7fc19619 100644
--- a/mac80211/compat_wl12xx/drivers/net/wireless/wl12xx/sdio.c
+++ b/mac80211/compat_wl12xx/drivers/net/wireless/wl12xx/sdio.c
@@ -364,12 +364,22 @@ static struct sdio_driver wl1271_sdio_driver = {
static int __init wl1271_init(void)
{
+ const struct wl12xx_platform_data *wlan_data = wl12xx_get_platform_data();
+
+ if (wlan_data->set_power)
+ wlan_data->set_power(1);
+
return sdio_register_driver(&wl1271_sdio_driver);
}
static void __exit wl1271_exit(void)
{
+ const struct wl12xx_platform_data *wlan_data = wl12xx_get_platform_data();
+
sdio_unregister_driver(&wl1271_sdio_driver);
+
+ if (wlan_data->set_power)
+ wlan_data->set_power(0);
}
module_init(wl1271_init);