common/sfc_efx/base: use EF10 PHY methods for Riverhead
authorAndrew Rybchenko <arybchenko@solarflare.com>
Thu, 24 Sep 2020 12:11:43 +0000 (13:11 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 30 Sep 2020 17:19:12 +0000 (19:19 +0200)
There is no difference yet in PHY support on EF10 and Riverhead.
So, it is better to reuse existing methods.

Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
Reviewed-by: Vijay Kumar Srivastava <vsrivast@xilinx.com>
drivers/common/sfc_efx/base/ef10_phy.c
drivers/common/sfc_efx/base/efx_phy.c

index 622374f..b9822e4 100644 (file)
@@ -7,7 +7,7 @@
 #include "efx.h"
 #include "efx_impl.h"
 
-#if EFX_OPTS_EF10()
+#if EFSYS_OPT_RIVERHEAD || EFX_OPTS_EF10()
 
 static                 void
 mcdi_phy_decode_cap(
@@ -755,4 +755,4 @@ ef10_bist_stop(
 
 #endif /* EFSYS_OPT_BIST */
 
-#endif /* EFX_OPTS_EF10() */
+#endif /* EFSYS_OPT_RIVERHEAD || EFX_OPTS_EF10() */
index 841d148..8df868d 100644 (file)
@@ -48,6 +48,26 @@ static const efx_phy_ops_t   __efx_phy_ef10_ops = {
 };
 #endif /* EFX_OPTS_EF10() */
 
+#if EFSYS_OPT_RIVERHEAD
+static const efx_phy_ops_t     __efx_phy_rhead_ops = {
+       ef10_phy_power,                 /* epo_power */
+       NULL,                           /* epo_reset */
+       ef10_phy_reconfigure,           /* epo_reconfigure */
+       ef10_phy_verify,                /* epo_verify */
+       ef10_phy_oui_get,               /* epo_oui_get */
+       ef10_phy_link_state_get,        /* epo_link_state_get */
+#if EFSYS_OPT_PHY_STATS
+       ef10_phy_stats_update,          /* epo_stats_update */
+#endif /* EFSYS_OPT_PHY_STATS */
+#if EFSYS_OPT_BIST
+       ef10_bist_enable_offline,       /* epo_bist_enable_offline */
+       ef10_bist_start,                /* epo_bist_start */
+       ef10_bist_poll,                 /* epo_bist_poll */
+       ef10_bist_stop,                 /* epo_bist_stop */
+#endif /* EFSYS_OPT_BIST */
+};
+#endif /* EFSYS_OPT_RIVERHEAD */
+
        __checkReturn   efx_rc_t
 efx_phy_probe(
        __in            efx_nic_t *enp)
@@ -88,6 +108,12 @@ efx_phy_probe(
                break;
 #endif /* EFSYS_OPT_MEDFORD2 */
 
+#if EFSYS_OPT_RIVERHEAD
+       case EFX_FAMILY_RIVERHEAD:
+               epop = &__efx_phy_rhead_ops;
+               break;
+#endif /* EFSYS_OPT_MEDFORD2 */
+
        default:
                rc = ENOTSUP;
                goto fail1;