Index: compat-wireless/drivers/net/wireless/wl12xx/sdio.c =================================================================== --- compat-wireless.orig/drivers/net/wireless/wl12xx/sdio.c +++ compat-wireless/drivers/net/wireless/wl12xx/sdio.c @@ -169,6 +169,10 @@ static int wl1271_sdio_power_on(struct w struct sdio_func *func = wl_to_func(wl); int ret; + // MTS: enable chip on power on + if (wl->set_power) + wl->set_power(1); + /* If enabled, tell runtime PM not to power off the card */ if (pm_runtime_enabled(&func->dev)) { ret = pm_runtime_get_sync(&func->dev); @@ -193,6 +197,10 @@ static int wl1271_sdio_power_off(struct struct sdio_func *func = wl_to_func(wl); int ret; + // MTS: disable chip on power off + if (wl->set_power) + wl->set_power(0); + sdio_disable_func(func); sdio_release_host(func); @@ -262,6 +270,10 @@ static int __devinit wl1271_probe(struct goto out_free; } + // MTS: add set_power to control enable pin + if (wlan_data->set_power) + wl->set_power = wlan_data->set_power; + wl->irq = wlan_data->irq; if (wl->ref_clock < 0) wl->ref_clock = wlan_data->board_ref_clock;