diff options
Diffstat (limited to 'drivers/net/ethernet/freescale/enetc/enetc_qos.c')
| -rw-r--r-- | drivers/net/ethernet/freescale/enetc/enetc_qos.c | 23 | 
1 files changed, 23 insertions, 0 deletions
| diff --git a/drivers/net/ethernet/freescale/enetc/enetc_qos.c b/drivers/net/ethernet/freescale/enetc/enetc_qos.c index 582a663ed0ba..f8a2f02ce22d 100644 --- a/drivers/net/ethernet/freescale/enetc/enetc_qos.c +++ b/drivers/net/ethernet/freescale/enetc/enetc_qos.c @@ -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) | 
