From patchwork Wed Sep 6 10:51:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nisar Sayed X-Patchwork-Id: 810507 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xnL5L0CQ5z9s3T for ; Wed, 6 Sep 2017 20:52:38 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753266AbdIFKwf convert rfc822-to-8bit (ORCPT ); Wed, 6 Sep 2017 06:52:35 -0400 Received: from esa5.microchip.iphmx.com ([216.71.150.166]:65533 "EHLO esa5.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753117AbdIFKwP (ORCPT ); Wed, 6 Sep 2017 06:52:15 -0400 X-IronPort-AV: E=Sophos;i="5.41,483,1498546800"; d="scan'208";a="4457353" Received: from exsmtp03.microchip.com (HELO email.microchip.com) ([198.175.253.49]) by esa5.microchip.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Sep 2017 03:51:33 -0700 Received: from CHN-SV-EXMX03.mchp-main.com ([fe80::58f5:b949:4b1:3df4]) by chn-sv-exch03.mchp-main.com ([fe80::9916:1afa:df82:7a64%13]) with mapi id 14.03.0352.000; Wed, 6 Sep 2017 03:51:31 -0700 From: To: , CC: Subject: [PATCH net 1/4] lan78xx: Fix for crash associated with System suspend Thread-Topic: [PATCH net 1/4] lan78xx: Fix for crash associated with System suspend Thread-Index: AdMm/FT/4xwnv4GdSm2C6fB/QqdHjg== Date: Wed, 6 Sep 2017 10:51:31 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.10.215.90] MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nisar Sayed Fix for crash associated with System suspend Since ndo_stop removes phydev which makes phydev NULL. Whenever system suspend is initiated or after "ifconfig down", if set_wol or get_wol is triggered phydev is NULL leads system crash. Hence phy_start/phy_stop for ndo_start/ndo_stop fixes the issues instead of adding/removing phydevice Signed-off-by: Nisar Sayed --- drivers/net/usb/lan78xx.c | 44 ++++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index b99a7fb..955ab3b 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2024,6 +2024,8 @@ static int lan78xx_phy_init(struct lan78xx_net *dev) lan8835_fixup); if (ret < 0) { netdev_err(dev->net, "fail to register fixup\n"); + phy_unregister_fixup_for_uid(PHY_KSZ9031RNX, + 0xfffffff0); return ret; } /* add more external PHY fixup here if needed */ @@ -2031,8 +2033,7 @@ static int lan78xx_phy_init(struct lan78xx_net *dev) phydev->is_internal = false; } else { netdev_err(dev->net, "unknown ID found\n"); - ret = -EIO; - goto error; + return -EIO; } /* if phyirq is not set, use polling mode in phylib */ @@ -2051,7 +2052,10 @@ static int lan78xx_phy_init(struct lan78xx_net *dev) if (ret) { netdev_err(dev->net, "can't attach PHY to %s\n", dev->mdiobus->id); - return -EIO; + ret = -EIO; + if (dev->chipid == ID_REV_CHIP_ID_7801_) + goto error; + return ret; } /* MAC doesn't support 1000T Half */ @@ -2067,8 +2071,6 @@ static int lan78xx_phy_init(struct lan78xx_net *dev) dev->fc_autoneg = phydev->autoneg; - phy_start(phydev); - netif_dbg(dev, ifup, dev->net, "phy initialised successfully"); return 0; @@ -2497,9 +2499,9 @@ static int lan78xx_open(struct net_device *net) if (ret < 0) goto done; - ret = lan78xx_phy_init(dev); - if (ret < 0) - goto done; + if (dev->domain_data.phyirq > 0) + phy_start_interrupts(dev->net->phydev); + phy_start(dev->net->phydev); /* for Link Check */ if (dev->urb_intr) { @@ -2560,13 +2562,11 @@ static int lan78xx_stop(struct net_device *net) if (timer_pending(&dev->stat_monitor)) del_timer_sync(&dev->stat_monitor); - phy_unregister_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0); - phy_unregister_fixup_for_uid(PHY_LAN8835, 0xfffffff0); - - phy_stop(net->phydev); - phy_disconnect(net->phydev); - - net->phydev = NULL; + if (net->phydev) { + if (dev->domain_data.phyirq > 0) + phy_stop_interrupts(net->phydev); + phy_stop(net->phydev); + } clear_bit(EVENT_DEV_OPEN, &dev->flags); netif_stop_queue(net); @@ -3464,6 +3464,12 @@ static void lan78xx_disconnect(struct usb_interface *intf) udev = interface_to_usbdev(intf); net = dev->net; + if (dev->chipid == ID_REV_CHIP_ID_7801_) { + phy_unregister_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0); + phy_unregister_fixup_for_uid(PHY_LAN8835, 0xfffffff0); + } + phy_disconnect(net->phydev); + net->phydev = NULL; unregister_netdev(net); cancel_delayed_work_sync(&dev->wq); @@ -3613,6 +3619,10 @@ static int lan78xx_probe(struct usb_interface *intf, goto out3; } + ret = lan78xx_phy_init(dev); + if (ret < 0) + goto out3; + usb_set_intfdata(intf, dev); ret = device_set_wakeup_enable(&udev->dev, true); @@ -3972,7 +3982,9 @@ static int lan78xx_reset_resume(struct usb_interface *intf) lan78xx_reset(dev); - lan78xx_phy_init(dev); + if (dev->domain_data.phyirq > 0) + phy_start_interrupts(dev->net->phydev); + phy_start(dev->net->phydev); return lan78xx_resume(intf); } From patchwork Wed Sep 6 10:51:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nisar Sayed X-Patchwork-Id: 810505 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xnL4h6mn1z9s3T for ; Wed, 6 Sep 2017 20:52:04 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753005AbdIFKwC convert rfc822-to-8bit (ORCPT ); Wed, 6 Sep 2017 06:52:02 -0400 Received: from esa1.microchip.iphmx.com ([68.232.147.91]:1468 "EHLO esa1.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752734AbdIFKwB (ORCPT ); Wed, 6 Sep 2017 06:52:01 -0400 X-IronPort-AV: E=Sophos;i="5.41,483,1498546800"; d="scan'208";a="7142147" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa1.microchip.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Sep 2017 03:51:45 -0700 Received: from CHN-SV-EXMX03.mchp-main.com ([fe80::58f5:b949:4b1:3df4]) by CHN-SV-EXCH06.mchp-main.com ([fe80::5404:4dc9:559:e436%16]) with mapi id 14.03.0352.000; Wed, 6 Sep 2017 03:51:45 -0700 From: To: , CC: Subject: [PATCH net 2/4] lan78xx: Add fixed_phy device support for LAN7801 device Thread-Topic: [PATCH net 2/4] lan78xx: Add fixed_phy device support for LAN7801 device Thread-Index: AdMm/LZOqnS7B9DcRRKnIfFx0SYr9g== Date: Wed, 6 Sep 2017 10:51:44 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.10.215.90] MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nisar Sayed Add fixed_phy device support for LAN7801 device When LAN7801 device connected to PHY Device which does not have MDIO/MDC access, fixex_phy device will be added. Signed-off-by: Nisar Sayed --- drivers/net/usb/Kconfig | 10 ++++++++ drivers/net/usb/lan78xx.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/drivers/net/usb/Kconfig b/drivers/net/usb/Kconfig index f28bd74..34ef670 100644 --- a/drivers/net/usb/Kconfig +++ b/drivers/net/usb/Kconfig @@ -123,6 +123,16 @@ config USB_LAN78XX To compile this driver as a module, choose M here: the module will be called lan78xx. + if USB_LAN78XX + config LAN7801_NO_MDIO_DEVICE + bool "NO MDIO Device Support" + select FIXED_PHY + ---help--- + If LAN7801 connected to a PHY device which does not + have MDIO/MDC access this option adds support to LAN7801 + with fixed_phy support + endif + config USB_USBNET tristate "Multi-purpose USB Networking Framework" select MII diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 955ab3b..6242cb7 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -42,7 +43,7 @@ #define DRIVER_AUTHOR "WOOJUNG HUH " #define DRIVER_DESC "LAN78XX USB 3.0 Gigabit Ethernet Devices" #define DRIVER_NAME "lan78xx" -#define DRIVER_VERSION "1.0.6" +#define DRIVER_VERSION "1.0.7" #define TX_TIMEOUT_JIFFIES (5 * HZ) #define THROTTLE_JIFFIES (HZ / 8) @@ -335,6 +336,7 @@ struct statstage { struct lan78xx_statstage64 curr_stat; }; +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE struct irq_domain_data { struct irq_domain *irqdomain; unsigned int phyirq; @@ -343,6 +345,7 @@ struct irq_domain_data { u32 irqenable; struct mutex irq_lock; /* for irq bus access */ }; +#endif struct lan78xx_net { struct net_device *net; @@ -401,7 +404,9 @@ struct lan78xx_net { int delta; struct statstage stats; +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE struct irq_domain_data domain_data; +#endif }; /* define external phy id */ @@ -1169,6 +1174,9 @@ static int lan78xx_link_reset(struct lan78xx_net *dev) ret = lan78xx_write_reg(dev, MAC_CR, buf); if (unlikely(ret < 0)) return -EIO; +#ifdef CONFIG_LAN7801_NO_MDIO_DEVICE + phy_mac_interrupt(phydev, 0); +#endif del_timer(&dev->stat_monitor); } else if (phydev->link && !dev->link_on) { @@ -1209,6 +1217,9 @@ static int lan78xx_link_reset(struct lan78xx_net *dev) ret = lan78xx_update_flowcontrol(dev, ecmd.base.duplex, ladv, radv); +#ifdef CONFIG_LAN7801_NO_MDIO_DEVICE + phy_mac_interrupt(phydev, 1); +#endif if (!timer_pending(&dev->stat_monitor)) { dev->delta = 1; @@ -1249,8 +1260,10 @@ static void lan78xx_status(struct lan78xx_net *dev, struct urb *urb) netif_dbg(dev, link, dev->net, "PHY INTR: 0x%08x\n", intdata); lan78xx_defer_kevent(dev, EVENT_LINK_RESET); +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE if (dev->domain_data.phyirq > 0) generic_handle_irq(dev->domain_data.phyirq); +#endif } else netdev_warn(dev->net, "unexpected interrupt: 0x%08x\n", intdata); @@ -1825,6 +1838,7 @@ static void lan78xx_link_status_change(struct net_device *net) } } +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE static int irq_map(struct irq_domain *d, unsigned int irq, irq_hw_number_t hwirq) { @@ -1945,6 +1959,7 @@ static void lan78xx_remove_irq_domain(struct lan78xx_net *dev) dev->domain_data.phyirq = 0; dev->domain_data.irqdomain = NULL; } +#endif static int lan8835_fixup(struct phy_device *phydev) { @@ -1987,12 +2002,37 @@ static int ksz9031rnx_fixup(struct phy_device *phydev) return 1; } +#ifdef CONFIG_LAN7801_NO_MDIO_DEVICE +static struct fixed_phy_status fphy_status = { + .link = 1, + .speed = SPEED_1000, + .duplex = DUPLEX_FULL, +}; +#endif + static int lan78xx_phy_init(struct lan78xx_net *dev) { int ret; u32 mii_adv; struct phy_device *phydev = dev->net->phydev; +#ifdef CONFIG_LAN7801_NO_MDIO_DEVICE + if (dev->chipid != ID_REV_CHIP_ID_7801_) { + netdev_err(dev->net, "Invalid chip id : %x\n", dev->chipid); + return -EIO; + } + phydev = fixed_phy_register(PHY_POLL, &fphy_status, + -1, NULL); + if (IS_ERR(phydev)) { + netdev_err(dev->net, "LAN7801 Fixed PHY register failed\n"); + return -EIO; + } + netdev_info(dev->net, "LAN7801 fixed PHY registered\n"); + + dev->interface = PHY_INTERFACE_MODE_RGMII; + + phydev->irq = PHY_IGNORE_INTERRUPT; +#else phydev = phy_find_first(dev->mdiobus); if (!phydev) { netdev_err(dev->net, "no PHY found\n"); @@ -2041,6 +2081,7 @@ static int lan78xx_phy_init(struct lan78xx_net *dev) phydev->irq = dev->domain_data.phyirq; else phydev->irq = 0; +#endif netdev_dbg(dev->net, "phydev->irq = %d\n", phydev->irq); /* set to AUTOMDIX */ @@ -2053,8 +2094,10 @@ static int lan78xx_phy_init(struct lan78xx_net *dev) netdev_err(dev->net, "can't attach PHY to %s\n", dev->mdiobus->id); ret = -EIO; +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE if (dev->chipid == ID_REV_CHIP_ID_7801_) goto error; +#endif return ret; } @@ -2499,8 +2542,10 @@ static int lan78xx_open(struct net_device *net) if (ret < 0) goto done; +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE if (dev->domain_data.phyirq > 0) phy_start_interrupts(dev->net->phydev); +#endif phy_start(dev->net->phydev); /* for Link Check */ @@ -2563,8 +2608,10 @@ static int lan78xx_stop(struct net_device *net) del_timer_sync(&dev->stat_monitor); if (net->phydev) { +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE if (dev->domain_data.phyirq > 0) phy_stop_interrupts(net->phydev); +#endif phy_stop(net->phydev); } @@ -2844,6 +2891,7 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf) dev->net->hw_features = dev->net->features; +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE ret = lan78xx_setup_irq_domain(dev); if (ret < 0) { netdev_warn(dev->net, @@ -2851,6 +2899,7 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf) kfree(pdata); return ret; } +#endif dev->net->hard_header_len += TX_OVERHEAD; dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len; @@ -2871,8 +2920,10 @@ static void lan78xx_unbind(struct lan78xx_net *dev, struct usb_interface *intf) { struct lan78xx_priv *pdata = (struct lan78xx_priv *)(dev->data[0]); +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE lan78xx_remove_irq_domain(dev); +#endif lan78xx_remove_mdio(dev); if (pdata) { @@ -3464,11 +3515,15 @@ static void lan78xx_disconnect(struct usb_interface *intf) udev = interface_to_usbdev(intf); net = dev->net; +#ifdef CONFIG_LAN7801_NO_MDIO_DEVICE + fixed_phy_unregister(net->phydev); +#else if (dev->chipid == ID_REV_CHIP_ID_7801_) { phy_unregister_fixup_for_uid(PHY_KSZ9031RNX, 0xfffffff0); phy_unregister_fixup_for_uid(PHY_LAN8835, 0xfffffff0); } phy_disconnect(net->phydev); +#endif net->phydev = NULL; unregister_netdev(net); @@ -3982,8 +4037,10 @@ static int lan78xx_reset_resume(struct usb_interface *intf) lan78xx_reset(dev); +#ifndef CONFIG_LAN7801_NO_MDIO_DEVICE if (dev->domain_data.phyirq > 0) phy_start_interrupts(dev->net->phydev); +#endif phy_start(dev->net->phydev); return lan78xx_resume(intf); From patchwork Wed Sep 6 10:51:53 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nisar Sayed X-Patchwork-Id: 810509 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xnL9d1TjSz9s0g for ; Wed, 6 Sep 2017 20:56:21 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753526AbdIFKyF convert rfc822-to-8bit (ORCPT ); Wed, 6 Sep 2017 06:54:05 -0400 Received: from esa3.microchip.iphmx.com ([68.232.153.233]:3082 "EHLO esa3.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753378AbdIFKw4 (ORCPT ); Wed, 6 Sep 2017 06:52:56 -0400 X-IronPort-AV: E=Sophos;i="5.41,483,1498546800"; d="scan'208";a="6798046" Received: from exsmtp02.microchip.com (HELO email.microchip.com) ([198.175.253.38]) by esa3.microchip.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Sep 2017 03:51:54 -0700 Received: from CHN-SV-EXMX03.mchp-main.com ([fe80::58f5:b949:4b1:3df4]) by CHN-SV-EXCH02.mchp-main.com ([::1]) with mapi id 14.03.0352.000; Wed, 6 Sep 2017 03:51:54 -0700 From: To: , CC: Subject: [PATCH net 3/4] lan78xx: Fix for eeprom read/write when device autosuspend Thread-Topic: [PATCH net 3/4] lan78xx: Fix for eeprom read/write when device autosuspend Thread-Index: AdMm/NwKvobPZ4jbS72W8IMpSqVwUQ== Date: Wed, 6 Sep 2017 10:51:53 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.10.215.90] MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nisar Sayed Fix for eeprom read/write when device autosuspend Signed-off-by: Nisar Sayed --- drivers/net/usb/lan78xx.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index 6242cb7..e04ec23 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -1278,30 +1278,48 @@ static int lan78xx_ethtool_get_eeprom(struct net_device *netdev, struct ethtool_eeprom *ee, u8 *data) { struct lan78xx_net *dev = netdev_priv(netdev); + int ret = -EINVAL; + + if (usb_autopm_get_interface(dev->intf) < 0) + return ret; ee->magic = LAN78XX_EEPROM_MAGIC; - return lan78xx_read_raw_eeprom(dev, ee->offset, ee->len, data); + ret = lan78xx_read_raw_eeprom(dev, ee->offset, ee->len, data); + + usb_autopm_put_interface(dev->intf); + + return ret; } static int lan78xx_ethtool_set_eeprom(struct net_device *netdev, struct ethtool_eeprom *ee, u8 *data) { struct lan78xx_net *dev = netdev_priv(netdev); + int ret = -EINVAL; + + if (usb_autopm_get_interface(dev->intf) < 0) + return ret; /* Allow entire eeprom update only */ if ((ee->magic == LAN78XX_EEPROM_MAGIC) && (ee->offset == 0) && (ee->len == 512) && (data[0] == EEPROM_INDICATOR)) - return lan78xx_write_raw_eeprom(dev, ee->offset, ee->len, data); + ret = lan78xx_write_raw_eeprom(dev, ee->offset, ee->len, data); else if ((ee->magic == LAN78XX_OTP_MAGIC) && (ee->offset == 0) && (ee->len == 512) && (data[0] == OTP_INDICATOR_1)) - return lan78xx_write_raw_otp(dev, ee->offset, ee->len, data); + ret = lan78xx_write_raw_otp(dev, ee->offset, ee->len, data); + else if ((ee->magic == LAN78XX_EEPROM_MAGIC) && + (ee->offset >= 0 && ee->offset < MAX_EEPROM_SIZE) && + (ee->len > 0 && (ee->offset + ee->len) <= MAX_EEPROM_SIZE)) + ret = lan78xx_write_raw_eeprom(dev, ee->offset, ee->len, data); - return -EINVAL; + usb_autopm_put_interface(dev->intf); + + return ret; } static void lan78xx_get_strings(struct net_device *netdev, u32 stringset, From patchwork Wed Sep 6 10:52:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nisar Sayed X-Patchwork-Id: 810506 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xnL5D5VPtz9s3T for ; Wed, 6 Sep 2017 20:52:32 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753258AbdIFKwa convert rfc822-to-8bit (ORCPT ); Wed, 6 Sep 2017 06:52:30 -0400 Received: from esa5.microchip.iphmx.com ([216.71.150.166]:65533 "EHLO esa5.microchip.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753217AbdIFKwQ (ORCPT ); Wed, 6 Sep 2017 06:52:16 -0400 X-IronPort-AV: E=Sophos;i="5.41,483,1498546800"; d="scan'208";a="4457358" Received: from smtpout.microchip.com (HELO email.microchip.com) ([198.175.253.82]) by esa5.microchip.iphmx.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Sep 2017 03:52:08 -0700 Received: from CHN-SV-EXMX03.mchp-main.com ([fe80::58f5:b949:4b1:3df4]) by CHN-SV-EXCH05.mchp-main.com ([fe80::c1bf:7679:c1f8:4560%15]) with mapi id 14.03.0352.000; Wed, 6 Sep 2017 03:52:07 -0700 From: To: , CC: Subject: [PATCH net 4/4] lan78xx: Use default value loaded from EEPROM/OTP when resetting the chip Thread-Topic: [PATCH net 4/4] lan78xx: Use default value loaded from EEPROM/OTP when resetting the chip Thread-Index: AdMm/RXF4aNUgKt6QGG+AtYg6KRhCw== Date: Wed, 6 Sep 2017 10:52:07 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.10.215.90] MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Nisar Sayed Use default value loaded from EEPROM/OTP when resetting the chip Signed-off-by: Nisar Sayed --- drivers/net/usb/lan78xx.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c index e04ec23..84491e7 100644 --- a/drivers/net/usb/lan78xx.c +++ b/drivers/net/usb/lan78xx.c @@ -2497,7 +2497,6 @@ static int lan78xx_reset(struct lan78xx_net *dev) /* LAN7801 only has RGMII mode */ if (dev->chipid == ID_REV_CHIP_ID_7801_) buf &= ~MAC_CR_GMII_EN_; - buf |= MAC_CR_AUTO_DUPLEX_ | MAC_CR_AUTO_SPEED_; ret = lan78xx_write_reg(dev, MAC_CR, buf); ret = lan78xx_read_reg(dev, MAC_TX, &buf);