• Johannes Berg's avatar
    iwlwifi: move queue watchdog into transport · 7c5ba4a8
    Johannes Berg authored
    This removes one of the two sources of device
    restarts in the upper layer -- those are a bit
    inconvenient because normal restarts originate
    in the transport. By moving the watchdog down
    it can be treated the same.
    
    Also rewrite the watchdog logic. Timers are
    much more efficient when they never fire, so
    instead firing a timer every 500ms set up a
    timer for each TX queue and fire it only when
    the queue is really stuck. This avoids the CPU
    waking up when everything is working well.
    
    While at it, remove the wd_disable config item
    and replace it by simply setting wd_timeout to
    IWL_WATCHHDOG_DISABLED (0).
    Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarWey-Yi Guy <wey-yi.w.guy@intel.com>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    7c5ba4a8
iwl-agn.c 65 KB