Commit c3d8e682 authored by Jeff Garzik's avatar Jeff Garzik

[netdrvr] Remove Becker-template 'io_size' member, when invariant

Becker-derived drivers often have the 'io_size' member in their chip
info struct, indicating the minimum required size of the I/O resource
(usually a PCI BAR).  For many situations, this number is either
constant or irrelevant (due to pci_iomap convenience behavior).

This change removes the io_size invariant member, and replaces it with a
compile-time constant.

Drivers updated: fealnx, gt96100eth, winbond-840, yellowfin

Additionally,
- gt96100eth: unused 'drv_flags' removed from gt96100eth
- winbond-840: unused struct match_info removed
- winbond-840: mark pci_id_tbl[] const, __devinitdata
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 03a8c661
...@@ -146,14 +146,13 @@ enum phy_type_flags { ...@@ -146,14 +146,13 @@ enum phy_type_flags {
struct chip_info { struct chip_info {
char *chip_name; char *chip_name;
int io_size;
int flags; int flags;
}; };
static const struct chip_info skel_netdrv_tbl[] = { static const struct chip_info skel_netdrv_tbl[] = {
{"100/10M Ethernet PCI Adapter", 136, HAS_MII_XCVR}, { "100/10M Ethernet PCI Adapter", HAS_MII_XCVR },
{"100/10M Ethernet PCI Adapter", 136, HAS_CHIP_XCVR}, { "100/10M Ethernet PCI Adapter", HAS_CHIP_XCVR },
{"1000/100/10M Ethernet PCI Adapter", 136, HAS_MII_XCVR}, { "1000/100/10M Ethernet PCI Adapter", HAS_MII_XCVR },
}; };
/* Offsets to the Command and Status Registers. */ /* Offsets to the Command and Status Registers. */
......
...@@ -699,7 +699,6 @@ static int __init gt96100_probe1(struct pci_dev *pci, int port_num) ...@@ -699,7 +699,6 @@ static int __init gt96100_probe1(struct pci_dev *pci, int port_num)
memset(gp, 0, sizeof(*gp)); // clear it memset(gp, 0, sizeof(*gp)); // clear it
gp->port_num = port_num; gp->port_num = port_num;
gp->io_size = GT96100_ETH_IO_SIZE;
gp->port_offset = port_num * GT96100_ETH_IO_SIZE; gp->port_offset = port_num * GT96100_ETH_IO_SIZE;
gp->phy_addr = phy_addr; gp->phy_addr = phy_addr;
gp->chip_rev = chip_rev; gp->chip_rev = chip_rev;
...@@ -1531,7 +1530,7 @@ static void gt96100_cleanup_module(void) ...@@ -1531,7 +1530,7 @@ static void gt96100_cleanup_module(void)
+ sizeof(gt96100_td_t) * TX_RING_SIZE, + sizeof(gt96100_td_t) * TX_RING_SIZE,
gp->rx_ring); gp->rx_ring);
free_netdev(gtif->dev); free_netdev(gtif->dev);
release_region(gtif->iobase, gp->io_size); release_region(gtif->iobase, GT96100_ETH_IO_SIZE);
} }
} }
} }
......
...@@ -331,7 +331,6 @@ struct gt96100_private { ...@@ -331,7 +331,6 @@ struct gt96100_private {
mib_counters_t mib; mib_counters_t mib;
struct net_device_stats stats; struct net_device_stats stats;
int io_size;
int port_num; // 0 or 1 int port_num; // 0 or 1
int chip_rev; int chip_rev;
u32 port_offset; u32 port_offset;
...@@ -340,7 +339,6 @@ struct gt96100_private { ...@@ -340,7 +339,6 @@ struct gt96100_private {
u32 last_psr; // last value of the port status register u32 last_psr; // last value of the port status register
int options; /* User-settable misc. driver options. */ int options; /* User-settable misc. driver options. */
int drv_flags;
struct timer_list timer; struct timer_list timer;
spinlock_t lock; /* Serialise access to device */ spinlock_t lock; /* Serialise access to device */
}; };
......
...@@ -224,24 +224,21 @@ static const struct pci_device_id w840_pci_tbl[] = { ...@@ -224,24 +224,21 @@ static const struct pci_device_id w840_pci_tbl[] = {
}; };
MODULE_DEVICE_TABLE(pci, w840_pci_tbl); MODULE_DEVICE_TABLE(pci, w840_pci_tbl);
enum {
netdev_res_size = 128, /* size of PCI BAR resource */
};
struct pci_id_info { struct pci_id_info {
const char *name; const char *name;
struct match_info {
int pci, pci_mask, subsystem, subsystem_mask;
int revision, revision_mask; /* Only 8 bits. */
} id;
int io_size; /* Needed for I/O region check or ioremap(). */
int drv_flags; /* Driver use, intended as capability flags. */ int drv_flags; /* Driver use, intended as capability flags. */
}; };
static struct pci_id_info pci_id_tbl[] = {
{"Winbond W89c840", /* Sometime a Level-One switch card. */ static const struct pci_id_info pci_id_tbl[] __devinitdata = {
{ 0x08401050, 0xffffffff, 0x81530000, 0xffff0000 }, { /* Sometime a Level-One switch card. */
128, CanHaveMII | HasBrokenTx | FDXOnNoMII}, "Winbond W89c840", CanHaveMII | HasBrokenTx | FDXOnNoMII},
{"Winbond W89c840", { 0x08401050, 0xffffffff, }, { "Winbond W89c840", CanHaveMII | HasBrokenTx},
128, CanHaveMII | HasBrokenTx}, { "Compex RL100-ATX", CanHaveMII | HasBrokenTx},
{"Compex RL100-ATX", { 0x201111F6, 0xffffffff,}, { } /* terminate list. */
128, CanHaveMII | HasBrokenTx},
{NULL,}, /* 0 terminated list. */
}; };
/* This driver was written to use PCI memory space, however some x86 systems /* This driver was written to use PCI memory space, however some x86 systems
...@@ -399,7 +396,7 @@ static int __devinit w840_probe1 (struct pci_dev *pdev, ...@@ -399,7 +396,7 @@ static int __devinit w840_probe1 (struct pci_dev *pdev,
#ifdef USE_IO_OPS #ifdef USE_IO_OPS
bar = 0; bar = 0;
#endif #endif
ioaddr = pci_iomap(pdev, bar, pci_id_tbl[chip_idx].io_size); ioaddr = pci_iomap(pdev, bar, netdev_res_size);
if (!ioaddr) if (!ioaddr)
goto err_out_free_res; goto err_out_free_res;
......
...@@ -215,8 +215,11 @@ enum capability_flags { ...@@ -215,8 +215,11 @@ enum capability_flags {
HasMACAddrBug=32, /* Only on early revs. */ HasMACAddrBug=32, /* Only on early revs. */
DontUseEeprom=64, /* Don't read the MAC from the EEPROm. */ DontUseEeprom=64, /* Don't read the MAC from the EEPROm. */
}; };
/* The PCI I/O space extent. */ /* The PCI I/O space extent. */
#define YELLOWFIN_SIZE 0x100 enum {
YELLOWFIN_SIZE = 0x100,
};
struct pci_id_info { struct pci_id_info {
const char *name; const char *name;
...@@ -224,16 +227,14 @@ struct pci_id_info { ...@@ -224,16 +227,14 @@ struct pci_id_info {
int pci, pci_mask, subsystem, subsystem_mask; int pci, pci_mask, subsystem, subsystem_mask;
int revision, revision_mask; /* Only 8 bits. */ int revision, revision_mask; /* Only 8 bits. */
} id; } id;
int io_size; /* Needed for I/O region check or ioremap(). */
int drv_flags; /* Driver use, intended as capability flags. */ int drv_flags; /* Driver use, intended as capability flags. */
}; };
static const struct pci_id_info pci_id_tbl[] = { static const struct pci_id_info pci_id_tbl[] = {
{"Yellowfin G-NIC Gigabit Ethernet", { 0x07021000, 0xffffffff}, {"Yellowfin G-NIC Gigabit Ethernet", { 0x07021000, 0xffffffff},
YELLOWFIN_SIZE,
FullTxStatus | IsGigabit | HasMulticastBug | HasMACAddrBug | DontUseEeprom}, FullTxStatus | IsGigabit | HasMulticastBug | HasMACAddrBug | DontUseEeprom},
{"Symbios SYM83C885", { 0x07011000, 0xffffffff}, {"Symbios SYM83C885", { 0x07011000, 0xffffffff},
YELLOWFIN_SIZE, HasMII | DontUseEeprom }, HasMII | DontUseEeprom },
{ } { }
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment