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