From: Vasundhara Volam <vasundhara-v.vo...@broadcom.com>

Currently driver hard code Clause 45 based on speed supported by the
PHY. Instead read the clause type from the PHY ID provided as input
to the mdio ioctl.

Fixes: 0ca12be99667 ("bnxt_en: Add support for mdio read/write to external PHY")
Signed-off-by: Vasundhara Volam <vasundhara-v.vo...@broadcom.com>
Signed-off-by: Michael Chan <michael.c...@broadcom.com>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 256be9d..7073b99 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -8699,7 +8699,7 @@ static int bnxt_hwrm_port_phy_read(struct bnxt *bp, u16 
phy_addr, u16 reg,
        req.port_id = cpu_to_le16(bp->pf.port_id);
        req.phy_addr = phy_addr;
        req.reg_addr = cpu_to_le16(reg & 0x1f);
-       if (bp->link_info.support_speeds & BNXT_LINK_SPEED_MSK_10GB) {
+       if (mdio_phy_id_is_c45(phy_addr)) {
                req.cl45_mdio = 1;
                req.phy_addr = mdio_phy_id_prtad(phy_addr);
                req.dev_addr = mdio_phy_id_devad(phy_addr);
@@ -8726,7 +8726,7 @@ static int bnxt_hwrm_port_phy_write(struct bnxt *bp, u16 
phy_addr, u16 reg,
        req.port_id = cpu_to_le16(bp->pf.port_id);
        req.phy_addr = phy_addr;
        req.reg_addr = cpu_to_le16(reg & 0x1f);
-       if (bp->link_info.support_speeds & BNXT_LINK_SPEED_MSK_10GB) {
+       if (mdio_phy_id_is_c45(phy_addr)) {
                req.cl45_mdio = 1;
                req.phy_addr = mdio_phy_id_prtad(phy_addr);
                req.dev_addr = mdio_phy_id_devad(phy_addr);
-- 
2.5.1

Reply via email to