* [PATCH] b43: silense most sparse warnings @ 2010-07-21 15:45 John W. Linville 2010-07-21 16:05 ` Michael Büsch 0 siblings, 1 reply; 5+ messages in thread From: John W. Linville @ 2010-07-21 15:45 UTC (permalink / raw) To: linux-wireless Cc: Michael Buesch, Larry Finger, Gábor Stefanik, Rafał Miłecki, John W. Linville CHECK drivers/net/wireless/b43/main.c drivers/net/wireless/b43/main.c:111:5: warning: symbol 'b43_modparam_pio' was not declared. Should it be static? CHECK drivers/net/wireless/b43/phy_g.c drivers/net/wireless/b43/phy_g.c:975:56: warning: cast truncates bits from constant value (ffff7fff becomes 7fff) CHECK drivers/net/wireless/b43/phy_lp.c drivers/net/wireless/b43/phy_lp.c:2701:6: warning: symbol 'b43_lpphy_op_switch_analog' was not declared. Should it be static? drivers/net/wireless/b43/phy_lp.c:1148:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff) drivers/net/wireless/b43/phy_lp.c:1525:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff) drivers/net/wireless/b43/phy_lp.c:1529:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff) CHECK drivers/net/wireless/b43/wa.c drivers/net/wireless/b43/wa.c:385:60: warning: cast truncates bits from constant value (ffff00ff becomes ff) drivers/net/wireless/b43/wa.c:403:55: warning: cast truncates bits from constant value (ffff00ff becomes ff) drivers/net/wireless/b43/wa.c:405:55: warning: cast truncates bits from constant value (ffff00ff becomes ff) drivers/net/wireless/b43/wa.c:415:71: warning: cast truncates bits from constant value (ffff0fff becomes fff) AFAICT, none of these amount to real bugs. But this reduces warning spam from sparse w/o significantly affecting readability of the code (IMHO). Signed-off-by: John W. Linville <linville@tuxdriver.com> --- drivers/net/wireless/b43/main.c | 2 +- drivers/net/wireless/b43/phy_g.c | 2 +- drivers/net/wireless/b43/phy_lp.c | 8 ++++---- drivers/net/wireless/b43/wa.c | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c index 8e24379..20631ae 100644 --- a/drivers/net/wireless/b43/main.c +++ b/drivers/net/wireless/b43/main.c @@ -108,7 +108,7 @@ int b43_modparam_verbose = B43_VERBOSITY_DEFAULT; module_param_named(verbose, b43_modparam_verbose, int, 0644); MODULE_PARM_DESC(verbose, "Log message verbosity: 0=error, 1=warn, 2=info(default), 3=debug"); -int b43_modparam_pio = B43_PIO_DEFAULT; +static int b43_modparam_pio = B43_PIO_DEFAULT; module_param_named(pio, b43_modparam_pio, int, 0644); MODULE_PARM_DESC(pio, "Use PIO accesses by default: 0=DMA, 1=PIO"); diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c index 29bf34c..0dc33b6 100644 --- a/drivers/net/wireless/b43/phy_g.c +++ b/drivers/net/wireless/b43/phy_g.c @@ -972,7 +972,7 @@ b43_radio_interference_mitigation_enable(struct b43_wldev *dev, int mode) b43_phy_maskset(dev, 0x04A2, 0xFFF0, 0x000B); if (phy->rev >= 3) { - b43_phy_mask(dev, 0x048A, (u16)~0x8000); + b43_phy_mask(dev, 0x048A, 0x7FFF); b43_phy_maskset(dev, 0x0415, 0x8000, 0x36D8); b43_phy_maskset(dev, 0x0416, 0x8000, 0x36D8); b43_phy_maskset(dev, 0x0417, 0xFE00, 0x016D); diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c index c6afe9d..fd50eb1 100644 --- a/drivers/net/wireless/b43/phy_lp.c +++ b/drivers/net/wireless/b43/phy_lp.c @@ -1145,7 +1145,7 @@ static void lpphy_write_tx_pctl_mode_to_hardware(struct b43_wldev *dev) B43_WARN_ON(1); } b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, ctl); + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE & 0xFFFF, ctl); } static void lpphy_set_tx_power_control(struct b43_wldev *dev, @@ -1522,11 +1522,11 @@ static void lpphy_tx_pctl_init_hw(struct b43_wldev *dev) b43_phy_mask(dev, B43_LPPHY_TX_PWR_CTL_DELTAPWR_LIMIT, 0xFF); b43_phy_write(dev, B43_LPPHY_TX_PWR_CTL_DELTAPWR_LIMIT, 0xA); b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE & 0xFFFF, B43_LPPHY_TX_PWR_CTL_CMD_MODE_OFF); b43_phy_mask(dev, B43_LPPHY_TX_PWR_CTL_NNUM, 0xF8FF); b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE & 0xFFFF, B43_LPPHY_TX_PWR_CTL_CMD_MODE_SW); if (dev->phy.rev < 2) { @@ -2698,7 +2698,7 @@ static enum b43_txpwr_result b43_lpphy_op_recalc_txpower(struct b43_wldev *dev, return B43_TXPWR_RES_DONE; } -void b43_lpphy_op_switch_analog(struct b43_wldev *dev, bool on) +static void b43_lpphy_op_switch_analog(struct b43_wldev *dev, bool on) { if (on) { b43_phy_mask(dev, B43_LPPHY_AFE_CTL_OVR, 0xfff8); diff --git a/drivers/net/wireless/b43/wa.c b/drivers/net/wireless/b43/wa.c index 97c7916..9a335da 100644 --- a/drivers/net/wireless/b43/wa.c +++ b/drivers/net/wireless/b43/wa.c @@ -382,7 +382,7 @@ static void b43_wa_altagc(struct b43_wldev *dev) b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 3, 25); } - b43_phy_maskset(dev, B43_PHY_CCKSHIFTBITS_WA, (u16)~0xFF00, 0x5700); + b43_phy_maskset(dev, B43_PHY_CCKSHIFTBITS_WA, 0x00FF, 0x5700); b43_phy_maskset(dev, B43_PHY_OFDM(0x1A), ~0x007F, 0x000F); b43_phy_maskset(dev, B43_PHY_OFDM(0x1A), ~0x3F80, 0x2B80); b43_phy_maskset(dev, B43_PHY_ANTWRSETT, 0xF0FF, 0x0300); @@ -400,9 +400,9 @@ static void b43_wa_altagc(struct b43_wldev *dev) b43_phy_maskset(dev, B43_PHY_OFDM(0x89), ~0x00FF, 0x0020); b43_phy_maskset(dev, B43_PHY_OFDM(0x89), ~0x3F00, 0x0200); b43_phy_maskset(dev, B43_PHY_OFDM(0x82), ~0x00FF, 0x002E); - b43_phy_maskset(dev, B43_PHY_OFDM(0x96), (u16)~0xFF00, 0x1A00); + b43_phy_maskset(dev, B43_PHY_OFDM(0x96), 0x00FF, 0x1A00); b43_phy_maskset(dev, B43_PHY_OFDM(0x81), ~0x00FF, 0x0028); - b43_phy_maskset(dev, B43_PHY_OFDM(0x81), (u16)~0xFF00, 0x2C00); + b43_phy_maskset(dev, B43_PHY_OFDM(0x81), 0x00FF, 0x2C00); if (phy->rev == 1) { b43_phy_write(dev, B43_PHY_PEAK_COUNT, 0x092B); b43_phy_maskset(dev, B43_PHY_OFDM(0x1B), ~0x001E, 0x0002); @@ -412,7 +412,7 @@ static void b43_wa_altagc(struct b43_wldev *dev) b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, ~0x000F, 0x0004); if (phy->rev >= 6) { b43_phy_write(dev, B43_PHY_OFDM(0x22), 0x287A); - b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, (u16)~0xF000, 0x3000); + b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, 0x0FFF, 0x3000); } } b43_phy_maskset(dev, B43_PHY_DIVSRCHIDX, 0x8080, 0x7874); -- 1.7.1.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] b43: silense most sparse warnings 2010-07-21 15:45 [PATCH] b43: silense most sparse warnings John W. Linville @ 2010-07-21 16:05 ` Michael Büsch 2010-07-21 16:38 ` John W. Linville 2010-07-21 16:48 ` Larry Finger 0 siblings, 2 replies; 5+ messages in thread From: Michael Büsch @ 2010-07-21 16:05 UTC (permalink / raw) To: John W. Linville Cc: linux-wireless, Larry Finger, Gábor Stefanik, Rafał Miłecki On 07/21/2010 05:45 PM, John W. Linville wrote: > diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c > index 29bf34c..0dc33b6 100644 > --- a/drivers/net/wireless/b43/phy_g.c > +++ b/drivers/net/wireless/b43/phy_g.c > @@ -972,7 +972,7 @@ b43_radio_interference_mitigation_enable(struct b43_wldev *dev, int mode) > b43_phy_maskset(dev, 0x04A2, 0xFFF0, 0x000B); > > if (phy->rev>= 3) { > - b43_phy_mask(dev, 0x048A, (u16)~0x8000); > + b43_phy_mask(dev, 0x048A, 0x7FFF); This cast was introduced to silense a GCC warning. Do we end up in an infinite loop now? ;) > b43_phy_maskset(dev, 0x0415, 0x8000, 0x36D8); > b43_phy_maskset(dev, 0x0416, 0x8000, 0x36D8); > b43_phy_maskset(dev, 0x0417, 0xFE00, 0x016D); > diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c > index c6afe9d..fd50eb1 100644 > --- a/drivers/net/wireless/b43/phy_lp.c > +++ b/drivers/net/wireless/b43/phy_lp.c > @@ -1145,7 +1145,7 @@ static void lpphy_write_tx_pctl_mode_to_hardware(struct b43_wldev *dev) > B43_WARN_ON(1); > } > b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, > - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, ctl); > + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE& 0xFFFF, ctl); > } > > static void lpphy_set_tx_power_control(struct b43_wldev *dev, > @@ -1522,11 +1522,11 @@ static void lpphy_tx_pctl_init_hw(struct b43_wldev *dev) > b43_phy_mask(dev, B43_LPPHY_TX_PWR_CTL_DELTAPWR_LIMIT, 0xFF); > b43_phy_write(dev, B43_LPPHY_TX_PWR_CTL_DELTAPWR_LIMIT, 0xA); > b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, > - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, > + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE& 0xFFFF, > B43_LPPHY_TX_PWR_CTL_CMD_MODE_OFF); > b43_phy_mask(dev, B43_LPPHY_TX_PWR_CTL_NNUM, 0xF8FF); > b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, > - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, > + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE& 0xFFFF, > B43_LPPHY_TX_PWR_CTL_CMD_MODE_SW); > diff --git a/drivers/net/wireless/b43/wa.c b/drivers/net/wireless/b43/wa.c > index 97c7916..9a335da 100644 > --- a/drivers/net/wireless/b43/wa.c > +++ b/drivers/net/wireless/b43/wa.c > @@ -382,7 +382,7 @@ static void b43_wa_altagc(struct b43_wldev *dev) > b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 3, 25); > } > > - b43_phy_maskset(dev, B43_PHY_CCKSHIFTBITS_WA, (u16)~0xFF00, 0x5700); > + b43_phy_maskset(dev, B43_PHY_CCKSHIFTBITS_WA, 0x00FF, 0x5700); > b43_phy_maskset(dev, B43_PHY_OFDM(0x1A), ~0x007F, 0x000F); > b43_phy_maskset(dev, B43_PHY_OFDM(0x1A), ~0x3F80, 0x2B80); > b43_phy_maskset(dev, B43_PHY_ANTWRSETT, 0xF0FF, 0x0300); > @@ -400,9 +400,9 @@ static void b43_wa_altagc(struct b43_wldev *dev) > b43_phy_maskset(dev, B43_PHY_OFDM(0x89), ~0x00FF, 0x0020); > b43_phy_maskset(dev, B43_PHY_OFDM(0x89), ~0x3F00, 0x0200); > b43_phy_maskset(dev, B43_PHY_OFDM(0x82), ~0x00FF, 0x002E); > - b43_phy_maskset(dev, B43_PHY_OFDM(0x96), (u16)~0xFF00, 0x1A00); > + b43_phy_maskset(dev, B43_PHY_OFDM(0x96), 0x00FF, 0x1A00); > b43_phy_maskset(dev, B43_PHY_OFDM(0x81), ~0x00FF, 0x0028); > - b43_phy_maskset(dev, B43_PHY_OFDM(0x81), (u16)~0xFF00, 0x2C00); > + b43_phy_maskset(dev, B43_PHY_OFDM(0x81), 0x00FF, 0x2C00); > if (phy->rev == 1) { > b43_phy_write(dev, B43_PHY_PEAK_COUNT, 0x092B); > b43_phy_maskset(dev, B43_PHY_OFDM(0x1B), ~0x001E, 0x0002); > @@ -412,7 +412,7 @@ static void b43_wa_altagc(struct b43_wldev *dev) > b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, ~0x000F, 0x0004); > if (phy->rev>= 6) { > b43_phy_write(dev, B43_PHY_OFDM(0x22), 0x287A); > - b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, (u16)~0xF000, 0x3000); > + b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, 0x0FFF, 0x3000); > } > } > b43_phy_maskset(dev, B43_PHY_DIVSRCHIDX, 0x8080, 0x7874); Same for all of these. -- Greetings Michael. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] b43: silense most sparse warnings 2010-07-21 16:05 ` Michael Büsch @ 2010-07-21 16:38 ` John W. Linville 2010-07-21 16:48 ` Larry Finger 1 sibling, 0 replies; 5+ messages in thread From: John W. Linville @ 2010-07-21 16:38 UTC (permalink / raw) To: Michael Büsch Cc: linux-wireless, Larry Finger, Gábor Stefanik, Rafał Miłecki On Wed, Jul 21, 2010 at 06:05:22PM +0200, Michael Büsch wrote: > On 07/21/2010 05:45 PM, John W. Linville wrote: > >diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c > >index 29bf34c..0dc33b6 100644 > >--- a/drivers/net/wireless/b43/phy_g.c > >+++ b/drivers/net/wireless/b43/phy_g.c > >@@ -972,7 +972,7 @@ b43_radio_interference_mitigation_enable(struct b43_wldev *dev, int mode) > > b43_phy_maskset(dev, 0x04A2, 0xFFF0, 0x000B); > > > > if (phy->rev>= 3) { > >- b43_phy_mask(dev, 0x048A, (u16)~0x8000); > >+ b43_phy_mask(dev, 0x048A, 0x7FFF); > > This cast was introduced to silense a GCC warning. Do we end up in an > infinite loop now? ;) This version has the beauty of pleasing both gcc and sparse. :-) John -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] b43: silense most sparse warnings 2010-07-21 16:05 ` Michael Büsch 2010-07-21 16:38 ` John W. Linville @ 2010-07-21 16:48 ` Larry Finger 2010-07-21 17:11 ` John W. Linville 1 sibling, 1 reply; 5+ messages in thread From: Larry Finger @ 2010-07-21 16:48 UTC (permalink / raw) To: Michael Büsch Cc: John W. Linville, linux-wireless, Larry Finger, Gábor Stefanik, Rafał Miłecki [-- Attachment #1: Type: text/plain, Size: 4880 bytes --] On 07/21/2010 11:05 AM, Michael Büsch wrote: > On 07/21/2010 05:45 PM, John W. Linville wrote: >> diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c >> index 29bf34c..0dc33b6 100644 >> --- a/drivers/net/wireless/b43/phy_g.c >> +++ b/drivers/net/wireless/b43/phy_g.c >> @@ -972,7 +972,7 @@ b43_radio_interference_mitigation_enable(struct b43_wldev >> *dev, int mode) >> b43_phy_maskset(dev, 0x04A2, 0xFFF0, 0x000B); >> >> if (phy->rev>= 3) { >> - b43_phy_mask(dev, 0x048A, (u16)~0x8000); >> + b43_phy_mask(dev, 0x048A, 0x7FFF); > > This cast was introduced to silense a GCC warning. Do we end up in an > infinite loop now? ;) I get no GCC warnings here with the change. I think it is OK. Is silense a valid British spelling? I prefer silence. Do you wish to clean up the warnings from the N-PHY code as well? Ignoring the "should it be static?" parts, I get the following sparse warnings: drivers/net/wireless/b43/phy_n.c:512:53: warning: cast truncates bits from constant value (ffff0fff becomes fff) drivers/net/wireless/b43/phy_n.c:765:66: warning: cast truncates bits from constant value (ffff7fff becomes 7fff) drivers/net/wireless/b43/phy_n.c:1012:38: warning: cast truncates bits from constant value (ffff00ff becomes ff) drivers/net/wireless/b43/phy_n.c:1119:38: warning: cast truncates bits from constant value (ffff0fff becomes fff) drivers/net/wireless/b43/phy_n.c:2458:56: warning: cast truncates bits from constant value (ffff7fff becomes 7fff) drivers/net/wireless/b43/phy_n.c:2933:38: warning: cast truncates bits from constant value (ffff0fff becomes fff) drivers/net/wireless/b43/phy_n.c:3294:57: warning: cast truncates bits from constant value (ffff3fff becomes 3fff) The patch for them is below. Larry Index: wireless-testing/drivers/net/wireless/b43/phy_n.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/phy_n.c +++ wireless-testing/drivers/net/wireless/b43/phy_n.c @@ -509,8 +509,8 @@ static void b43_nphy_rx_cal_phy_setup(st b43_phy_mask(dev, B43_NPHY_PAPD_EN0, ~0x0001); b43_phy_mask(dev, B43_NPHY_PAPD_EN1, ~0x0001); - b43_phy_maskset(dev, B43_NPHY_RFSEQCA, (u16)~B43_NPHY_RFSEQCA_RXDIS, - ((1 - core) << B43_NPHY_RFSEQCA_RXDIS_SHIFT)); + b43_phy_maskset(dev, B43_NPHY_RFSEQCA, (u16)(~B43_NPHY_RFSEQCA_RXDIS & + 0xFFFF), ((1 - core) << B43_NPHY_RFSEQCA_RXDIS_SHIFT)); b43_phy_maskset(dev, B43_NPHY_RFSEQCA, ~B43_NPHY_RFSEQCA_TXEN, ((1 - core) << B43_NPHY_RFSEQCA_TXEN_SHIFT)); b43_phy_maskset(dev, B43_NPHY_RFSEQCA, ~B43_NPHY_RFSEQCA_RXEN, @@ -762,7 +762,7 @@ static void b43_nphy_stop_playback(struc if (tmp & 0x1) b43_phy_set(dev, B43_NPHY_SAMP_CMD, B43_NPHY_SAMP_CMD_STOP); else if (tmp & 0x2) - b43_phy_mask(dev, B43_NPHY_IQLOCAL_CMDGCTL, (u16)~0x8000); + b43_phy_mask(dev, B43_NPHY_IQLOCAL_CMDGCTL, 0x7FFF); b43_phy_mask(dev, B43_NPHY_SAMP_CMD, ~0x0004); @@ -1009,7 +1009,7 @@ static void b43_nphy_gain_crtl_workaroun b43_nphy_set_rf_sequence(dev, 5, rfseq_events, rfseq_delays, 3); b43_phy_maskset(dev, B43_NPHY_OVER_DGAIN1, - (u16)~B43_NPHY_OVER_DGAIN_CCKDGECV, + (u16)(~B43_NPHY_OVER_DGAIN_CCKDGECV & 0xFFFF), 0x5A << B43_NPHY_OVER_DGAIN_CCKDGECV_SHIFT); if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) @@ -1116,7 +1116,7 @@ static void b43_nphy_workarounds(struct b43_phy_write(dev, B43_NPHY_PHASETR_B2, 0x20); b43_phy_mask(dev, B43_NPHY_PIL_DW1, - (u16)~B43_NPHY_PIL_DW_64QAM); + (u16)(~B43_NPHY_PIL_DW_64QAM & 0xFFFF)); b43_phy_write(dev, B43_NPHY_TXF_20CO_S2B1, 0xB5); b43_phy_write(dev, B43_NPHY_TXF_20CO_S2B2, 0xA4); b43_phy_write(dev, B43_NPHY_TXF_20CO_S2B3, 0x00); @@ -2455,7 +2455,8 @@ static void b43_nphy_tx_cal_phy_setup(st b43_phy_write(dev, B43_NPHY_AFECTL_OVER, tmp | 0x0600); regs[4] = b43_phy_read(dev, B43_NPHY_BBCFG); - b43_phy_mask(dev, B43_NPHY_BBCFG, (u16)~B43_NPHY_BBCFG_RSTRX); + b43_phy_mask(dev, B43_NPHY_BBCFG, (u16)(~B43_NPHY_BBCFG_RSTRX + & 0xFFFF)); tmp = b43_ntab_read(dev, B43_NTAB16(8, 3)); regs[5] = tmp; @@ -2930,7 +2931,7 @@ static int b43_nphy_rev2_cal_rx_iq(struc tmp[5] = b43_phy_read(dev, rfctl[1]); b43_phy_maskset(dev, B43_NPHY_RFSEQCA, - (u16)~B43_NPHY_RFSEQCA_RXDIS, + (u16)(~B43_NPHY_RFSEQCA_RXDIS & 0xFFFF), ((1 - i) << B43_NPHY_RFSEQCA_RXDIS_SHIFT)); b43_phy_maskset(dev, B43_NPHY_RFSEQCA, ~B43_NPHY_RFSEQCA_TXEN, (1 - i)); @@ -3291,7 +3292,7 @@ static void b43_nphy_chanspec_setup(stru b43_phy_mask(dev, B43_NPHY_BANDCTL, ~B43_NPHY_BANDCTL_5GHZ); tmp32 = b43_read32(dev, B43_MMIO_PSM_PHY_HDR); b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32 | 4); - b43_phy_mask(dev, B43_PHY_B_BBCFG, (u16)~0xC000); + b43_phy_mask(dev, B43_PHY_B_BBCFG, 0x3FFF); b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32); } [-- Attachment #2: b43_silence_most_sparse_warnings --] [-- Type: text/plain, Size: 9749 bytes --] Subject: [PATCH] b43: silense most sparse warnings From: "John W. Linville" <linville@tuxdriver.com> Date: Wed, 21 Jul 2010 11:45:42 -0400 To: linux-wireless@vger.kernel.org CC: Michael Buesch <mb@bu3sch.de>, Larry Finger <Larry.Finger@wfinger.net>, Gábor Stefanik <netrolller.3d@gmail.com>, RafaÅ MiÅecki <zajec5@gmail.com>, "John W. Linville" <linville@tuxdriver.com> CHECK drivers/net/wireless/b43/main.c drivers/net/wireless/b43/main.c:111:5: warning: symbol 'b43_modparam_pio' was not declared. Should it be static? CHECK drivers/net/wireless/b43/phy_g.c drivers/net/wireless/b43/phy_g.c:975:56: warning: cast truncates bits from constant value (ffff7fff becomes 7fff) CHECK drivers/net/wireless/b43/phy_lp.c drivers/net/wireless/b43/phy_lp.c:2701:6: warning: symbol 'b43_lpphy_op_switch_analog' was not declared. Should it be static? drivers/net/wireless/b43/phy_lp.c:1148:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff) drivers/net/wireless/b43/phy_lp.c:1525:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff) drivers/net/wireless/b43/phy_lp.c:1529:30: warning: cast truncates bits from constant value (ffff1fff becomes 1fff) CHECK drivers/net/wireless/b43/wa.c drivers/net/wireless/b43/wa.c:385:60: warning: cast truncates bits from constant value (ffff00ff becomes ff) drivers/net/wireless/b43/wa.c:403:55: warning: cast truncates bits from constant value (ffff00ff becomes ff) drivers/net/wireless/b43/wa.c:405:55: warning: cast truncates bits from constant value (ffff00ff becomes ff) drivers/net/wireless/b43/wa.c:415:71: warning: cast truncates bits from constant value (ffff0fff becomes fff) AFAICT, none of these amount to real bugs. But this reduces warning spam from sparse w/o significantly affecting readability of the code (IMHO). Signed-off-by: John W. Linville <linville@tuxdriver.com> --- drivers/net/wireless/b43/main.c | 2 +- drivers/net/wireless/b43/phy_g.c | 2 +- drivers/net/wireless/b43/phy_lp.c | 8 ++++---- drivers/net/wireless/b43/wa.c | 8 ++++---- 4 files changed, 10 insertions(+), 10 deletions(-) Index: wireless-testing/drivers/net/wireless/b43/main.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/main.c +++ wireless-testing/drivers/net/wireless/b43/main.c @@ -108,7 +108,7 @@ int b43_modparam_verbose = B43_VERBOSITY module_param_named(verbose, b43_modparam_verbose, int, 0644); MODULE_PARM_DESC(verbose, "Log message verbosity: 0=error, 1=warn, 2=info(default), 3=debug"); -int b43_modparam_pio = B43_PIO_DEFAULT; +static int b43_modparam_pio = B43_PIO_DEFAULT; module_param_named(pio, b43_modparam_pio, int, 0644); MODULE_PARM_DESC(pio, "Use PIO accesses by default: 0=DMA, 1=PIO"); Index: wireless-testing/drivers/net/wireless/b43/phy_g.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/phy_g.c +++ wireless-testing/drivers/net/wireless/b43/phy_g.c @@ -972,7 +972,7 @@ b43_radio_interference_mitigation_enable b43_phy_maskset(dev, 0x04A2, 0xFFF0, 0x000B); if (phy->rev >= 3) { - b43_phy_mask(dev, 0x048A, (u16)~0x8000); + b43_phy_mask(dev, 0x048A, 0x7FFF); b43_phy_maskset(dev, 0x0415, 0x8000, 0x36D8); b43_phy_maskset(dev, 0x0416, 0x8000, 0x36D8); b43_phy_maskset(dev, 0x0417, 0xFE00, 0x016D); Index: wireless-testing/drivers/net/wireless/b43/phy_lp.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/phy_lp.c +++ wireless-testing/drivers/net/wireless/b43/phy_lp.c @@ -1145,7 +1145,7 @@ static void lpphy_write_tx_pctl_mode_to_ B43_WARN_ON(1); } b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, ctl); + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE & 0xFFFF, ctl); } static void lpphy_set_tx_power_control(struct b43_wldev *dev, @@ -1522,11 +1522,11 @@ static void lpphy_tx_pctl_init_hw(struct b43_phy_mask(dev, B43_LPPHY_TX_PWR_CTL_DELTAPWR_LIMIT, 0xFF); b43_phy_write(dev, B43_LPPHY_TX_PWR_CTL_DELTAPWR_LIMIT, 0xA); b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE & 0xFFFF, B43_LPPHY_TX_PWR_CTL_CMD_MODE_OFF); b43_phy_mask(dev, B43_LPPHY_TX_PWR_CTL_NNUM, 0xF8FF); b43_phy_maskset(dev, B43_LPPHY_TX_PWR_CTL_CMD, - (u16)~B43_LPPHY_TX_PWR_CTL_CMD_MODE, + ~B43_LPPHY_TX_PWR_CTL_CMD_MODE & 0xFFFF, B43_LPPHY_TX_PWR_CTL_CMD_MODE_SW); if (dev->phy.rev < 2) { @@ -2698,7 +2698,7 @@ static enum b43_txpwr_result b43_lpphy_o return B43_TXPWR_RES_DONE; } -void b43_lpphy_op_switch_analog(struct b43_wldev *dev, bool on) +static void b43_lpphy_op_switch_analog(struct b43_wldev *dev, bool on) { if (on) { b43_phy_mask(dev, B43_LPPHY_AFE_CTL_OVR, 0xfff8); Index: wireless-testing/drivers/net/wireless/b43/wa.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/wa.c +++ wireless-testing/drivers/net/wireless/b43/wa.c @@ -382,7 +382,7 @@ static void b43_wa_altagc(struct b43_wld b43_ofdmtab_write16(dev, B43_OFDMTAB_AGC1, 3, 25); } - b43_phy_maskset(dev, B43_PHY_CCKSHIFTBITS_WA, (u16)~0xFF00, 0x5700); + b43_phy_maskset(dev, B43_PHY_CCKSHIFTBITS_WA, 0x00FF, 0x5700); b43_phy_maskset(dev, B43_PHY_OFDM(0x1A), ~0x007F, 0x000F); b43_phy_maskset(dev, B43_PHY_OFDM(0x1A), ~0x3F80, 0x2B80); b43_phy_maskset(dev, B43_PHY_ANTWRSETT, 0xF0FF, 0x0300); @@ -400,9 +400,9 @@ static void b43_wa_altagc(struct b43_wld b43_phy_maskset(dev, B43_PHY_OFDM(0x89), ~0x00FF, 0x0020); b43_phy_maskset(dev, B43_PHY_OFDM(0x89), ~0x3F00, 0x0200); b43_phy_maskset(dev, B43_PHY_OFDM(0x82), ~0x00FF, 0x002E); - b43_phy_maskset(dev, B43_PHY_OFDM(0x96), (u16)~0xFF00, 0x1A00); + b43_phy_maskset(dev, B43_PHY_OFDM(0x96), 0x00FF, 0x1A00); b43_phy_maskset(dev, B43_PHY_OFDM(0x81), ~0x00FF, 0x0028); - b43_phy_maskset(dev, B43_PHY_OFDM(0x81), (u16)~0xFF00, 0x2C00); + b43_phy_maskset(dev, B43_PHY_OFDM(0x81), 0x00FF, 0x2C00); if (phy->rev == 1) { b43_phy_write(dev, B43_PHY_PEAK_COUNT, 0x092B); b43_phy_maskset(dev, B43_PHY_OFDM(0x1B), ~0x001E, 0x0002); @@ -412,7 +412,7 @@ static void b43_wa_altagc(struct b43_wld b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, ~0x000F, 0x0004); if (phy->rev >= 6) { b43_phy_write(dev, B43_PHY_OFDM(0x22), 0x287A); - b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, (u16)~0xF000, 0x3000); + b43_phy_maskset(dev, B43_PHY_LPFGAINCTL, 0x0FFF, 0x3000); } } b43_phy_maskset(dev, B43_PHY_DIVSRCHIDX, 0x8080, 0x7874); Index: wireless-testing/drivers/net/wireless/b43/phy_n.c =================================================================== --- wireless-testing.orig/drivers/net/wireless/b43/phy_n.c +++ wireless-testing/drivers/net/wireless/b43/phy_n.c @@ -509,8 +509,8 @@ static void b43_nphy_rx_cal_phy_setup(st b43_phy_mask(dev, B43_NPHY_PAPD_EN0, ~0x0001); b43_phy_mask(dev, B43_NPHY_PAPD_EN1, ~0x0001); - b43_phy_maskset(dev, B43_NPHY_RFSEQCA, (u16)~B43_NPHY_RFSEQCA_RXDIS, - ((1 - core) << B43_NPHY_RFSEQCA_RXDIS_SHIFT)); + b43_phy_maskset(dev, B43_NPHY_RFSEQCA, (u16)(~B43_NPHY_RFSEQCA_RXDIS & + 0xFFFF), ((1 - core) << B43_NPHY_RFSEQCA_RXDIS_SHIFT)); b43_phy_maskset(dev, B43_NPHY_RFSEQCA, ~B43_NPHY_RFSEQCA_TXEN, ((1 - core) << B43_NPHY_RFSEQCA_TXEN_SHIFT)); b43_phy_maskset(dev, B43_NPHY_RFSEQCA, ~B43_NPHY_RFSEQCA_RXEN, @@ -762,7 +762,7 @@ static void b43_nphy_stop_playback(struc if (tmp & 0x1) b43_phy_set(dev, B43_NPHY_SAMP_CMD, B43_NPHY_SAMP_CMD_STOP); else if (tmp & 0x2) - b43_phy_mask(dev, B43_NPHY_IQLOCAL_CMDGCTL, (u16)~0x8000); + b43_phy_mask(dev, B43_NPHY_IQLOCAL_CMDGCTL, 0x7FFF); b43_phy_mask(dev, B43_NPHY_SAMP_CMD, ~0x0004); @@ -1009,7 +1009,7 @@ static void b43_nphy_gain_crtl_workaroun b43_nphy_set_rf_sequence(dev, 5, rfseq_events, rfseq_delays, 3); b43_phy_maskset(dev, B43_NPHY_OVER_DGAIN1, - (u16)~B43_NPHY_OVER_DGAIN_CCKDGECV, + (u16)(~B43_NPHY_OVER_DGAIN_CCKDGECV & 0xFFFF), 0x5A << B43_NPHY_OVER_DGAIN_CCKDGECV_SHIFT); if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) @@ -1116,7 +1116,7 @@ static void b43_nphy_workarounds(struct b43_phy_write(dev, B43_NPHY_PHASETR_B2, 0x20); b43_phy_mask(dev, B43_NPHY_PIL_DW1, - (u16)~B43_NPHY_PIL_DW_64QAM); + (u16)(~B43_NPHY_PIL_DW_64QAM & 0xFFFF)); b43_phy_write(dev, B43_NPHY_TXF_20CO_S2B1, 0xB5); b43_phy_write(dev, B43_NPHY_TXF_20CO_S2B2, 0xA4); b43_phy_write(dev, B43_NPHY_TXF_20CO_S2B3, 0x00); @@ -2455,7 +2455,8 @@ static void b43_nphy_tx_cal_phy_setup(st b43_phy_write(dev, B43_NPHY_AFECTL_OVER, tmp | 0x0600); regs[4] = b43_phy_read(dev, B43_NPHY_BBCFG); - b43_phy_mask(dev, B43_NPHY_BBCFG, (u16)~B43_NPHY_BBCFG_RSTRX); + b43_phy_mask(dev, B43_NPHY_BBCFG, (u16)(~B43_NPHY_BBCFG_RSTRX + & 0xFFFF)); tmp = b43_ntab_read(dev, B43_NTAB16(8, 3)); regs[5] = tmp; @@ -2930,7 +2931,7 @@ static int b43_nphy_rev2_cal_rx_iq(struc tmp[5] = b43_phy_read(dev, rfctl[1]); b43_phy_maskset(dev, B43_NPHY_RFSEQCA, - (u16)~B43_NPHY_RFSEQCA_RXDIS, + (u16)(~B43_NPHY_RFSEQCA_RXDIS & 0xFFFF), ((1 - i) << B43_NPHY_RFSEQCA_RXDIS_SHIFT)); b43_phy_maskset(dev, B43_NPHY_RFSEQCA, ~B43_NPHY_RFSEQCA_TXEN, (1 - i)); @@ -3291,7 +3292,7 @@ static void b43_nphy_chanspec_setup(stru b43_phy_mask(dev, B43_NPHY_BANDCTL, ~B43_NPHY_BANDCTL_5GHZ); tmp32 = b43_read32(dev, B43_MMIO_PSM_PHY_HDR); b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32 | 4); - b43_phy_mask(dev, B43_PHY_B_BBCFG, (u16)~0xC000); + b43_phy_mask(dev, B43_PHY_B_BBCFG, 0x3FFF); b43_write32(dev, B43_MMIO_PSM_PHY_HDR, tmp32); } ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] b43: silense most sparse warnings 2010-07-21 16:48 ` Larry Finger @ 2010-07-21 17:11 ` John W. Linville 0 siblings, 0 replies; 5+ messages in thread From: John W. Linville @ 2010-07-21 17:11 UTC (permalink / raw) To: Larry Finger Cc: Michael Büsch, linux-wireless, Larry Finger, Gábor Stefanik, Rafał Miłecki On Wed, Jul 21, 2010 at 11:48:05AM -0500, Larry Finger wrote: > On 07/21/2010 11:05 AM, Michael Büsch wrote: > >On 07/21/2010 05:45 PM, John W. Linville wrote: > >>diff --git a/drivers/net/wireless/b43/phy_g.c b/drivers/net/wireless/b43/phy_g.c > >>index 29bf34c..0dc33b6 100644 > >>--- a/drivers/net/wireless/b43/phy_g.c > >>+++ b/drivers/net/wireless/b43/phy_g.c > >>@@ -972,7 +972,7 @@ b43_radio_interference_mitigation_enable(struct b43_wldev > >>*dev, int mode) > >>b43_phy_maskset(dev, 0x04A2, 0xFFF0, 0x000B); > >> > >>if (phy->rev>= 3) { > >>- b43_phy_mask(dev, 0x048A, (u16)~0x8000); > >>+ b43_phy_mask(dev, 0x048A, 0x7FFF); > > > >This cast was introduced to silense a GCC warning. Do we end up in an > >infinite loop now? ;) > > I get no GCC warnings here with the change. I think it is OK. > > Is silense a valid British spelling? I prefer silence. Just a typo. :-) > Do you wish to clean up the warnings from the N-PHY code as well? > Ignoring the "should it be static?" parts, I get the following > sparse warnings: > > drivers/net/wireless/b43/phy_n.c:512:53: warning: cast truncates > bits from constant value (ffff0fff becomes fff) > drivers/net/wireless/b43/phy_n.c:765:66: warning: cast truncates > bits from constant value (ffff7fff becomes 7fff) > drivers/net/wireless/b43/phy_n.c:1012:38: warning: cast truncates > bits from constant value (ffff00ff becomes ff) > drivers/net/wireless/b43/phy_n.c:1119:38: warning: cast truncates > bits from constant value (ffff0fff becomes fff) > drivers/net/wireless/b43/phy_n.c:2458:56: warning: cast truncates > bits from constant value (ffff7fff becomes 7fff) > drivers/net/wireless/b43/phy_n.c:2933:38: warning: cast truncates > bits from constant value (ffff0fff becomes fff) > drivers/net/wireless/b43/phy_n.c:3294:57: warning: cast truncates > bits from constant value (ffff3fff becomes 3fff) > > The patch for them is below. Seems fine -- shall I add your Signed-off-by? John -- John W. Linville Someday the world will need a hero, and you linville@tuxdriver.com might be all we have. Be ready. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-07-21 17:15 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-07-21 15:45 [PATCH] b43: silense most sparse warnings John W. Linville 2010-07-21 16:05 ` Michael Büsch 2010-07-21 16:38 ` John W. Linville 2010-07-21 16:48 ` Larry Finger 2010-07-21 17:11 ` John W. Linville
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).