Lines Matching refs:value

956 static int sfp_hwmon_read_sensor(struct sfp *sfp, int reg, long *value)
965 *value = be16_to_cpu(val);
970 static void sfp_hwmon_to_rx_power(long *value)
972 *value = DIV_ROUND_CLOSEST(*value, 10);
976 long *value)
979 *value = DIV_ROUND_CLOSEST(*value * slope, 256) + offset;
982 static void sfp_hwmon_calibrate_temp(struct sfp *sfp, long *value)
985 be16_to_cpu(sfp->diag.cal_t_offset), value);
987 if (*value >= 0x8000)
988 *value -= 0x10000;
990 *value = DIV_ROUND_CLOSEST(*value * 1000, 256);
993 static void sfp_hwmon_calibrate_vcc(struct sfp *sfp, long *value)
996 be16_to_cpu(sfp->diag.cal_v_offset), value);
998 *value = DIV_ROUND_CLOSEST(*value, 10);
1001 static void sfp_hwmon_calibrate_bias(struct sfp *sfp, long *value)
1004 be16_to_cpu(sfp->diag.cal_txi_offset), value);
1006 *value = DIV_ROUND_CLOSEST(*value, 500);
1009 static void sfp_hwmon_calibrate_tx_power(struct sfp *sfp, long *value)
1012 be16_to_cpu(sfp->diag.cal_txpwr_offset), value);
1014 *value = DIV_ROUND_CLOSEST(*value, 10);
1017 static int sfp_hwmon_read_temp(struct sfp *sfp, int reg, long *value)
1021 err = sfp_hwmon_read_sensor(sfp, reg, value);
1025 sfp_hwmon_calibrate_temp(sfp, value);
1030 static int sfp_hwmon_read_vcc(struct sfp *sfp, int reg, long *value)
1034 err = sfp_hwmon_read_sensor(sfp, reg, value);
1038 sfp_hwmon_calibrate_vcc(sfp, value);
1043 static int sfp_hwmon_read_bias(struct sfp *sfp, int reg, long *value)
1047 err = sfp_hwmon_read_sensor(sfp, reg, value);
1051 sfp_hwmon_calibrate_bias(sfp, value);
1056 static int sfp_hwmon_read_tx_power(struct sfp *sfp, int reg, long *value)
1060 err = sfp_hwmon_read_sensor(sfp, reg, value);
1064 sfp_hwmon_calibrate_tx_power(sfp, value);
1069 static int sfp_hwmon_read_rx_power(struct sfp *sfp, int reg, long *value)
1073 err = sfp_hwmon_read_sensor(sfp, reg, value);
1077 sfp_hwmon_to_rx_power(value);
1082 static int sfp_hwmon_temp(struct sfp *sfp, u32 attr, long *value)
1089 return sfp_hwmon_read_temp(sfp, SFP_TEMP, value);
1092 *value = be16_to_cpu(sfp->diag.temp_low_alarm);
1093 sfp_hwmon_calibrate_temp(sfp, value);
1097 *value = be16_to_cpu(sfp->diag.temp_low_warn);
1098 sfp_hwmon_calibrate_temp(sfp, value);
1101 *value = be16_to_cpu(sfp->diag.temp_high_warn);
1102 sfp_hwmon_calibrate_temp(sfp, value);
1106 *value = be16_to_cpu(sfp->diag.temp_high_alarm);
1107 sfp_hwmon_calibrate_temp(sfp, value);
1115 *value = !!(status & SFP_ALARM0_TEMP_LOW);
1123 *value = !!(status & SFP_WARN0_TEMP_LOW);
1131 *value = !!(status & SFP_WARN0_TEMP_HIGH);
1139 *value = !!(status & SFP_ALARM0_TEMP_HIGH);
1148 static int sfp_hwmon_vcc(struct sfp *sfp, u32 attr, long *value)
1155 return sfp_hwmon_read_vcc(sfp, SFP_VCC, value);
1158 *value = be16_to_cpu(sfp->diag.volt_low_alarm);
1159 sfp_hwmon_calibrate_vcc(sfp, value);
1163 *value = be16_to_cpu(sfp->diag.volt_low_warn);
1164 sfp_hwmon_calibrate_vcc(sfp, value);
1168 *value = be16_to_cpu(sfp->diag.volt_high_warn);
1169 sfp_hwmon_calibrate_vcc(sfp, value);
1173 *value = be16_to_cpu(sfp->diag.volt_high_alarm);
1174 sfp_hwmon_calibrate_vcc(sfp, value);
1182 *value = !!(status & SFP_ALARM0_VCC_LOW);
1190 *value = !!(status & SFP_WARN0_VCC_LOW);
1198 *value = !!(status & SFP_WARN0_VCC_HIGH);
1206 *value = !!(status & SFP_ALARM0_VCC_HIGH);
1215 static int sfp_hwmon_bias(struct sfp *sfp, u32 attr, long *value)
1222 return sfp_hwmon_read_bias(sfp, SFP_TX_BIAS, value);
1225 *value = be16_to_cpu(sfp->diag.bias_low_alarm);
1226 sfp_hwmon_calibrate_bias(sfp, value);
1230 *value = be16_to_cpu(sfp->diag.bias_low_warn);
1231 sfp_hwmon_calibrate_bias(sfp, value);
1235 *value = be16_to_cpu(sfp->diag.bias_high_warn);
1236 sfp_hwmon_calibrate_bias(sfp, value);
1240 *value = be16_to_cpu(sfp->diag.bias_high_alarm);
1241 sfp_hwmon_calibrate_bias(sfp, value);
1249 *value = !!(status & SFP_ALARM0_TX_BIAS_LOW);
1257 *value = !!(status & SFP_WARN0_TX_BIAS_LOW);
1265 *value = !!(status & SFP_WARN0_TX_BIAS_HIGH);
1273 *value = !!(status & SFP_ALARM0_TX_BIAS_HIGH);
1282 static int sfp_hwmon_tx_power(struct sfp *sfp, u32 attr, long *value)
1289 return sfp_hwmon_read_tx_power(sfp, SFP_TX_POWER, value);
1292 *value = be16_to_cpu(sfp->diag.txpwr_low_alarm);
1293 sfp_hwmon_calibrate_tx_power(sfp, value);
1297 *value = be16_to_cpu(sfp->diag.txpwr_low_warn);
1298 sfp_hwmon_calibrate_tx_power(sfp, value);
1302 *value = be16_to_cpu(sfp->diag.txpwr_high_warn);
1303 sfp_hwmon_calibrate_tx_power(sfp, value);
1307 *value = be16_to_cpu(sfp->diag.txpwr_high_alarm);
1308 sfp_hwmon_calibrate_tx_power(sfp, value);
1316 *value = !!(status & SFP_ALARM0_TXPWR_LOW);
1324 *value = !!(status & SFP_WARN0_TXPWR_LOW);
1332 *value = !!(status & SFP_WARN0_TXPWR_HIGH);
1340 *value = !!(status & SFP_ALARM0_TXPWR_HIGH);
1349 static int sfp_hwmon_rx_power(struct sfp *sfp, u32 attr, long *value)
1356 return sfp_hwmon_read_rx_power(sfp, SFP_RX_POWER, value);
1359 *value = be16_to_cpu(sfp->diag.rxpwr_low_alarm);
1360 sfp_hwmon_to_rx_power(value);
1364 *value = be16_to_cpu(sfp->diag.rxpwr_low_warn);
1365 sfp_hwmon_to_rx_power(value);
1369 *value = be16_to_cpu(sfp->diag.rxpwr_high_warn);
1370 sfp_hwmon_to_rx_power(value);
1374 *value = be16_to_cpu(sfp->diag.rxpwr_high_alarm);
1375 sfp_hwmon_to_rx_power(value);
1383 *value = !!(status & SFP_ALARM1_RXPWR_LOW);
1391 *value = !!(status & SFP_WARN1_RXPWR_LOW);
1399 *value = !!(status & SFP_WARN1_RXPWR_HIGH);
1407 *value = !!(status & SFP_ALARM1_RXPWR_HIGH);
1417 u32 attr, int channel, long *value)
1423 return sfp_hwmon_temp(sfp, attr, value);
1425 return sfp_hwmon_vcc(sfp, attr, value);
1427 return sfp_hwmon_bias(sfp, attr, value);
1431 return sfp_hwmon_tx_power(sfp, attr, value);
1433 return sfp_hwmon_rx_power(sfp, attr, value);
2009 * 1.0625Gb/s and high for 2.125Gb/s. Choose a value half-way between.
2029 * and allocated value 3 to SFF-8431 independent tx/rx rate select.
2058 /* SFF-8472 rev 11.0 defines rate_id as a numerical value which will