• Home
  • Raw
  • Download

Lines Matching full:sd

146 static void sff8472_dom_parse(const __u8 *id, struct sff_diags *sd)  in sff8472_dom_parse()  argument
148 sd->bias_cur[MCURR] = A2_OFFSET_TO_U16(SFF_A2_BIAS); in sff8472_dom_parse()
149 sd->bias_cur[HALRM] = A2_OFFSET_TO_U16(SFF_A2_BIAS_HALRM); in sff8472_dom_parse()
150 sd->bias_cur[LALRM] = A2_OFFSET_TO_U16(SFF_A2_BIAS_LALRM); in sff8472_dom_parse()
151 sd->bias_cur[HWARN] = A2_OFFSET_TO_U16(SFF_A2_BIAS_HWARN); in sff8472_dom_parse()
152 sd->bias_cur[LWARN] = A2_OFFSET_TO_U16(SFF_A2_BIAS_LWARN); in sff8472_dom_parse()
154 sd->sfp_voltage[MCURR] = A2_OFFSET_TO_U16(SFF_A2_VCC); in sff8472_dom_parse()
155 sd->sfp_voltage[HALRM] = A2_OFFSET_TO_U16(SFF_A2_VCC_HALRM); in sff8472_dom_parse()
156 sd->sfp_voltage[LALRM] = A2_OFFSET_TO_U16(SFF_A2_VCC_LALRM); in sff8472_dom_parse()
157 sd->sfp_voltage[HWARN] = A2_OFFSET_TO_U16(SFF_A2_VCC_HWARN); in sff8472_dom_parse()
158 sd->sfp_voltage[LWARN] = A2_OFFSET_TO_U16(SFF_A2_VCC_LWARN); in sff8472_dom_parse()
160 sd->tx_power[MCURR] = A2_OFFSET_TO_U16(SFF_A2_TX_PWR); in sff8472_dom_parse()
161 sd->tx_power[HALRM] = A2_OFFSET_TO_U16(SFF_A2_TX_PWR_HALRM); in sff8472_dom_parse()
162 sd->tx_power[LALRM] = A2_OFFSET_TO_U16(SFF_A2_TX_PWR_LALRM); in sff8472_dom_parse()
163 sd->tx_power[HWARN] = A2_OFFSET_TO_U16(SFF_A2_TX_PWR_HWARN); in sff8472_dom_parse()
164 sd->tx_power[LWARN] = A2_OFFSET_TO_U16(SFF_A2_TX_PWR_LWARN); in sff8472_dom_parse()
166 sd->rx_power[MCURR] = A2_OFFSET_TO_U16(SFF_A2_RX_PWR); in sff8472_dom_parse()
167 sd->rx_power[HALRM] = A2_OFFSET_TO_U16(SFF_A2_RX_PWR_HALRM); in sff8472_dom_parse()
168 sd->rx_power[LALRM] = A2_OFFSET_TO_U16(SFF_A2_RX_PWR_LALRM); in sff8472_dom_parse()
169 sd->rx_power[HWARN] = A2_OFFSET_TO_U16(SFF_A2_RX_PWR_HWARN); in sff8472_dom_parse()
170 sd->rx_power[LWARN] = A2_OFFSET_TO_U16(SFF_A2_RX_PWR_LWARN); in sff8472_dom_parse()
172 sd->sfp_temp[MCURR] = A2_OFFSET_TO_TEMP(SFF_A2_TEMP); in sff8472_dom_parse()
173 sd->sfp_temp[HALRM] = A2_OFFSET_TO_TEMP(SFF_A2_TEMP_HALRM); in sff8472_dom_parse()
174 sd->sfp_temp[LALRM] = A2_OFFSET_TO_TEMP(SFF_A2_TEMP_LALRM); in sff8472_dom_parse()
175 sd->sfp_temp[HWARN] = A2_OFFSET_TO_TEMP(SFF_A2_TEMP_HWARN); in sff8472_dom_parse()
176 sd->sfp_temp[LWARN] = A2_OFFSET_TO_TEMP(SFF_A2_TEMP_LWARN); in sff8472_dom_parse()
191 static void sff8472_calibration(const __u8 *id, struct sff_diags *sd) in sff8472_calibration() argument
197 for (i = 0; i < ARRAY_SIZE(sd->bias_cur); ++i) { in sff8472_calibration()
201 sd->bias_cur[i] *= A2_OFFSET_TO_SLP(SFF_A2_CAL_TXI_SLP); in sff8472_calibration()
202 sd->tx_power[i] *= A2_OFFSET_TO_SLP(SFF_A2_CAL_TXPWR_SLP); in sff8472_calibration()
203 sd->sfp_voltage[i] *= A2_OFFSET_TO_SLP(SFF_A2_CAL_V_SLP); in sff8472_calibration()
204 sd->sfp_temp[i] *= A2_OFFSET_TO_SLP(SFF_A2_CAL_T_SLP); in sff8472_calibration()
206 sd->bias_cur[i] += A2_OFFSET_TO_OFF(SFF_A2_CAL_TXI_OFF); in sff8472_calibration()
207 sd->tx_power[i] += A2_OFFSET_TO_OFF(SFF_A2_CAL_TXPWR_OFF); in sff8472_calibration()
208 sd->sfp_voltage[i] += A2_OFFSET_TO_OFF(SFF_A2_CAL_V_OFF); in sff8472_calibration()
209 sd->sfp_temp[i] += A2_OFFSET_TO_OFF(SFF_A2_CAL_T_OFF); in sff8472_calibration()
214 rx_reading = sd->rx_power[i]; in sff8472_calibration()
215 sd->rx_power[i] = A2_OFFSET_TO_RXPWRx(SFF_A2_CAL_RXPWR0); in sff8472_calibration()
216 sd->rx_power[i] += rx_reading * in sff8472_calibration()
218 sd->rx_power[i] += rx_reading * in sff8472_calibration()
220 sd->rx_power[i] += rx_reading * in sff8472_calibration()
225 static void sff8472_parse_eeprom(const __u8 *id, struct sff_diags *sd) in sff8472_parse_eeprom() argument
227 sd->supports_dom = id[SFF_A0_DOM] & SFF_A0_DOM_IMPL; in sff8472_parse_eeprom()
228 sd->supports_alarms = id[SFF_A0_OPTIONS] & SFF_A0_OPTIONS_AW; in sff8472_parse_eeprom()
229 sd->calibrated_ext = id[SFF_A0_DOM] & SFF_A0_DOM_EXTCAL; in sff8472_parse_eeprom()
230 sd->rx_power_type = id[SFF_A0_DOM] & SFF_A0_DOM_PWRT; in sff8472_parse_eeprom()
232 sff8472_dom_parse(id, sd); in sff8472_parse_eeprom()
238 if (sd->calibrated_ext) in sff8472_parse_eeprom()
239 sff8472_calibration(id, sd); in sff8472_parse_eeprom()
244 struct sff_diags sd = {0}; in sff8472_show_all() local
248 sff8472_parse_eeprom(id, &sd); in sff8472_show_all()
250 if (!sd.supports_dom) { in sff8472_show_all()
256 PRINT_BIAS("Laser bias current", sd.bias_cur[MCURR]); in sff8472_show_all()
257 PRINT_xX_PWR("Laser output power", sd.tx_power[MCURR]); in sff8472_show_all()
259 if (!sd.rx_power_type) in sff8472_show_all()
264 PRINT_xX_PWR(rx_power_string, sd.rx_power[MCURR]); in sff8472_show_all()
266 PRINT_TEMP("Module temperature", sd.sfp_temp[MCURR]); in sff8472_show_all()
267 PRINT_VCC("Module voltage", sd.sfp_voltage[MCURR]); in sff8472_show_all()
270 (sd.supports_alarms ? "Yes" : "No")); in sff8472_show_all()
271 if (sd.supports_alarms) { in sff8472_show_all()
278 sff_show_thresholds(sd); in sff8472_show_all()