[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