Lines Matching refs:priv
507 static int aqc_get_ctrl_data(struct aqc_data *priv) in aqc_get_ctrl_data() argument
511 memset(priv->buffer, 0x00, priv->buffer_size); in aqc_get_ctrl_data()
512 ret = hid_hw_raw_request(priv->hdev, CTRL_REPORT_ID, priv->buffer, priv->buffer_size, in aqc_get_ctrl_data()
521 static int aqc_send_ctrl_data(struct aqc_data *priv) in aqc_send_ctrl_data() argument
527 checksum = crc16(0xffff, priv->buffer + priv->checksum_start, priv->checksum_length); in aqc_send_ctrl_data()
531 put_unaligned_be16(checksum, priv->buffer + priv->checksum_offset); in aqc_send_ctrl_data()
534 ret = hid_hw_raw_request(priv->hdev, CTRL_REPORT_ID, priv->buffer, priv->buffer_size, in aqc_send_ctrl_data()
540 ret = hid_hw_raw_request(priv->hdev, SECONDARY_CTRL_REPORT_ID, secondary_ctrl_report, in aqc_send_ctrl_data()
547 static int aqc_get_ctrl_val(struct aqc_data *priv, int offset, long *val) in aqc_get_ctrl_val() argument
551 mutex_lock(&priv->mutex); in aqc_get_ctrl_val()
553 ret = aqc_get_ctrl_data(priv); in aqc_get_ctrl_val()
557 *val = (s16)get_unaligned_be16(priv->buffer + offset); in aqc_get_ctrl_val()
560 mutex_unlock(&priv->mutex); in aqc_get_ctrl_val()
564 static int aqc_set_ctrl_val(struct aqc_data *priv, int offset, long val) in aqc_set_ctrl_val() argument
568 mutex_lock(&priv->mutex); in aqc_set_ctrl_val()
570 ret = aqc_get_ctrl_data(priv); in aqc_set_ctrl_val()
574 put_unaligned_be16((s16)val, priv->buffer + offset); in aqc_set_ctrl_val()
576 ret = aqc_send_ctrl_data(priv); in aqc_set_ctrl_val()
579 mutex_unlock(&priv->mutex); in aqc_set_ctrl_val()
585 const struct aqc_data *priv = data; in aqc_is_visible() local
589 if (channel < priv->num_temp_sensors) { in aqc_is_visible()
595 if (priv->temp_ctrl_offset != 0) in aqc_is_visible()
604 priv->num_temp_sensors + priv->num_virtual_temp_sensors + in aqc_is_visible()
605 priv->num_calc_virt_temp_sensors) in aqc_is_visible()
615 if (priv->fan_ctrl_offsets && channel < priv->num_fans) { in aqc_is_visible()
628 switch (priv->kind) { in aqc_is_visible()
647 if (channel < priv->num_fans + priv->num_flow_sensors) in aqc_is_visible()
651 if (channel < priv->num_fans) in aqc_is_visible()
658 if (priv->kind == quadro && channel == priv->num_fans) in aqc_is_visible()
666 switch (priv->kind) { in aqc_is_visible()
678 if (channel < priv->num_fans) in aqc_is_visible()
684 switch (priv->kind) { in aqc_is_visible()
691 if (channel < priv->num_fans) in aqc_is_visible()
697 switch (priv->kind) { in aqc_is_visible()
700 if (channel < priv->num_fans + 2) in aqc_is_visible()
710 if (channel < priv->num_fans) in aqc_is_visible()
723 static int aqc_legacy_read(struct aqc_data *priv) in aqc_legacy_read() argument
727 mutex_lock(&priv->mutex); in aqc_legacy_read()
729 memset(priv->buffer, 0x00, priv->buffer_size); in aqc_legacy_read()
730 ret = hid_hw_raw_request(priv->hdev, priv->status_report_id, priv->buffer, in aqc_legacy_read()
731 priv->buffer_size, HID_FEATURE_REPORT, HID_REQ_GET_REPORT); in aqc_legacy_read()
736 for (i = 0; i < priv->num_temp_sensors; i++) { in aqc_legacy_read()
737 sensor_value = get_unaligned_le16(priv->buffer + priv->temp_sensor_start_offset + in aqc_legacy_read()
739 priv->temp_input[i] = sensor_value * 10; in aqc_legacy_read()
742 priv->updated = jiffies; in aqc_legacy_read()
745 mutex_unlock(&priv->mutex); in aqc_legacy_read()
753 struct aqc_data *priv = dev_get_drvdata(dev); in aqc_read() local
755 if (time_after(jiffies, priv->updated + STATUS_UPDATE_INTERVAL)) { in aqc_read()
756 if (priv->status_report_id != 0) { in aqc_read()
758 ret = aqc_legacy_read(priv); in aqc_read()
770 if (priv->temp_input[channel] == -ENODATA) in aqc_read()
773 *val = priv->temp_input[channel]; in aqc_read()
777 aqc_get_ctrl_val(priv, priv->temp_ctrl_offset + in aqc_read()
791 *val = priv->speed_input[channel]; in aqc_read()
794 ret = aqc_get_ctrl_val(priv, priv->flow_pulses_ctrl_offset, val); in aqc_read()
803 *val = priv->power_input[channel]; in aqc_read()
806 if (priv->fan_ctrl_offsets) { in aqc_read()
807 ret = aqc_get_ctrl_val(priv, priv->fan_ctrl_offsets[channel], val); in aqc_read()
815 *val = priv->voltage_input[channel]; in aqc_read()
818 *val = priv->current_input[channel]; in aqc_read()
830 struct aqc_data *priv = dev_get_drvdata(dev); in aqc_read_string() local
833 int num_non_calc_sensors = priv->num_temp_sensors + priv->num_virtual_temp_sensors; in aqc_read_string()
837 if (channel < priv->num_temp_sensors) { in aqc_read_string()
838 *str = priv->temp_label[channel]; in aqc_read_string()
840 if (priv->kind == aquaero && channel >= num_non_calc_sensors) in aqc_read_string()
842 priv->calc_virt_temp_label[channel - num_non_calc_sensors]; in aqc_read_string()
844 *str = priv->virtual_temp_label[channel - priv->num_temp_sensors]; in aqc_read_string()
848 *str = priv->speed_label[channel]; in aqc_read_string()
851 *str = priv->power_label[channel]; in aqc_read_string()
854 *str = priv->voltage_label[channel]; in aqc_read_string()
857 *str = priv->current_label[channel]; in aqc_read_string()
870 struct aqc_data *priv = dev_get_drvdata(dev); in aqc_write() local
879 aqc_set_ctrl_val(priv, priv->temp_ctrl_offset + in aqc_write()
892 ret = aqc_set_ctrl_val(priv, priv->flow_pulses_ctrl_offset, val); in aqc_write()
903 if (priv->fan_ctrl_offsets) { in aqc_write()
908 ret = aqc_set_ctrl_val(priv, priv->fan_ctrl_offsets[channel], in aqc_write()
1010 struct aqc_data *priv; in aqc_raw_event() local
1015 priv = hid_get_drvdata(hdev); in aqc_raw_event()
1018 priv->serial_number[0] = get_unaligned_be16(data + priv->serial_number_start_offset); in aqc_raw_event()
1019 priv->serial_number[1] = get_unaligned_be16(data + priv->serial_number_start_offset + in aqc_raw_event()
1021 priv->firmware_version = get_unaligned_be16(data + priv->firmware_version_offset); in aqc_raw_event()
1024 for (i = 0; i < priv->num_temp_sensors; i++) { in aqc_raw_event()
1026 priv->temp_sensor_start_offset + in aqc_raw_event()
1029 priv->temp_input[i] = -ENODATA; in aqc_raw_event()
1031 priv->temp_input[i] = sensor_value * 10; in aqc_raw_event()
1035 for (j = 0; j < priv->num_virtual_temp_sensors; j++) { in aqc_raw_event()
1037 priv->virtual_temp_sensor_start_offset + in aqc_raw_event()
1040 priv->temp_input[i] = -ENODATA; in aqc_raw_event()
1042 priv->temp_input[i] = sensor_value * 10; in aqc_raw_event()
1047 for (i = 0; i < priv->num_fans; i++) { in aqc_raw_event()
1048 priv->speed_input[i] = in aqc_raw_event()
1049 get_unaligned_be16(data + priv->fan_sensor_offsets[i] + in aqc_raw_event()
1050 priv->fan_structure->speed); in aqc_raw_event()
1051 priv->power_input[i] = in aqc_raw_event()
1052 get_unaligned_be16(data + priv->fan_sensor_offsets[i] + in aqc_raw_event()
1053 priv->fan_structure->power) * 10000; in aqc_raw_event()
1054 priv->voltage_input[i] = in aqc_raw_event()
1055 get_unaligned_be16(data + priv->fan_sensor_offsets[i] + in aqc_raw_event()
1056 priv->fan_structure->voltage) * 10; in aqc_raw_event()
1057 priv->current_input[i] = in aqc_raw_event()
1058 get_unaligned_be16(data + priv->fan_sensor_offsets[i] + in aqc_raw_event()
1059 priv->fan_structure->curr); in aqc_raw_event()
1063 for (j = 0; j < priv->num_flow_sensors; j++) { in aqc_raw_event()
1064 priv->speed_input[i] = get_unaligned_be16(data + priv->flow_sensors_start_offset + in aqc_raw_event()
1069 if (priv->power_cycle_count_offset != 0) in aqc_raw_event()
1070 priv->power_cycles = get_unaligned_be32(data + priv->power_cycle_count_offset); in aqc_raw_event()
1073 switch (priv->kind) { in aqc_raw_event()
1076 i = priv->num_temp_sensors + priv->num_virtual_temp_sensors; in aqc_raw_event()
1077 for (j = 0; j < priv->num_calc_virt_temp_sensors; j++) { in aqc_raw_event()
1079 priv->calc_virt_temp_sensor_start_offset + in aqc_raw_event()
1082 priv->temp_input[i] = -ENODATA; in aqc_raw_event()
1084 priv->temp_input[i] = sensor_value * 10; in aqc_raw_event()
1089 priv->speed_input[1] = get_unaligned_be16(data + AQUASTREAMULT_PUMP_OFFSET); in aqc_raw_event()
1090 priv->speed_input[2] = get_unaligned_be16(data + AQUASTREAMULT_PRESSURE_OFFSET); in aqc_raw_event()
1091 priv->speed_input[3] = get_unaligned_be16(data + AQUASTREAMULT_FLOW_SENSOR_OFFSET); in aqc_raw_event()
1093 priv->power_input[1] = get_unaligned_be16(data + AQUASTREAMULT_PUMP_POWER) * 10000; in aqc_raw_event()
1095 priv->voltage_input[1] = get_unaligned_be16(data + AQUASTREAMULT_PUMP_VOLTAGE) * 10; in aqc_raw_event()
1097 priv->current_input[1] = get_unaligned_be16(data + AQUASTREAMULT_PUMP_CURRENT); in aqc_raw_event()
1100 priv->voltage_input[2] = get_unaligned_be16(data + D5NEXT_5V_VOLTAGE) * 10; in aqc_raw_event()
1101 priv->voltage_input[3] = get_unaligned_be16(data + D5NEXT_12V_VOLTAGE) * 10; in aqc_raw_event()
1105 if (priv->temp_input[1] == -ENODATA) in aqc_raw_event()
1106 priv->power_input[0] = -ENODATA; in aqc_raw_event()
1108 priv->power_input[0] = in aqc_raw_event()
1111 priv->voltage_input[0] = get_unaligned_be16(data + HIGHFLOWNEXT_5V_VOLTAGE) * 10; in aqc_raw_event()
1112 priv->voltage_input[1] = in aqc_raw_event()
1115 priv->speed_input[1] = get_unaligned_be16(data + HIGHFLOWNEXT_WATER_QUALITY); in aqc_raw_event()
1116 priv->speed_input[2] = get_unaligned_be16(data + HIGHFLOWNEXT_CONDUCTIVITY); in aqc_raw_event()
1122 priv->updated = jiffies; in aqc_raw_event()
1131 struct aqc_data *priv = seqf->private; in serial_number_show() local
1133 seq_printf(seqf, "%05u-%05u\n", priv->serial_number[0], priv->serial_number[1]); in serial_number_show()
1141 struct aqc_data *priv = seqf->private; in firmware_version_show() local
1143 seq_printf(seqf, "%u\n", priv->firmware_version); in firmware_version_show()
1151 struct aqc_data *priv = seqf->private; in power_cycles_show() local
1153 seq_printf(seqf, "%u\n", priv->power_cycles); in power_cycles_show()
1159 static void aqc_debugfs_init(struct aqc_data *priv) in aqc_debugfs_init() argument
1163 scnprintf(name, sizeof(name), "%s_%s-%s", "aquacomputer", priv->name, in aqc_debugfs_init()
1164 dev_name(&priv->hdev->dev)); in aqc_debugfs_init()
1166 priv->debugfs = debugfs_create_dir(name, NULL); in aqc_debugfs_init()
1168 if (priv->serial_number_start_offset != 0) in aqc_debugfs_init()
1169 debugfs_create_file("serial_number", 0444, priv->debugfs, priv, in aqc_debugfs_init()
1171 if (priv->firmware_version_offset != 0) in aqc_debugfs_init()
1172 debugfs_create_file("firmware_version", 0444, priv->debugfs, priv, in aqc_debugfs_init()
1174 if (priv->power_cycle_count_offset != 0) in aqc_debugfs_init()
1175 debugfs_create_file("power_cycles", 0444, priv->debugfs, priv, &power_cycles_fops); in aqc_debugfs_init()
1180 static void aqc_debugfs_init(struct aqc_data *priv) in aqc_debugfs_init() argument
1188 struct aqc_data *priv; in aqc_probe() local
1191 priv = devm_kzalloc(&hdev->dev, sizeof(*priv), GFP_KERNEL); in aqc_probe()
1192 if (!priv) in aqc_probe()
1195 priv->hdev = hdev; in aqc_probe()
1196 hid_set_drvdata(hdev, priv); in aqc_probe()
1198 priv->updated = jiffies - STATUS_UPDATE_INTERVAL; in aqc_probe()
1230 priv->kind = aquaero; in aqc_probe()
1232 priv->num_fans = AQUAERO_NUM_FANS; in aqc_probe()
1233 priv->fan_sensor_offsets = aquaero_sensor_fan_offsets; in aqc_probe()
1235 priv->num_temp_sensors = AQUAERO_NUM_SENSORS; in aqc_probe()
1236 priv->temp_sensor_start_offset = AQUAERO_SENSOR_START; in aqc_probe()
1237 priv->num_virtual_temp_sensors = AQUAERO_NUM_VIRTUAL_SENSORS; in aqc_probe()
1238 priv->virtual_temp_sensor_start_offset = AQUAERO_VIRTUAL_SENSOR_START; in aqc_probe()
1239 priv->num_calc_virt_temp_sensors = AQUAERO_NUM_CALC_VIRTUAL_SENSORS; in aqc_probe()
1240 priv->calc_virt_temp_sensor_start_offset = AQUAERO_CALC_VIRTUAL_SENSOR_START; in aqc_probe()
1241 priv->num_flow_sensors = AQUAERO_NUM_FLOW_SENSORS; in aqc_probe()
1242 priv->flow_sensors_start_offset = AQUAERO_FLOW_SENSORS_START; in aqc_probe()
1244 priv->temp_label = label_temp_sensors; in aqc_probe()
1245 priv->virtual_temp_label = label_virtual_temp_sensors; in aqc_probe()
1246 priv->calc_virt_temp_label = label_aquaero_calc_temp_sensors; in aqc_probe()
1247 priv->speed_label = label_aquaero_speeds; in aqc_probe()
1248 priv->power_label = label_fan_power; in aqc_probe()
1249 priv->voltage_label = label_fan_voltage; in aqc_probe()
1250 priv->current_label = label_fan_current; in aqc_probe()
1253 priv->kind = d5next; in aqc_probe()
1255 priv->num_fans = D5NEXT_NUM_FANS; in aqc_probe()
1256 priv->fan_sensor_offsets = d5next_sensor_fan_offsets; in aqc_probe()
1257 priv->fan_ctrl_offsets = d5next_ctrl_fan_offsets; in aqc_probe()
1259 priv->num_temp_sensors = D5NEXT_NUM_SENSORS; in aqc_probe()
1260 priv->temp_sensor_start_offset = D5NEXT_COOLANT_TEMP; in aqc_probe()
1261 priv->num_virtual_temp_sensors = D5NEXT_NUM_VIRTUAL_SENSORS; in aqc_probe()
1262 priv->virtual_temp_sensor_start_offset = D5NEXT_VIRTUAL_SENSORS_START; in aqc_probe()
1263 priv->temp_ctrl_offset = D5NEXT_TEMP_CTRL_OFFSET; in aqc_probe()
1265 priv->buffer_size = D5NEXT_CTRL_REPORT_SIZE; in aqc_probe()
1267 priv->power_cycle_count_offset = D5NEXT_POWER_CYCLES; in aqc_probe()
1269 priv->temp_label = label_d5next_temp; in aqc_probe()
1270 priv->virtual_temp_label = label_virtual_temp_sensors; in aqc_probe()
1271 priv->speed_label = label_d5next_speeds; in aqc_probe()
1272 priv->power_label = label_d5next_power; in aqc_probe()
1273 priv->voltage_label = label_d5next_voltages; in aqc_probe()
1274 priv->current_label = label_d5next_current; in aqc_probe()
1277 priv->kind = farbwerk; in aqc_probe()
1279 priv->num_fans = 0; in aqc_probe()
1281 priv->num_temp_sensors = FARBWERK_NUM_SENSORS; in aqc_probe()
1282 priv->temp_sensor_start_offset = FARBWERK_SENSOR_START; in aqc_probe()
1284 priv->temp_label = label_temp_sensors; in aqc_probe()
1287 priv->kind = farbwerk360; in aqc_probe()
1289 priv->num_fans = 0; in aqc_probe()
1291 priv->num_temp_sensors = FARBWERK360_NUM_SENSORS; in aqc_probe()
1292 priv->temp_sensor_start_offset = FARBWERK360_SENSOR_START; in aqc_probe()
1293 priv->num_virtual_temp_sensors = FARBWERK360_NUM_VIRTUAL_SENSORS; in aqc_probe()
1294 priv->virtual_temp_sensor_start_offset = FARBWERK360_VIRTUAL_SENSORS_START; in aqc_probe()
1295 priv->temp_ctrl_offset = FARBWERK360_TEMP_CTRL_OFFSET; in aqc_probe()
1297 priv->buffer_size = FARBWERK360_CTRL_REPORT_SIZE; in aqc_probe()
1299 priv->temp_label = label_temp_sensors; in aqc_probe()
1300 priv->virtual_temp_label = label_virtual_temp_sensors; in aqc_probe()
1303 priv->kind = octo; in aqc_probe()
1305 priv->num_fans = OCTO_NUM_FANS; in aqc_probe()
1306 priv->fan_sensor_offsets = octo_sensor_fan_offsets; in aqc_probe()
1307 priv->fan_ctrl_offsets = octo_ctrl_fan_offsets; in aqc_probe()
1309 priv->num_temp_sensors = OCTO_NUM_SENSORS; in aqc_probe()
1310 priv->temp_sensor_start_offset = OCTO_SENSOR_START; in aqc_probe()
1311 priv->num_virtual_temp_sensors = OCTO_NUM_VIRTUAL_SENSORS; in aqc_probe()
1312 priv->virtual_temp_sensor_start_offset = OCTO_VIRTUAL_SENSORS_START; in aqc_probe()
1313 priv->temp_ctrl_offset = OCTO_TEMP_CTRL_OFFSET; in aqc_probe()
1315 priv->buffer_size = OCTO_CTRL_REPORT_SIZE; in aqc_probe()
1317 priv->power_cycle_count_offset = OCTO_POWER_CYCLES; in aqc_probe()
1319 priv->temp_label = label_temp_sensors; in aqc_probe()
1320 priv->virtual_temp_label = label_virtual_temp_sensors; in aqc_probe()
1321 priv->speed_label = label_fan_speed; in aqc_probe()
1322 priv->power_label = label_fan_power; in aqc_probe()
1323 priv->voltage_label = label_fan_voltage; in aqc_probe()
1324 priv->current_label = label_fan_current; in aqc_probe()
1327 priv->kind = quadro; in aqc_probe()
1329 priv->num_fans = QUADRO_NUM_FANS; in aqc_probe()
1330 priv->fan_sensor_offsets = quadro_sensor_fan_offsets; in aqc_probe()
1331 priv->fan_ctrl_offsets = quadro_ctrl_fan_offsets; in aqc_probe()
1333 priv->num_temp_sensors = QUADRO_NUM_SENSORS; in aqc_probe()
1334 priv->temp_sensor_start_offset = QUADRO_SENSOR_START; in aqc_probe()
1335 priv->num_virtual_temp_sensors = QUADRO_NUM_VIRTUAL_SENSORS; in aqc_probe()
1336 priv->virtual_temp_sensor_start_offset = QUADRO_VIRTUAL_SENSORS_START; in aqc_probe()
1337 priv->num_flow_sensors = QUADRO_NUM_FLOW_SENSORS; in aqc_probe()
1338 priv->flow_sensors_start_offset = QUADRO_FLOW_SENSOR_OFFSET; in aqc_probe()
1340 priv->temp_ctrl_offset = QUADRO_TEMP_CTRL_OFFSET; in aqc_probe()
1342 priv->buffer_size = QUADRO_CTRL_REPORT_SIZE; in aqc_probe()
1344 priv->flow_pulses_ctrl_offset = QUADRO_FLOW_PULSES_CTRL_OFFSET; in aqc_probe()
1345 priv->power_cycle_count_offset = QUADRO_POWER_CYCLES; in aqc_probe()
1347 priv->temp_label = label_temp_sensors; in aqc_probe()
1348 priv->virtual_temp_label = label_virtual_temp_sensors; in aqc_probe()
1349 priv->speed_label = label_quadro_speeds; in aqc_probe()
1350 priv->power_label = label_fan_power; in aqc_probe()
1351 priv->voltage_label = label_fan_voltage; in aqc_probe()
1352 priv->current_label = label_fan_current; in aqc_probe()
1355 priv->kind = highflownext; in aqc_probe()
1357 priv->num_fans = 0; in aqc_probe()
1359 priv->num_temp_sensors = HIGHFLOWNEXT_NUM_SENSORS; in aqc_probe()
1360 priv->temp_sensor_start_offset = HIGHFLOWNEXT_SENSOR_START; in aqc_probe()
1361 priv->num_flow_sensors = HIGHFLOWNEXT_NUM_FLOW_SENSORS; in aqc_probe()
1362 priv->flow_sensors_start_offset = HIGHFLOWNEXT_FLOW; in aqc_probe()
1364 priv->power_cycle_count_offset = QUADRO_POWER_CYCLES; in aqc_probe()
1366 priv->temp_label = label_highflownext_temp_sensors; in aqc_probe()
1367 priv->speed_label = label_highflownext_fan_speed; in aqc_probe()
1368 priv->power_label = label_highflownext_power; in aqc_probe()
1369 priv->voltage_label = label_highflownext_voltage; in aqc_probe()
1372 priv->kind = aquastreamult; in aqc_probe()
1374 priv->num_fans = AQUASTREAMULT_NUM_FANS; in aqc_probe()
1375 priv->fan_sensor_offsets = aquastreamult_sensor_fan_offsets; in aqc_probe()
1377 priv->num_temp_sensors = AQUASTREAMULT_NUM_SENSORS; in aqc_probe()
1378 priv->temp_sensor_start_offset = AQUASTREAMULT_SENSOR_START; in aqc_probe()
1380 priv->temp_label = label_aquastreamult_temp; in aqc_probe()
1381 priv->speed_label = label_aquastreamult_speeds; in aqc_probe()
1382 priv->power_label = label_aquastreamult_power; in aqc_probe()
1383 priv->voltage_label = label_aquastreamult_voltages; in aqc_probe()
1384 priv->current_label = label_aquastreamult_current; in aqc_probe()
1387 priv->kind = poweradjust3; in aqc_probe()
1389 priv->num_fans = 0; in aqc_probe()
1391 priv->num_temp_sensors = POWERADJUST3_NUM_SENSORS; in aqc_probe()
1392 priv->temp_sensor_start_offset = POWERADJUST3_SENSOR_START; in aqc_probe()
1393 priv->buffer_size = POWERADJUST3_SENSOR_REPORT_SIZE; in aqc_probe()
1395 priv->temp_label = label_poweradjust3_temp_sensors; in aqc_probe()
1401 switch (priv->kind) { in aqc_probe()
1403 priv->serial_number_start_offset = AQUAERO_SERIAL_START; in aqc_probe()
1404 priv->firmware_version_offset = AQUAERO_FIRMWARE_VERSION; in aqc_probe()
1406 priv->fan_structure = &aqc_aquaero_fan_structure; in aqc_probe()
1409 priv->status_report_id = POWERADJUST3_STATUS_REPORT_ID; in aqc_probe()
1412 priv->serial_number_start_offset = AQC_SERIAL_START; in aqc_probe()
1413 priv->firmware_version_offset = AQC_FIRMWARE_VERSION; in aqc_probe()
1415 if (priv->kind == aquastreamult) in aqc_probe()
1416 priv->fan_structure = &aqc_aquastreamult_fan_structure; in aqc_probe()
1418 priv->fan_structure = &aqc_general_fan_structure; in aqc_probe()
1422 if (priv->buffer_size != 0) { in aqc_probe()
1423 priv->checksum_start = 0x01; in aqc_probe()
1424 priv->checksum_length = priv->buffer_size - 3; in aqc_probe()
1425 priv->checksum_offset = priv->buffer_size - 2; in aqc_probe()
1428 priv->name = aqc_device_names[priv->kind]; in aqc_probe()
1430 priv->buffer = devm_kzalloc(&hdev->dev, priv->buffer_size, GFP_KERNEL); in aqc_probe()
1431 if (!priv->buffer) { in aqc_probe()
1436 mutex_init(&priv->mutex); in aqc_probe()
1438 priv->hwmon_dev = hwmon_device_register_with_info(&hdev->dev, priv->name, priv, in aqc_probe()
1441 if (IS_ERR(priv->hwmon_dev)) { in aqc_probe()
1442 ret = PTR_ERR(priv->hwmon_dev); in aqc_probe()
1446 aqc_debugfs_init(priv); in aqc_probe()
1459 struct aqc_data *priv = hid_get_drvdata(hdev); in aqc_remove() local
1461 debugfs_remove_recursive(priv->debugfs); in aqc_remove()
1462 hwmon_device_unregister(priv->hwmon_dev); in aqc_remove()