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; } _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel