common/sfc_efx/base: use EF10 EVB methods for Riverhead
authorAndrew Rybchenko <arybchenko@solarflare.com>
Thu, 24 Sep 2020 12:12:27 +0000 (13:12 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 30 Sep 2020 17:19:13 +0000 (19:19 +0200)
There is no difference yet in EVB 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>
drivers/common/sfc_efx/base/ef10_evb.c
drivers/common/sfc_efx/base/efx_check.h
drivers/common/sfc_efx/base/efx_evb.c

index aeeaa51..089d791 100644 (file)
@@ -9,13 +9,13 @@
 
 #if EFSYS_OPT_EVB
 
-#if EFX_OPTS_EF10()
+#if EFSYS_OPT_RIVERHEAD || EFX_OPTS_EF10()
 
        __checkReturn   efx_rc_t
 ef10_evb_init(
        __in            efx_nic_t *enp)
 {
-       EFSYS_ASSERT(EFX_FAMILY_IS_EF10(enp));
+       EFSYS_ASSERT(EFX_FAMILY_IS_EF100(enp) || EFX_FAMILY_IS_EF10(enp));
 
        return (0);
 }
@@ -24,7 +24,7 @@ ef10_evb_init(
 ef10_evb_fini(
        __in            efx_nic_t *enp)
 {
-       EFSYS_ASSERT(EFX_FAMILY_IS_EF10(enp));
+       EFSYS_ASSERT(EFX_FAMILY_IS_EF100(enp) || EFX_FAMILY_IS_EF10(enp));
 }
 
 static __checkReturn   efx_rc_t
@@ -545,5 +545,5 @@ ef10_evb_vport_stats(
                        EFX_STATS_UPLOAD, 0));
 }
 
-#endif /* EFX_OPTS_EF10() */
+#endif /* EFSYS_OPT_RIVERHEAD || EFX_OPTS_EF10() */
 #endif /* EFSYS_OPT_EVB */
index af90a4c..f9f9794 100644 (file)
 
 #if EFSYS_OPT_EVB
 /* Support enterprise virtual bridging */
-# if !(EFX_OPTS_EF10())
-#  error "EVB requires EF10 arch"
+# if !(EFSYS_OPT_RIVERHEAD || EFX_OPTS_EF10())
+#  error "EVB requires RIVERHEAD or EF10 arch"
 # endif
 #endif /* EFSYS_OPT_EVB */
 
index 17318b7..b6c9b88 100644 (file)
@@ -46,6 +46,24 @@ static const efx_evb_ops_t   __efx_evb_ef10_ops = {
 };
 #endif /* EFX_OPTS_EF10() */
 
+#if EFSYS_OPT_RIVERHEAD
+static const efx_evb_ops_t     __efx_evb_rhead_ops = {
+       ef10_evb_init,                  /* eeo_init */
+       ef10_evb_fini,                  /* eeo_fini */
+       ef10_evb_vswitch_alloc,         /* eeo_vswitch_alloc */
+       ef10_evb_vswitch_free,          /* eeo_vswitch_free */
+       ef10_evb_vport_alloc,           /* eeo_vport_alloc */
+       ef10_evb_vport_free,            /* eeo_vport_free */
+       ef10_evb_vport_mac_addr_add,    /* eeo_vport_mac_addr_add */
+       ef10_evb_vport_mac_addr_del,    /* eeo_vport_mac_addr_del */
+       ef10_evb_vadaptor_alloc,        /* eeo_vadaptor_alloc */
+       ef10_evb_vadaptor_free,         /* eeo_vadaptor_free */
+       ef10_evb_vport_assign,          /* eeo_vport_assign */
+       ef10_evb_vport_reconfigure,     /* eeo_vport_reconfigure */
+       ef10_evb_vport_stats,           /* eeo_vport_stats */
+};
+#endif /* EFSYS_OPT_RIVERHEAD */
+
        __checkReturn   efx_rc_t
 efx_evb_init(
        __in            efx_nic_t *enp)
@@ -83,6 +101,12 @@ efx_evb_init(
                break;
 #endif /* EFSYS_OPT_MEDFORD2 */
 
+#if EFSYS_OPT_RIVERHEAD
+       case EFX_FAMILY_RIVERHEAD:
+               eeop = &__efx_evb_rhead_ops;
+               break;
+#endif /* EFSYS_OPT_RIVERHEAD */
+
        default:
                EFSYS_ASSERT(0);
                rc = ENOTSUP;