• Johannes Berg's avatar
    iwlagn: centralize and fix ucode restart · e649437f
    Johannes Berg authored
    The ucode restart has to take into account a number
    of things, like clearing the HCMD_ACTIVE and other
    status bits, and waking up the wait_command_queue.
    Currently, however, there are a number of places
    that neither do that, nor actually set the FW error
    bit that leads to proper restart handling, which
    means that in those cases things will probably just
    hang completely.
    To clean this up, make all ucode restart go through
    a single function, except for the cases where it's
    called during firmware loading.
    Also fix a bug in wimax coexist restart avoidance,
    it needs to first clear the status bits (and it has
    to clear the HCMD_ACTIVE one as well) and then wake
    up anything waiting on wait_command_queue.
    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>
iwl-core.c 54.7 KB