On Tue, Jul 28, 2015 at 11:52:42PM +0200, Mateusz Kulikowski wrote:

> diff --git a/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c 
> b/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c
> index ed54193..fe4e282 100644
> --- a/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c
> +++ b/drivers/staging/rtl8192e/rtl8192e/rtl_eeprom.c
> @@ -25,115 +25,72 @@
>  #include "rtl_core.h"
>  #include "rtl_eeprom.h"
>  
> -static void eprom_cs(struct net_device *dev, short bit)
> +static void _rtl92e_gpio_set(struct net_device *dev, int no, int val)

I don't like the new name very much.  I don't like the underscore.  Also
set kind of implies set vs clear.  Maybe:

static void rtl92e_gpio_write_bit(struct net_device *dev, int bit, bool val)

>  {
> -     if (bit)
> -             rtl92e_writeb(dev, EPROM_CMD,
> -                           (1 << EPROM_CS_SHIFT) |
> -                           rtl92e_readb(dev, EPROM_CMD));
> +     u8 reg = rtl92e_readb(dev, EPROM_CMD);
> +
> +     if (val)
> +             reg |= 1 << no;
>       else
> -             rtl92e_writeb(dev, EPROM_CMD,
> -                           rtl92e_readb(dev, EPROM_CMD) &
> -                           ~(1<<EPROM_CS_SHIFT));
> +             reg &= ~(1 << no);
>  
> +     rtl92e_writeb(dev, EPROM_CMD, reg);
>       udelay(EPROM_DELAY);
>  }
>  
> -
> -static void eprom_ck_cycle(struct net_device *dev)
> +static int _rtl92e_gpio_get(struct net_device *dev, int no)

static bool rtl92e_gpio_get_bit(struct net_device *dev, int bit)

>  {
> -     rtl92e_writeb(dev, EPROM_CMD,
> -                   (1<<EPROM_CK_SHIFT) | rtl92e_readb(dev, EPROM_CMD));
> -     udelay(EPROM_DELAY);
> -     rtl92e_writeb(dev, EPROM_CMD,
> -                   rtl92e_readb(dev, EPROM_CMD) & ~(1<<EPROM_CK_SHIFT));
> -     udelay(EPROM_DELAY);
> -}
> +     u8 reg = rtl92e_readb(dev, EPROM_CMD);
>  
> +     return (reg >> no) & 0x1;
> +}
>  
> -static void eprom_w(struct net_device *dev, short bit)
> +static void _rtl92e_eeprom_ck_cycle(struct net_device *dev)
>  {
> -     if (bit)
> -             rtl92e_writeb(dev, EPROM_CMD, (1<<EPROM_W_SHIFT) |
> -                           rtl92e_readb(dev, EPROM_CMD));
> -     else
> -             rtl92e_writeb(dev, EPROM_CMD,
> -                           rtl92e_readb(dev, EPROM_CMD) &
> -                           ~(1<<EPROM_W_SHIFT));
> -
> -     udelay(EPROM_DELAY);
> +     _rtl92e_gpio_set(dev, EPROM_CK_BIT, 1);
> +     _rtl92e_gpio_set(dev, EPROM_CK_BIT, 0);

The old cycle function had some delays built in.  You're probably right
that they aren't needed, but why do you think so?

regards,
dan carpenter

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to