Merge tag 'hwmon-for-v5.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull hwmon fixes from Guenter Roeck:
"Minor fixes/regressions"

* tag 'hwmon-for-v5.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
hwmon: (tmp421) Correct the misspelling of the tmp442 compatible attribute in OF device ID table
hwmon: (occ) Fix potential integer overflow
hwmon: (lm80) Fix missing unlock on error in set_fan_div()
hwmon: (nct6775) Enable IO mapping for NCT6797D and NCT6798D
hwmon: (nct6775) Fix chip ID for NCT6798D

+23 -19
+3 -1
drivers/hwmon/lm80.c
··· 393 } 394 395 rv = lm80_read_value(client, LM80_REG_FANDIV); 396 - if (rv < 0) 397 return rv; 398 reg = (rv & ~(3 << (2 * (nr + 1)))) 399 | (data->fan_div[nr] << (2 * (nr + 1))); 400 lm80_write_value(client, LM80_REG_FANDIV, reg);
··· 393 } 394 395 rv = lm80_read_value(client, LM80_REG_FANDIV); 396 + if (rv < 0) { 397 + mutex_unlock(&data->update_lock); 398 return rv; 399 + } 400 reg = (rv & ~(3 << (2 * (nr + 1)))) 401 | (data->fan_div[nr] << (2 * (nr + 1))); 402 lm80_write_value(client, LM80_REG_FANDIV, reg);
+7 -5
drivers/hwmon/nct6775.c
··· 44 * nct6796d 14 7 7 2+6 0xd420 0xc1 0x5ca3 45 * nct6797d 14 7 7 2+6 0xd450 0xc1 0x5ca3 46 * (0xd451) 47 - * nct6798d 14 7 7 2+6 0xd458 0xc1 0x5ca3 48 - * (0xd459) 49 * 50 * #temp lists the number of monitored temperature sources (first value) plus 51 * the number of directly connectable temperature sensors (second value). ··· 138 #define SIO_NCT6795_ID 0xd350 139 #define SIO_NCT6796_ID 0xd420 140 #define SIO_NCT6797_ID 0xd450 141 - #define SIO_NCT6798_ID 0xd458 142 #define SIO_ID_MASK 0xFFF8 143 144 enum pwm_enable { off, manual, thermal_cruise, speed_cruise, sf3, sf4 }; ··· 4508 4509 if (data->kind == nct6791 || data->kind == nct6792 || 4510 data->kind == nct6793 || data->kind == nct6795 || 4511 - data->kind == nct6796) 4512 nct6791_enable_io_mapping(sioreg); 4513 4514 superio_exit(sioreg); ··· 4645 4646 if (sio_data->kind == nct6791 || sio_data->kind == nct6792 || 4647 sio_data->kind == nct6793 || sio_data->kind == nct6795 || 4648 - sio_data->kind == nct6796) 4649 nct6791_enable_io_mapping(sioaddr); 4650 4651 superio_exit(sioaddr);
··· 44 * nct6796d 14 7 7 2+6 0xd420 0xc1 0x5ca3 45 * nct6797d 14 7 7 2+6 0xd450 0xc1 0x5ca3 46 * (0xd451) 47 + * nct6798d 14 7 7 2+6 0xd428 0xc1 0x5ca3 48 + * (0xd429) 49 * 50 * #temp lists the number of monitored temperature sources (first value) plus 51 * the number of directly connectable temperature sensors (second value). ··· 138 #define SIO_NCT6795_ID 0xd350 139 #define SIO_NCT6796_ID 0xd420 140 #define SIO_NCT6797_ID 0xd450 141 + #define SIO_NCT6798_ID 0xd428 142 #define SIO_ID_MASK 0xFFF8 143 144 enum pwm_enable { off, manual, thermal_cruise, speed_cruise, sf3, sf4 }; ··· 4508 4509 if (data->kind == nct6791 || data->kind == nct6792 || 4510 data->kind == nct6793 || data->kind == nct6795 || 4511 + data->kind == nct6796 || data->kind == nct6797 || 4512 + data->kind == nct6798) 4513 nct6791_enable_io_mapping(sioreg); 4514 4515 superio_exit(sioreg); ··· 4644 4645 if (sio_data->kind == nct6791 || sio_data->kind == nct6792 || 4646 sio_data->kind == nct6793 || sio_data->kind == nct6795 || 4647 + sio_data->kind == nct6796 || sio_data->kind == nct6797 || 4648 + sio_data->kind == nct6798) 4649 nct6791_enable_io_mapping(sioaddr); 4650 4651 superio_exit(sioaddr);
+12 -12
drivers/hwmon/occ/common.c
··· 380 val *= 1000000ULL; 381 break; 382 case 2: 383 - val = get_unaligned_be32(&power->update_tag) * 384 - occ->powr_sample_time_us; 385 break; 386 case 3: 387 val = get_unaligned_be16(&power->value) * 1000000ULL; ··· 425 &power->update_tag); 426 break; 427 case 2: 428 - val = get_unaligned_be32(&power->update_tag) * 429 - occ->powr_sample_time_us; 430 break; 431 case 3: 432 val = get_unaligned_be16(&power->value) * 1000000ULL; ··· 463 &power->system.update_tag); 464 break; 465 case 2: 466 - val = get_unaligned_be32(&power->system.update_tag) * 467 - occ->powr_sample_time_us; 468 break; 469 case 3: 470 val = get_unaligned_be16(&power->system.value) * 1000000ULL; ··· 477 &power->proc.update_tag); 478 break; 479 case 6: 480 - val = get_unaligned_be32(&power->proc.update_tag) * 481 - occ->powr_sample_time_us; 482 break; 483 case 7: 484 val = get_unaligned_be16(&power->proc.value) * 1000000ULL; ··· 491 &power->vdd.update_tag); 492 break; 493 case 10: 494 - val = get_unaligned_be32(&power->vdd.update_tag) * 495 - occ->powr_sample_time_us; 496 break; 497 case 11: 498 val = get_unaligned_be16(&power->vdd.value) * 1000000ULL; ··· 505 &power->vdn.update_tag); 506 break; 507 case 14: 508 - val = get_unaligned_be32(&power->vdn.update_tag) * 509 - occ->powr_sample_time_us; 510 break; 511 case 15: 512 val = get_unaligned_be16(&power->vdn.value) * 1000000ULL;
··· 380 val *= 1000000ULL; 381 break; 382 case 2: 383 + val = (u64)get_unaligned_be32(&power->update_tag) * 384 + occ->powr_sample_time_us; 385 break; 386 case 3: 387 val = get_unaligned_be16(&power->value) * 1000000ULL; ··· 425 &power->update_tag); 426 break; 427 case 2: 428 + val = (u64)get_unaligned_be32(&power->update_tag) * 429 + occ->powr_sample_time_us; 430 break; 431 case 3: 432 val = get_unaligned_be16(&power->value) * 1000000ULL; ··· 463 &power->system.update_tag); 464 break; 465 case 2: 466 + val = (u64)get_unaligned_be32(&power->system.update_tag) * 467 + occ->powr_sample_time_us; 468 break; 469 case 3: 470 val = get_unaligned_be16(&power->system.value) * 1000000ULL; ··· 477 &power->proc.update_tag); 478 break; 479 case 6: 480 + val = (u64)get_unaligned_be32(&power->proc.update_tag) * 481 + occ->powr_sample_time_us; 482 break; 483 case 7: 484 val = get_unaligned_be16(&power->proc.value) * 1000000ULL; ··· 491 &power->vdd.update_tag); 492 break; 493 case 10: 494 + val = (u64)get_unaligned_be32(&power->vdd.update_tag) * 495 + occ->powr_sample_time_us; 496 break; 497 case 11: 498 val = get_unaligned_be16(&power->vdd.value) * 1000000ULL; ··· 505 &power->vdn.update_tag); 506 break; 507 case 14: 508 + val = (u64)get_unaligned_be32(&power->vdn.update_tag) * 509 + occ->powr_sample_time_us; 510 break; 511 case 15: 512 val = get_unaligned_be16(&power->vdn.value) * 1000000ULL;
+1 -1
drivers/hwmon/tmp421.c
··· 88 .data = (void *)2 89 }, 90 { 91 - .compatible = "ti,tmp422", 92 .data = (void *)3 93 }, 94 { },
··· 88 .data = (void *)2 89 }, 90 { 91 + .compatible = "ti,tmp442", 92 .data = (void *)3 93 }, 94 { },