Loading drivers/net/atlx/atl1.c +0 −1 Original line number Original line Diff line number Diff line Loading @@ -471,7 +471,6 @@ static int atl1_get_permanent_address(struct atl1_hw *hw) memcpy(hw->perm_mac_addr, eth_addr, ETH_ALEN); memcpy(hw->perm_mac_addr, eth_addr, ETH_ALEN); return 0; return 0; } } return 1; } } /* see if SPI FLAGS exist ? */ /* see if SPI FLAGS exist ? */ Loading drivers/net/enc28j60.c +60 −27 Original line number Original line Diff line number Diff line Loading @@ -400,26 +400,31 @@ enc28j60_packet_write(struct enc28j60_net *priv, int len, const u8 *data) mutex_unlock(&priv->lock); mutex_unlock(&priv->lock); } } /* static unsigned long msec20_to_jiffies; * Wait until the PHY operation is complete. */ static int poll_ready(struct enc28j60_net *priv, u8 reg, u8 mask, u8 val) static int wait_phy_ready(struct enc28j60_net *priv) { { unsigned long timeout = jiffies + 20 * HZ / 1000; unsigned long timeout = jiffies + msec20_to_jiffies; int ret = 1; /* 20 msec timeout read */ /* 20 msec timeout read */ while (nolock_regb_read(priv, MISTAT) & MISTAT_BUSY) { while ((nolock_regb_read(priv, reg) & mask) != val) { if (time_after(jiffies, timeout)) { if (time_after(jiffies, timeout)) { if (netif_msg_drv(priv)) if (netif_msg_drv(priv)) printk(KERN_DEBUG DRV_NAME dev_dbg(&priv->spi->dev, ": PHY ready timeout!\n"); "reg %02x ready timeout!\n", reg); ret = 0; return -ETIMEDOUT; break; } } cpu_relax(); cpu_relax(); } } return ret; return 0; } /* * Wait until the PHY operation is complete. */ static int wait_phy_ready(struct enc28j60_net *priv) { return poll_ready(priv, MISTAT, MISTAT_BUSY, 0) ? 0 : 1; } } /* /* Loading Loading @@ -594,6 +599,32 @@ static void nolock_txfifo_init(struct enc28j60_net *priv, u16 start, u16 end) nolock_regw_write(priv, ETXNDL, end); nolock_regw_write(priv, ETXNDL, end); } } /* * Low power mode shrinks power consumption about 100x, so we'd like * the chip to be in that mode whenever it's inactive. (However, we * can't stay in lowpower mode during suspend with WOL active.) */ static void enc28j60_lowpower(struct enc28j60_net *priv, bool is_low) { if (netif_msg_drv(priv)) dev_dbg(&priv->spi->dev, "%s power...\n", is_low ? "low" : "high"); mutex_lock(&priv->lock); if (is_low) { nolock_reg_bfclr(priv, ECON1, ECON1_RXEN); poll_ready(priv, ESTAT, ESTAT_RXBUSY, 0); poll_ready(priv, ECON1, ECON1_TXRTS, 0); /* ECON2_VRPS was set during initialization */ nolock_reg_bfset(priv, ECON2, ECON2_PWRSV); } else { nolock_reg_bfclr(priv, ECON2, ECON2_PWRSV); poll_ready(priv, ESTAT, ESTAT_CLKRDY, ESTAT_CLKRDY); /* caller sets ECON1_RXEN */ } mutex_unlock(&priv->lock); } static int enc28j60_hw_init(struct enc28j60_net *priv) static int enc28j60_hw_init(struct enc28j60_net *priv) { { u8 reg; u8 reg; Loading @@ -612,8 +643,8 @@ static int enc28j60_hw_init(struct enc28j60_net *priv) priv->tx_retry_count = 0; priv->tx_retry_count = 0; priv->max_pk_counter = 0; priv->max_pk_counter = 0; priv->rxfilter = RXFILTER_NORMAL; priv->rxfilter = RXFILTER_NORMAL; /* enable address auto increment */ /* enable address auto increment and voltage regulator powersave */ nolock_regb_write(priv, ECON2, ECON2_AUTOINC); nolock_regb_write(priv, ECON2, ECON2_AUTOINC | ECON2_VRPS); nolock_rxfifo_init(priv, RXSTART_INIT, RXEND_INIT); nolock_rxfifo_init(priv, RXSTART_INIT, RXEND_INIT); nolock_txfifo_init(priv, TXSTART_INIT, TXEND_INIT); nolock_txfifo_init(priv, TXSTART_INIT, TXEND_INIT); Loading Loading @@ -690,7 +721,7 @@ static int enc28j60_hw_init(struct enc28j60_net *priv) static void enc28j60_hw_enable(struct enc28j60_net *priv) static void enc28j60_hw_enable(struct enc28j60_net *priv) { { /* enable interrutps */ /* enable interrupts */ if (netif_msg_hw(priv)) if (netif_msg_hw(priv)) printk(KERN_DEBUG DRV_NAME ": %s() enabling interrupts.\n", printk(KERN_DEBUG DRV_NAME ": %s() enabling interrupts.\n", __FUNCTION__); __FUNCTION__); Loading Loading @@ -726,15 +757,12 @@ enc28j60_setlink(struct net_device *ndev, u8 autoneg, u16 speed, u8 duplex) int ret = 0; int ret = 0; if (!priv->hw_enable) { if (!priv->hw_enable) { if (autoneg == AUTONEG_DISABLE && speed == SPEED_10) { /* link is in low power mode now; duplex setting * will take effect on next enc28j60_hw_init(). */ if (autoneg == AUTONEG_DISABLE && speed == SPEED_10) priv->full_duplex = (duplex == DUPLEX_FULL); priv->full_duplex = (duplex == DUPLEX_FULL); if (!enc28j60_hw_init(priv)) { else { if (netif_msg_drv(priv)) dev_err(&ndev->dev, "hw_reset() failed\n"); ret = -EINVAL; } } else { if (netif_msg_link(priv)) if (netif_msg_link(priv)) dev_warn(&ndev->dev, dev_warn(&ndev->dev, "unsupported link setting\n"); "unsupported link setting\n"); Loading Loading @@ -1307,7 +1335,8 @@ static int enc28j60_net_open(struct net_device *dev) } } return -EADDRNOTAVAIL; return -EADDRNOTAVAIL; } } /* Reset the hardware here */ /* Reset the hardware here (and take it out of low power mode) */ enc28j60_lowpower(priv, false); enc28j60_hw_disable(priv); enc28j60_hw_disable(priv); if (!enc28j60_hw_init(priv)) { if (!enc28j60_hw_init(priv)) { if (netif_msg_ifup(priv)) if (netif_msg_ifup(priv)) Loading Loading @@ -1337,6 +1366,7 @@ static int enc28j60_net_close(struct net_device *dev) printk(KERN_DEBUG DRV_NAME ": %s() enter\n", __FUNCTION__); printk(KERN_DEBUG DRV_NAME ": %s() enter\n", __FUNCTION__); enc28j60_hw_disable(priv); enc28j60_hw_disable(priv); enc28j60_lowpower(priv, true); netif_stop_queue(dev); netif_stop_queue(dev); return 0; return 0; Loading Loading @@ -1537,6 +1567,8 @@ static int __devinit enc28j60_probe(struct spi_device *spi) dev->watchdog_timeo = TX_TIMEOUT; dev->watchdog_timeo = TX_TIMEOUT; SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); enc28j60_lowpower(priv, true); ret = register_netdev(dev); ret = register_netdev(dev); if (ret) { if (ret) { if (netif_msg_probe(priv)) if (netif_msg_probe(priv)) Loading @@ -1556,7 +1588,7 @@ error_alloc: return ret; return ret; } } static int enc28j60_remove(struct spi_device *spi) static int __devexit enc28j60_remove(struct spi_device *spi) { { struct enc28j60_net *priv = dev_get_drvdata(&spi->dev); struct enc28j60_net *priv = dev_get_drvdata(&spi->dev); Loading @@ -1573,7 +1605,6 @@ static int enc28j60_remove(struct spi_device *spi) static struct spi_driver enc28j60_driver = { static struct spi_driver enc28j60_driver = { .driver = { .driver = { .name = DRV_NAME, .name = DRV_NAME, .bus = &spi_bus_type, .owner = THIS_MODULE, .owner = THIS_MODULE, }, }, .probe = enc28j60_probe, .probe = enc28j60_probe, Loading @@ -1582,6 +1613,8 @@ static struct spi_driver enc28j60_driver = { static int __init enc28j60_init(void) static int __init enc28j60_init(void) { { msec20_to_jiffies = msecs_to_jiffies(20); return spi_register_driver(&enc28j60_driver); return spi_register_driver(&enc28j60_driver); } } Loading drivers/net/ibm_newemac/Kconfig +1 −0 Original line number Original line Diff line number Diff line config IBM_NEW_EMAC config IBM_NEW_EMAC tristate "IBM EMAC Ethernet support" tristate "IBM EMAC Ethernet support" depends on PPC_DCR && PPC_MERGE depends on PPC_DCR && PPC_MERGE select CRC32 help help This driver supports the IBM EMAC family of Ethernet controllers This driver supports the IBM EMAC family of Ethernet controllers typically found on 4xx embedded PowerPC chips, but also on the typically found on 4xx embedded PowerPC chips, but also on the Loading drivers/net/netxen/netxen_nic.h +1 −17 Original line number Original line Diff line number Diff line Loading @@ -776,7 +776,6 @@ struct netxen_hardware_context { u8 revision_id; u8 revision_id; u16 board_type; u16 board_type; u16 max_ports; struct netxen_board_info boardcfg; struct netxen_board_info boardcfg; u32 xg_linkup; u32 xg_linkup; u32 qg_linksup; u32 qg_linksup; Loading Loading @@ -863,6 +862,7 @@ struct netxen_adapter { unsigned char mac_addr[ETH_ALEN]; unsigned char mac_addr[ETH_ALEN]; int mtu; int mtu; int portnum; int portnum; u8 physical_port; struct work_struct watchdog_task; struct work_struct watchdog_task; struct timer_list watchdog_timer; struct timer_list watchdog_timer; Loading Loading @@ -1034,7 +1034,6 @@ int netxen_rom_se(struct netxen_adapter *adapter, int addr); /* Functions from netxen_nic_isr.c */ /* Functions from netxen_nic_isr.c */ void netxen_initialize_adapter_sw(struct netxen_adapter *adapter); void netxen_initialize_adapter_sw(struct netxen_adapter *adapter); void netxen_initialize_adapter_hw(struct netxen_adapter *adapter); void *netxen_alloc(struct pci_dev *pdev, size_t sz, dma_addr_t * ptr, void *netxen_alloc(struct pci_dev *pdev, size_t sz, dma_addr_t * ptr, struct pci_dev **used_dev); struct pci_dev **used_dev); void netxen_initialize_adapter_ops(struct netxen_adapter *adapter); void netxen_initialize_adapter_ops(struct netxen_adapter *adapter); Loading Loading @@ -1077,20 +1076,6 @@ static const struct netxen_brdinfo netxen_boards[] = { #define NUM_SUPPORTED_BOARDS ARRAY_SIZE(netxen_boards) #define NUM_SUPPORTED_BOARDS ARRAY_SIZE(netxen_boards) static inline void get_brd_port_by_type(u32 type, int *ports) { int i, found = 0; for (i = 0; i < NUM_SUPPORTED_BOARDS; ++i) { if (netxen_boards[i].brdtype == type) { *ports = netxen_boards[i].ports; found = 1; break; } } if (!found) *ports = 0; } static inline void get_brd_name_by_type(u32 type, char *name) static inline void get_brd_name_by_type(u32 type, char *name) { { int i, found = 0; int i, found = 0; Loading Loading @@ -1169,5 +1154,4 @@ extern int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, extern struct ethtool_ops netxen_nic_ethtool_ops; extern struct ethtool_ops netxen_nic_ethtool_ops; extern int physical_port[]; /* physical port # from virtual port.*/ #endif /* __NETXEN_NIC_H_ */ #endif /* __NETXEN_NIC_H_ */ drivers/net/netxen/netxen_nic_ethtool.c +3 −3 Original line number Original line Diff line number Diff line Loading @@ -369,7 +369,7 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) for (i = 3; niu_registers[mode].reg[i - 3] != -1; i++) { for (i = 3; niu_registers[mode].reg[i - 3] != -1; i++) { /* GB: port specific registers */ /* GB: port specific registers */ if (mode == 0 && i >= 19) if (mode == 0 && i >= 19) window = physical_port[adapter->portnum] * window = adapter->physical_port * NETXEN_NIC_PORT_WINDOW; NETXEN_NIC_PORT_WINDOW; NETXEN_NIC_LOCKED_READ_REG(niu_registers[mode]. NETXEN_NIC_LOCKED_READ_REG(niu_registers[mode]. Loading Loading @@ -527,7 +527,7 @@ netxen_nic_get_pauseparam(struct net_device *dev, { { struct netxen_adapter *adapter = netdev_priv(dev); struct netxen_adapter *adapter = netdev_priv(dev); __u32 val; __u32 val; int port = physical_port[adapter->portnum]; int port = adapter->physical_port; if (adapter->ahw.board_type == NETXEN_NIC_GBE) { if (adapter->ahw.board_type == NETXEN_NIC_GBE) { if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) Loading Loading @@ -573,7 +573,7 @@ netxen_nic_set_pauseparam(struct net_device *dev, { { struct netxen_adapter *adapter = netdev_priv(dev); struct netxen_adapter *adapter = netdev_priv(dev); __u32 val; __u32 val; int port = physical_port[adapter->portnum]; int port = adapter->physical_port; /* read mode */ /* read mode */ if (adapter->ahw.board_type == NETXEN_NIC_GBE) { if (adapter->ahw.board_type == NETXEN_NIC_GBE) { if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) Loading Loading
drivers/net/atlx/atl1.c +0 −1 Original line number Original line Diff line number Diff line Loading @@ -471,7 +471,6 @@ static int atl1_get_permanent_address(struct atl1_hw *hw) memcpy(hw->perm_mac_addr, eth_addr, ETH_ALEN); memcpy(hw->perm_mac_addr, eth_addr, ETH_ALEN); return 0; return 0; } } return 1; } } /* see if SPI FLAGS exist ? */ /* see if SPI FLAGS exist ? */ Loading
drivers/net/enc28j60.c +60 −27 Original line number Original line Diff line number Diff line Loading @@ -400,26 +400,31 @@ enc28j60_packet_write(struct enc28j60_net *priv, int len, const u8 *data) mutex_unlock(&priv->lock); mutex_unlock(&priv->lock); } } /* static unsigned long msec20_to_jiffies; * Wait until the PHY operation is complete. */ static int poll_ready(struct enc28j60_net *priv, u8 reg, u8 mask, u8 val) static int wait_phy_ready(struct enc28j60_net *priv) { { unsigned long timeout = jiffies + 20 * HZ / 1000; unsigned long timeout = jiffies + msec20_to_jiffies; int ret = 1; /* 20 msec timeout read */ /* 20 msec timeout read */ while (nolock_regb_read(priv, MISTAT) & MISTAT_BUSY) { while ((nolock_regb_read(priv, reg) & mask) != val) { if (time_after(jiffies, timeout)) { if (time_after(jiffies, timeout)) { if (netif_msg_drv(priv)) if (netif_msg_drv(priv)) printk(KERN_DEBUG DRV_NAME dev_dbg(&priv->spi->dev, ": PHY ready timeout!\n"); "reg %02x ready timeout!\n", reg); ret = 0; return -ETIMEDOUT; break; } } cpu_relax(); cpu_relax(); } } return ret; return 0; } /* * Wait until the PHY operation is complete. */ static int wait_phy_ready(struct enc28j60_net *priv) { return poll_ready(priv, MISTAT, MISTAT_BUSY, 0) ? 0 : 1; } } /* /* Loading Loading @@ -594,6 +599,32 @@ static void nolock_txfifo_init(struct enc28j60_net *priv, u16 start, u16 end) nolock_regw_write(priv, ETXNDL, end); nolock_regw_write(priv, ETXNDL, end); } } /* * Low power mode shrinks power consumption about 100x, so we'd like * the chip to be in that mode whenever it's inactive. (However, we * can't stay in lowpower mode during suspend with WOL active.) */ static void enc28j60_lowpower(struct enc28j60_net *priv, bool is_low) { if (netif_msg_drv(priv)) dev_dbg(&priv->spi->dev, "%s power...\n", is_low ? "low" : "high"); mutex_lock(&priv->lock); if (is_low) { nolock_reg_bfclr(priv, ECON1, ECON1_RXEN); poll_ready(priv, ESTAT, ESTAT_RXBUSY, 0); poll_ready(priv, ECON1, ECON1_TXRTS, 0); /* ECON2_VRPS was set during initialization */ nolock_reg_bfset(priv, ECON2, ECON2_PWRSV); } else { nolock_reg_bfclr(priv, ECON2, ECON2_PWRSV); poll_ready(priv, ESTAT, ESTAT_CLKRDY, ESTAT_CLKRDY); /* caller sets ECON1_RXEN */ } mutex_unlock(&priv->lock); } static int enc28j60_hw_init(struct enc28j60_net *priv) static int enc28j60_hw_init(struct enc28j60_net *priv) { { u8 reg; u8 reg; Loading @@ -612,8 +643,8 @@ static int enc28j60_hw_init(struct enc28j60_net *priv) priv->tx_retry_count = 0; priv->tx_retry_count = 0; priv->max_pk_counter = 0; priv->max_pk_counter = 0; priv->rxfilter = RXFILTER_NORMAL; priv->rxfilter = RXFILTER_NORMAL; /* enable address auto increment */ /* enable address auto increment and voltage regulator powersave */ nolock_regb_write(priv, ECON2, ECON2_AUTOINC); nolock_regb_write(priv, ECON2, ECON2_AUTOINC | ECON2_VRPS); nolock_rxfifo_init(priv, RXSTART_INIT, RXEND_INIT); nolock_rxfifo_init(priv, RXSTART_INIT, RXEND_INIT); nolock_txfifo_init(priv, TXSTART_INIT, TXEND_INIT); nolock_txfifo_init(priv, TXSTART_INIT, TXEND_INIT); Loading Loading @@ -690,7 +721,7 @@ static int enc28j60_hw_init(struct enc28j60_net *priv) static void enc28j60_hw_enable(struct enc28j60_net *priv) static void enc28j60_hw_enable(struct enc28j60_net *priv) { { /* enable interrutps */ /* enable interrupts */ if (netif_msg_hw(priv)) if (netif_msg_hw(priv)) printk(KERN_DEBUG DRV_NAME ": %s() enabling interrupts.\n", printk(KERN_DEBUG DRV_NAME ": %s() enabling interrupts.\n", __FUNCTION__); __FUNCTION__); Loading Loading @@ -726,15 +757,12 @@ enc28j60_setlink(struct net_device *ndev, u8 autoneg, u16 speed, u8 duplex) int ret = 0; int ret = 0; if (!priv->hw_enable) { if (!priv->hw_enable) { if (autoneg == AUTONEG_DISABLE && speed == SPEED_10) { /* link is in low power mode now; duplex setting * will take effect on next enc28j60_hw_init(). */ if (autoneg == AUTONEG_DISABLE && speed == SPEED_10) priv->full_duplex = (duplex == DUPLEX_FULL); priv->full_duplex = (duplex == DUPLEX_FULL); if (!enc28j60_hw_init(priv)) { else { if (netif_msg_drv(priv)) dev_err(&ndev->dev, "hw_reset() failed\n"); ret = -EINVAL; } } else { if (netif_msg_link(priv)) if (netif_msg_link(priv)) dev_warn(&ndev->dev, dev_warn(&ndev->dev, "unsupported link setting\n"); "unsupported link setting\n"); Loading Loading @@ -1307,7 +1335,8 @@ static int enc28j60_net_open(struct net_device *dev) } } return -EADDRNOTAVAIL; return -EADDRNOTAVAIL; } } /* Reset the hardware here */ /* Reset the hardware here (and take it out of low power mode) */ enc28j60_lowpower(priv, false); enc28j60_hw_disable(priv); enc28j60_hw_disable(priv); if (!enc28j60_hw_init(priv)) { if (!enc28j60_hw_init(priv)) { if (netif_msg_ifup(priv)) if (netif_msg_ifup(priv)) Loading Loading @@ -1337,6 +1366,7 @@ static int enc28j60_net_close(struct net_device *dev) printk(KERN_DEBUG DRV_NAME ": %s() enter\n", __FUNCTION__); printk(KERN_DEBUG DRV_NAME ": %s() enter\n", __FUNCTION__); enc28j60_hw_disable(priv); enc28j60_hw_disable(priv); enc28j60_lowpower(priv, true); netif_stop_queue(dev); netif_stop_queue(dev); return 0; return 0; Loading Loading @@ -1537,6 +1567,8 @@ static int __devinit enc28j60_probe(struct spi_device *spi) dev->watchdog_timeo = TX_TIMEOUT; dev->watchdog_timeo = TX_TIMEOUT; SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); SET_ETHTOOL_OPS(dev, &enc28j60_ethtool_ops); enc28j60_lowpower(priv, true); ret = register_netdev(dev); ret = register_netdev(dev); if (ret) { if (ret) { if (netif_msg_probe(priv)) if (netif_msg_probe(priv)) Loading @@ -1556,7 +1588,7 @@ error_alloc: return ret; return ret; } } static int enc28j60_remove(struct spi_device *spi) static int __devexit enc28j60_remove(struct spi_device *spi) { { struct enc28j60_net *priv = dev_get_drvdata(&spi->dev); struct enc28j60_net *priv = dev_get_drvdata(&spi->dev); Loading @@ -1573,7 +1605,6 @@ static int enc28j60_remove(struct spi_device *spi) static struct spi_driver enc28j60_driver = { static struct spi_driver enc28j60_driver = { .driver = { .driver = { .name = DRV_NAME, .name = DRV_NAME, .bus = &spi_bus_type, .owner = THIS_MODULE, .owner = THIS_MODULE, }, }, .probe = enc28j60_probe, .probe = enc28j60_probe, Loading @@ -1582,6 +1613,8 @@ static struct spi_driver enc28j60_driver = { static int __init enc28j60_init(void) static int __init enc28j60_init(void) { { msec20_to_jiffies = msecs_to_jiffies(20); return spi_register_driver(&enc28j60_driver); return spi_register_driver(&enc28j60_driver); } } Loading
drivers/net/ibm_newemac/Kconfig +1 −0 Original line number Original line Diff line number Diff line config IBM_NEW_EMAC config IBM_NEW_EMAC tristate "IBM EMAC Ethernet support" tristate "IBM EMAC Ethernet support" depends on PPC_DCR && PPC_MERGE depends on PPC_DCR && PPC_MERGE select CRC32 help help This driver supports the IBM EMAC family of Ethernet controllers This driver supports the IBM EMAC family of Ethernet controllers typically found on 4xx embedded PowerPC chips, but also on the typically found on 4xx embedded PowerPC chips, but also on the Loading
drivers/net/netxen/netxen_nic.h +1 −17 Original line number Original line Diff line number Diff line Loading @@ -776,7 +776,6 @@ struct netxen_hardware_context { u8 revision_id; u8 revision_id; u16 board_type; u16 board_type; u16 max_ports; struct netxen_board_info boardcfg; struct netxen_board_info boardcfg; u32 xg_linkup; u32 xg_linkup; u32 qg_linksup; u32 qg_linksup; Loading Loading @@ -863,6 +862,7 @@ struct netxen_adapter { unsigned char mac_addr[ETH_ALEN]; unsigned char mac_addr[ETH_ALEN]; int mtu; int mtu; int portnum; int portnum; u8 physical_port; struct work_struct watchdog_task; struct work_struct watchdog_task; struct timer_list watchdog_timer; struct timer_list watchdog_timer; Loading Loading @@ -1034,7 +1034,6 @@ int netxen_rom_se(struct netxen_adapter *adapter, int addr); /* Functions from netxen_nic_isr.c */ /* Functions from netxen_nic_isr.c */ void netxen_initialize_adapter_sw(struct netxen_adapter *adapter); void netxen_initialize_adapter_sw(struct netxen_adapter *adapter); void netxen_initialize_adapter_hw(struct netxen_adapter *adapter); void *netxen_alloc(struct pci_dev *pdev, size_t sz, dma_addr_t * ptr, void *netxen_alloc(struct pci_dev *pdev, size_t sz, dma_addr_t * ptr, struct pci_dev **used_dev); struct pci_dev **used_dev); void netxen_initialize_adapter_ops(struct netxen_adapter *adapter); void netxen_initialize_adapter_ops(struct netxen_adapter *adapter); Loading Loading @@ -1077,20 +1076,6 @@ static const struct netxen_brdinfo netxen_boards[] = { #define NUM_SUPPORTED_BOARDS ARRAY_SIZE(netxen_boards) #define NUM_SUPPORTED_BOARDS ARRAY_SIZE(netxen_boards) static inline void get_brd_port_by_type(u32 type, int *ports) { int i, found = 0; for (i = 0; i < NUM_SUPPORTED_BOARDS; ++i) { if (netxen_boards[i].brdtype == type) { *ports = netxen_boards[i].ports; found = 1; break; } } if (!found) *ports = 0; } static inline void get_brd_name_by_type(u32 type, char *name) static inline void get_brd_name_by_type(u32 type, char *name) { { int i, found = 0; int i, found = 0; Loading Loading @@ -1169,5 +1154,4 @@ extern int netxen_rom_fast_read(struct netxen_adapter *adapter, int addr, extern struct ethtool_ops netxen_nic_ethtool_ops; extern struct ethtool_ops netxen_nic_ethtool_ops; extern int physical_port[]; /* physical port # from virtual port.*/ #endif /* __NETXEN_NIC_H_ */ #endif /* __NETXEN_NIC_H_ */
drivers/net/netxen/netxen_nic_ethtool.c +3 −3 Original line number Original line Diff line number Diff line Loading @@ -369,7 +369,7 @@ netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p) for (i = 3; niu_registers[mode].reg[i - 3] != -1; i++) { for (i = 3; niu_registers[mode].reg[i - 3] != -1; i++) { /* GB: port specific registers */ /* GB: port specific registers */ if (mode == 0 && i >= 19) if (mode == 0 && i >= 19) window = physical_port[adapter->portnum] * window = adapter->physical_port * NETXEN_NIC_PORT_WINDOW; NETXEN_NIC_PORT_WINDOW; NETXEN_NIC_LOCKED_READ_REG(niu_registers[mode]. NETXEN_NIC_LOCKED_READ_REG(niu_registers[mode]. Loading Loading @@ -527,7 +527,7 @@ netxen_nic_get_pauseparam(struct net_device *dev, { { struct netxen_adapter *adapter = netdev_priv(dev); struct netxen_adapter *adapter = netdev_priv(dev); __u32 val; __u32 val; int port = physical_port[adapter->portnum]; int port = adapter->physical_port; if (adapter->ahw.board_type == NETXEN_NIC_GBE) { if (adapter->ahw.board_type == NETXEN_NIC_GBE) { if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) Loading Loading @@ -573,7 +573,7 @@ netxen_nic_set_pauseparam(struct net_device *dev, { { struct netxen_adapter *adapter = netdev_priv(dev); struct netxen_adapter *adapter = netdev_priv(dev); __u32 val; __u32 val; int port = physical_port[adapter->portnum]; int port = adapter->physical_port; /* read mode */ /* read mode */ if (adapter->ahw.board_type == NETXEN_NIC_GBE) { if (adapter->ahw.board_type == NETXEN_NIC_GBE) { if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) if ((port < 0) || (port > NETXEN_NIU_MAX_GBE_PORTS)) Loading