smsc95xx.c (404c3bc30cb1361e1b3533643326ab472d24a618) | smsc95xx.c (9fa32e94dc4f08505934b9b015e2dfea9ae18555) |
---|---|
1 /*************************************************************************** 2 * 3 * Copyright (C) 2007-2008 SMSC 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation; either version 2 8 * of the License, or (at your option) any later version. --- 564 unchanged lines hidden (view full) --- 573 netdev_warn(dev->net, "EEPROM: magic value mismatch, magic = 0x%x\n", 574 ee->magic); 575 return -EINVAL; 576 } 577 578 return smsc95xx_write_eeprom(dev, ee->offset, ee->len, data); 579} 580 | 1 /*************************************************************************** 2 * 3 * Copyright (C) 2007-2008 SMSC 4 * 5 * This program is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU General Public License 7 * as published by the Free Software Foundation; either version 2 8 * of the License, or (at your option) any later version. --- 564 unchanged lines hidden (view full) --- 573 netdev_warn(dev->net, "EEPROM: magic value mismatch, magic = 0x%x\n", 574 ee->magic); 575 return -EINVAL; 576 } 577 578 return smsc95xx_write_eeprom(dev, ee->offset, ee->len, data); 579} 580 |
581static int smsc95xx_ethtool_getregslen(struct net_device *netdev) 582{ 583 /* all smsc95xx registers */ 584 return COE_CR - ID_REV + 1; 585} 586 587static void 588smsc95xx_ethtool_getregs(struct net_device *netdev, struct ethtool_regs *regs, 589 void *buf) 590{ 591 struct usbnet *dev = netdev_priv(netdev); 592 unsigned int i, j, retval; 593 u32 *data = buf; 594 595 retval = smsc95xx_read_reg(dev, ID_REV, ®s->version); 596 if (retval < 0) { 597 netdev_warn(netdev, "REGS: cannot read ID_REV\n"); 598 return; 599 } 600 601 for (i = ID_REV, j = 0; i <= COE_CR; i += (sizeof(u32)), j++) { 602 retval = smsc95xx_read_reg(dev, i, &data[j]); 603 if (retval < 0) { 604 netdev_warn(netdev, "REGS: cannot read reg[%x]\n", i); 605 return; 606 } 607 } 608} 609 |
|
581static const struct ethtool_ops smsc95xx_ethtool_ops = { 582 .get_link = usbnet_get_link, 583 .nway_reset = usbnet_nway_reset, 584 .get_drvinfo = usbnet_get_drvinfo, 585 .get_msglevel = usbnet_get_msglevel, 586 .set_msglevel = usbnet_set_msglevel, 587 .get_settings = usbnet_get_settings, 588 .set_settings = usbnet_set_settings, 589 .get_eeprom_len = smsc95xx_ethtool_get_eeprom_len, 590 .get_eeprom = smsc95xx_ethtool_get_eeprom, 591 .set_eeprom = smsc95xx_ethtool_set_eeprom, | 610static const struct ethtool_ops smsc95xx_ethtool_ops = { 611 .get_link = usbnet_get_link, 612 .nway_reset = usbnet_nway_reset, 613 .get_drvinfo = usbnet_get_drvinfo, 614 .get_msglevel = usbnet_get_msglevel, 615 .set_msglevel = usbnet_set_msglevel, 616 .get_settings = usbnet_get_settings, 617 .set_settings = usbnet_set_settings, 618 .get_eeprom_len = smsc95xx_ethtool_get_eeprom_len, 619 .get_eeprom = smsc95xx_ethtool_get_eeprom, 620 .set_eeprom = smsc95xx_ethtool_set_eeprom, |
621 .get_regs_len = smsc95xx_ethtool_getregslen, 622 .get_regs = smsc95xx_ethtool_getregs, |
|
592}; 593 594static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) 595{ 596 struct usbnet *dev = netdev_priv(netdev); 597 598 if (!netif_running(netdev)) 599 return -EINVAL; --- 709 unchanged lines hidden --- | 623}; 624 625static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd) 626{ 627 struct usbnet *dev = netdev_priv(netdev); 628 629 if (!netif_running(netdev)) 630 return -EINVAL; --- 709 unchanged lines hidden --- |