Lines Matching refs:data
293 struct w83793_data *data = container_of(ref, struct w83793_data, kref); in w83793_release_resources() local
294 kfree(data); in w83793_release_resources()
329 struct w83793_data *data = dev_get_drvdata(dev); in show_vrm() local
330 return sprintf(buf, "%d\n", data->vrm); in show_vrm()
336 struct w83793_data *data = w83793_update_device(dev); in show_vid() local
341 return sprintf(buf, "%d\n", vid_from_reg(data->vid[index], data->vrm)); in show_vid()
348 struct w83793_data *data = dev_get_drvdata(dev); in store_vrm() local
359 data->vrm = val; in store_vrm()
368 struct w83793_data *data = w83793_update_device(dev); in show_alarm_beep() local
377 val = (data->alarms[index] >> (bit)) & 1; in show_alarm_beep()
379 val = (data->beeps[index] >> (bit)) & 1; in show_alarm_beep()
390 struct w83793_data *data = i2c_get_clientdata(client); in store_beep() local
406 mutex_lock(&data->update_lock); in store_beep()
407 data->beeps[index] = w83793_read_value(client, W83793_REG_BEEP(index)); in store_beep()
408 data->beeps[index] &= ~beep_bit; in store_beep()
409 data->beeps[index] |= val << shift; in store_beep()
410 w83793_write_value(client, W83793_REG_BEEP(index), data->beeps[index]); in store_beep()
411 mutex_unlock(&data->update_lock); in store_beep()
419 struct w83793_data *data = w83793_update_device(dev); in show_beep_enable() local
420 return sprintf(buf, "%u\n", (data->beep_enable >> 1) & 0x01); in show_beep_enable()
428 struct w83793_data *data = i2c_get_clientdata(client); in store_beep_enable() local
439 mutex_lock(&data->update_lock); in store_beep_enable()
440 data->beep_enable = w83793_read_value(client, W83793_REG_OVT_BEEP) in store_beep_enable()
442 data->beep_enable |= val << 1; in store_beep_enable()
443 w83793_write_value(client, W83793_REG_OVT_BEEP, data->beep_enable); in store_beep_enable()
444 mutex_unlock(&data->update_lock); in store_beep_enable()
456 struct w83793_data *data = i2c_get_clientdata(client); in store_chassis_clear() local
467 mutex_lock(&data->update_lock); in store_chassis_clear()
470 data->valid = 0; /* Force cache refresh */ in store_chassis_clear()
471 mutex_unlock(&data->update_lock); in store_chassis_clear()
484 struct w83793_data *data = w83793_update_device(dev); in show_fan() local
488 val = data->fan[index] & 0x0fff; in show_fan()
490 val = data->fan_min[index] & 0x0fff; in show_fan()
503 struct w83793_data *data = i2c_get_clientdata(client); in store_fan_min() local
512 mutex_lock(&data->update_lock); in store_fan_min()
513 data->fan_min[index] = val; in store_fan_min()
517 mutex_unlock(&data->update_lock); in store_fan_min()
527 struct w83793_data *data = w83793_update_device(dev); in show_pwm() local
533 val = TIME_FROM_REG(data->pwm_stop_time[index]); in show_pwm()
535 val = (data->pwm[index][nr] & 0x3f) << 2; in show_pwm()
545 struct w83793_data *data = i2c_get_clientdata(client); in store_pwm() local
557 mutex_lock(&data->update_lock); in store_pwm()
560 data->pwm_stop_time[index] = val; in store_pwm()
565 data->pwm[index][nr] = in store_pwm()
567 data->pwm[index][nr] |= val; in store_pwm()
569 data->pwm[index][nr]); in store_pwm()
572 mutex_unlock(&data->update_lock); in store_pwm()
583 struct w83793_data *data = w83793_update_device(dev); in show_temp() local
584 long temp = TEMP_FROM_REG(data->temp[index][nr]); in show_temp()
587 int low = ((data->temp_low_bits >> (index * 2)) & 0x03) * 250; in show_temp()
602 struct w83793_data *data = i2c_get_clientdata(client); in store_temp() local
610 mutex_lock(&data->update_lock); in store_temp()
611 data->temp[index][nr] = TEMP_TO_REG(tmp, -128, 127); in store_temp()
613 data->temp[index][nr]); in store_temp()
614 mutex_unlock(&data->update_lock); in store_temp()
638 struct w83793_data *data = w83793_update_device(dev); in show_temp_mode() local
647 tmp = (data->temp_mode[index] >> shift) & mask; in show_temp_mode()
663 struct w83793_data *data = i2c_get_clientdata(client); in store_temp_mode() local
688 mutex_lock(&data->update_lock); in store_temp_mode()
689 data->temp_mode[index] = in store_temp_mode()
691 data->temp_mode[index] &= ~(mask << shift); in store_temp_mode()
692 data->temp_mode[index] |= val << shift; in store_temp_mode()
694 data->temp_mode[index]); in store_temp_mode()
695 mutex_unlock(&data->update_lock); in store_temp_mode()
710 struct w83793_data *data = w83793_update_device(dev); in show_sf_setup() local
714 val = (data->pwm_default & 0x3f) << 2; in show_sf_setup()
716 val = TIME_FROM_REG(data->pwm_uptime); in show_sf_setup()
718 val = TIME_FROM_REG(data->pwm_downtime); in show_sf_setup()
720 val = TEMP_FROM_REG(data->temp_critical & 0x7f); in show_sf_setup()
733 struct w83793_data *data = i2c_get_clientdata(client); in store_sf_setup() local
741 mutex_lock(&data->update_lock); in store_sf_setup()
743 data->pwm_default = in store_sf_setup()
745 data->pwm_default |= clamp_val(val, 0, 0xff) >> 2; in store_sf_setup()
747 data->pwm_default); in store_sf_setup()
749 data->pwm_uptime = TIME_TO_REG(val); in store_sf_setup()
750 data->pwm_uptime += data->pwm_uptime == 0 ? 1 : 0; in store_sf_setup()
752 data->pwm_uptime); in store_sf_setup()
754 data->pwm_downtime = TIME_TO_REG(val); in store_sf_setup()
755 data->pwm_downtime += data->pwm_downtime == 0 ? 1 : 0; in store_sf_setup()
757 data->pwm_downtime); in store_sf_setup()
759 data->temp_critical = in store_sf_setup()
761 data->temp_critical |= TEMP_TO_REG(val, 0, 0x7f); in store_sf_setup()
763 data->temp_critical); in store_sf_setup()
766 mutex_unlock(&data->update_lock); in store_sf_setup()
808 struct w83793_data *data = w83793_update_device(dev); in show_sf_ctrl() local
812 val = data->temp_fan_map[index]; in show_sf_ctrl()
815 val = ((data->pwm_enable >> index) & 0x01) + 2; in show_sf_ctrl()
817 val = TEMP_FROM_REG(data->temp_cruise[index] & 0x7f); in show_sf_ctrl()
819 val = data->tolerance[index >> 1] >> ((index & 0x01) ? 4 : 0); in show_sf_ctrl()
834 struct w83793_data *data = i2c_get_clientdata(client); in store_sf_ctrl() local
842 mutex_lock(&data->update_lock); in store_sf_ctrl()
846 data->temp_fan_map[index] = val; in store_sf_ctrl()
849 data->pwm_enable = in store_sf_ctrl()
852 data->pwm_enable |= 1 << index; in store_sf_ctrl()
854 data->pwm_enable &= ~(1 << index); in store_sf_ctrl()
856 data->pwm_enable); in store_sf_ctrl()
858 mutex_unlock(&data->update_lock); in store_sf_ctrl()
862 data->temp_cruise[index] = in store_sf_ctrl()
864 data->temp_cruise[index] &= 0x80; in store_sf_ctrl()
865 data->temp_cruise[index] |= TEMP_TO_REG(val, 0, 0x7f); in store_sf_ctrl()
868 data->temp_cruise[index]); in store_sf_ctrl()
872 data->tolerance[i] = in store_sf_ctrl()
875 data->tolerance[i] &= ~(0x0f << shift); in store_sf_ctrl()
876 data->tolerance[i] |= TEMP_TO_REG(val, 0, 0x0f) << shift; in store_sf_ctrl()
878 data->tolerance[i]); in store_sf_ctrl()
881 mutex_unlock(&data->update_lock); in store_sf_ctrl()
892 struct w83793_data *data = w83793_update_device(dev); in show_sf2_pwm() local
894 return sprintf(buf, "%d\n", (data->sf2_pwm[index][nr] & 0x3f) << 2); in show_sf2_pwm()
902 struct w83793_data *data = i2c_get_clientdata(client); in store_sf2_pwm() local
915 mutex_lock(&data->update_lock); in store_sf2_pwm()
916 data->sf2_pwm[index][nr] = in store_sf2_pwm()
918 data->sf2_pwm[index][nr] |= val; in store_sf2_pwm()
920 data->sf2_pwm[index][nr]); in store_sf2_pwm()
921 mutex_unlock(&data->update_lock); in store_sf2_pwm()
932 struct w83793_data *data = w83793_update_device(dev); in show_sf2_temp() local
935 TEMP_FROM_REG(data->sf2_temp[index][nr] & 0x7f)); in show_sf2_temp()
943 struct w83793_data *data = i2c_get_clientdata(client); in store_sf2_temp() local
956 mutex_lock(&data->update_lock); in store_sf2_temp()
957 data->sf2_temp[index][nr] = in store_sf2_temp()
959 data->sf2_temp[index][nr] |= val; in store_sf2_temp()
961 data->sf2_temp[index][nr]); in store_sf2_temp()
962 mutex_unlock(&data->update_lock); in store_sf2_temp()
974 struct w83793_data *data = w83793_update_device(dev); in show_in() local
975 u16 val = data->in[index][nr]; in show_in()
979 val += (data->in_low_bits[nr] >> (index * 2)) & 0x3; in show_in()
995 struct w83793_data *data = i2c_get_clientdata(client); in store_in() local
1004 mutex_lock(&data->update_lock); in store_in()
1012 data->in_low_bits[nr] = in store_in()
1014 data->in_low_bits[nr] &= ~(0x03 << (2 * index)); in store_in()
1015 data->in_low_bits[nr] |= (val & 0x03) << (2 * index); in store_in()
1017 data->in_low_bits[nr]); in store_in()
1020 data->in[index][nr] = val; in store_in()
1022 data->in[index][nr]); in store_in()
1023 mutex_unlock(&data->update_lock); in store_in()
1203 static int watchdog_set_timeout(struct w83793_data *data, int timeout) in watchdog_set_timeout() argument
1213 mutex_lock(&data->watchdog_lock); in watchdog_set_timeout()
1214 if (!data->client) { in watchdog_set_timeout()
1219 data->watchdog_timeout = mtimeout; in watchdog_set_timeout()
1222 w83793_write_value(data->client, W83793_REG_WDT_TIMEOUT, in watchdog_set_timeout()
1223 data->watchdog_timeout); in watchdog_set_timeout()
1228 mutex_unlock(&data->watchdog_lock); in watchdog_set_timeout()
1232 static int watchdog_get_timeout(struct w83793_data *data) in watchdog_get_timeout() argument
1236 mutex_lock(&data->watchdog_lock); in watchdog_get_timeout()
1237 timeout = data->watchdog_timeout * 60; in watchdog_get_timeout()
1238 mutex_unlock(&data->watchdog_lock); in watchdog_get_timeout()
1243 static int watchdog_trigger(struct w83793_data *data) in watchdog_trigger() argument
1247 mutex_lock(&data->watchdog_lock); in watchdog_trigger()
1248 if (!data->client) { in watchdog_trigger()
1254 w83793_write_value(data->client, W83793_REG_WDT_TIMEOUT, in watchdog_trigger()
1255 data->watchdog_timeout); in watchdog_trigger()
1258 mutex_unlock(&data->watchdog_lock); in watchdog_trigger()
1262 static int watchdog_enable(struct w83793_data *data) in watchdog_enable() argument
1266 mutex_lock(&data->watchdog_lock); in watchdog_enable()
1267 if (!data->client) { in watchdog_enable()
1273 w83793_write_value(data->client, W83793_REG_WDT_TIMEOUT, in watchdog_enable()
1274 data->watchdog_timeout); in watchdog_enable()
1277 w83793_write_value(data->client, W83793_REG_WDT_LOCK, 0x55); in watchdog_enable()
1280 mutex_unlock(&data->watchdog_lock); in watchdog_enable()
1284 static int watchdog_disable(struct w83793_data *data) in watchdog_disable() argument
1288 mutex_lock(&data->watchdog_lock); in watchdog_disable()
1289 if (!data->client) { in watchdog_disable()
1295 w83793_write_value(data->client, W83793_REG_WDT_LOCK, 0xAA); in watchdog_disable()
1298 mutex_unlock(&data->watchdog_lock); in watchdog_disable()
1304 struct w83793_data *pos, *data = NULL; in watchdog_open() local
1317 data = pos; in watchdog_open()
1323 watchdog_is_open = test_and_set_bit(0, &data->watchdog_is_open); in watchdog_open()
1330 kref_get(&data->kref); in watchdog_open()
1339 watchdog_enable(data); in watchdog_open()
1342 filp->private_data = data; in watchdog_open()
1349 struct w83793_data *data = filp->private_data; in watchdog_close() local
1351 if (data->watchdog_expect_close) { in watchdog_close()
1352 watchdog_disable(data); in watchdog_close()
1353 data->watchdog_expect_close = 0; in watchdog_close()
1355 watchdog_trigger(data); in watchdog_close()
1356 dev_crit(&data->client->dev, in watchdog_close()
1360 clear_bit(0, &data->watchdog_is_open); in watchdog_close()
1364 kref_put(&data->kref, w83793_release_resources); in watchdog_close()
1374 struct w83793_data *data = filp->private_data; in watchdog_write() local
1381 data->watchdog_expect_close = 0; in watchdog_write()
1388 data->watchdog_expect_close = 1; in watchdog_write()
1391 ret = watchdog_trigger(data); in watchdog_write()
1409 struct w83793_data *data = filp->private_data; in watchdog_ioctl() local
1420 val = data->watchdog_caused_reboot ? WDIOF_CARDRESET : 0; in watchdog_ioctl()
1429 ret = watchdog_trigger(data); in watchdog_ioctl()
1433 val = watchdog_get_timeout(data); in watchdog_ioctl()
1442 ret = watchdog_set_timeout(data, val); in watchdog_ioctl()
1454 ret = watchdog_disable(data); in watchdog_ioctl()
1456 ret = watchdog_enable(data); in watchdog_ioctl()
1483 struct w83793_data *data = NULL; in watchdog_notify_sys() local
1489 list_for_each_entry(data, &watchdog_data_list, list) { in watchdog_notify_sys()
1490 if (data->watchdog_miscdev.minor) in watchdog_notify_sys()
1491 watchdog_disable(data); in watchdog_notify_sys()
1514 struct w83793_data *data = i2c_get_clientdata(client); in w83793_remove() local
1519 if (data->watchdog_miscdev.minor) { in w83793_remove()
1520 misc_deregister(&data->watchdog_miscdev); in w83793_remove()
1522 if (data->watchdog_is_open) { in w83793_remove()
1526 watchdog_disable(data); in w83793_remove()
1530 list_del(&data->list); in w83793_remove()
1534 mutex_lock(&data->watchdog_lock); in w83793_remove()
1535 data->client = NULL; in w83793_remove()
1536 mutex_unlock(&data->watchdog_lock); in w83793_remove()
1545 hwmon_device_unregister(data->hwmon_dev); in w83793_remove()
1567 if (data->lm75[0] != NULL) in w83793_remove()
1568 i2c_unregister_device(data->lm75[0]); in w83793_remove()
1569 if (data->lm75[1] != NULL) in w83793_remove()
1570 i2c_unregister_device(data->lm75[1]); in w83793_remove()
1574 kref_put(&data->kref, w83793_release_resources); in w83793_remove()
1587 struct w83793_data *data = i2c_get_clientdata(client); in w83793_detect_subclients() local
1609 data->lm75[0] = i2c_new_dummy(adapter, 0x48 + (tmp & 0x7)); in w83793_detect_subclients()
1611 if ((data->lm75[0] != NULL) in w83793_detect_subclients()
1615 "use force_subclients\n", data->lm75[0]->addr); in w83793_detect_subclients()
1619 data->lm75[1] = i2c_new_dummy(adapter, in w83793_detect_subclients()
1628 if (data->lm75[0] != NULL) in w83793_detect_subclients()
1629 i2c_unregister_device(data->lm75[0]); in w83793_detect_subclients()
1680 struct w83793_data *data; in w83793_probe() local
1686 data = kzalloc(sizeof(struct w83793_data), GFP_KERNEL); in w83793_probe()
1687 if (!data) { in w83793_probe()
1692 i2c_set_clientdata(client, data); in w83793_probe()
1693 data->bank = i2c_smbus_read_byte_data(client, W83793_REG_BANKSEL); in w83793_probe()
1694 mutex_init(&data->update_lock); in w83793_probe()
1695 mutex_init(&data->watchdog_lock); in w83793_probe()
1696 INIT_LIST_HEAD(&data->list); in w83793_probe()
1697 kref_init(&data->kref); in w83793_probe()
1704 data->client = client; in w83793_probe()
1717 data->has_fan = 0x1f; in w83793_probe()
1718 data->has_pwm = 0x07; in w83793_probe()
1724 data->has_vid |= 0x2; /* has VIDB */ in w83793_probe()
1726 data->has_pwm |= 0x18; /* pwm 4,5 */ in w83793_probe()
1728 data->has_fan |= 0x20; in w83793_probe()
1729 data->has_pwm |= 0x20; in w83793_probe()
1732 data->has_fan |= 0x40; in w83793_probe()
1733 data->has_pwm |= 0x40; in w83793_probe()
1736 data->has_fan |= 0x80; in w83793_probe()
1737 data->has_pwm |= 0x80; in w83793_probe()
1743 data->has_vid |= 0x1; /* has VIDA */ in w83793_probe()
1746 data->has_fan |= 0x100; in w83793_probe()
1748 data->has_fan |= 0x200; in w83793_probe()
1752 data->has_fan |= 0x400; in w83793_probe()
1754 data->has_fan |= 0x800; in w83793_probe()
1758 data->has_fan |= 0x80; in w83793_probe()
1759 data->has_pwm |= 0x80; in w83793_probe()
1764 data->has_fan |= 0x100; in w83793_probe()
1767 data->has_fan |= 0x200; in w83793_probe()
1770 data->has_fan |= 0x400; in w83793_probe()
1773 data->has_fan |= 0x800; in w83793_probe()
1779 data->has_temp |= 0x01; in w83793_probe()
1781 data->has_temp |= 0x02; in w83793_probe()
1783 data->has_temp |= 0x04; in w83793_probe()
1785 data->has_temp |= 0x08; in w83793_probe()
1789 data->has_temp |= 0x10; in w83793_probe()
1791 data->has_temp |= 0x20; in w83793_probe()
1802 if (!(data->has_vid & (1 << i))) in w83793_probe()
1808 if (data->has_vid) { in w83793_probe()
1809 data->vrm = vid_which_vrm(); in w83793_probe()
1824 if (!(data->has_temp & (1 << i))) in w83793_probe()
1837 if (!(data->has_fan & (1 << i))) in w83793_probe()
1850 if (!(data->has_pwm & (1 << i))) in w83793_probe()
1861 data->hwmon_dev = hwmon_device_register(dev); in w83793_probe()
1862 if (IS_ERR(data->hwmon_dev)) { in w83793_probe()
1863 err = PTR_ERR(data->hwmon_dev); in w83793_probe()
1886 data->watchdog_timeout = timeout; in w83793_probe()
1889 data->watchdog_caused_reboot = in w83793_probe()
1890 w83793_read_value(data->client, W83793_REG_WDT_STATUS) & 0x01; in w83793_probe()
1893 watchdog_disable(data); in w83793_probe()
1903 snprintf(data->watchdog_name, sizeof(data->watchdog_name), in w83793_probe()
1905 data->watchdog_miscdev.name = data->watchdog_name; in w83793_probe()
1906 data->watchdog_miscdev.fops = &watchdog_fops; in w83793_probe()
1907 data->watchdog_miscdev.minor = watchdog_minors[i]; in w83793_probe()
1909 err = misc_register(&data->watchdog_miscdev); in w83793_probe()
1913 data->watchdog_miscdev.minor = 0; in w83793_probe()
1919 list_add(&data->list, &watchdog_data_list); in w83793_probe()
1927 data->watchdog_miscdev.minor = 0; in w83793_probe()
1940 hwmon_device_unregister(data->hwmon_dev); in w83793_probe()
1963 if (data->lm75[0] != NULL) in w83793_probe()
1964 i2c_unregister_device(data->lm75[0]); in w83793_probe()
1965 if (data->lm75[1] != NULL) in w83793_probe()
1966 i2c_unregister_device(data->lm75[1]); in w83793_probe()
1968 kfree(data); in w83793_probe()
1976 struct w83793_data *data = i2c_get_clientdata(client); in w83793_update_nonvolatile() local
1983 if (!(time_after(jiffies, data->last_nonvolatile + HZ * 300) in w83793_update_nonvolatile()
1984 || !data->valid)) in w83793_update_nonvolatile()
1988 for (j = 0; j < ARRAY_SIZE(data->in); j++) { in w83793_update_nonvolatile()
1989 data->in[j][i] = in w83793_update_nonvolatile()
1992 data->in_low_bits[i] = in w83793_update_nonvolatile()
1996 for (i = 0; i < ARRAY_SIZE(data->fan_min); i++) { in w83793_update_nonvolatile()
1998 if (!(data->has_fan & (1 << i))) in w83793_update_nonvolatile()
2000 data->fan_min[i] = in w83793_update_nonvolatile()
2002 data->fan_min[i] |= in w83793_update_nonvolatile()
2006 for (i = 0; i < ARRAY_SIZE(data->temp_fan_map); i++) { in w83793_update_nonvolatile()
2007 if (!(data->has_temp & (1 << i))) in w83793_update_nonvolatile()
2009 data->temp_fan_map[i] = in w83793_update_nonvolatile()
2012 data->temp[i][j] = in w83793_update_nonvolatile()
2015 data->temp_cruise[i] = in w83793_update_nonvolatile()
2018 data->sf2_pwm[i][j] = in w83793_update_nonvolatile()
2020 data->sf2_temp[i][j] = in w83793_update_nonvolatile()
2026 for (i = 0; i < ARRAY_SIZE(data->temp_mode); i++) in w83793_update_nonvolatile()
2027 data->temp_mode[i] = in w83793_update_nonvolatile()
2030 for (i = 0; i < ARRAY_SIZE(data->tolerance); i++) { in w83793_update_nonvolatile()
2031 data->tolerance[i] = in w83793_update_nonvolatile()
2035 for (i = 0; i < ARRAY_SIZE(data->pwm); i++) { in w83793_update_nonvolatile()
2036 if (!(data->has_pwm & (1 << i))) in w83793_update_nonvolatile()
2038 data->pwm[i][PWM_NONSTOP] = in w83793_update_nonvolatile()
2040 data->pwm[i][PWM_START] = in w83793_update_nonvolatile()
2042 data->pwm_stop_time[i] = in w83793_update_nonvolatile()
2046 data->pwm_default = w83793_read_value(client, W83793_REG_PWM_DEFAULT); in w83793_update_nonvolatile()
2047 data->pwm_enable = w83793_read_value(client, W83793_REG_PWM_ENABLE); in w83793_update_nonvolatile()
2048 data->pwm_uptime = w83793_read_value(client, W83793_REG_PWM_UPTIME); in w83793_update_nonvolatile()
2049 data->pwm_downtime = w83793_read_value(client, W83793_REG_PWM_DOWNTIME); in w83793_update_nonvolatile()
2050 data->temp_critical = in w83793_update_nonvolatile()
2052 data->beep_enable = w83793_read_value(client, W83793_REG_OVT_BEEP); in w83793_update_nonvolatile()
2054 for (i = 0; i < ARRAY_SIZE(data->beeps); i++) in w83793_update_nonvolatile()
2055 data->beeps[i] = w83793_read_value(client, W83793_REG_BEEP(i)); in w83793_update_nonvolatile()
2057 data->last_nonvolatile = jiffies; in w83793_update_nonvolatile()
2063 struct w83793_data *data = i2c_get_clientdata(client); in w83793_update_device() local
2066 mutex_lock(&data->update_lock); in w83793_update_device()
2068 if (!(time_after(jiffies, data->last_updated + HZ * 2) in w83793_update_device()
2069 || !data->valid)) in w83793_update_device()
2073 for (i = 0; i < ARRAY_SIZE(data->in); i++) in w83793_update_device()
2074 data->in[i][IN_READ] = in w83793_update_device()
2077 data->in_low_bits[IN_READ] = in w83793_update_device()
2080 for (i = 0; i < ARRAY_SIZE(data->fan); i++) { in w83793_update_device()
2081 if (!(data->has_fan & (1 << i))) in w83793_update_device()
2083 data->fan[i] = in w83793_update_device()
2085 data->fan[i] |= in w83793_update_device()
2089 for (i = 0; i < ARRAY_SIZE(data->temp); i++) { in w83793_update_device()
2090 if (!(data->has_temp & (1 << i))) in w83793_update_device()
2092 data->temp[i][TEMP_READ] = in w83793_update_device()
2096 data->temp_low_bits = in w83793_update_device()
2099 for (i = 0; i < ARRAY_SIZE(data->pwm); i++) { in w83793_update_device()
2100 if (data->has_pwm & (1 << i)) in w83793_update_device()
2101 data->pwm[i][PWM_DUTY] = in w83793_update_device()
2106 for (i = 0; i < ARRAY_SIZE(data->alarms); i++) in w83793_update_device()
2107 data->alarms[i] = in w83793_update_device()
2109 if (data->has_vid & 0x01) in w83793_update_device()
2110 data->vid[0] = w83793_read_value(client, W83793_REG_VID_INA); in w83793_update_device()
2111 if (data->has_vid & 0x02) in w83793_update_device()
2112 data->vid[1] = w83793_read_value(client, W83793_REG_VID_INB); in w83793_update_device()
2114 data->last_updated = jiffies; in w83793_update_device()
2115 data->valid = 1; in w83793_update_device()
2118 mutex_unlock(&data->update_lock); in w83793_update_device()
2119 return data; in w83793_update_device()
2128 struct w83793_data *data = i2c_get_clientdata(client); in w83793_read_value() local
2132 new_bank |= data->bank & 0xfc; in w83793_read_value()
2133 if (data->bank != new_bank) { in w83793_read_value()
2136 data->bank = new_bank; in w83793_read_value()
2141 new_bank, data->bank, reg); in w83793_read_value()
2154 struct w83793_data *data = i2c_get_clientdata(client); in w83793_write_value() local
2158 new_bank |= data->bank & 0xfc; in w83793_write_value()
2159 if (data->bank != new_bank) { in w83793_write_value()
2166 new_bank, data->bank, reg); in w83793_write_value()
2169 data->bank = new_bank; in w83793_write_value()