brcmfmac: Set timeout value when configuring power save
authorNicolas Saenz Julienne <nsaenzjulienne@suse.de>
Tue, 21 Jul 2020 11:23:02 +0000 (13:23 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Sun, 2 Aug 2020 15:32:06 +0000 (18:32 +0300)
Set the timeout value as per cfg80211's set_power_mgmt() request. If the
requested value value is left undefined we set it to 2 seconds, the
maximum supported value.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20200721112302.22718-1-nsaenzjulienne@suse.de
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

index 5d99771..ab0da2f 100644 (file)
@@ -84,6 +84,8 @@
 
 #define BRCMF_ND_INFO_TIMEOUT          msecs_to_jiffies(2000)
 
+#define BRCMF_PS_MAX_TIMEOUT_MS                2000
+
 #define BRCMF_ASSOC_PARAMS_FIXED_SIZE \
        (sizeof(struct brcmf_assoc_params_le) - sizeof(u16))
 
@@ -2942,6 +2944,12 @@ brcmf_cfg80211_set_power_mgmt(struct wiphy *wiphy, struct net_device *ndev,
                else
                        bphy_err(drvr, "error (%d)\n", err);
        }
+
+       err = brcmf_fil_iovar_int_set(ifp, "pm2_sleep_ret",
+                               min_t(u32, timeout, BRCMF_PS_MAX_TIMEOUT_MS));
+       if (err)
+               bphy_err(drvr, "Unable to set pm timeout, (%d)\n", err);
+
 done:
        brcmf_dbg(TRACE, "Exit\n");
        return err;