Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a96b024 authored by Ahmad Masri's avatar Ahmad Masri Committed by Maya Erez
Browse files

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.

Change-Id: I1054fba4c919578bb5d499110f77d6e3b9f4894f
Signed-off-by: default avatarAhmad Masri <amasri@codeaurora.org>
Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
Git-commit: 2a32c20b76af39185a5bf8fa617b94295660893f
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git


Signed-off-by: default avatarMaya Erez <merez@codeaurora.org>
parent b81297fb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -580,7 +580,8 @@ int wil_cid_fill_sinfo(struct wil6210_vif *vif, int cid,
	memset(&reply, 0, sizeof(reply));

	rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid, &cmd, sizeof(cmd),
		      WMI_NOTIFY_REQ_DONE_EVENTID, &reply, sizeof(reply), 20);
		      WMI_NOTIFY_REQ_DONE_EVENTID, &reply, sizeof(reply),
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		return rc;

+1 −1
Original line number Diff line number Diff line
@@ -1402,7 +1402,7 @@ static int wil_bf_debugfs_show(struct seq_file *s, void *data)
		rc = wmi_call(wil, WMI_NOTIFY_REQ_CMDID, vif->mid,
			      &cmd, sizeof(cmd),
			      WMI_NOTIFY_REQ_DONE_EVENTID, &reply,
			      sizeof(reply), 20);
			      sizeof(reply), WIL_WMI_CALL_GENERAL_TO_MS);
		/* if reply is all-0, ignore this CID */
		if (rc || is_all_zeros(&reply.evt, sizeof(reply.evt)))
			continue;
+6 −3
Original line number Diff line number Diff line
@@ -1064,7 +1064,8 @@ static int wil_vring_init_tx(struct wil6210_vif *vif, int id, int size,
	if (!vif->privacy)
		txdata->dot1x_open = true;
	rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
		      WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), 100);
		      WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply),
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		goto out_free;

@@ -1152,7 +1153,8 @@ static int wil_tx_vring_modify(struct wil6210_vif *vif, int ring_id, int cid,
	cmd.vring_cfg.tx_sw_ring.ring_mem_base = cpu_to_le64(vring->pa);

	rc = wmi_call(wil, WMI_VRING_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
		      WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), 100);
		      WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply),
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		goto fail;

@@ -1232,7 +1234,8 @@ int wil_vring_init_bcast(struct wil6210_vif *vif, int id, int size)
		txdata->dot1x_open = true;
	rc = wmi_call(wil, WMI_BCAST_VRING_CFG_CMDID, vif->mid,
		      &cmd, sizeof(cmd),
		      WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply), 100);
		      WMI_VRING_CFG_DONE_EVENTID, &reply, sizeof(reply),
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		goto out_free;

+1 −0
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ static inline u32 WIL_GET_BITS(u32 x, int b0, int b1)
#define WIL_MAX_AMPDU_SIZE_128	(128 * 1024) /* FW/HW limit */
#define WIL_MAX_AGG_WSIZE_64	(64) /* FW/HW limit */
#define WIL6210_MAX_STATUS_RINGS	(8)
#define WIL_WMI_CALL_GENERAL_TO_MS 100

