Loading Documentation/hwmon/w83627hf +4 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ Module Parameters (default is 1) Use 'init=0' to bypass initializing the chip. Try this if your computer crashes when you load the module. * reset: int (default is 0) The driver used to reset the chip on load, but does no more. Use 'reset=1' to restore the old behavior. Report if you need to do this. Description ----------- Loading drivers/hwmon/it87.c +2 −1 Original line number Diff line number Diff line Loading @@ -1186,6 +1186,7 @@ static int __init sm_it87_init(void) static void __exit sm_it87_exit(void) { if (isa_address) i2c_isa_del_driver(&it87_isa_driver); i2c_del_driver(&it87_driver); } Loading drivers/hwmon/vt8231.c +4 −4 Original line number Diff line number Diff line Loading @@ -437,12 +437,12 @@ static SENSOR_DEVICE_ATTR(temp##offset##_input, S_IRUGO, \ show_temp, NULL, offset - 1); \ static SENSOR_DEVICE_ATTR(temp##offset##_max, S_IRUGO | S_IWUSR, \ show_temp_max, set_temp_max, offset - 1); \ static SENSOR_DEVICE_ATTR(temp##offset##_min, S_IRUGO | S_IWUSR, \ static SENSOR_DEVICE_ATTR(temp##offset##_max_hyst, S_IRUGO | S_IWUSR, \ show_temp_min, set_temp_min, offset - 1) static DEVICE_ATTR(temp1_input, S_IRUGO, show_temp0, NULL); static DEVICE_ATTR(temp1_max, S_IRUGO | S_IWUSR, show_temp0_max, set_temp0_max); static DEVICE_ATTR(temp1_min, S_IRUGO | S_IWUSR, show_temp0_min, set_temp0_min); static DEVICE_ATTR(temp1_max_hyst, S_IRUGO | S_IWUSR, show_temp0_min, set_temp0_min); define_temperature_sysfs(2); define_temperature_sysfs(3); Loading @@ -451,7 +451,7 @@ define_temperature_sysfs(5); define_temperature_sysfs(6); #define CFG_INFO_TEMP(id) { &sensor_dev_attr_temp##id##_input.dev_attr, \ &sensor_dev_attr_temp##id##_min.dev_attr, \ &sensor_dev_attr_temp##id##_max_hyst.dev_attr, \ &sensor_dev_attr_temp##id##_max.dev_attr } #define CFG_INFO_VOLT(id) { &sensor_dev_attr_in##id##_input.dev_attr, \ &sensor_dev_attr_in##id##_min.dev_attr, \ Loading @@ -464,7 +464,7 @@ struct str_device_attr_table { }; static struct str_device_attr_table cfg_info_temp[] = { { &dev_attr_temp1_input, &dev_attr_temp1_min, &dev_attr_temp1_max }, { &dev_attr_temp1_input, &dev_attr_temp1_max_hyst, &dev_attr_temp1_max }, CFG_INFO_TEMP(2), CFG_INFO_TEMP(3), CFG_INFO_TEMP(4), Loading drivers/hwmon/w83781d.c +25 −18 Original line number Diff line number Diff line Loading @@ -95,11 +95,16 @@ MODULE_PARM_DESC(init, "Set to zero to bypass chip initialization"); (0x39))) #define W83781D_REG_CONFIG 0x40 /* Interrupt status (W83781D, AS99127F) */ #define W83781D_REG_ALARM1 0x41 #define W83781D_REG_ALARM2 0x42 #define W83781D_REG_ALARM3 0x450 /* not on W83781D */ #define W83781D_REG_IRQ 0x4C /* Real-time status (W83782D, W83783S, W83627HF) */ #define W83782D_REG_ALARM1 0x459 #define W83782D_REG_ALARM2 0x45A #define W83782D_REG_ALARM3 0x45B #define W83781D_REG_BEEP_CONFIG 0x4D #define W83781D_REG_BEEP_INTS1 0x56 #define W83781D_REG_BEEP_INTS2 0x57 Loading Loading @@ -1513,15 +1518,6 @@ w83781d_init_client(struct i2c_client *client) W83781D_REG_TEMP3_CONFIG, tmp & 0xfe); } } if (type != w83781d) { /* enable comparator mode for temp2 and temp3 so alarm indication will work correctly */ i = w83781d_read_value(client, W83781D_REG_IRQ); if (!(i & 0x40)) w83781d_write_value(client, W83781D_REG_IRQ, i | 0x40); } } /* Start monitoring */ Loading Loading @@ -1612,14 +1608,25 @@ static struct w83781d_data *w83781d_update_device(struct device *dev) data->fan_div[1] |= (i >> 4) & 0x04; data->fan_div[2] |= (i >> 5) & 0x04; } data->alarms = w83781d_read_value(client, W83781D_REG_ALARM1) + (w83781d_read_value(client, W83781D_REG_ALARM2) << 8); if ((data->type == w83782d) || (data->type == w83627hf)) { data->alarms |= w83781d_read_value(client, W83781D_REG_ALARM3) << 16; data->alarms = w83781d_read_value(client, W83782D_REG_ALARM1) | (w83781d_read_value(client, W83782D_REG_ALARM2) << 8) | (w83781d_read_value(client, W83782D_REG_ALARM3) << 16); } else if (data->type == w83783s) { data->alarms = w83781d_read_value(client, W83782D_REG_ALARM1) | (w83781d_read_value(client, W83782D_REG_ALARM2) << 8); } else { /* No real-time status registers, fall back to interrupt status registers */ data->alarms = w83781d_read_value(client, W83781D_REG_ALARM1) | (w83781d_read_value(client, W83781D_REG_ALARM2) << 8); } i = w83781d_read_value(client, W83781D_REG_BEEP_INTS2); data->beep_enable = i >> 7; Loading drivers/i2c/busses/i2c-isa.c +0 −12 Original line number Diff line number Diff line Loading @@ -72,16 +72,6 @@ static ssize_t show_adapter_name(struct device *dev, } static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL); static int i2c_isa_device_probe(struct device *dev) { return -ENODEV; } static int i2c_isa_device_remove(struct device *dev) { return 0; } /* We implement an interface which resembles i2c_{add,del}_driver, but for i2c-isa drivers. We don't have to remember and handle lists Loading @@ -93,8 +83,6 @@ int i2c_isa_add_driver(struct i2c_driver *driver) /* Add the driver to the list of i2c drivers in the driver core */ driver->driver.bus = &i2c_bus_type; driver->driver.probe = i2c_isa_device_probe; driver->driver.remove = i2c_isa_device_remove; res = driver_register(&driver->driver); if (res) return res; Loading Loading
Documentation/hwmon/w83627hf +4 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,10 @@ Module Parameters (default is 1) Use 'init=0' to bypass initializing the chip. Try this if your computer crashes when you load the module. * reset: int (default is 0) The driver used to reset the chip on load, but does no more. Use 'reset=1' to restore the old behavior. Report if you need to do this. Description ----------- Loading
drivers/hwmon/it87.c +2 −1 Original line number Diff line number Diff line Loading @@ -1186,6 +1186,7 @@ static int __init sm_it87_init(void) static void __exit sm_it87_exit(void) { if (isa_address) i2c_isa_del_driver(&it87_isa_driver); i2c_del_driver(&it87_driver); } Loading
drivers/hwmon/vt8231.c +4 −4 Original line number Diff line number Diff line Loading @@ -437,12 +437,12 @@ static SENSOR_DEVICE_ATTR(temp##offset##_input, S_IRUGO, \ show_temp, NULL, offset - 1); \ static SENSOR_DEVICE_ATTR(temp##offset##_max, S_IRUGO | S_IWUSR, \ show_temp_max, set_temp_max, offset - 1); \ static SENSOR_DEVICE_ATTR(temp##offset##_min, S_IRUGO | S_IWUSR, \ static SENSOR_DEVICE_ATTR(temp##offset##_max_hyst, S_IRUGO | S_IWUSR, \ show_temp_min, set_temp_min, offset - 1) static DEVICE_ATTR(temp1_input, S_IRUGO, show_temp0, NULL); static DEVICE_ATTR(temp1_max, S_IRUGO | S_IWUSR, show_temp0_max, set_temp0_max); static DEVICE_ATTR(temp1_min, S_IRUGO | S_IWUSR, show_temp0_min, set_temp0_min); static DEVICE_ATTR(temp1_max_hyst, S_IRUGO | S_IWUSR, show_temp0_min, set_temp0_min); define_temperature_sysfs(2); define_temperature_sysfs(3); Loading @@ -451,7 +451,7 @@ define_temperature_sysfs(5); define_temperature_sysfs(6); #define CFG_INFO_TEMP(id) { &sensor_dev_attr_temp##id##_input.dev_attr, \ &sensor_dev_attr_temp##id##_min.dev_attr, \ &sensor_dev_attr_temp##id##_max_hyst.dev_attr, \ &sensor_dev_attr_temp##id##_max.dev_attr } #define CFG_INFO_VOLT(id) { &sensor_dev_attr_in##id##_input.dev_attr, \ &sensor_dev_attr_in##id##_min.dev_attr, \ Loading @@ -464,7 +464,7 @@ struct str_device_attr_table { }; static struct str_device_attr_table cfg_info_temp[] = { { &dev_attr_temp1_input, &dev_attr_temp1_min, &dev_attr_temp1_max }, { &dev_attr_temp1_input, &dev_attr_temp1_max_hyst, &dev_attr_temp1_max }, CFG_INFO_TEMP(2), CFG_INFO_TEMP(3), CFG_INFO_TEMP(4), Loading
drivers/hwmon/w83781d.c +25 −18 Original line number Diff line number Diff line Loading @@ -95,11 +95,16 @@ MODULE_PARM_DESC(init, "Set to zero to bypass chip initialization"); (0x39))) #define W83781D_REG_CONFIG 0x40 /* Interrupt status (W83781D, AS99127F) */ #define W83781D_REG_ALARM1 0x41 #define W83781D_REG_ALARM2 0x42 #define W83781D_REG_ALARM3 0x450 /* not on W83781D */ #define W83781D_REG_IRQ 0x4C /* Real-time status (W83782D, W83783S, W83627HF) */ #define W83782D_REG_ALARM1 0x459 #define W83782D_REG_ALARM2 0x45A #define W83782D_REG_ALARM3 0x45B #define W83781D_REG_BEEP_CONFIG 0x4D #define W83781D_REG_BEEP_INTS1 0x56 #define W83781D_REG_BEEP_INTS2 0x57 Loading Loading @@ -1513,15 +1518,6 @@ w83781d_init_client(struct i2c_client *client) W83781D_REG_TEMP3_CONFIG, tmp & 0xfe); } } if (type != w83781d) { /* enable comparator mode for temp2 and temp3 so alarm indication will work correctly */ i = w83781d_read_value(client, W83781D_REG_IRQ); if (!(i & 0x40)) w83781d_write_value(client, W83781D_REG_IRQ, i | 0x40); } } /* Start monitoring */ Loading Loading @@ -1612,14 +1608,25 @@ static struct w83781d_data *w83781d_update_device(struct device *dev) data->fan_div[1] |= (i >> 4) & 0x04; data->fan_div[2] |= (i >> 5) & 0x04; } data->alarms = w83781d_read_value(client, W83781D_REG_ALARM1) + (w83781d_read_value(client, W83781D_REG_ALARM2) << 8); if ((data->type == w83782d) || (data->type == w83627hf)) { data->alarms |= w83781d_read_value(client, W83781D_REG_ALARM3) << 16; data->alarms = w83781d_read_value(client, W83782D_REG_ALARM1) | (w83781d_read_value(client, W83782D_REG_ALARM2) << 8) | (w83781d_read_value(client, W83782D_REG_ALARM3) << 16); } else if (data->type == w83783s) { data->alarms = w83781d_read_value(client, W83782D_REG_ALARM1) | (w83781d_read_value(client, W83782D_REG_ALARM2) << 8); } else { /* No real-time status registers, fall back to interrupt status registers */ data->alarms = w83781d_read_value(client, W83781D_REG_ALARM1) | (w83781d_read_value(client, W83781D_REG_ALARM2) << 8); } i = w83781d_read_value(client, W83781D_REG_BEEP_INTS2); data->beep_enable = i >> 7; Loading
drivers/i2c/busses/i2c-isa.c +0 −12 Original line number Diff line number Diff line Loading @@ -72,16 +72,6 @@ static ssize_t show_adapter_name(struct device *dev, } static DEVICE_ATTR(name, S_IRUGO, show_adapter_name, NULL); static int i2c_isa_device_probe(struct device *dev) { return -ENODEV; } static int i2c_isa_device_remove(struct device *dev) { return 0; } /* We implement an interface which resembles i2c_{add,del}_driver, but for i2c-isa drivers. We don't have to remember and handle lists Loading @@ -93,8 +83,6 @@ int i2c_isa_add_driver(struct i2c_driver *driver) /* Add the driver to the list of i2c drivers in the driver core */ driver->driver.bus = &i2c_bus_type; driver->driver.probe = i2c_isa_device_probe; driver->driver.remove = i2c_isa_device_remove; res = driver_register(&driver->driver); if (res) return res; Loading