diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index f6b29bf925d0893b21fa0ac7f312814c70c9f71a..7d10c0182f53b8a6a40612ecfdb4322bcc018cfe 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -1020,6 +1020,8 @@ struct cfg80211_pmksa {
  *	RSN IE. It allows for faster roaming between WPA2 BSSIDs.
  * @del_pmksa: Delete a cached PMKID.
  * @flush_pmksa: Flush all cached PMKIDs.
+ * @set_power_mgmt: Configure WLAN power management. A timeout value of -1
+ *	allows the driver to adjust the dynamic ps timeout value.
  * @set_cqm_rssi_config: Configure connection quality monitor RSSI threshold.
  *
  */
diff --git a/net/wireless/core.c b/net/wireless/core.c
index 7fdb9409ad2ab251cefe2699f3abbc6bb4c8bee5..40cbbbfbccbf15f444f4426829162acc75f0f534 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -704,7 +704,8 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb,
 			wdev->ps = true;
 		else
 			wdev->ps = false;
-		wdev->ps_timeout = 100;
+		/* allow mac80211 to determine the timeout */
+		wdev->ps_timeout = -1;
 		if (rdev->ops->set_power_mgmt)
 			if (rdev->ops->set_power_mgmt(wdev->wiphy, dev,
 						      wdev->ps,