lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 272/846] iwlwifi: mvm: perform 6GHz passive scan after suspend
    Date
    From: Avraham Stern <avraham.stern@intel.com>

    [ Upstream commit f4745cbb17572209a7fa27a6796ed70e7ada860b ]

    The 6GHz passive scan is performed only once every 50 minutes.
    However, in case of suspend/resume, the regulatory information
    is reset, so 6GHz channels may become disabled.
    Fix it by performing a 6GHz passive scan within 60 seconds after
    suspend/resume even if the 50 minutes timeout did not expire yet.

    Signed-off-by: Avraham Stern <avraham.stern@intel.com>
    Fixes: e8fe3b41c3a3 ("iwlwifi: mvm: Add support for 6GHz passive scan")
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Link: https://lore.kernel.org/r/iwlwifi.20211219121514.6d5c043372cf.I251dd5618a3f0b8febbcca788eb861f1cd6039bc@changeid
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 21 ++++++++-----------
    1 file changed, 9 insertions(+), 12 deletions(-)

    diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
    index d78e436fa8b53..d4d562779d0a2 100644
    --- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
    +++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
    @@ -1924,22 +1924,19 @@ static void iwl_mvm_scan_6ghz_passive_scan(struct iwl_mvm *mvm,
    }

    /*
    - * 6GHz passive scan is allowed while associated in a defined time
    - * interval following HW reset or resume flow
    + * 6GHz passive scan is allowed in a defined time interval following HW
    + * reset or resume flow, or while not associated and a large interval
    + * has passed since the last 6GHz passive scan.
    */
    - if (vif->bss_conf.assoc &&
    + if ((vif->bss_conf.assoc ||
    + time_after(mvm->last_6ghz_passive_scan_jiffies +
    + (IWL_MVM_6GHZ_PASSIVE_SCAN_TIMEOUT * HZ), jiffies)) &&
    (time_before(mvm->last_reset_or_resume_time_jiffies +
    (IWL_MVM_6GHZ_PASSIVE_SCAN_ASSOC_TIMEOUT * HZ),
    jiffies))) {
    - IWL_DEBUG_SCAN(mvm, "6GHz passive scan: associated\n");
    - return;
    - }
    -
    - /* No need for 6GHz passive scan if not enough time elapsed */
    - if (time_after(mvm->last_6ghz_passive_scan_jiffies +
    - (IWL_MVM_6GHZ_PASSIVE_SCAN_TIMEOUT * HZ), jiffies)) {
    - IWL_DEBUG_SCAN(mvm,
    - "6GHz passive scan: timeout did not expire\n");
    + IWL_DEBUG_SCAN(mvm, "6GHz passive scan: %s\n",
    + vif->bss_conf.assoc ? "associated" :
    + "timeout did not expire");
    return;
    }

    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-25 00:11    [W:2.560 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site