mwifiex: wake up main thread to handle Tx traffic if scan is delayed/aborted
This is a flaw in recently implemented logic to handle Tx traffic and scan operation simultaneously. We missed to wakeup main thread to handle Tx traffic if scan is delayed/aborted. For some cards (SD8797, for example), firmware will send SLEEP event if there is no activity for 50msec. While handling the SLEEP event, main thread will be woken up and Tx packet gets sent hence. In worst case Tx traffic will be delayed for 50msec. For other cards, such as USB8797, firmware won't send SLEEP event. So, Tx traffic gets stuck if no other event triggers the wakeup of main thread. This patch fixes above issues. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Bing Zhao <bzhao@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:

committad av
John W. Linville

förälder
0fd66be4a3
incheckning
f931c7705b
@@ -190,7 +190,8 @@ process_start:
|
||||
adapter->tx_lock_flag)
|
||||
break;
|
||||
|
||||
if (adapter->scan_processing || adapter->data_sent ||
|
||||
if ((adapter->scan_processing &&
|
||||
!adapter->scan_delay_cnt) || adapter->data_sent ||
|
||||
mwifiex_wmm_lists_empty(adapter)) {
|
||||
if (adapter->cmd_sent || adapter->curr_cmd ||
|
||||
(!is_command_pending(adapter)))
|
||||
|
Referens i nytt ärende
Block a user