atl1c: fix Mikrotik 10/25G NIC detection
authorGatis Peisenieks <gatis@mikrotik.com>
Thu, 8 Jul 2021 09:49:04 +0000 (12:49 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Jul 2021 20:31:43 +0000 (13:31 -0700)
Since Mikrotik 10/25G NIC MDIO op emulation is not 100% reliable,
on rare occasions it can happen that some physical functions of
the NIC do not get initialized due to timeouted early MDIO op.

This changes the atl1c probe on Mikrotik 10/25G NIC not to
depend on MDIO op emulation.

Signed-off-by: Gatis Peisenieks <gatis@mikrotik.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/atheros/atl1c/atl1c_hw.c

index 7dff20350865ab9c6b1a0cb8e8ea4bb578636927..f19370c3344462227ff8a41cb11c6fc67a4a0c1c 100644 (file)
@@ -594,6 +594,11 @@ int atl1c_phy_init(struct atl1c_hw *hw)
        int ret_val;
        u16 mii_bmcr_data = BMCR_RESET;
 
+       if (hw->nic_type == athr_mt) {
+               hw->phy_configured = true;
+               return 0;
+       }
+
        if ((atl1c_read_phy_reg(hw, MII_PHYSID1, &hw->phy_id1) != 0) ||
                (atl1c_read_phy_reg(hw, MII_PHYSID2, &hw->phy_id2) != 0)) {
                dev_err(&pdev->dev, "Error get phy ID\n");