wifi: rtl8xxxu: fix txdw7 assignment of TX DESC v3
authorPing-Ke Shih <pkshih@realtek.com>
Thu, 19 Jan 2023 11:31:46 +0000 (19:31 +0800)
committerKalle Valo <kvalo@kernel.org>
Mon, 13 Feb 2023 17:25:01 +0000 (19:25 +0200)
Type of txdw7 is __le16, so assign __le32 is wrong. Also, the
TXDESC_ANTENNA_SELECT_C is defined for __le32, so shift 16 bits to fit
the value. Compile test only.

sparse warnings: (new ones prefixed by >>)
>> rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |=
>> rtl8xxxu_core.c:5198:24: sparse:    left side has type restricted __le16
>> rtl8xxxu_core.c:5198:24: sparse:    right side has type restricted __le32

Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Tested-by: Bitterblue Smith <rtl8821cerfe2@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230119113146.9640-1-pkshih@realtek.com
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c

index b25c7ef..620a5cc 100644 (file)
@@ -5250,7 +5250,7 @@ rtl8xxxu_fill_txdesc_v3(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
 
        tx_desc->txdw2 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_A |
                                      TXDESC_ANTENNA_SELECT_B);
-       tx_desc->txdw7 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_C);
+       tx_desc->txdw7 |= cpu_to_le16(TXDESC_ANTENNA_SELECT_C >> 16);
 }
 
 static void rtl8xxxu_tx(struct ieee80211_hw *hw,