• Emmanuel Grumbach's avatar
    iwlwifi: pcie: disable the SCD_BASE_ADDR when we resume from WoWLAN · a7596982
    Emmanuel Grumbach authored
    commit cd8f4384 upstream.
    
    The base address of the scheduler in the device's memory
    (SRAM) comes from two different sources. The periphery
    register and the alive notification from the firmware.
    We have a check in iwl_pcie_tx_start that ensures that
    they are the same.
    When we resume from WoWLAN, the firmware may have crashed
    for whatever reason. In that case, the whole device may be
    reset which means that the periphery register will hold a
    meaningless value. When we come to compare
    trans_pcie->scd_base_addr (which really holds the value we
    had when we loaded the WoWLAN firmware upon suspend) and
    the current value of the register, we don't see a match
    unsurprisingly.
    Trick the check to avoid a loud yet harmless WARN.
    Note that when the WoWLAN has crashed, we will see that
    in iwl_trans_pcie_d3_resume which will let the op_mode
    know. Once the op_mode is informed that the WowLAN firmware
    has crashed, it can't do much besides resetting the whole
    device.
    Reviewed-by: default avatarJohannes Berg <johannes.berg@intel.com>
    Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    a7596982
tx.c 48.8 KB