]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
wlcore: Fix misplaced PM call for scan_complete_work()
authorTony Lindgren <tony@atomide.com>
Tue, 19 Jun 2018 09:43:38 +0000 (02:43 -0700)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 27 Jun 2018 15:44:53 +0000 (18:44 +0300)
With runtime PM enabled, we now need to have wlcore enabled longer
until after we're done calling wlcore_cmd_regdomain_config_locked():

scan_complete_work()
 wlcore_cmd_regdomain_config_locked()
   wlcore_cmd_send_failsafe()
     wl12xx_sdio_raw_read()

Note that this is not needed before runtime PM support as the
custom PM code had it's own timer. We have not yet enabled runtime
PM autosuspend for wlcore and this is why this issue now shows up.

Let's fix the issues first before we enable runtime PM autosuspend.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ti/wlcore/scan.c

index 69d0f28fc0ddc7858dcbe943a1d73328a878990e..6f927eabbe39c3f8fb380979ba83346d3aff36ed 100644 (file)
@@ -78,8 +78,6 @@ void wl1271_scan_complete_work(struct work_struct *work)
                wl1271_cmd_build_ap_probe_req(wl, wlvif, wlvif->probereq);
        }
 
-       pm_runtime_put(wl->dev);
-
        if (wl->scan.failed) {
                wl1271_info("Scan completed due to error.");
                wl12xx_queue_recovery_work(wl);
@@ -87,6 +85,8 @@ void wl1271_scan_complete_work(struct work_struct *work)
 
        wlcore_cmd_regdomain_config_locked(wl);
 
+       pm_runtime_put(wl->dev);
+
        ieee80211_scan_completed(wl->hw, &info);
 
 out: