Return-path: Received: from vs166246.vserver.de ([62.75.166.246]:50997 "EHLO vs166246.vserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751037AbYENKV3 (ORCPT ); Wed, 14 May 2008 06:21:29 -0400 From: Michael Buesch To: Harvey Harrison Subject: Re: [PATCHv2] b43: use the bitrev helpers rather than rolling a private one Date: Wed, 14 May 2008 12:21:00 +0200 Cc: Andrew Morton , linux-wireless References: <1210708518.6191.0.camel@brick> <200805140303.23590.mb@bu3sch.de> <1210727615.6191.20.camel@brick> In-Reply-To: <1210727615.6191.20.camel@brick> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Message-Id: <200805141221.00979.mb@bu3sch.de> (sfid-20080514_122152_128623_FB2CF339) Sender: linux-wireless-owner@vger.kernel.org List-ID: On Wednesday 14 May 2008 03:13:35 Harvey Harrison wrote: > The 4-bit reversal flip_4bit is replaced with the bitrev helper > bitrev8 and a 4-bit shift. The B43_WARN is moved to the location > where a register is read from for checking there. The other caller > explicitly passes an array index which is guaranteed to be within range > and so a B43_WARN is not added there. > > Signed-off-by: Harvey Harrison Reviewed-off-by: Michael Buesch > --- > drivers/net/wireless/b43/phy.c | 27 ++++++--------------------- > 1 files changed, 6 insertions(+), 21 deletions(-) > > diff --git a/drivers/net/wireless/b43/phy.c b/drivers/net/wireless/b43/phy.c > index de024dc..feea79f 100644 > --- a/drivers/net/wireless/b43/phy.c > +++ b/drivers/net/wireless/b43/phy.c > @@ -28,6 +28,7 @@ > #include > #include > #include > +#include > > #include "b43.h" > #include "phy.h" > @@ -83,25 +84,9 @@ const u8 b43_radio_channel_codes_bg[] = { > 72, 84, > }; > > +#define bitrev4(tmp) (bitrev8(tmp) >> 4) > static void b43_phy_initg(struct b43_wldev *dev); > > -/* Reverse the bits of a 4bit value. > - * Example: 1101 is flipped 1011 > - */ > -static u16 flip_4bit(u16 value) > -{ > - u16 flipped = 0x0000; > - > - B43_WARN_ON(value & ~0x000F); > - > - flipped |= (value & 0x0001) << 3; > - flipped |= (value & 0x0002) << 1; > - flipped |= (value & 0x0004) >> 1; > - flipped |= (value & 0x0008) >> 3; > - > - return flipped; > -} > - > static void generate_rfatt_list(struct b43_wldev *dev, > struct b43_rfatt_list *list) > { > @@ -3069,13 +3054,13 @@ b43_radio_interference_mitigation_enable(struct b43_wldev *dev, int mode) > } > radio_stacksave(0x0078); > tmp = (b43_radio_read16(dev, 0x0078) & 0x001E); > - flipped = flip_4bit(tmp); > + B43_WARN_ON(tmp > 15); > + flipped = bitrev4(tmp); > if (flipped < 10 && flipped >= 8) > flipped = 7; > else if (flipped >= 10) > flipped -= 3; > - flipped = flip_4bit(flipped); > - flipped = (flipped << 1) | 0x0020; > + flipped = (bitrev4(flipped) << 1) | 0x0020; > b43_radio_write16(dev, 0x0078, flipped); > > b43_calc_nrssi_threshold(dev); > @@ -3708,7 +3693,7 @@ u16 b43_radio_init2050(struct b43_wldev *dev) > tmp1 >>= 9; > > for (i = 0; i < 16; i++) { > - radio78 = ((flip_4bit(i) << 1) | 0x20); > + radio78 = (bitrev4(i) << 1) | 0x0020; > b43_radio_write16(dev, 0x78, radio78); > udelay(10); > for (j = 0; j < 16; j++) { -- Greetings Michael.