/* Hardware offload block adds the following:
 * 26 bytes - 3-address QoS data header
+19 −13
Original line number Diff line number Diff line
@@ -31,7 +31,6 @@ MODULE_PARM_DESC(led_id,
		 " 60G device led enablement. Set the led ID (0-2) to enable");

#define WIL_WAIT_FOR_SUSPEND_RESUME_COMP 200
#define WIL_WMI_CALL_GENERAL_TO_MS 100
#define WIL_WMI_PCP_STOP_TO_MS 5000
#define WIL_WMI_SPI_SLAVE_RESET_TO_MS 500

@@ -2136,7 +2135,8 @@ int wmi_echo(struct wil6210_priv *wil)
	};

	return wmi_call(wil, WMI_ECHO_CMDID, vif->mid, &cmd, sizeof(cmd),
			WMI_ECHO_RSP_EVENTID, NULL, 0, 50);
			WMI_ECHO_RSP_EVENTID, NULL, 0,
			WIL_WMI_CALL_GENERAL_TO_MS);
}

int wmi_set_mac_address(struct wil6210_priv *wil, void *addr)
@@ -2195,7 +2195,7 @@ int wmi_led_cfg(struct wil6210_priv *wil, bool enable)

	rc = wmi_call(wil, WMI_LED_CFG_CMDID, vif->mid, &cmd, sizeof(cmd),
		      WMI_LED_CFG_DONE_EVENTID, &reply, sizeof(reply),
		      100);
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		goto out;

@@ -2357,7 +2357,8 @@ int wmi_get_ssid(struct wil6210_vif *vif, u8 *ssid_len, void *ssid)
	memset(&reply, 0, sizeof(reply));

	rc = wmi_call(wil, WMI_GET_SSID_CMDID, vif->mid, NULL, 0,
		      WMI_GET_SSID_EVENTID, &reply, sizeof(reply), 20);
		      WMI_GET_SSID_EVENTID, &reply, sizeof(reply),
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		return rc;

@@ -2394,7 +2395,8 @@ int wmi_get_channel(struct wil6210_priv *wil, int *channel)
	memset(&reply, 0, sizeof(reply));

	rc = wmi_call(wil, WMI_GET_PCP_CHANNEL_CMDID, vif->mid, NULL, 0,
		      WMI_GET_PCP_CHANNEL_EVENTID, &reply, sizeof(reply), 20);
		      WMI_GET_PCP_CHANNEL_EVENTID, &reply, sizeof(reply),
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		return rc;

@@ -2490,7 +2492,8 @@ int wmi_stop_discovery(struct wil6210_vif *vif)
	wil_dbg_wmi(wil, "sending WMI_DISCOVERY_STOP_CMDID\n");

	rc = wmi_call(wil, WMI_DISCOVERY_STOP_CMDID, vif->mid, NULL, 0,
		      WMI_DISCOVERY_STOPPED_EVENTID, NULL, 0, 100);
		      WMI_DISCOVERY_STOPPED_EVENTID, NULL, 0,
		      WIL_WMI_CALL_GENERAL_TO_MS);

	if (rc)
		wil_err(wil, "Failed to stop discovery\n");
@@ -2636,12 +2639,14 @@ int wmi_rxon(struct wil6210_priv *wil, bool on)
	if (on) {
		rc = wmi_call(wil, WMI_START_LISTEN_CMDID, vif->mid, NULL, 0,
			      WMI_LISTEN_STARTED_EVENTID,
			      &reply, sizeof(reply), 100);
			      &reply, sizeof(reply),
			      WIL_WMI_CALL_GENERAL_TO_MS);
		if ((rc == 0) && (reply.evt.status != WMI_FW_STATUS_SUCCESS))
			rc = -EINVAL;
	} else {
		rc = wmi_call(wil, WMI_DISCOVERY_STOP_CMDID, vif->mid, NULL, 0,
			      WMI_DISCOVERY_STOPPED_EVENTID, NULL, 0, 20);
			      WMI_DISCOVERY_STOPPED_EVENTID, NULL, 0,
			      WIL_WMI_CALL_GENERAL_TO_MS);
	}

	return rc;
@@ -2730,7 +2735,8 @@ int wmi_get_temperature(struct wil6210_priv *wil, u32 *t_bb, u32 *t_rf)
	memset(&reply, 0, sizeof(reply));

	rc = wmi_call(wil, WMI_TEMP_SENSE_CMDID, vif->mid, &cmd, sizeof(cmd),
		      WMI_TEMP_SENSE_DONE_EVENTID, &reply, sizeof(reply), 100);
		      WMI_TEMP_SENSE_DONE_EVENTID, &reply, sizeof(reply),
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		return rc;

@@ -2912,7 +2918,7 @@ int wmi_addba_rx_resp(struct wil6210_priv *wil,

	rc = wmi_call(wil, WMI_RCP_ADDBA_RESP_CMDID, mid, &cmd, sizeof(cmd),
		      WMI_RCP_ADDBA_RESP_SENT_EVENTID, &reply, sizeof(reply),
		      100);
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		return rc;

@@ -2994,7 +3000,7 @@ int wmi_ps_dev_profile_cfg(struct wil6210_priv *wil,
	rc = wmi_call(wil, WMI_PS_DEV_PROFILE_CFG_CMDID, vif->mid,
		      &cmd, sizeof(cmd),
		      WMI_PS_DEV_PROFILE_CFG_EVENTID, &reply, sizeof(reply),
		      100);
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		return rc;

@@ -3031,7 +3037,7 @@ int wmi_set_mgmt_retry(struct wil6210_priv *wil, u8 retry_short)
	rc = wmi_call(wil, WMI_SET_MGMT_RETRY_LIMIT_CMDID, vif->mid,
		      &cmd, sizeof(cmd),
		      WMI_SET_MGMT_RETRY_LIMIT_EVENTID, &reply, sizeof(reply),
		      100);
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		return rc;

@@ -3061,7 +3067,7 @@ int wmi_get_mgmt_retry(struct wil6210_priv *wil, u8 *retry_short)
	memset(&reply, 0, sizeof(reply));
	rc = wmi_call(wil, WMI_GET_MGMT_RETRY_LIMIT_CMDID, vif->mid, NULL, 0,
		      WMI_GET_MGMT_RETRY_LIMIT_EVENTID, &reply, sizeof(reply),
		      100);
		      WIL_WMI_CALL_GENERAL_TO_MS);
	if (rc)
		return rc;