瀏覽代碼

qcacmn: Increase the host DFS status timeout value

On a partial offload chipset, when radar is detected on a DFS channel,
the host dfs wait timer (timeout of 200ms) is started, but there is a
delay in sending the avg_params to the FW. This delay happens for approx
330ms due to some high priority interrupt, due to this, the thread that
sends the avg_params to the FW seems to be suspended.

Host timer expiry is seen, and due to this there is a new target channel
chosen and multivdev restart is sent to the FW (the vdev is in restart
progress state). At this moment, the FW spoof timer (timeout is 300ms)
gets expired and a status code of 1 (indicating spoof failure) is sent
in the host dfs status WMI event. Due to this, the DFS channels are
blocked and the channel list is rebuilt with only non-DFS channels.
A non-DFS channel is chosen as the target channel. Since the vdev SM is
currently in restart progress state, when radar event is posted to the
vdev SM, assert is triggered and this leads to a crash.

The timeout value of the host timer is 200ms and the FW timer is 300ms.
The Host timer should be greater than the FW timer.

Therefore, increase the Host status timeout value from 200ms to 350ms.

Change-Id: I86858377fd5041922f232a1ac3d5ab781c7a63c1
CRs-Fixed: 2936809
Hariharan Basuthkar 4 年之前
父節點
當前提交
84952bbe19
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      umac/dfs/core/src/dfs.h

+ 1 - 1
umac/dfs/core/src/dfs.h

@@ -376,7 +376,7 @@
  * wait timer with this timeout.
  */
 #if defined(WLAN_DFS_PARTIAL_OFFLOAD) && defined(HOST_DFS_SPOOF_TEST)
-#define HOST_DFS_STATUS_WAIT_TIMER_MS 200
+#define HOST_DFS_STATUS_WAIT_TIMER_MS 350
 #endif
 
 /*