Message ID | 20250219175228.850583-3-ezra@easyb.ch (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Ping-Ke Shih |
Headers | show |
Series | wifi: rtl8xxxu: AP mode fixes (for gen1 devices) | expand |
Context | Check | Description |
---|---|---|
jmberg/tree_selection | success | Not a local patch |
Ezra Buehler <ezra@easyb.ch> wrote: > From: Ezra Buehler <ezra.buehler@husqvarnagroup.com> > > This is needed in order for AP mode to work correctly on gen1 devices > like the RTL8192CU. > > For more information, see the corresponding change for gen2 devices, > commit 9aa45598d054 ("wifi: rtl8xxxu: Put the macid in txdesc"). > > Signed-off-by: Ezra Buehler <ezra.buehler@husqvarnagroup.com> > --- > drivers/net/wireless/realtek/rtl8xxxu/core.c | 2 ++ > drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/drivers/net/wireless/realtek/rtl8xxxu/core.c > b/drivers/net/wireless/realtek/rtl8xxxu/core.c > index cbd9efd22e3f..2fa22d3145a4 100644 > --- a/drivers/net/wireless/realtek/rtl8xxxu/core.c > +++ b/drivers/net/wireless/realtek/rtl8xxxu/core.c > @@ -5302,6 +5302,8 @@ rtl8xxxu_fill_txdesc_v1(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr, > dev_info(dev, "%s: TX rate: %d, pkt size %u\n", > __func__, rate, le16_to_cpu(tx_desc->pkt_size)); > > + tx_desc->txdw1 |= cpu_to_le32(macid & TXDESC32_MACID_MASK); > + tx_desc->txdw1 |= le32_encode_bits(macid, TXDESC32_MACID_MASK);
diff --git a/drivers/net/wireless/realtek/rtl8xxxu/core.c b/drivers/net/wireless/realtek/rtl8xxxu/core.c index cbd9efd22e3f..2fa22d3145a4 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/core.c +++ b/drivers/net/wireless/realtek/rtl8xxxu/core.c @@ -5302,6 +5302,8 @@ rtl8xxxu_fill_txdesc_v1(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr, dev_info(dev, "%s: TX rate: %d, pkt size %u\n", __func__, rate, le16_to_cpu(tx_desc->pkt_size)); + tx_desc->txdw1 |= cpu_to_le32(macid & TXDESC32_MACID_MASK); + seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl)); tx_desc->txdw5 = cpu_to_le32(rate); diff --git a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h index f42463e595cc..dde578f65d69 100644 --- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h @@ -489,6 +489,7 @@ struct rtl8xxxu_txdesc40 { #define TXDESC_PKT_OFFSET_SZ 0 #define TXDESC32_AGG_ENABLE BIT(5) #define TXDESC32_AGG_BREAK BIT(6) +#define TXDESC32_MACID_MASK GENMASK(4, 0) #define TXDESC40_MACID_SHIFT 0 #define TXDESC40_MACID_MASK 0x00f0 #define TXDESC_QUEUE_SHIFT 8