Hi Zhangfei, On Tue, Jun 28, 2011 at 12:13 PM, zhangfei gao <zhangfei.gao@xxxxxxxxx> wrote: > One question :( Np, feel free to ask ! (but it's usually better to start a new thread, rather then forking an existing one under the same subject) > Under pm_runtime mechanism, how to dynamically open/close wlan. Actually it should be the other way around: when you enable/disable WLAN (e.g. Ifconfig up/down), you then use the runtime PM API to power up/down the device. > If the wlan chip really power off, the firmware should be reloaded, > since the firmware is download to ram and disappear after power off. Right. > So wlan probe function should be called for re-downloading, is it be > achieved by calling pm_runtime_get_sync and mmc_power_restore_host? Not really; I assume you refer to libertas_sdio, which AFAICT, is built to power on the device (and configure it) on ->probe(), and then power it off on ->remove(). It then seems that this model was extended to support suspend/resume by asking the MMC core to ->remove() the card on suspend, and then relying on it to re-detect and re-add the card on resume, which will trigger libertas' ->probe() again. IMHO this model is a little awkward; as you can see, powering on/off the chip requires re-probing the driver. Take a look how mac80211 drivers (and wl12xx in particular) behave: they are powered on (and firmware is downloaded) when the user brings the wlan0 interface up, and then powered off when the wlan interface is brought down. The runtime PM API is only being used to control the power to the device, but downloading the firmware and doing driver-specific configuration is up to the driver to do. > From Daniel's test log, "echo mem > /sys/power/state" is used to > restart wlan, is this standard method? That command was only used to trigger system suspend - Daniel was testing libertas & runtime PM behavior in that scenario. Thanks, Ohad. -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html