• Amitkumar Karwar's avatar
    mwifiex: wakeup main thread to handle command queued · 1a1fb970
    Amitkumar Karwar authored
    We miss to wakeup main thread after adding command to cmd pending
    queue at follwing places. These commands are handled later when
    main thread is woken up for handling an interrupt for sleep event
    from firmware. This adds worst case delay of 50msec.
    1) We don't wakeup main thread when asynchronous command is added
    to cmd pending queue. Move queue_work() call from
    mwifiex_wait_queue_complete() to mwifiex_send_cmd_async() to wakeup
    main thread for sync as well as async commands.
    2) Scan operation is triggered due to following reasons
       a) request from user (ex. "iw scan" command)
       b) Scan performed by driver internally.
       In first case main thread is woken up when first scan command is
    queued in cmd pending queue (we don't need to wakeup main thread for
    subsequent scan commands, because they are queued in scan command
    response handler), but it is not done for second case. queue_work()
    is moved inside mwifiex_scan_networks() to handle both the cases.
    Signed-off-by: default avatarAmitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: default avatarAvinash Patil <patila@marvell.com>
    Signed-off-by: default avatarBing Zhao <bzhao@marvell.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
sta_ioctl.c 40.9 KB