Commit a9501019 authored by Kalle Valo's avatar Kalle Valo
Browse files
ath.git patches for v6.2. Major changes:

ath11k

* support configuring channel dwell time during scan
parents 637639cb f3ca72b0
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -241,6 +241,11 @@ static void ar5523_cmd_tx_cb(struct urb *urb)
	}
}

static void ar5523_cancel_tx_cmd(struct ar5523 *ar)
{
	usb_kill_urb(ar->tx_cmd.urb_tx);
}

static int ar5523_cmd(struct ar5523 *ar, u32 code, const void *idata,
		      int ilen, void *odata, int olen, int flags)
{
@@ -280,6 +285,7 @@ static int ar5523_cmd(struct ar5523 *ar, u32 code, const void *idata,
	}

	if (!wait_for_completion_timeout(&cmd->done, 2 * HZ)) {
		ar5523_cancel_tx_cmd(ar);
		cmd->odata = NULL;
		ar5523_err(ar, "timeout waiting for command %02x reply\n",
			   code);
+16 −0
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA988X_HW_2_0_VERSION,
@@ -138,6 +139,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA9887_HW_1_0_VERSION,
@@ -178,6 +180,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA6174_HW_3_2_VERSION,
@@ -213,6 +216,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = true,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA6174_HW_2_1_VERSION,
@@ -252,6 +256,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA6174_HW_2_1_VERSION,
@@ -291,6 +296,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA6174_HW_3_0_VERSION,
@@ -330,6 +336,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA6174_HW_3_2_VERSION,
@@ -373,6 +380,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = true,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA99X0_HW_2_0_DEV_VERSION,
@@ -418,6 +426,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA9984_HW_1_0_DEV_VERSION,
@@ -470,6 +479,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA9888_HW_2_0_DEV_VERSION,
@@ -519,6 +529,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA9377_HW_1_0_DEV_VERSION,
@@ -558,6 +569,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA9377_HW_1_1_DEV_VERSION,
@@ -599,6 +611,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA9377_HW_1_1_DEV_VERSION,
@@ -631,6 +644,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = QCA4019_HW_1_0_DEV_VERSION,
@@ -677,6 +691,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = false,
		.hw_restart_disconnect = false,
		.use_fw_tx_credits = true,
		.delay_unmap_buffer = false,
	},
	{
		.id = WCN3990_HW_1_0_DEV_VERSION,
@@ -709,6 +724,7 @@ static const struct ath10k_hw_params ath10k_hw_params_list[] = {
		.dynamic_sar_support = true,
		.hw_restart_disconnect = true,
		.use_fw_tx_credits = false,
		.delay_unmap_buffer = true,
	},
};

+9 −0
Original line number Diff line number Diff line
@@ -56,6 +56,15 @@ void ath10k_htc_notify_tx_completion(struct ath10k_htc_ep *ep,
	ath10k_dbg(ar, ATH10K_DBG_HTC, "%s: ep %d skb %pK\n", __func__,
		   ep->eid, skb);

	/* A corner case where the copy completion is reaching to host but still
	 * copy engine is processing it due to which host unmaps corresponding
	 * memory and causes SMMU fault, hence as workaround adding delay
	 * the unmapping memory to avoid SMMU faults.
	 */
	if (ar->hw_params.delay_unmap_buffer &&
	    ep->ul_pipe_id == 3)
		mdelay(2);

	hdr = (struct ath10k_htc_hdr *)skb->data;
	ath10k_htc_restore_tx_skb(ep->htc, skb);

+4 −2
Original line number Diff line number Diff line
@@ -1108,8 +1108,10 @@ struct htt_rx_in_ord_ind {
	u8 reserved;
	__le16 msdu_count;
	union {
		struct htt_rx_in_ord_msdu_desc msdu_descs32[0];
		struct htt_rx_in_ord_msdu_desc_ext msdu_descs64[0];
		DECLARE_FLEX_ARRAY(struct htt_rx_in_ord_msdu_desc,
				   msdu_descs32);
		DECLARE_FLEX_ARRAY(struct htt_rx_in_ord_msdu_desc_ext,
				   msdu_descs64);
	} __packed;
} __packed;

+2 −0
Original line number Diff line number Diff line
@@ -637,6 +637,8 @@ struct ath10k_hw_params {
	bool hw_restart_disconnect;

	bool use_fw_tx_credits;

	bool delay_unmap_buffer;
};

struct htt_resp;
Loading