Loading drivers/net/8139cp.c +7 −0 Original line number Diff line number Diff line Loading @@ -1897,6 +1897,7 @@ static int cp_resume (struct pci_dev *pdev) { struct net_device *dev; struct cp_private *cp; unsigned long flags; dev = pci_get_drvdata (pdev); cp = netdev_priv(dev); Loading @@ -1911,6 +1912,12 @@ static int cp_resume (struct pci_dev *pdev) cp_init_hw (cp); netif_start_queue (dev); spin_lock_irqsave (&cp->lock, flags); mii_check_media(&cp->mii_if, netif_msg_link(cp), FALSE); spin_unlock_irqrestore (&cp->lock, flags); return 0; } #endif /* CONFIG_PM */ Loading drivers/net/dm9000.c +26 −26 Original line number Diff line number Diff line Loading @@ -48,6 +48,10 @@ * net_device_stats * * introduced tx_timeout function * * reworked locking * * 01-Jul-2005 Ben Dooks <ben@simtec.co.uk> * * fixed spinlock call without pointer * * ensure spinlock is initialised */ #include <linux/module.h> Loading Loading @@ -148,7 +152,6 @@ static int dm9000_probe(struct device *); static int dm9000_open(struct net_device *); static int dm9000_start_xmit(struct sk_buff *, struct net_device *); static int dm9000_stop(struct net_device *); static int dm9000_do_ioctl(struct net_device *, struct ifreq *, int); static void dm9000_timer(unsigned long); Loading Loading @@ -322,7 +325,7 @@ static void dm9000_timeout(struct net_device *dev) /* Save previous register address */ reg_save = readb(db->io_addr); spin_lock_irqsave(db->lock,flags); spin_lock_irqsave(&db->lock,flags); netif_stop_queue(dev); dm9000_reset(db); Loading @@ -333,7 +336,7 @@ static void dm9000_timeout(struct net_device *dev) /* Restore previous register address */ writeb(reg_save, db->io_addr); spin_unlock_irqrestore(db->lock,flags); spin_unlock_irqrestore(&db->lock,flags); } Loading Loading @@ -387,8 +390,6 @@ dm9000_probe(struct device *dev) int i; u32 id_val; printk(KERN_INFO "%s Ethernet Driver\n", CARDNAME); /* Init network device */ ndev = alloc_etherdev(sizeof (struct board_info)); if (!ndev) { Loading @@ -405,6 +406,8 @@ dm9000_probe(struct device *dev) db = (struct board_info *) ndev->priv; memset(db, 0, sizeof (*db)); spin_lock_init(&db->lock); if (pdev->num_resources < 2) { ret = -ENODEV; goto out; Loading Loading @@ -541,7 +544,6 @@ dm9000_probe(struct device *dev) ndev->stop = &dm9000_stop; ndev->get_stats = &dm9000_get_stats; ndev->set_multicast_list = &dm9000_hash_table; ndev->do_ioctl = &dm9000_do_ioctl; #ifdef DM9000_PROGRAM_EEPROM program_eeprom(db); Loading Loading @@ -612,7 +614,7 @@ dm9000_open(struct net_device *dev) /* set and active a timer process */ init_timer(&db->timer); db->timer.expires = DM9000_TIMER_WUT * 2; db->timer.expires = DM9000_TIMER_WUT; db->timer.data = (unsigned long) dev; db->timer.function = &dm9000_timer; add_timer(&db->timer); Loading Loading @@ -845,15 +847,6 @@ dm9000_get_stats(struct net_device *dev) return &db->stats; } /* * Process the upper socket ioctl command */ static int dm9000_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { PRINTK1("entering %s\n",__FUNCTION__); return 0; } /* * A periodic timer routine Loading @@ -864,21 +857,11 @@ dm9000_timer(unsigned long data) { struct net_device *dev = (struct net_device *) data; board_info_t *db = (board_info_t *) dev->priv; u8 reg_save; unsigned long flags; PRINTK3("dm9000_timer()\n"); spin_lock_irqsave(db->lock,flags); /* Save previous register address */ reg_save = readb(db->io_addr); mii_check_media(&db->mii, netif_msg_link(db), 0); /* Restore previous register address */ writeb(reg_save, db->io_addr); spin_unlock_irqrestore(db->lock,flags); /* Set timer again */ db->timer.expires = DM9000_TIMER_WUT; add_timer(&db->timer); Loading Loading @@ -1098,9 +1081,14 @@ dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg) { board_info_t *db = (board_info_t *) dev->priv; unsigned long flags; unsigned int reg_save; int ret; spin_lock_irqsave(&db->lock,flags); /* Save previous register address */ reg_save = readb(db->io_addr); /* Fill the phyxcer register into REG_0C */ iow(db, DM9000_EPAR, DM9000_PHY | reg); Loading @@ -1111,6 +1099,9 @@ dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg) /* The read data keeps on REG_0D & REG_0E */ ret = (ior(db, DM9000_EPDRH) << 8) | ior(db, DM9000_EPDRL); /* restore the previous address */ writeb(reg_save, db->io_addr); spin_unlock_irqrestore(&db->lock,flags); return ret; Loading @@ -1124,9 +1115,13 @@ dm9000_phy_write(struct net_device *dev, int phyaddr_unused, int reg, int value) { board_info_t *db = (board_info_t *) dev->priv; unsigned long flags; unsigned long reg_save; spin_lock_irqsave(&db->lock,flags); /* Save previous register address */ reg_save = readb(db->io_addr); /* Fill the phyxcer register into REG_0C */ iow(db, DM9000_EPAR, DM9000_PHY | reg); Loading @@ -1138,6 +1133,9 @@ dm9000_phy_write(struct net_device *dev, int phyaddr_unused, int reg, int value) udelay(500); /* Wait write complete */ iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer write command */ /* restore the previous address */ writeb(reg_save, db->io_addr); spin_unlock_irqrestore(&db->lock,flags); } Loading Loading @@ -1202,6 +1200,8 @@ static struct device_driver dm9000_driver = { static int __init dm9000_init(void) { printk(KERN_INFO "%s Ethernet Driver\n", CARDNAME); return driver_register(&dm9000_driver); /* search board and register */ } Loading drivers/net/ioc3-eth.c +4 −4 Original line number Diff line number Diff line Loading @@ -499,7 +499,7 @@ static int ioc3_mdio_read(struct net_device *dev, int phy, int reg) ioc3_w_micr((phy << MICR_PHYADDR_SHIFT) | reg | MICR_READTRIG); while (ioc3_r_micr() & MICR_BUSY); return ioc3_r_micr() & MIDR_DATA_MASK; return ioc3_r_midr_r() & MIDR_DATA_MASK; } static void ioc3_mdio_write(struct net_device *dev, int phy, int reg, int data) Loading Loading @@ -1291,7 +1291,6 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent) dev->features = NETIF_F_IP_CSUM; #endif ioc3_setup_duplex(ip); sw_physid1 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID1); sw_physid2 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID2); Loading @@ -1300,6 +1299,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto out_stop; mii_check_media(&ip->mii, 1, 1); ioc3_setup_duplex(ip); vendor = (sw_physid1 << 12) | (sw_physid2 >> 4); model = (sw_physid2 >> 4) & 0x3f; Loading Loading
drivers/net/8139cp.c +7 −0 Original line number Diff line number Diff line Loading @@ -1897,6 +1897,7 @@ static int cp_resume (struct pci_dev *pdev) { struct net_device *dev; struct cp_private *cp; unsigned long flags; dev = pci_get_drvdata (pdev); cp = netdev_priv(dev); Loading @@ -1911,6 +1912,12 @@ static int cp_resume (struct pci_dev *pdev) cp_init_hw (cp); netif_start_queue (dev); spin_lock_irqsave (&cp->lock, flags); mii_check_media(&cp->mii_if, netif_msg_link(cp), FALSE); spin_unlock_irqrestore (&cp->lock, flags); return 0; } #endif /* CONFIG_PM */ Loading
drivers/net/dm9000.c +26 −26 Original line number Diff line number Diff line Loading @@ -48,6 +48,10 @@ * net_device_stats * * introduced tx_timeout function * * reworked locking * * 01-Jul-2005 Ben Dooks <ben@simtec.co.uk> * * fixed spinlock call without pointer * * ensure spinlock is initialised */ #include <linux/module.h> Loading Loading @@ -148,7 +152,6 @@ static int dm9000_probe(struct device *); static int dm9000_open(struct net_device *); static int dm9000_start_xmit(struct sk_buff *, struct net_device *); static int dm9000_stop(struct net_device *); static int dm9000_do_ioctl(struct net_device *, struct ifreq *, int); static void dm9000_timer(unsigned long); Loading Loading @@ -322,7 +325,7 @@ static void dm9000_timeout(struct net_device *dev) /* Save previous register address */ reg_save = readb(db->io_addr); spin_lock_irqsave(db->lock,flags); spin_lock_irqsave(&db->lock,flags); netif_stop_queue(dev); dm9000_reset(db); Loading @@ -333,7 +336,7 @@ static void dm9000_timeout(struct net_device *dev) /* Restore previous register address */ writeb(reg_save, db->io_addr); spin_unlock_irqrestore(db->lock,flags); spin_unlock_irqrestore(&db->lock,flags); } Loading Loading @@ -387,8 +390,6 @@ dm9000_probe(struct device *dev) int i; u32 id_val; printk(KERN_INFO "%s Ethernet Driver\n", CARDNAME); /* Init network device */ ndev = alloc_etherdev(sizeof (struct board_info)); if (!ndev) { Loading @@ -405,6 +406,8 @@ dm9000_probe(struct device *dev) db = (struct board_info *) ndev->priv; memset(db, 0, sizeof (*db)); spin_lock_init(&db->lock); if (pdev->num_resources < 2) { ret = -ENODEV; goto out; Loading Loading @@ -541,7 +544,6 @@ dm9000_probe(struct device *dev) ndev->stop = &dm9000_stop; ndev->get_stats = &dm9000_get_stats; ndev->set_multicast_list = &dm9000_hash_table; ndev->do_ioctl = &dm9000_do_ioctl; #ifdef DM9000_PROGRAM_EEPROM program_eeprom(db); Loading Loading @@ -612,7 +614,7 @@ dm9000_open(struct net_device *dev) /* set and active a timer process */ init_timer(&db->timer); db->timer.expires = DM9000_TIMER_WUT * 2; db->timer.expires = DM9000_TIMER_WUT; db->timer.data = (unsigned long) dev; db->timer.function = &dm9000_timer; add_timer(&db->timer); Loading Loading @@ -845,15 +847,6 @@ dm9000_get_stats(struct net_device *dev) return &db->stats; } /* * Process the upper socket ioctl command */ static int dm9000_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) { PRINTK1("entering %s\n",__FUNCTION__); return 0; } /* * A periodic timer routine Loading @@ -864,21 +857,11 @@ dm9000_timer(unsigned long data) { struct net_device *dev = (struct net_device *) data; board_info_t *db = (board_info_t *) dev->priv; u8 reg_save; unsigned long flags; PRINTK3("dm9000_timer()\n"); spin_lock_irqsave(db->lock,flags); /* Save previous register address */ reg_save = readb(db->io_addr); mii_check_media(&db->mii, netif_msg_link(db), 0); /* Restore previous register address */ writeb(reg_save, db->io_addr); spin_unlock_irqrestore(db->lock,flags); /* Set timer again */ db->timer.expires = DM9000_TIMER_WUT; add_timer(&db->timer); Loading Loading @@ -1098,9 +1081,14 @@ dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg) { board_info_t *db = (board_info_t *) dev->priv; unsigned long flags; unsigned int reg_save; int ret; spin_lock_irqsave(&db->lock,flags); /* Save previous register address */ reg_save = readb(db->io_addr); /* Fill the phyxcer register into REG_0C */ iow(db, DM9000_EPAR, DM9000_PHY | reg); Loading @@ -1111,6 +1099,9 @@ dm9000_phy_read(struct net_device *dev, int phy_reg_unused, int reg) /* The read data keeps on REG_0D & REG_0E */ ret = (ior(db, DM9000_EPDRH) << 8) | ior(db, DM9000_EPDRL); /* restore the previous address */ writeb(reg_save, db->io_addr); spin_unlock_irqrestore(&db->lock,flags); return ret; Loading @@ -1124,9 +1115,13 @@ dm9000_phy_write(struct net_device *dev, int phyaddr_unused, int reg, int value) { board_info_t *db = (board_info_t *) dev->priv; unsigned long flags; unsigned long reg_save; spin_lock_irqsave(&db->lock,flags); /* Save previous register address */ reg_save = readb(db->io_addr); /* Fill the phyxcer register into REG_0C */ iow(db, DM9000_EPAR, DM9000_PHY | reg); Loading @@ -1138,6 +1133,9 @@ dm9000_phy_write(struct net_device *dev, int phyaddr_unused, int reg, int value) udelay(500); /* Wait write complete */ iow(db, DM9000_EPCR, 0x0); /* Clear phyxcer write command */ /* restore the previous address */ writeb(reg_save, db->io_addr); spin_unlock_irqrestore(&db->lock,flags); } Loading Loading @@ -1202,6 +1200,8 @@ static struct device_driver dm9000_driver = { static int __init dm9000_init(void) { printk(KERN_INFO "%s Ethernet Driver\n", CARDNAME); return driver_register(&dm9000_driver); /* search board and register */ } Loading
drivers/net/ioc3-eth.c +4 −4 Original line number Diff line number Diff line Loading @@ -499,7 +499,7 @@ static int ioc3_mdio_read(struct net_device *dev, int phy, int reg) ioc3_w_micr((phy << MICR_PHYADDR_SHIFT) | reg | MICR_READTRIG); while (ioc3_r_micr() & MICR_BUSY); return ioc3_r_micr() & MIDR_DATA_MASK; return ioc3_r_midr_r() & MIDR_DATA_MASK; } static void ioc3_mdio_write(struct net_device *dev, int phy, int reg, int data) Loading Loading @@ -1291,7 +1291,6 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent) dev->features = NETIF_F_IP_CSUM; #endif ioc3_setup_duplex(ip); sw_physid1 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID1); sw_physid2 = ioc3_mdio_read(dev, ip->mii.phy_id, MII_PHYSID2); Loading @@ -1300,6 +1299,7 @@ static int ioc3_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto out_stop; mii_check_media(&ip->mii, 1, 1); ioc3_setup_duplex(ip); vendor = (sw_physid1 << 12) | (sw_physid2 >> 4); model = (sw_physid2 >> 4) & 0x3f; Loading