aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/ath/ath6kl/cfg80211.c10
-rw-r--r--drivers/net/wireless/ath/ath6kl/core.h3
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c13
3 files changed, 19 insertions, 7 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c
index 6d143e453f9e..bf5e7d519398 100644
--- a/drivers/net/wireless/ath/ath6kl/cfg80211.c
+++ b/drivers/net/wireless/ath/ath6kl/cfg80211.c
@@ -2760,6 +2760,7 @@ static int ath6kl_start_ap(struct wiphy *wiphy, struct net_device *dev,
2760 int res; 2760 int res;
2761 int i, ret; 2761 int i, ret;
2762 u16 rsn_capab = 0; 2762 u16 rsn_capab = 0;
2763 int inactivity_timeout = 0;
2763 2764
2764 ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s:\n", __func__); 2765 ath6kl_dbg(ATH6KL_DBG_WLAN_CFG, "%s:\n", __func__);
2765 2766
@@ -2896,8 +2897,15 @@ static int ath6kl_start_ap(struct wiphy *wiphy, struct net_device *dev,
2896 } 2897 }
2897 2898
2898 if (info->inactivity_timeout) { 2899 if (info->inactivity_timeout) {
2900
2901 inactivity_timeout = info->inactivity_timeout;
2902
2903 if (ar->hw.flags & ATH6KL_HW_AP_INACTIVITY_MINS)
2904 inactivity_timeout = DIV_ROUND_UP(inactivity_timeout,
2905 60);
2906
2899 res = ath6kl_wmi_set_inact_period(ar->wmi, vif->fw_vif_idx, 2907 res = ath6kl_wmi_set_inact_period(ar->wmi, vif->fw_vif_idx,
2900 info->inactivity_timeout); 2908 inactivity_timeout);
2901 if (res < 0) 2909 if (res < 0)
2902 return res; 2910 return res;
2903 } 2911 }
diff --git a/drivers/net/wireless/ath/ath6kl/core.h b/drivers/net/wireless/ath/ath6kl/core.h
index fc5e4b258183..95fc9b37e6a6 100644
--- a/drivers/net/wireless/ath/ath6kl/core.h
+++ b/drivers/net/wireless/ath/ath6kl/core.h
@@ -149,7 +149,8 @@ struct ath6kl_fw_ie {
149}; 149};
150 150
151enum ath6kl_hw_flags { 151enum ath6kl_hw_flags {
152 ATH6KL_HW_64BIT_RATES = BIT(0), 152 ATH6KL_HW_64BIT_RATES = BIT(0),
153 ATH6KL_HW_AP_INACTIVITY_MINS = BIT(1),
153}; 154};
154 155
155#define ATH6KL_FW_API2_FILE "fw-2.bin" 156#define ATH6KL_FW_API2_FILE "fw-2.bin"
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index 18550c51e12e..7ffb8533986b 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -93,7 +93,8 @@ static const struct ath6kl_hw hw_list[] = {
93 .board_addr = 0x433900, 93 .board_addr = 0x433900,
94 .refclk_hz = 26000000, 94 .refclk_hz = 26000000,
95 .uarttx_pin = 11, 95 .uarttx_pin = 11,
96 .flags = ATH6KL_HW_64BIT_RATES, 96 .flags = ATH6KL_HW_64BIT_RATES |
97 ATH6KL_HW_AP_INACTIVITY_MINS,
97 98
98 .fw = { 99 .fw = {
99 .dir = AR6004_HW_1_0_FW_DIR, 100 .dir = AR6004_HW_1_0_FW_DIR,
@@ -113,8 +114,8 @@ static const struct ath6kl_hw hw_list[] = {
113 .board_addr = 0x43d400, 114 .board_addr = 0x43d400,
114 .refclk_hz = 40000000, 115 .refclk_hz = 40000000,
115 .uarttx_pin = 11, 116 .uarttx_pin = 11,
116 .flags = ATH6KL_HW_64BIT_RATES, 117 .flags = ATH6KL_HW_64BIT_RATES |
117 118 ATH6KL_HW_AP_INACTIVITY_MINS,
118 .fw = { 119 .fw = {
119 .dir = AR6004_HW_1_1_FW_DIR, 120 .dir = AR6004_HW_1_1_FW_DIR,
120 .fw = AR6004_HW_1_1_FIRMWARE_FILE, 121 .fw = AR6004_HW_1_1_FIRMWARE_FILE,
@@ -133,7 +134,8 @@ static const struct ath6kl_hw hw_list[] = {
133 .board_addr = 0x435c00, 134 .board_addr = 0x435c00,
134 .refclk_hz = 40000000, 135 .refclk_hz = 40000000,
135 .uarttx_pin = 11, 136 .uarttx_pin = 11,
136 .flags = ATH6KL_HW_64BIT_RATES, 137 .flags = ATH6KL_HW_64BIT_RATES |
138 ATH6KL_HW_AP_INACTIVITY_MINS,
137 139
138 .fw = { 140 .fw = {
139 .dir = AR6004_HW_1_2_FW_DIR, 141 .dir = AR6004_HW_1_2_FW_DIR,
@@ -152,7 +154,8 @@ static const struct ath6kl_hw hw_list[] = {
152 .board_addr = 0x436400, 154 .board_addr = 0x436400,
153 .refclk_hz = 40000000, 155 .refclk_hz = 40000000,
154 .uarttx_pin = 11, 156 .uarttx_pin = 11,
155 .flags = ATH6KL_HW_64BIT_RATES, 157 .flags = ATH6KL_HW_64BIT_RATES |
158 ATH6KL_HW_AP_INACTIVITY_MINS,
156 159
157 .fw = { 160 .fw = {
158 .dir = AR6004_HW_1_3_FW_DIR, 161 .dir = AR6004_HW_1_3_FW_DIR,