[dpdk-dev] [PATCH v2 21/66] net/ice/base: add helper functions for PHY caching

Rong, Leyi leyi.rong at intel.com
Wed Jun 12 16:45:33 CEST 2019


> -----Original Message-----
> From: Stillwell Jr, Paul M
> Sent: Wednesday, June 12, 2019 12:27 AM
> To: Rong, Leyi <leyi.rong at intel.com>; Zhang, Qi Z <qi.z.zhang at intel.com>
> Cc: dev at dpdk.org; Nguyen, Anthony L <anthony.l.nguyen at intel.com>
> Subject: RE: [PATCH v2 21/66] net/ice/base: add helper functions for PHY caching
> 
> > -----Original Message-----
> > From: Rong, Leyi
> > Sent: Tuesday, June 11, 2019 8:52 AM
> > To: Zhang, Qi Z <qi.z.zhang at intel.com>
> > Cc: dev at dpdk.org; Rong, Leyi <leyi.rong at intel.com>; Nguyen, Anthony L
> > <anthony.l.nguyen at intel.com>; Stillwell Jr, Paul M
> > <paul.m.stillwell.jr at intel.com>
> > Subject: [PATCH v2 21/66] net/ice/base: add helper functions for PHY
> > caching
> >
> > Add additional functions to aide in caching PHY configuration.
> > In order to cache the initial modes, we need to determine the
> > operating mode based on capabilities. Add helper functions for flow
> > control and FEC to take a set of capabilities and return the operating
> > mode matching those capabilities. Also add a helper function to
> > determine whether a PHY capability matches a PHY configuration.
> >
> > Signed-off-by: Tony Nguyen <anthony.l.nguyen at intel.com>
> > Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr at intel.com>
> > Signed-off-by: Leyi Rong <leyi.rong at intel.com>
> > ---
> >  drivers/net/ice/base/ice_adminq_cmd.h |  1 +
> >  drivers/net/ice/base/ice_common.c     | 83
> > +++++++++++++++++++++++++++
> >  drivers/net/ice/base/ice_common.h     |  9 ++-
> >  3 files changed, 91 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/net/ice/base/ice_adminq_cmd.h
> > b/drivers/net/ice/base/ice_adminq_cmd.h
> > index 739f79e88..77f93b950 100644
> > --- a/drivers/net/ice/base/ice_adminq_cmd.h
> > +++ b/drivers/net/ice/base/ice_adminq_cmd.h
> > @@ -1594,6 +1594,7 @@ struct ice_aqc_get_link_status_data {
> >  #define ICE_AQ_LINK_PWR_QSFP_CLASS_3	2
> >  #define ICE_AQ_LINK_PWR_QSFP_CLASS_4	3
> >  	__le16 link_speed;
> > +#define ICE_AQ_LINK_SPEED_M		0x7FF
> >  #define ICE_AQ_LINK_SPEED_10MB		BIT(0)
> >  #define ICE_AQ_LINK_SPEED_100MB		BIT(1)
> >  #define ICE_AQ_LINK_SPEED_1000MB	BIT(2)
> > diff --git a/drivers/net/ice/base/ice_common.c
> > b/drivers/net/ice/base/ice_common.c
> > index 5b4a13a41..7f7f4dad0 100644
> > --- a/drivers/net/ice/base/ice_common.c
> > +++ b/drivers/net/ice/base/ice_common.c
> > @@ -2552,6 +2552,53 @@ ice_cache_phy_user_req(struct ice_port_info *pi,
> >  	}
> >  }
> >
> > +/**
> > + * ice_caps_to_fc_mode
> > + * @caps: PHY capabilities
> > + *
> > + * Convert PHY FC capabilities to ice FC mode  */ enum ice_fc_mode
> > +ice_caps_to_fc_mode(u8 caps) {
> > +	if (caps & ICE_AQC_PHY_EN_TX_LINK_PAUSE &&
> > +	    caps & ICE_AQC_PHY_EN_RX_LINK_PAUSE)
> > +		return ICE_FC_FULL;
> > +
> > +	if (caps & ICE_AQC_PHY_EN_TX_LINK_PAUSE)
> > +		return ICE_FC_TX_PAUSE;
> > +
> > +	if (caps & ICE_AQC_PHY_EN_RX_LINK_PAUSE)
> > +		return ICE_FC_RX_PAUSE;
> > +
> > +	return ICE_FC_NONE;
> > +}
> > +
> > +/**
> > + * ice_caps_to_fec_mode
> > + * @caps: PHY capabilities
> > + * @fec_options: Link FEC options
> > + *
> > + * Convert PHY FEC capabilities to ice FEC mode  */ enum ice_fec_mode
> > +ice_caps_to_fec_mode(u8 caps, u8 fec_options) {
> > +	if (caps & ICE_AQC_PHY_EN_AUTO_FEC)
> > +		return ICE_FEC_AUTO;
> > +
> > +	if (fec_options & (ICE_AQC_PHY_FEC_10G_KR_40G_KR4_EN |
> > +			   ICE_AQC_PHY_FEC_10G_KR_40G_KR4_REQ |
> > +			   ICE_AQC_PHY_FEC_25G_KR_CLAUSE74_EN |
> > +			   ICE_AQC_PHY_FEC_25G_KR_REQ))
> > +		return ICE_FEC_BASER;
> > +
> > +	if (fec_options & (ICE_AQC_PHY_FEC_25G_RS_528_REQ |
> > +			   ICE_AQC_PHY_FEC_25G_RS_544_REQ |
> > +			   ICE_AQC_PHY_FEC_25G_RS_CLAUSE91_EN))
> > +		return ICE_FEC_RS;
> > +
> > +	return ICE_FEC_NONE;
> > +}
> > +
> 
> Is there DPDK code to call the above functions? If not, then drop this patch.
> 

They will not be called.


More information about the dev mailing list