|
@@ -406,7 +406,7 @@ MODULE_DEVICE_TABLE(pci, acenic_pci_tbl);
|
|
#define DEF_STAT (2 * TICKS_PER_SEC)
|
|
#define DEF_STAT (2 * TICKS_PER_SEC)
|
|
|
|
|
|
|
|
|
|
-static int link[ACE_MAX_MOD_PARMS];
|
|
|
|
|
|
+static int link_state[ACE_MAX_MOD_PARMS];
|
|
static int trace[ACE_MAX_MOD_PARMS];
|
|
static int trace[ACE_MAX_MOD_PARMS];
|
|
static int tx_coal_tick[ACE_MAX_MOD_PARMS];
|
|
static int tx_coal_tick[ACE_MAX_MOD_PARMS];
|
|
static int rx_coal_tick[ACE_MAX_MOD_PARMS];
|
|
static int rx_coal_tick[ACE_MAX_MOD_PARMS];
|
|
@@ -419,7 +419,7 @@ MODULE_AUTHOR("Jes Sorensen <jes@trained-monkey.org>");
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_LICENSE("GPL");
|
|
MODULE_DESCRIPTION("AceNIC/3C985/GA620 Gigabit Ethernet driver");
|
|
MODULE_DESCRIPTION("AceNIC/3C985/GA620 Gigabit Ethernet driver");
|
|
|
|
|
|
-module_param_array(link, int, NULL, 0);
|
|
|
|
|
|
+module_param_array_named(link, link_state, int, NULL, 0);
|
|
module_param_array(trace, int, NULL, 0);
|
|
module_param_array(trace, int, NULL, 0);
|
|
module_param_array(tx_coal_tick, int, NULL, 0);
|
|
module_param_array(tx_coal_tick, int, NULL, 0);
|
|
module_param_array(max_tx_desc, int, NULL, 0);
|
|
module_param_array(max_tx_desc, int, NULL, 0);
|
|
@@ -987,27 +987,27 @@ static int __devinit ace_init(struct net_device *dev)
|
|
|
|
|
|
mac1 = 0;
|
|
mac1 = 0;
|
|
for(i = 0; i < 4; i++) {
|
|
for(i = 0; i < 4; i++) {
|
|
- int tmp;
|
|
|
|
|
|
+ int t;
|
|
|
|
|
|
mac1 = mac1 << 8;
|
|
mac1 = mac1 << 8;
|
|
- tmp = read_eeprom_byte(dev, 0x8c+i);
|
|
|
|
- if (tmp < 0) {
|
|
|
|
|
|
+ t = read_eeprom_byte(dev, 0x8c+i);
|
|
|
|
+ if (t < 0) {
|
|
ecode = -EIO;
|
|
ecode = -EIO;
|
|
goto init_error;
|
|
goto init_error;
|
|
} else
|
|
} else
|
|
- mac1 |= (tmp & 0xff);
|
|
|
|
|
|
+ mac1 |= (t & 0xff);
|
|
}
|
|
}
|
|
mac2 = 0;
|
|
mac2 = 0;
|
|
for(i = 4; i < 8; i++) {
|
|
for(i = 4; i < 8; i++) {
|
|
- int tmp;
|
|
|
|
|
|
+ int t;
|
|
|
|
|
|
mac2 = mac2 << 8;
|
|
mac2 = mac2 << 8;
|
|
- tmp = read_eeprom_byte(dev, 0x8c+i);
|
|
|
|
- if (tmp < 0) {
|
|
|
|
|
|
+ t = read_eeprom_byte(dev, 0x8c+i);
|
|
|
|
+ if (t < 0) {
|
|
ecode = -EIO;
|
|
ecode = -EIO;
|
|
goto init_error;
|
|
goto init_error;
|
|
} else
|
|
} else
|
|
- mac2 |= (tmp & 0xff);
|
|
|
|
|
|
+ mac2 |= (t & 0xff);
|
|
}
|
|
}
|
|
|
|
|
|
writel(mac1, ®s->MacAddrHi);
|
|
writel(mac1, ®s->MacAddrHi);
|
|
@@ -1305,10 +1305,10 @@ static int __devinit ace_init(struct net_device *dev)
|
|
writel(TX_RING_BASE, ®s->WinBase);
|
|
writel(TX_RING_BASE, ®s->WinBase);
|
|
|
|
|
|
if (ACE_IS_TIGON_I(ap)) {
|
|
if (ACE_IS_TIGON_I(ap)) {
|
|
- ap->tx_ring = (struct tx_desc *) regs->Window;
|
|
|
|
|
|
+ ap->tx_ring = (__force struct tx_desc *) regs->Window;
|
|
for (i = 0; i < (TIGON_I_TX_RING_ENTRIES
|
|
for (i = 0; i < (TIGON_I_TX_RING_ENTRIES
|
|
* sizeof(struct tx_desc)) / sizeof(u32); i++)
|
|
* sizeof(struct tx_desc)) / sizeof(u32); i++)
|
|
- writel(0, (void __iomem *)ap->tx_ring + i * 4);
|
|
|
|
|
|
+ writel(0, (__force void __iomem *)ap->tx_ring + i * 4);
|
|
|
|
|
|
set_aceaddr(&info->tx_ctrl.rngptr, TX_RING_BASE);
|
|
set_aceaddr(&info->tx_ctrl.rngptr, TX_RING_BASE);
|
|
} else {
|
|
} else {
|
|
@@ -1394,8 +1394,8 @@ static int __devinit ace_init(struct net_device *dev)
|
|
/*
|
|
/*
|
|
* Override link default parameters
|
|
* Override link default parameters
|
|
*/
|
|
*/
|
|
- if ((board_idx >= 0) && link[board_idx]) {
|
|
|
|
- int option = link[board_idx];
|
|
|
|
|
|
+ if ((board_idx >= 0) && link_state[board_idx]) {
|
|
|
|
+ int option = link_state[board_idx];
|
|
|
|
|
|
tmp = LNK_ENABLE;
|
|
tmp = LNK_ENABLE;
|
|
|
|
|
|
@@ -2383,8 +2383,9 @@ static int ace_close(struct net_device *dev)
|
|
|
|
|
|
if (mapping) {
|
|
if (mapping) {
|
|
if (ACE_IS_TIGON_I(ap)) {
|
|
if (ACE_IS_TIGON_I(ap)) {
|
|
- struct tx_desc __iomem *tx
|
|
|
|
- = (struct tx_desc __iomem *) &ap->tx_ring[i];
|
|
|
|
|
|
+ /* NB: TIGON_1 is special, tx_ring is in io space */
|
|
|
|
+ struct tx_desc __iomem *tx;
|
|
|
|
+ tx = (__force struct tx_desc __iomem *) &ap->tx_ring[i];
|
|
writel(0, &tx->addr.addrhi);
|
|
writel(0, &tx->addr.addrhi);
|
|
writel(0, &tx->addr.addrlo);
|
|
writel(0, &tx->addr.addrlo);
|
|
writel(0, &tx->flagsize);
|
|
writel(0, &tx->flagsize);
|
|
@@ -2444,7 +2445,7 @@ ace_load_tx_bd(struct ace_private *ap, struct tx_desc *desc, u64 addr,
|
|
#endif
|
|
#endif
|
|
|
|
|
|
if (ACE_IS_TIGON_I(ap)) {
|
|
if (ACE_IS_TIGON_I(ap)) {
|
|
- struct tx_desc __iomem *io = (struct tx_desc __iomem *) desc;
|
|
|
|
|
|
+ struct tx_desc __iomem *io = (__force struct tx_desc __iomem *) desc;
|
|
writel(addr >> 32, &io->addr.addrhi);
|
|
writel(addr >> 32, &io->addr.addrhi);
|
|
writel(addr & 0xffffffff, &io->addr.addrlo);
|
|
writel(addr & 0xffffffff, &io->addr.addrlo);
|
|
writel(flagsize, &io->flagsize);
|
|
writel(flagsize, &io->flagsize);
|
|
@@ -2936,7 +2937,7 @@ static void __devinit ace_clear(struct ace_regs __iomem *regs, u32 dest, int siz
|
|
* This operation requires the NIC to be halted and is performed with
|
|
* This operation requires the NIC to be halted and is performed with
|
|
* interrupts disabled and with the spinlock hold.
|
|
* interrupts disabled and with the spinlock hold.
|
|
*/
|
|
*/
|
|
-int __devinit ace_load_firmware(struct net_device *dev)
|
|
|
|
|
|
+static int __devinit ace_load_firmware(struct net_device *dev)
|
|
{
|
|
{
|
|
struct ace_private *ap = netdev_priv(dev);
|
|
struct ace_private *ap = netdev_priv(dev);
|
|
struct ace_regs __iomem *regs = ap->regs;
|
|
struct ace_regs __iomem *regs = ap->regs;
|