From: Andrew Lunn <andrew@lunn.ch>
To: Florian Fainelli <f.fainelli@gmail.com>
Cc: netdev <netdev@vger.kernel.org>, Andrew Lunn <andrew@lunn.ch>
Subject: [RFC PATCH net-next 03/24] phy: Use phy_read() instead of mdiobus_read()
Date: Mon, 4 Jan 2016 18:36:41 +0100 [thread overview]
Message-ID: <1451929022-5580-4-git-send-email-andrew@lunn.ch> (raw)
In-Reply-To: <1451929022-5580-1-git-send-email-andrew@lunn.ch>
Since we have a phydev, make use of it and the phy_read() function.
This will help with later refactoring.
Signed-off-by: Andrew Lunn <andrew@lunn.ch>
---
drivers/net/ethernet/hisilicon/hns/hns_ethtool.c | 104 ++++++++---------------
drivers/net/phy/phy.c | 6 +-
2 files changed, 38 insertions(+), 72 deletions(-)
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
index 3b234176dd36..4eddbeb19307 100644
--- a/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
+++ b/drivers/net/ethernet/hisilicon/hns/hns_ethtool.c
@@ -77,18 +77,16 @@ static void hns_get_mdix_mode(struct net_device *net_dev,
return;
}
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr, HNS_PHY_PAGE_REG,
- HNS_PHY_PAGE_MDIX);
+ phy_write(phy_dev, HNS_PHY_PAGE_REG, HNS_PHY_PAGE_MDIX);
- retval = mdiobus_read(phy_dev->bus, phy_dev->addr, HNS_PHY_CSC_REG);
+ retval = phy_read(phy_dev, HNS_PHY_CSC_REG);
mdix_ctrl = hnae_get_field(retval, PHY_MDIX_CTRL_M, PHY_MDIX_CTRL_S);
- retval = mdiobus_read(phy_dev->bus, phy_dev->addr, HNS_PHY_CSS_REG);
+ retval = phy_read(phy_dev, HNS_PHY_CSS_REG);
mdix = hnae_get_bit(retval, PHY_MDIX_STATUS_B);
is_resolved = hnae_get_bit(retval, PHY_SPEED_DUP_RESOLVE_B);
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr, HNS_PHY_PAGE_REG,
- HNS_PHY_PAGE_COPPER);
+ phy_write(phy_dev, HNS_PHY_PAGE_REG, HNS_PHY_PAGE_COPPER);
switch (mdix_ctrl) {
case 0x0:
@@ -253,53 +251,36 @@ static int hns_nic_config_phy_loopback(struct phy_device *phy_dev, u8 en)
if (en) {
/* speed : 1000M */
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- HNS_PHY_PAGE_REG, 2);
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 21, 0x1046);
+ phy_write(phy_dev, HNS_PHY_PAGE_REG, 2);
+ phy_write(phy_dev, 21, 0x1046);
/* Force Master */
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 9, 0x1F00);
+ phy_write(phy_dev, 9, 0x1F00);
/* Soft-reset */
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 0, 0x9140);
+ phy_write(phy_dev, 0, 0x9140);
/* If autoneg disabled,two soft-reset operations */
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 0, 0x9140);
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 22, 0xFA);
+ phy_write(phy_dev, 0, 0x9140);
+ phy_write(phy_dev, 22, 0xFA);
/* Default is 0x0400 */
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 1, 0x418);
+ phy_write(phy_dev, 1, 0x418);
/* Force 1000M Link, Default is 0x0200 */
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 7, 0x20C);
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 22, 0);
+ phy_write(phy_dev, 7, 0x20C);
+ phy_write(phy_dev, 22, 0);
/* Enable MAC loop-back */
- val = (u16)mdiobus_read(phy_dev->bus, phy_dev->addr,
- COPPER_CONTROL_REG);
+ val = phy_read(phy_dev, COPPER_CONTROL_REG);
val |= PHY_LOOP_BACK;
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- COPPER_CONTROL_REG, val);
+ phy_write(phy_dev, COPPER_CONTROL_REG, val);
} else {
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 22, 0xFA);
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 1, 0x400);
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 7, 0x200);
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- 22, 0);
-
- val = (u16)mdiobus_read(phy_dev->bus, phy_dev->addr,
- COPPER_CONTROL_REG);
+ phy_write(phy_dev, 22, 0xFA);
+ phy_write(phy_dev, 1, 0x400);
+ phy_write(phy_dev, 7, 0x200);
+ phy_write(phy_dev, 22, 0);
+
+ val = phy_read(phy_dev, COPPER_CONTROL_REG);
val &= ~PHY_LOOP_BACK;
- (void)mdiobus_write(phy_dev->bus, phy_dev->addr,
- COPPER_CONTROL_REG, val);
+ phy_write(phy_dev, COPPER_CONTROL_REG, val);
}
return 0;
}
@@ -1018,16 +999,9 @@ int hns_phy_led_set(struct net_device *netdev, int value)
struct hns_nic_priv *priv = netdev_priv(netdev);
struct phy_device *phy_dev = priv->phy;
- if (!phy_dev->bus) {
- netdev_err(netdev, "phy_dev->bus is null!\n");
- return -EINVAL;
- }
- retval = mdiobus_write(phy_dev->bus, phy_dev->addr,
- HNS_PHY_PAGE_REG, HNS_PHY_PAGE_LED);
- retval = mdiobus_write(phy_dev->bus, phy_dev->addr, HNS_LED_FC_REG,
- value);
- retval = mdiobus_write(phy_dev->bus, phy_dev->addr,
- HNS_PHY_PAGE_REG, HNS_PHY_PAGE_COPPER);
+ retval = phy_write(phy_dev, HNS_PHY_PAGE_REG, HNS_PHY_PAGE_LED);
+ retval = phy_write(phy_dev, HNS_LED_FC_REG, value);
+ retval = phy_write(phy_dev, HNS_PHY_PAGE_REG, HNS_PHY_PAGE_COPPER);
if (retval) {
netdev_err(netdev, "mdiobus_write fail !\n");
return retval;
@@ -1052,19 +1026,15 @@ int hns_set_phys_id(struct net_device *netdev, enum ethtool_phys_id_state state)
if (phy_dev)
switch (state) {
case ETHTOOL_ID_ACTIVE:
- ret = mdiobus_write(phy_dev->bus, phy_dev->addr,
- HNS_PHY_PAGE_REG,
- HNS_PHY_PAGE_LED);
+ ret = phy_write(phy_dev, HNS_PHY_PAGE_REG,
+ HNS_PHY_PAGE_LED);
if (ret)
return ret;
- priv->phy_led_val = (u16)mdiobus_read(phy_dev->bus,
- phy_dev->addr,
- HNS_LED_FC_REG);
+ priv->phy_led_val = phy_read(phy_dev, HNS_LED_FC_REG);
- ret = mdiobus_write(phy_dev->bus, phy_dev->addr,
- HNS_PHY_PAGE_REG,
- HNS_PHY_PAGE_COPPER);
+ ret = phy_write(phy_dev, HNS_PHY_PAGE_REG,
+ HNS_PHY_PAGE_COPPER);
if (ret)
return ret;
return 2;
@@ -1079,20 +1049,18 @@ int hns_set_phys_id(struct net_device *netdev, enum ethtool_phys_id_state state)
return ret;
break;
case ETHTOOL_ID_INACTIVE:
- ret = mdiobus_write(phy_dev->bus, phy_dev->addr,
- HNS_PHY_PAGE_REG,
- HNS_PHY_PAGE_LED);
+ ret = phy_write(phy_dev, HNS_PHY_PAGE_REG,
+ HNS_PHY_PAGE_LED);
if (ret)
return ret;
- ret = mdiobus_write(phy_dev->bus, phy_dev->addr,
- HNS_LED_FC_REG, priv->phy_led_val);
+ ret = phy_write(phy_dev, HNS_LED_FC_REG,
+ priv->phy_led_val);
if (ret)
return ret;
- ret = mdiobus_write(phy_dev->bus, phy_dev->addr,
- HNS_PHY_PAGE_REG,
- HNS_PHY_PAGE_COPPER);
+ ret = phy_write(phy_dev, HNS_PHY_PAGE_REG,
+ HNS_PHY_PAGE_COPPER);
if (ret)
return ret;
break;
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 47cd306dbb3c..67a77956ae6f 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -407,8 +407,7 @@ int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd)
/* fall through */
case SIOCGMIIREG:
- mii_data->val_out = mdiobus_read(phydev->bus, mii_data->phy_id,
- mii_data->reg_num);
+ mii_data->val_out = phy_read(phydev, mii_data->reg_num);
return 0;
case SIOCSMIIREG:
@@ -445,8 +444,7 @@ int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd)
}
}
- mdiobus_write(phydev->bus, mii_data->phy_id,
- mii_data->reg_num, val);
+ phy_write(phydev, mii_data->reg_num, val);
if (mii_data->phy_id == phydev->addr &&
mii_data->reg_num == MII_BMCR &&
--
2.6.4
next prev parent reply other threads:[~2016-01-04 17:38 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-04 17:36 [RFC PATCH net-next 00/24] Support MDIO devices Andrew Lunn
2016-01-04 17:36 ` [RFC PATCH net-next 01/24] phy: Consistently use addr for address on an MII bus Andrew Lunn
2016-01-04 20:01 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 02/24] mdio: Move mdiobus_read/write operatings into mdio.h Andrew Lunn
2016-01-04 20:02 ` Florian Fainelli
2016-01-04 17:36 ` Andrew Lunn [this message]
2016-01-04 20:07 ` [RFC PATCH net-next 03/24] phy: Use phy_read() instead of mdiobus_read() Florian Fainelli
2016-01-05 13:40 ` Andrew Lunn
2016-01-04 17:36 ` [RFC PATCH net-next 04/24] phy: Add phydev_err() and phydev_dbg() macros Andrew Lunn
2016-01-04 20:08 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 05/24] phy: add phydev_name() macro Andrew Lunn
2016-01-04 17:48 ` Joe Perches
2016-01-04 17:36 ` [RFC PATCH net-next 06/24] net: dnet: Use phy_find_first() helper Andrew Lunn
2016-01-04 20:08 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 07/24] phy: phy_{read|write}_mmd_indirect: get addr from phydev Andrew Lunn
2016-01-04 20:10 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 08/24] phy: Centralise print about attached phy Andrew Lunn
2016-01-04 20:15 ` Florian Fainelli
2016-01-04 21:16 ` Andrew Lunn
2016-01-04 17:36 ` [RFC PATCH net-next 09/24] phy: mdio-octeon: Use devm_mdiobus_alloc_size() Andrew Lunn
2016-01-04 20:18 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 10/24] mdio: Move allocation of interrupts into core Andrew Lunn
2016-01-04 20:17 ` Florian Fainelli
2016-01-06 14:07 ` Shaohui Xie
2016-01-04 17:36 ` [RFC PATCH net-next 11/24] phy: Add an mdio_device structure Andrew Lunn
2016-01-05 1:53 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 12/24] of: phy: Only register a phy device for phys Andrew Lunn
2016-01-04 20:01 ` Florian Fainelli
2016-01-04 21:04 ` Andrew Lunn
2016-01-04 17:36 ` [RFC PATCH net-next 13/24] phy: Add API for {un{registering an mdio device to a bus Andrew Lunn
2016-01-05 1:55 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 14/24] phy_device: Move phy attributes into phy_device Andrew Lunn
2016-01-05 1:57 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 15/24] dsa: Register netdev before phy Andrew Lunn
2016-01-05 1:59 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 16/24] phy: Move PHY PM operations into phy_device Andrew Lunn
2016-01-05 2:00 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 17/24] phy: Centralize setting driver module owner Andrew Lunn
2016-01-05 2:00 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 18/24] phy: Move phy specific bus match into phy_device Andrew Lunn
2016-01-05 2:01 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 19/24] mdio_bus: Generalise of_mdiobus_link_phydev() Andrew Lunn
2016-01-05 2:01 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 20/24] mdio_bus: Add comment to mdiobus_scan() and __mdiobus_register() Andrew Lunn
2016-01-05 2:02 ` Florian Fainelli
2016-01-04 17:36 ` [RFC PATCH net-next 21/24] mdio: Add support for mdio drivers Andrew Lunn
2016-01-05 2:03 ` Florian Fainelli
2016-01-04 17:37 ` [RFC PATCH net-next 22/24] mdio: Abstract device_remove() and device_free() Andrew Lunn
2016-01-05 2:04 ` Florian Fainelli
2016-01-04 17:37 ` [RFC PATCH net-next 23/24] mdio: mdio-nop: Dummy driver to testing Andrew Lunn
2016-01-04 17:37 ` [RFC PATCH net-next 24/24] Add linux,mdio-nop support for testing Andrew Lunn
2016-01-05 2:21 ` [RFC PATCH net-next 00/24] Support MDIO devices Florian Fainelli
2016-01-05 2:57 ` Andrew Lunn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1451929022-5580-4-git-send-email-andrew@lunn.ch \
--to=andrew@lunn.ch \
--cc=f.fainelli@gmail.com \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).