Re: [PATCH V2 3/3] staging/rtl8192u: use for loop to assign bitshifted addr

From: Joe Perches
Date: Tue Jun 19 2012 - 15:19:51 EST


On Wed, 2012-06-20 at 00:38 +0530, Devendra Naga wrote:
> this change is a rewrite of that bitshifted addr copying
> logic with for loop, which can easily understandable.
>
> Signed-off-by: Devendra Naga <devendra.aaru@xxxxxxxxx>
> ---
> drivers/staging/rtl8192u/r8180_93cx6.c | 27 +++++++++------------------
> 1 file changed, 9 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/staging/rtl8192u/r8180_93cx6.c b/drivers/staging/rtl8192u/r8180_93cx6.c
> index a72bbd4..815b0f3 100644
> --- a/drivers/staging/rtl8192u/r8180_93cx6.c
> +++ b/drivers/staging/rtl8192u/r8180_93cx6.c
> @@ -102,25 +102,16 @@ u32 eprom_read(struct net_device *dev, u32 addr)
> force_pci_posting(dev);
> udelay(EPROM_DELAY);
>
> - if (priv->epromtype==EPROM_93c56){
> - addr_str[7]=addr & 1;
> - addr_str[6]=addr & (1<<1);
> - addr_str[5]=addr & (1<<2);
> - addr_str[4]=addr & (1<<3);
> - addr_str[3]=addr & (1<<4);
> - addr_str[2]=addr & (1<<5);
> - addr_str[1]=addr & (1<<6);
> - addr_str[0]=addr & (1<<7);
> - addr_len=8;
> - }else{
> - addr_str[5]=addr & 1;
> - addr_str[4]=addr & (1<<1);
> - addr_str[3]=addr & (1<<2);
> - addr_str[2]=addr & (1<<3);
> - addr_str[1]=addr & (1<<4);
> - addr_str[0]=addr & (1<<5);
> - addr_len=6;
> + if (priv->epromtype == EPROM_93c56) {
> + addr_len = 8;
> + for (i = 0; i < addr_len; i++)
> + addr_str[i] = addr & (1 << (addr_len - (i + 1)));
> + } else {
> + addr_len = 6;
> + for (i = 0; i < addr_len; i++)
> + addr_str[i] = addr & (1 << (addr_len - (i + 1)));
> }

It's also got a bit of code duplication.
Maybe something like:

if (priv->epromtype == EPROM_93c56) {
addr_len = 8;
else
addr_len = 6;

test_bit = 1 << (addr_len - 1);
for (i = 0; i < addr_len; i++) {
addr_str[i] = addr & test_bit;
test_bit >>= 1;
}


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/