bnxt_en: read the clause type from the PHY ID
authorVasundhara Volam <vasundhara-v.volam@broadcom.com>
Sun, 5 May 2019 11:17:03 +0000 (07:17 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 May 2019 04:42:17 +0000 (21:42 -0700)
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.volam@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 256be9d..7073b99 100644 (file)
@@ -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);