Skip to content

Commit

Permalink
[PATCH] sis190: remove hardcoded constants.
Browse files Browse the repository at this point in the history
Replace hardcoded constants by enumerated values in sis190_read_eeprom

The names of the enumerated values have been extracted from SiS'official
driver (v1.00.00 published on 2005/07/11).

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
  • Loading branch information
Francois Romieu authored and Jeff Garzik committed Jul 30, 2005
1 parent 188f23b commit 40292fb
Showing 1 changed file with 18 additions and 10 deletions.
28 changes: 18 additions & 10 deletions drivers/net/sis190.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
Copyright (c) 2003, 2004 Jeff Garzik <jgarzik@pobox.com>
Copyright (c) 2003, 2004, 2005 Francois Romieu <romieu@fr.zoreil.com>
Based on r8169.c, tg3.c, 8139cp.c, skge.c and probably even epic100.c.
Based on r8169.c, tg3.c, 8139cp.c, skge.c, epic100.c and SiS 190/191
genuine driver.
This software may be used and distributed according to the terms of
the GNU General Public License (GPL), incorporated herein by reference.
Expand Down Expand Up @@ -221,6 +222,16 @@ enum _DescStatusBit {
RxSizeMask = 0x0000ffff
};

enum sis190_eeprom_access_register_bits {
EECS = 0x00000001, // unused
EECLK = 0x00000002, // unused
EEDO = 0x00000008, // unused
EEDI = 0x00000004, // unused
EEREQ = 0x00000080,
EEROP = 0x00000200,
EEWOP = 0x00000100 // unused
};

struct sis190_private {
void __iomem *mmio_addr;
struct pci_dev *pci_dev;
Expand Down Expand Up @@ -333,27 +344,24 @@ static int __mdio_read(struct net_device *dev, int phy_id, int reg)
return mdio_read(tp->mmio_addr, reg);
}

static int sis190_read_eeprom(void __iomem *ioaddr, u32 reg)
static u16 __devinit sis190_read_eeprom(void __iomem *ioaddr, u32 reg)
{
u16 data = 0xffff;
unsigned int i;
u16 data;
u32 val;

if (!(SIS_R32(ROMControl) & 0x0002))
return 0;

val = (0x0080 | (0x2 << 8) | (reg << 10));

SIS_W32(ROMInterface, val);
SIS_W32(ROMInterface, EEREQ | EEROP | (reg << 10));

for (i = 0; i < 200; i++) {
if (!(SIS_R32(ROMInterface) & 0x0080))
if (!(SIS_R32(ROMInterface) & EEREQ)) {
data = (SIS_R32(ROMInterface) & 0xffff0000) >> 16;
break;
}
msleep(1);
}

data = (u16) ((SIS_R32(ROMInterface) & 0xffff0000) >> 16);

return data;
}

Expand Down

0 comments on commit 40292fb

Please sign in to comment.