diff options
author | Ahmad Masri <amasri@codeaurora.org> | 2019-06-16 03:26:06 -0400 |
---|---|---|
committer | Kalle Valo <kvalo@codeaurora.org> | 2019-06-27 13:50:55 -0400 |
commit | 2a32c20b76af39185a5bf8fa617b94295660893f (patch) | |
tree | a679c5f113b64ff4b8b38c10a820018b393bf5f9 /drivers/net/wireless | |
parent | 9b586118730e1b86dc3c8d8523effc712c5a2bfc (diff) |
wil6210: set WIL_WMI_CALL_GENERAL_TO_MS as wmi_call timeout
Replace all wmi_call timeouts that are less than 100 msec to use
WIL_WMI_CALL_GENERAL_TO_MS (100 msec) as a default. Some of the
current wmi_call timeouts are too short and fails to receive its
waiting events.
Signed-off-by: Ahmad Masri <amasri@codeaurora.org>
Signed-off-by: Maya Erez <merez@codeaurora.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/ath/wil6210/cfg80211.c | 3 | ||||
-rw-r--r-- | drivers/net/wireless/ath/wil6210/debugfs.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/ath/wil6210/txrx.c | 9 | ||||
-rw-r--r-- | drivers/net/wireless/ath/wil6210/wil6210.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/wil6210/wmi.c | 32 |
5 files changed, 29 insertions, 18 deletions
diff --git a/drivers/net/wireless/ath/wil6210/cfg80211.c b/drivers/net/wireless/ath/wil6210/cfg80211.c index 64da2be38760..d436cc51dfd1 100644 --- a/drivers/net/wireless/ath/wil6210/cfg80211.c +++ b/drivers/net/wireless/ath/wil6210/cfg80211.c | |||
@@ -314,7 +314,8 @@ int wil_cid_fill_sinfo(struct wil6210_vif *vif, int cid, | |||
314 | memset(&reply, 0, sizeof(reply)); | 314 | memset(&reply, 0, sizeof(reply)); |
315 | 315 | ||
316 | rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid, &cmd, sizeof(cmd), | 316 | rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid, &cmd, sizeof(cmd), |
317 | WMI_NOTIFY_REQ_DONE_EVENTID, &reply, sizeof(reply), 20); | 317 | WMI_NOTIFY_REQ_DONE_EVENTID, &reply, sizeof(reply), |
318 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
318 | if (rc) | 319 | if (rc) |
319 | return rc; | 320 | return rc; |
320 | 321 | ||
diff --git a/drivers/net/wireless/ath/wil6210/debugfs.c b/drivers/net/wireless/ath/wil6210/debugfs.c index 1dcdf8d0c995..74834131cf7c 100644 --- a/drivers/net/wireless/ath/wil6210/debugfs.c +++ b/drivers/net/wireless/ath/wil6210/debugfs.c | |||
@@ -1298,7 +1298,7 @@ static int bf_show(struct seq_file *s, void *data) | |||
1298 | rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid, | 1298 | rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid, |
1299 | &cmd, sizeof(cmd), | 1299 | &cmd, sizeof(cmd), |
1300 | WMI_NOTIFY_REQ_DONE_EVENTID, &reply, | 1300 | WMI_NOTIFY_REQ_DONE_EVENTID, &reply, |
1301 | sizeof(reply), 20); | 1301 | sizeof(reply), WIL_WMI_CALL_GENERAL_TO_MS); |
1302 | /* if reply is all-0, ignore this CID */ | 1302 | /* if reply is all-0, ignore this CID */ |
1303 | if (rc || is_all_zeros(&reply.evt, sizeof(reply.evt))) | 1303 | if (rc || is_all_zeros(&reply.evt, sizeof(reply.evt))) |
1304 | continue; | 1304 | continue; |
diff --git a/drivers/net/wireless/ath/wil6210/txrx.c b/drivers/net/wireless/ath/wil6210/txrx.c index 8790e5effa28..eae00aafaa88 100644 --- a/drivers/net/wireless/ath/wil6210/txrx.c +++ b/drivers/net/wireless/ath/wil6210/txrx.c | |||
@@ -1037,7 +1037,8 @@ static int wil_vring_init_tx(struct wil6210_vif *vif, int id, int size, | |||
1037 | if (!vif->privacy) | 1037 | if (!vif->privacy) |
1038 | txdata->dot1x_open = true; | 1038 | txdata->dot1x_open = true; |
1039 | rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd), | 1039 | rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd), |
1040 | WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), 100); | 1040 | WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), |
1041 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
1041 | if (rc) | 1042 | if (rc) |
1042 | goto out_free; | 1043 | goto out_free; |
1043 | 1044 | ||
@@ -1125,7 +1126,8 @@ static int wil_tx_vring_modify(struct wil6210_vif *vif, int ring_id, int cid, | |||
1125 | cmd.vring_cfg.tx_sw_ring.ring_mem_base = cpu_to_le64(vring->pa); | 1126 | cmd.vring_cfg.tx_sw_ring.ring_mem_base = cpu_to_le64(vring->pa); |
1126 | 1127 | ||
1127 | rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd), | 1128 | rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd), |
1128 | WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), 100); | 1129 | WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), |
1130 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
1129 | if (rc) | 1131 | if (rc) |
1130 | goto fail; | 1132 | goto fail; |
1131 | 1133 | ||
@@ -1205,7 +1207,8 @@ int wil_vring_init_bcast(struct wil6210_vif *vif, int id, int size) | |||
1205 | txdata->dot1x_open = true; | 1207 | txdata->dot1x_open = true; |
1206 | rc = wmi_call(wil, WMI_BCAST_VRING_CFG_CMDID, vif->mid, | 1208 | rc = wmi_call(wil, WMI_BCAST_VRING_CFG_CMDID, vif->mid, |
1207 | &cmd, sizeof(cmd), | 1209 | &cmd, sizeof(cmd), |
1208 | WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), 100); | 1210 | WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), |
1211 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
1209 | if (rc) | 1212 | if (rc) |
1210 | goto out_free; | 1213 | goto out_free; |
1211 | 1214 | ||
diff --git a/drivers/net/wireless/ath/wil6210/wil6210.h b/drivers/net/wireless/ath/wil6210/wil6210.h index 038329bfe44b..6f456b311a39 100644 --- a/drivers/net/wireless/ath/wil6210/wil6210.h +++ b/drivers/net/wireless/ath/wil6210/wil6210.h | |||
@@ -99,6 +99,7 @@ static inline u32 WIL_GET_BITS(u32 x, int b0, int b1) | |||
99 | #define WIL_MAX_AMPDU_SIZE_128 (128 * 1024) /* FW/HW limit */ | 99 | #define WIL_MAX_AMPDU_SIZE_128 (128 * 1024) /* FW/HW limit */ |
100 | #define WIL_MAX_AGG_WSIZE_64 (64) /* FW/HW limit */ | 100 | #define WIL_MAX_AGG_WSIZE_64 (64) /* FW/HW limit */ |
101 | #define WIL6210_MAX_STATUS_RINGS (8) | 101 | #define WIL6210_MAX_STATUS_RINGS (8) |
102 | #define WIL_WMI_CALL_GENERAL_TO_MS 100 | ||
102 | 103 | ||
103 | /* Hardware offload block adds the following: | 104 | /* Hardware offload block adds the following: |
104 | * 26 bytes - 3-address QoS data header | 105 | * 26 bytes - 3-address QoS data header |
diff --git a/drivers/net/wireless/ath/wil6210/wmi.c b/drivers/net/wireless/ath/wil6210/wmi.c index 5d7eb521281c..542ef15f2e66 100644 --- a/drivers/net/wireless/ath/wil6210/wmi.c +++ b/drivers/net/wireless/ath/wil6210/wmi.c | |||
@@ -40,7 +40,6 @@ MODULE_PARM_DESC(led_id, | |||
40 | " 60G device led enablement. Set the led ID (0-2) to enable"); | 40 | " 60G device led enablement. Set the led ID (0-2) to enable"); |
41 | 41 | ||
42 | #define WIL_WAIT_FOR_SUSPEND_RESUME_COMP 200 | 42 | #define WIL_WAIT_FOR_SUSPEND_RESUME_COMP 200 |
43 | #define WIL_WMI_CALL_GENERAL_TO_MS 100 | ||
44 | #define WIL_WMI_PCP_STOP_TO_MS 5000 | 43 | #define WIL_WMI_PCP_STOP_TO_MS 5000 |
45 | 44 | ||
46 | /** | 45 | /** |
@@ -2059,7 +2058,8 @@ int wmi_echo(struct wil6210_priv *wil) | |||
2059 | }; | 2058 | }; |
2060 | 2059 | ||
2061 | return wmi_call(wil, WMI_ECHO_CMDID, vif->mid, &cmd, sizeof(cmd), | 2060 | return wmi_call(wil, WMI_ECHO_CMDID, vif->mid, &cmd, sizeof(cmd), |
2062 | WMI_ECHO_RSP_EVENTID, NULL, 0, 50); | 2061 | WMI_ECHO_RSP_EVENTID, NULL, 0, |
2062 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
2063 | } | 2063 | } |
2064 | 2064 | ||
2065 | int wmi_set_mac_address(struct wil6210_priv *wil, void *addr) | 2065 | int wmi_set_mac_address(struct wil6210_priv *wil, void *addr) |
@@ -2118,7 +2118,7 @@ int wmi_led_cfg(struct wil6210_priv *wil, bool enable) | |||
2118 | 2118 | ||
2119 | rc = wmi_call(wil, WMI_LED_CFG_CMDID, vif->mid, &cmd, sizeof(cmd), | 2119 | rc = wmi_call(wil, WMI_LED_CFG_CMDID, vif->mid, &cmd, sizeof(cmd), |
2120 | WMI_LED_CFG_DONE_EVENTID, &reply, sizeof(reply), | 2120 | WMI_LED_CFG_DONE_EVENTID, &reply, sizeof(reply), |
2121 | 100); | 2121 | WIL_WMI_CALL_GENERAL_TO_MS); |
2122 | if (rc) | 2122 | if (rc) |
2123 | goto out; | 2123 | goto out; |
2124 | 2124 | ||
@@ -2267,7 +2267,8 @@ int wmi_get_ssid(struct wil6210_vif *vif, u8 *ssid_len, void *ssid) | |||
2267 | memset(&reply, 0, sizeof(reply)); | 2267 | memset(&reply, 0, sizeof(reply)); |
2268 | 2268 | ||
2269 | rc = wmi_call(wil, WMI_GET_SSID_CMDID, vif->mid, NULL, 0, | 2269 | rc = wmi_call(wil, WMI_GET_SSID_CMDID, vif->mid, NULL, 0, |
2270 | WMI_GET_SSID_EVENTID, &reply, sizeof(reply), 20); | 2270 | WMI_GET_SSID_EVENTID, &reply, sizeof(reply), |
2271 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
2271 | if (rc) | 2272 | if (rc) |
2272 | return rc; | 2273 | return rc; |
2273 | 2274 | ||
@@ -2304,7 +2305,8 @@ int wmi_get_channel(struct wil6210_priv *wil, int *channel) | |||
2304 | memset(&reply, 0, sizeof(reply)); | 2305 | memset(&reply, 0, sizeof(reply)); |
2305 | 2306 | ||
2306 | rc = wmi_call(wil, WMI_GET_PCP_CHANNEL_CMDID, vif->mid, NULL, 0, | 2307 | rc = wmi_call(wil, WMI_GET_PCP_CHANNEL_CMDID, vif->mid, NULL, 0, |
2307 | WMI_GET_PCP_CHANNEL_EVENTID, &reply, sizeof(reply), 20); | 2308 | WMI_GET_PCP_CHANNEL_EVENTID, &reply, sizeof(reply), |
2309 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
2308 | if (rc) | 2310 | if (rc) |
2309 | return rc; | 2311 | return rc; |
2310 | 2312 | ||
@@ -2400,7 +2402,8 @@ int wmi_stop_discovery(struct wil6210_vif *vif) | |||
2400 | wil_dbg_wmi(wil, "sending WMI_DISCOVERY_STOP_CMDID\n"); | 2402 | wil_dbg_wmi(wil, "sending WMI_DISCOVERY_STOP_CMDID\n"); |
2401 | 2403 | ||
2402 | rc = wmi_call(wil, WMI_DISCOVERY_STOP_CMDID, vif->mid, NULL, 0, | 2404 | rc = wmi_call(wil, WMI_DISCOVERY_STOP_CMDID, vif->mid, NULL, 0, |
2403 | WMI_DISCOVERY_STOPPED_EVENTID, NULL, 0, 100); | 2405 | WMI_DISCOVERY_STOPPED_EVENTID, NULL, 0, |
2406 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
2404 | 2407 | ||
2405 | if (rc) | 2408 | if (rc) |
2406 | wil_err(wil, "Failed to stop discovery\n"); | 2409 | wil_err(wil, "Failed to stop discovery\n"); |
@@ -2546,12 +2549,14 @@ int wmi_rxon(struct wil6210_priv *wil, bool on) | |||
2546 | if (on) { | 2549 | if (on) { |
2547 | rc = wmi_call(wil, WMI_START_LISTEN_CMDID, vif->mid, NULL, 0, | 2550 | rc = wmi_call(wil, WMI_START_LISTEN_CMDID, vif->mid, NULL, 0, |
2548 | WMI_LISTEN_STARTED_EVENTID, | 2551 | WMI_LISTEN_STARTED_EVENTID, |
2549 | &reply, sizeof(reply), 100); | 2552 | &reply, sizeof(reply), |
2553 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
2550 | if ((rc == 0) && (reply.evt.status != WMI_FW_STATUS_SUCCESS)) | 2554 | if ((rc == 0) && (reply.evt.status != WMI_FW_STATUS_SUCCESS)) |
2551 | rc = -EINVAL; | 2555 | rc = -EINVAL; |
2552 | } else { | 2556 | } else { |
2553 | rc = wmi_call(wil, WMI_DISCOVERY_STOP_CMDID, vif->mid, NULL, 0, | 2557 | rc = wmi_call(wil, WMI_DISCOVERY_STOP_CMDID, vif->mid, NULL, 0, |
2554 | WMI_DISCOVERY_STOPPED_EVENTID, NULL, 0, 20); | 2558 | WMI_DISCOVERY_STOPPED_EVENTID, NULL, 0, |
2559 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
2555 | } | 2560 | } |
2556 | 2561 | ||
2557 | return rc; | 2562 | return rc; |
@@ -2640,7 +2645,8 @@ int wmi_get_temperature(struct wil6210_priv *wil, u32 *t_bb, u32 *t_rf) | |||
2640 | memset(&reply, 0, sizeof(reply)); | 2645 | memset(&reply, 0, sizeof(reply)); |
2641 | 2646 | ||
2642 | rc = wmi_call(wil, WMI_TEMP_SENSE_CMDID, vif->mid, &cmd, sizeof(cmd), | 2647 | rc = wmi_call(wil, WMI_TEMP_SENSE_CMDID, vif->mid, &cmd, sizeof(cmd), |
2643 | WMI_TEMP_SENSE_DONE_EVENTID, &reply, sizeof(reply), 100); | 2648 | WMI_TEMP_SENSE_DONE_EVENTID, &reply, sizeof(reply), |
2649 | WIL_WMI_CALL_GENERAL_TO_MS); | ||
2644 | if (rc) | 2650 | if (rc) |
2645 | return rc; | 2651 | return rc; |
2646 | 2652 | ||
@@ -2822,7 +2828,7 @@ int wmi_addba_rx_resp(struct wil6210_priv *wil, | |||
2822 | 2828 | ||
2823 | rc = wmi_call(wil, WMI_RCP_ADDBA_RESP_CMDID, mid, &cmd, sizeof(cmd), | 2829 | rc = wmi_call(wil, WMI_RCP_ADDBA_RESP_CMDID, mid, &cmd, sizeof(cmd), |
2824 | WMI_RCP_ADDBA_RESP_SENT_EVENTID, &reply, sizeof(reply), | 2830 | WMI_RCP_ADDBA_RESP_SENT_EVENTID, &reply, sizeof(reply), |
2825 | 100); | 2831 | WIL_WMI_CALL_GENERAL_TO_MS); |
2826 | if (rc) | 2832 | if (rc) |
2827 | return rc; | 2833 | return rc; |
2828 | 2834 | ||
@@ -2904,7 +2910,7 @@ int wmi_ps_dev_profile_cfg(struct wil6210_priv *wil, | |||
2904 | rc = wmi_call(wil, WMI_PS_DEV_PROFILE_CFG_CMDID, vif->mid, | 2910 | rc = wmi_call(wil, WMI_PS_DEV_PROFILE_CFG_CMDID, vif->mid, |
2905 | &cmd, sizeof(cmd), | 2911 | &cmd, sizeof(cmd), |
2906 | WMI_PS_DEV_PROFILE_CFG_EVENTID, &reply, sizeof(reply), | 2912 | WMI_PS_DEV_PROFILE_CFG_EVENTID, &reply, sizeof(reply), |
2907 | 100); | 2913 | WIL_WMI_CALL_GENERAL_TO_MS); |
2908 | if (rc) | 2914 | if (rc) |
2909 | return rc; | 2915 | return rc; |
2910 | 2916 | ||
@@ -2941,7 +2947,7 @@ int wmi_set_mgmt_retry(struct wil6210_priv *wil, u8 retry_short) | |||
2941 | rc = wmi_call(wil, WMI_SET_MGMT_RETRY_LIMIT_CMDID, vif->mid, | 2947 | rc = wmi_call(wil, WMI_SET_MGMT_RETRY_LIMIT_CMDID, vif->mid, |
2942 | &cmd, sizeof(cmd), | 2948 | &cmd, sizeof(cmd), |
2943 | WMI_SET_MGMT_RETRY_LIMIT_EVENTID, &reply, sizeof(reply), | 2949 | WMI_SET_MGMT_RETRY_LIMIT_EVENTID, &reply, sizeof(reply), |
2944 | 100); | 2950 | WIL_WMI_CALL_GENERAL_TO_MS); |
2945 | if (rc) | 2951 | if (rc) |
2946 | return rc; | 2952 | return rc; |
2947 | 2953 | ||
@@ -2971,7 +2977,7 @@ int wmi_get_mgmt_retry(struct wil6210_priv *wil, u8 *retry_short) | |||
2971 | memset(&reply, 0, sizeof(reply)); | 2977 | memset(&reply, 0, sizeof(reply)); |
2972 | rc = wmi_call(wil, WMI_GET_MGMT_RETRY_LIMIT_CMDID, vif->mid, NULL, 0, | 2978 | rc = wmi_call(wil, WMI_GET_MGMT_RETRY_LIMIT_CMDID, vif->mid, NULL, 0, |
2973 | WMI_GET_MGMT_RETRY_LIMIT_EVENTID, &reply, sizeof(reply), | 2979 | WMI_GET_MGMT_RETRY_LIMIT_EVENTID, &reply, sizeof(reply), |
2974 | 100); | 2980 | WIL_WMI_CALL_GENERAL_TO_MS); |
2975 | if (rc) | 2981 | if (rc) |
2976 | return rc; | 2982 | return rc; |
2977 | 2983 | ||