]> git.itanic.dy.fi Git - linux-stable/blobdiff - drivers/net/ethernet/freescale/enetc/enetc_qos.c
net: enetc: move enetc_set_psfp() out of the common enetc_set_features()
[linux-stable] / drivers / net / ethernet / freescale / enetc / enetc_qos.c
index 582a663ed0ba429fd04fdf032b144e7ac1121b04..f8a2f02ce22de9c02922bb05872ca979519ef65d 100644 (file)
@@ -1517,6 +1517,29 @@ int enetc_setup_tc_block_cb(enum tc_setup_type type, void *type_data,
        }
 }
 
+int enetc_set_psfp(struct net_device *ndev, bool en)
+{
+       struct enetc_ndev_priv *priv = netdev_priv(ndev);
+       int err;
+
+       if (en) {
+               err = enetc_psfp_enable(priv);
+               if (err)
+                       return err;
+
+               priv->active_offloads |= ENETC_F_QCI;
+               return 0;
+       }
+
+       err = enetc_psfp_disable(priv);
+       if (err)
+               return err;
+
+       priv->active_offloads &= ~ENETC_F_QCI;
+
+       return 0;
+}
+
 int enetc_psfp_init(struct enetc_ndev_priv *priv)
 {
        if (epsfp.psfp_sfi_bitmap)