Commit e7df8567 authored by Johannes Berg's avatar Johannes Berg
Browse files

Merge tag 'ath-current-20260113' of...

Merge tag 'ath-current-20260113' of git://git.kernel.org/pub/scm/linux/kernel/git/ath/ath into wireless

Jeff Johnson says:
==================
ath.git update for v6.19-rc6

A collection of small bug fixes in ath10k and ath12k.
==================

Link: https://patch.msgid.link/98386125-c0bb-495e-b2ba-2765aaed19d8@oss.qualcomm.com


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parents 2120f3a3 31707572
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -1727,8 +1727,8 @@ static void _ath10k_ce_free_pipe(struct ath10k *ar, int ce_id)
				  (ce_state->src_ring->nentries *
				   sizeof(struct ce_desc) +
				   CE_DESC_RING_ALIGN),
				  ce_state->src_ring->base_addr_owner_space,
				  ce_state->src_ring->base_addr_ce_space);
				  ce_state->src_ring->base_addr_owner_space_unaligned,
				  ce_state->src_ring->base_addr_ce_space_unaligned);
		kfree(ce_state->src_ring);
	}

@@ -1737,8 +1737,8 @@ static void _ath10k_ce_free_pipe(struct ath10k *ar, int ce_id)
				  (ce_state->dest_ring->nentries *
				   sizeof(struct ce_desc) +
				   CE_DESC_RING_ALIGN),
				  ce_state->dest_ring->base_addr_owner_space,
				  ce_state->dest_ring->base_addr_ce_space);
				  ce_state->dest_ring->base_addr_owner_space_unaligned,
				  ce_state->dest_ring->base_addr_ce_space_unaligned);
		kfree(ce_state->dest_ring);
	}

@@ -1758,8 +1758,8 @@ static void _ath10k_ce_free_pipe_64(struct ath10k *ar, int ce_id)
				  (ce_state->src_ring->nentries *
				   sizeof(struct ce_desc_64) +
				   CE_DESC_RING_ALIGN),
				  ce_state->src_ring->base_addr_owner_space,
				  ce_state->src_ring->base_addr_ce_space);
				  ce_state->src_ring->base_addr_owner_space_unaligned,
				  ce_state->src_ring->base_addr_ce_space_unaligned);
		kfree(ce_state->src_ring);
	}

@@ -1768,8 +1768,8 @@ static void _ath10k_ce_free_pipe_64(struct ath10k *ar, int ce_id)
				  (ce_state->dest_ring->nentries *
				   sizeof(struct ce_desc_64) +
				   CE_DESC_RING_ALIGN),
				  ce_state->dest_ring->base_addr_owner_space,
				  ce_state->dest_ring->base_addr_ce_space);
				  ce_state->dest_ring->base_addr_owner_space_unaligned,
				  ce_state->dest_ring->base_addr_ce_space_unaligned);
		kfree(ce_state->dest_ring);
	}

+6 −6
Original line number Diff line number Diff line
@@ -984,8 +984,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
			dma_free_coherent(ab->dev,
					  pipe->src_ring->nentries * desc_sz +
					  CE_DESC_RING_ALIGN,
					  pipe->src_ring->base_addr_owner_space,
					  pipe->src_ring->base_addr_ce_space);
					  pipe->src_ring->base_addr_owner_space_unaligned,
					  pipe->src_ring->base_addr_ce_space_unaligned);
			kfree(pipe->src_ring);
			pipe->src_ring = NULL;
		}
@@ -995,8 +995,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
			dma_free_coherent(ab->dev,
					  pipe->dest_ring->nentries * desc_sz +
					  CE_DESC_RING_ALIGN,
					  pipe->dest_ring->base_addr_owner_space,
					  pipe->dest_ring->base_addr_ce_space);
					  pipe->dest_ring->base_addr_owner_space_unaligned,
					  pipe->dest_ring->base_addr_ce_space_unaligned);
			kfree(pipe->dest_ring);
			pipe->dest_ring = NULL;
		}
@@ -1007,8 +1007,8 @@ void ath12k_ce_free_pipes(struct ath12k_base *ab)
			dma_free_coherent(ab->dev,
					  pipe->status_ring->nentries * desc_sz +
					  CE_DESC_RING_ALIGN,
					  pipe->status_ring->base_addr_owner_space,
					  pipe->status_ring->base_addr_ce_space);
					  pipe->status_ring->base_addr_owner_space_unaligned,
					  pipe->status_ring->base_addr_ce_space_unaligned);
			kfree(pipe->status_ring);
			pipe->status_ring = NULL;
		}
+10 −6
Original line number Diff line number Diff line
@@ -5495,7 +5495,8 @@ static void ath12k_mac_op_cancel_hw_scan(struct ieee80211_hw *hw,

	for_each_set_bit(link_id, &links_map, ATH12K_NUM_MAX_LINKS) {
		arvif = wiphy_dereference(hw->wiphy, ahvif->link[link_id]);
		if (!arvif || arvif->is_started)
		if (!arvif || !arvif->is_created ||
		    arvif->ar->scan.arvif != arvif)
			continue;

		ar = arvif->ar;
@@ -9172,6 +9173,9 @@ static void ath12k_mac_op_tx(struct ieee80211_hw *hw,
			return;
		}
	} else {
		if (vif->type == NL80211_IFTYPE_P2P_DEVICE)
			link_id = ATH12K_FIRST_SCAN_LINK;
		else
			link_id = 0;
	}

@@ -12142,6 +12146,9 @@ static void ath12k_mac_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *v
	if (drop)
		return;

	for_each_ar(ah, ar, i)
		wiphy_work_flush(hw->wiphy, &ar->wmi_mgmt_tx_work);

	/* vif can be NULL when flush() is considered for hw */
	if (!vif) {
		for_each_ar(ah, ar, i)
@@ -12149,9 +12156,6 @@ static void ath12k_mac_op_flush(struct ieee80211_hw *hw, struct ieee80211_vif *v
		return;
	}

	for_each_ar(ah, ar, i)
		wiphy_work_flush(hw->wiphy, &ar->wmi_mgmt_tx_work);

	ahvif = ath12k_vif_to_ahvif(vif);
	links = ahvif->links_map;
	for_each_set_bit(link_id, &links, IEEE80211_MLD_MAX_NUM_LINKS) {
@@ -13343,7 +13347,7 @@ static int ath12k_mac_op_cancel_remain_on_channel(struct ieee80211_hw *hw,
	ath12k_scan_abort(ar);

	cancel_delayed_work_sync(&ar->scan.timeout);
	wiphy_work_cancel(hw->wiphy, &ar->scan.vdev_clean_wk);
	wiphy_work_flush(hw->wiphy, &ar->scan.vdev_clean_wk);

	return 0;
}
+1 −8
Original line number Diff line number Diff line
@@ -6575,17 +6575,10 @@ static int freq_to_idx(struct ath12k *ar, int freq)
		if (!sband)
			continue;

		for (ch = 0; ch < sband->n_channels; ch++, idx++) {
			if (sband->channels[ch].center_freq <
			    KHZ_TO_MHZ(ar->freq_range.start_freq) ||
			    sband->channels[ch].center_freq >
			    KHZ_TO_MHZ(ar->freq_range.end_freq))
				continue;

		for (ch = 0; ch < sband->n_channels; ch++, idx++)
			if (sband->channels[ch].center_freq == freq)
				goto exit;
	}
	}

exit:
	return idx;