net/sfc/base: import SFN7xxx family support
[dpdk.git] / drivers / net / sfc / base / efx_phy.c
index 7b9a330..b663cf8 100644 (file)
 #include "efx_impl.h"
 
 
+#if EFSYS_OPT_SIENA
+static const efx_phy_ops_t     __efx_phy_siena_ops = {
+       siena_phy_power,                /* epo_power */
+       NULL,                           /* epo_reset */
+       siena_phy_reconfigure,          /* epo_reconfigure */
+       siena_phy_verify,               /* epo_verify */
+       siena_phy_oui_get,              /* epo_oui_get */
+};
+#endif /* EFSYS_OPT_SIENA */
+
+#if EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD
+static const efx_phy_ops_t     __efx_phy_ef10_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 */
+};
+#endif /* EFSYS_OPT_HUNTINGTON || EFSYS_OPT_MEDFORD */
+
        __checkReturn   efx_rc_t
 efx_phy_probe(
        __in            efx_nic_t *enp)
@@ -48,6 +68,16 @@ efx_phy_probe(
 
        /* Hook in operations structure */
        switch (enp->en_family) {
+#if EFSYS_OPT_SIENA
+       case EFX_FAMILY_SIENA:
+               epop = &__efx_phy_siena_ops;
+               break;
+#endif /* EFSYS_OPT_SIENA */
+#if EFSYS_OPT_HUNTINGTON
+       case EFX_FAMILY_HUNTINGTON:
+               epop = &__efx_phy_ef10_ops;
+               break;
+#endif /* EFSYS_OPT_HUNTINGTON */
        default:
                rc = ENOTSUP;
                goto fail1;