Hi Adrian > +static void > +qsfp_dd_parse_diagnostics(const __u8 *id, struct qsfp_dd_diags *const sd) > +{ > + __u16 rx_power_offset; > + __u16 tx_power_offset; > + __u16 tx_bias_offset; > + __u16 temp_offset; > + __u16 volt_offset; > + int i; > + > + for (i = 0; i < QSFP_DD_MAX_CHANNELS; ++i) { > + /* > + * Add Tx/Rx output/input optical power relevant information. > + * To access the info for the ith lane, we have to skip i * 2 > + * bytes starting from the offset of the first lane for that > + * specific channel property. > + */ > + tx_bias_offset = QSFP_DD_TX_BIAS_START_OFFSET + (i << 1); > + rx_power_offset = QSFP_DD_RX_PWR_START_OFFSET + (i << 1); > + tx_power_offset = QSFP_DD_TX_PWR_START_OFFSET + (i << 1);
> +/*----------------------------------------------------------------------- > + * Upper Memory Page 0x10: contains dynamic control bytes. > + * RealOffset = 3 * 0x80 + LocalOffset > + */ > +#define PAG10H_OFFSET (0x03 * 0x80) > + > +/*----------------------------------------------------------------------- > + * Upper Memory Page 0x11: contains lane dynamic status bytes. > + * RealOffset = 4 * 0x80 + LocalOffset > + */ > +#define PAG11H_OFFSET (0x04 * 0x80) > +#define QSFP_DD_TX_PWR_START_OFFSET (PAG11H_OFFSET + 0x9A) > +#define QSFP_DD_TX_BIAS_START_OFFSET (PAG11H_OFFSET + 0xAA) > +#define QSFP_DD_RX_PWR_START_OFFSET (PAG11H_OFFSET + 0xBA) > + > +/* HA = High Alarm; LA = Low Alarm > + * HW = High Warning; LW = Low Warning > + */ > +#define QSFP_DD_TX_HA_OFFSET (PAG11H_OFFSET + 0x8B) > +#define QSFP_DD_TX_LA_OFFSET (PAG11H_OFFSET + 0x8C) > +#define QSFP_DD_TX_HW_OFFSET (PAG11H_OFFSET + 0x8D) > +#define QSFP_DD_TX_LW_OFFSET (PAG11H_OFFSET + 0x8E) > + > +#define QSFP_DD_RX_HA_OFFSET (PAG11H_OFFSET + 0x95) > +#define QSFP_DD_RX_LA_OFFSET (PAG11H_OFFSET + 0x96) > +#define QSFP_DD_RX_HW_OFFSET (PAG11H_OFFSET + 0x97) > +#define QSFP_DD_RX_LW_OFFSET (PAG11H_OFFSET + 0x98) You still have code which implies page 0x10 and 0x11 follow directly after page 2. This is something i would like to avoid until we have a driver which really does export these pages. Please could you remove all this code. Thanks Andrew