wifi: b43: silence sparse warnings
authorJohannes Berg <johannes.berg@intel.com>
Fri, 23 Feb 2024 10:40:23 +0000 (11:40 +0100)
committerKalle Valo <kvalo@kernel.org>
Wed, 28 Feb 2024 11:37:22 +0000 (13:37 +0200)
sparse complains on this code about casts that lose bits
due to the usage of bitwise not, but really we do want
16 bits only, so clarify that by using masks.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://msgid.link/20240223114023.c64e2d348453.Iccc4ace1116721a044e5f31f40ea7709e72145f3@changeid
drivers/net/wireless/broadcom/b43/phy_ht.c
drivers/net/wireless/broadcom/b43/phy_n.c

index d050971..26a2261 100644 (file)
@@ -322,8 +322,8 @@ static void b43_phy_ht_bphy_reset(struct b43_wldev *dev, bool reset)
                            B43_PHY_B_BBCFG_RSTCCA | B43_PHY_B_BBCFG_RSTRX);
        else
                b43_phy_mask(dev, B43_PHY_B_BBCFG,
-                            (u16)~(B43_PHY_B_BBCFG_RSTCCA |
-                                   B43_PHY_B_BBCFG_RSTRX));
+                            0xffff & ~(B43_PHY_B_BBCFG_RSTCCA |
+                                       B43_PHY_B_BBCFG_RSTRX));
 
        b43_write16(dev, B43_MMIO_PSM_PHY_HDR, tmp);
 }
@@ -551,7 +551,7 @@ static void b43_phy_ht_tx_power_ctl(struct b43_wldev *dev, bool enable)
                                phy_ht->tx_pwr_idx[i] =
                                        b43_phy_read(dev, status_regs[i]);
                }
-               b43_phy_mask(dev, B43_PHY_HT_TXPCTL_CMD_C1, ~en_bits);
+               b43_phy_mask(dev, B43_PHY_HT_TXPCTL_CMD_C1, 0xffff & ~en_bits);
        } else {
                b43_phy_set(dev, B43_PHY_HT_TXPCTL_CMD_C1, en_bits);
 
index 2c0c019..4bb005b 100644 (file)
@@ -6246,7 +6246,7 @@ static void b43_nphy_channel_setup(struct b43_wldev *dev,
                b43_write16(dev, B43_MMIO_PSM_PHY_HDR, tmp16 | 4);
                /* Take BPHY out of the reset */
                b43_phy_mask(dev, B43_PHY_B_BBCFG,
-                            (u16)~(B43_PHY_B_BBCFG_RSTCCA | B43_PHY_B_BBCFG_RSTRX));
+                            ~(B43_PHY_B_BBCFG_RSTCCA | B43_PHY_B_BBCFG_RSTRX) & 0xffff);
                b43_write16(dev, B43_MMIO_PSM_PHY_HDR, tmp16);
        }
 
@@ -6377,7 +6377,7 @@ static int b43_nphy_set_channel(struct b43_wldev *dev,
        } else if (channel_type == NL80211_CHAN_HT40MINUS) {
                b43_phy_mask(dev, B43_NPHY_RXCTL, ~B43_NPHY_RXCTL_BSELU20);
                if (phy->rev >= 7)
-                       b43_phy_mask(dev, 0x310, (u16)~0x8000);
+                       b43_phy_mask(dev, 0x310, 0x7fff);
        }
 
        if (phy->rev >= 19) {