From patchwork Thu Jan 3 01:10:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 1020131 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@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=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43VVHj3rbtz9s2P for ; Thu, 3 Jan 2019 12:11:45 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729771AbfACBLn (ORCPT ); Wed, 2 Jan 2019 20:11:43 -0500 Received: from mail-out.m-online.net ([212.18.0.10]:33732 "EHLO mail-out.m-online.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726990AbfACBLh (ORCPT ); Wed, 2 Jan 2019 20:11:37 -0500 Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 43VVHM1fT5z1qvnl; Thu, 3 Jan 2019 02:11:27 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 43VVHM1QzYz1qvWb; Thu, 3 Jan 2019 02:11:27 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id cfo6aKyrpp03; Thu, 3 Jan 2019 02:11:26 +0100 (CET) X-Auth-Info: 8HK9j28goHyo3LbB09WXILHjkREn7EbpYrbydMaZw58= Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz [86.49.110.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Thu, 3 Jan 2019 02:11:26 +0100 (CET) From: Marek Vasut To: netdev@vger.kernel.org Cc: Marek Vasut , "David S . Miller" , Nisar Sayed , Woojung Huh , Andrew Lunn , Florian Fainelli , linux-usb@vger.kernel.org Subject: [PATCH 19/19] usbnet: smsc95xx: Use phy bit operations Date: Thu, 3 Jan 2019 02:10:40 +0100 Message-Id: <20190103011040.25974-20-marex@denx.de> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20190103011040.25974-1-marex@denx.de> References: <20190103011040.25974-1-marex@denx.de> MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use bit operations provided by bit.h instead of reimplementing them. No functional change. Signed-off-by: Marek Vasut Cc: David S. Miller Cc: Nisar Sayed Cc: Woojung Huh Cc: Andrew Lunn Cc: Florian Fainelli Cc: linux-usb@vger.kernel.org To: netdev@vger.kernel.org --- drivers/net/usb/smsc95xx.c | 67 +++++++++++++------------------------- 1 file changed, 22 insertions(+), 45 deletions(-) diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c index c9931955c22a..20e41c15ce13 100644 --- a/drivers/net/usb/smsc95xx.c +++ b/drivers/net/usb/smsc95xx.c @@ -748,47 +748,35 @@ static void set_mdix_status(struct net_device *net, __u8 mdix_ctrl) { struct usbnet *dev = netdev_priv(net); struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]); - int buf; if ((pdata->chip_id == ID_REV_CHIP_ID_9500A_) || (pdata->chip_id == ID_REV_CHIP_ID_9530_) || (pdata->chip_id == ID_REV_CHIP_ID_89530_) || (pdata->chip_id == ID_REV_CHIP_ID_9730_)) { /* Extend Manual AutoMDIX timer for 9500A/9500Ai */ - buf = phy_read(pdata->phydev, - PHY_EDPD_CONFIG); - buf |= PHY_EDPD_CONFIG_EXT_CROSSOVER_; - phy_write(pdata->phydev, - PHY_EDPD_CONFIG, buf); + phy_set_bits(pdata->phydev, PHY_EDPD_CONFIG, + PHY_EDPD_CONFIG_EXT_CROSSOVER_); } if (mdix_ctrl == ETH_TP_MDI) { - buf = phy_read(pdata->phydev, - SPECIAL_CTRL_STS); - buf |= SPECIAL_CTRL_STS_OVRRD_AMDIX_; - buf &= ~(SPECIAL_CTRL_STS_AMDIX_ENABLE_ | - SPECIAL_CTRL_STS_AMDIX_STATE_); - phy_write(pdata->phydev, - SPECIAL_CTRL_STS, buf); + phy_modify(pdata->phydev, SPECIAL_CTRL_STS, + SPECIAL_CTRL_STS_AMDIX_ENABLE_ | + SPECIAL_CTRL_STS_AMDIX_STATE_, + SPECIAL_CTRL_STS_OVRRD_AMDIX_); } else if (mdix_ctrl == ETH_TP_MDI_X) { - buf = phy_read(pdata->phydev, - SPECIAL_CTRL_STS); - buf |= SPECIAL_CTRL_STS_OVRRD_AMDIX_; - buf &= ~(SPECIAL_CTRL_STS_AMDIX_ENABLE_ | - SPECIAL_CTRL_STS_AMDIX_STATE_); - buf |= SPECIAL_CTRL_STS_AMDIX_STATE_; - phy_write(pdata->phydev, - SPECIAL_CTRL_STS, buf); + phy_modify(pdata->phydev, SPECIAL_CTRL_STS, + SPECIAL_CTRL_STS_AMDIX_ENABLE_ | + SPECIAL_CTRL_STS_AMDIX_STATE_, + SPECIAL_CTRL_STS_OVRRD_AMDIX_ | + SPECIAL_CTRL_STS_AMDIX_STATE_); } else if (mdix_ctrl == ETH_TP_MDI_AUTO) { - buf = phy_read(pdata->phydev, - SPECIAL_CTRL_STS); - buf &= ~SPECIAL_CTRL_STS_OVRRD_AMDIX_; - buf &= ~(SPECIAL_CTRL_STS_AMDIX_ENABLE_ | - SPECIAL_CTRL_STS_AMDIX_STATE_); - buf |= SPECIAL_CTRL_STS_AMDIX_ENABLE_; - phy_write(pdata->phydev, - SPECIAL_CTRL_STS, buf); + phy_modify(pdata->phydev, SPECIAL_CTRL_STS, + SPECIAL_CTRL_STS_OVRRD_AMDIX_ | + SPECIAL_CTRL_STS_AMDIX_ENABLE_ | + SPECIAL_CTRL_STS_AMDIX_STATE_, + SPECIAL_CTRL_STS_AMDIX_ENABLE_); } + pdata->mdix_ctrl = mdix_ctrl; } @@ -951,7 +939,7 @@ static int smsc95xx_phy_initialize(struct usbnet *dev) } phy_write(pdata->phydev, PHY_INT_MASK, - PHY_INT_MASK_DEFAULT_); + PHY_INT_MASK_DEFAULT_); ret = genphy_restart_aneg(pdata->phydev); if (ret) @@ -1372,15 +1360,7 @@ static int smsc95xx_enable_phy_wakeup_interrupts(struct usbnet *dev, u16 mask) return ret; /* enable interrupt source */ - ret = phy_read(pdata->phydev, PHY_INT_MASK); - if (ret < 0) - return ret; - - ret |= mask; - - phy_write(pdata->phydev, PHY_INT_MASK, ret); - - return 0; + return phy_set_bits(pdata->phydev, PHY_INT_MASK, mask); } static int smsc95xx_link_ok_nopm(struct usbnet *dev) @@ -1445,17 +1425,14 @@ static int smsc95xx_enter_suspend1(struct usbnet *dev) */ if (pdata->features & FEATURE_PHY_NLP_CROSSOVER) phy_write(pdata->phydev, PHY_EDPD_CONFIG, - PHY_EDPD_CONFIG_DEFAULT); + PHY_EDPD_CONFIG_DEFAULT); /* enable energy detect power-down mode */ - ret = phy_read(pdata->phydev, PHY_MODE_CTRL_STS); + ret = phy_set_bits(pdata->phydev, PHY_MODE_CTRL_STS, + MODE_CTRL_STS_EDPWRDOWN_); if (ret < 0) return ret; - ret |= MODE_CTRL_STS_EDPWRDOWN_; - - phy_write(pdata->phydev, PHY_MODE_CTRL_STS, ret); - /* enter SUSPEND1 mode */ ret = smsc95xx_read_reg(dev, PM_CTRL, &val); if (ret < 0)