wcn36xx: abort scan request when 'dequeued' indicator is sent
authorDaniel Mack <daniel@zonque.org>
Tue, 17 Apr 2018 13:23:33 +0000 (15:23 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Tue, 24 Apr 2018 06:05:58 +0000 (09:05 +0300)
When the firmware sends a WCN36XX_HAL_SCAN_IND_DEQUEUED indication,
the request is apparently no longer valid. Attempts to stop the hardware
scan request subsequently will lead to the following error message, and
the hardware is no longer able to communicate with any AP:

[   57.917186] wcn36xx: ERROR hal_stop_scan_offload response failed err=5

Interpreting this indicator message as scan abortion fixes this.

While at it, add a newline to a debug print.

Signed-off-by: Daniel Mack <daniel@zonque.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/ath/wcn36xx/smd.c

index 297a785d07855012feff9a12a5933a484b0a80df..b7964f79d83749b8eef19a9da02c9c64d1e5782f 100644 (file)
@@ -2140,10 +2140,11 @@ static int wcn36xx_smd_hw_scan_ind(struct wcn36xx *wcn, void *buf, size_t len)
                return -EIO;
        }
 
-       wcn36xx_dbg(WCN36XX_DBG_HAL, "scan indication (type %x)", rsp->type);
+       wcn36xx_dbg(WCN36XX_DBG_HAL, "scan indication (type %x)\n", rsp->type);
 
        switch (rsp->type) {
        case WCN36XX_HAL_SCAN_IND_FAILED:
+       case WCN36XX_HAL_SCAN_IND_DEQUEUED:
                scan_info.aborted = true;
                /* fall through */
        case WCN36XX_HAL_SCAN_IND_COMPLETED:
@@ -2156,7 +2157,6 @@ static int wcn36xx_smd_hw_scan_ind(struct wcn36xx *wcn, void *buf, size_t len)
                break;
        case WCN36XX_HAL_SCAN_IND_STARTED:
        case WCN36XX_HAL_SCAN_IND_FOREIGN_CHANNEL:
-       case WCN36XX_HAL_SCAN_IND_DEQUEUED:
        case WCN36XX_HAL_SCAN_IND_PREEMPTED:
        case WCN36XX_HAL_SCAN_IND_RESTARTED:
                break;