cc_fec
enum cc_fec requested_fec; /* Forward Error Correction: */
enum cc_fec fec; /* requested and actual in use */
static inline unsigned int cc_to_eth_fec(unsigned int cc_fec)
if (cc_fec & FEC_AUTO)
if (cc_fec & FEC_RS)
if (cc_fec & FEC_BASER_RS)
unsigned int cc_fec = 0;
return cc_fec;
cc_fec |= FEC_AUTO;
cc_fec |= FEC_RS;
cc_fec |= FEC_BASER_RS;
return cc_fec;
static inline enum cc_fec fwcap_to_cc_fec(fw_port_cap32_t fw_fec)
enum cc_fec cc_fec = 0;
cc_fec |= FEC_RS;
cc_fec |= FEC_BASER_RS;
return cc_fec;
static inline fw_port_cap32_t cc_to_fwcap_fec(enum cc_fec cc_fec)
if (cc_fec & FEC_RS)
if (cc_fec & FEC_BASER_RS)
char cc_fec;
cc_fec = fwcap_to_cc_fec(lc->def_acaps);
cc_fec = lc->requested_fec;
fw_fec = cc_to_fwcap_fec(cc_fec);
lc->fec = cc_fec;
lc->fec = cc_fec;
static inline unsigned int cc_to_eth_fec(unsigned int cc_fec)
if (cc_fec & FEC_AUTO)
if (cc_fec & FEC_RS)
if (cc_fec & FEC_BASER_RS)
enum cc_fec auto_fec; /* Forward Error Correction: */
enum cc_fec requested_fec; /* "automatic" (IEEE 802.3), */
enum cc_fec fec; /* requested, and actual in use */
static inline enum cc_fec fwcap_to_cc_fec(fw_port_cap32_t fw_fec)
enum cc_fec cc_fec = 0;
cc_fec |= FEC_RS;
cc_fec |= FEC_BASER_RS;
return cc_fec;
static inline enum cc_fec fwcap_to_cc_fec(fw_port_cap32_t fw_fec)
enum cc_fec cc_fec = 0;
cc_fec |= FEC_RS;
cc_fec |= FEC_BASER_RS;
return cc_fec;
static inline fw_port_cap32_t cc_to_fwcap_fec(enum cc_fec cc_fec)
if (cc_fec & FEC_RS)
if (cc_fec & FEC_BASER_RS)
fw_port_cap32_t fw_fc, cc_fec, fw_fec, lrcap;
cc_fec = fwcap_to_cc_fec(lc->def_acaps);
cc_fec = lc->requested_fec;
fw_fec = cc_to_fwcap_fec(cc_fec);
lc->fec = cc_fec;
lc->fec = cc_fec;
enum cc_fec requested_fec; /* Forward Error Correction: */
enum cc_fec fec; /* requested and actual in use */