Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 20d9d9a0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull hwmon patches from Guenter Roeck:
 - Fix crash in ad7314 driver
 - Add support for AMD Trinity CPUs to k10temp driver
 - Fix __initdata/__initconst mixup in w83627ehf driver
 - Fix runtime warnings in acpi_power_meter and max6639 drivers
 - Fix build warnings in adm1031, f75375s, sht15, and gpio-fan drivers

* tag 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  hwmon: (ad7314) Adds missing spi_dev initialization
  hwmon: (k10temp) Add support for AMD Trinity CPUs
  hwmon: (w83627ehf) mark const init data with __initconst instead of __initdata
  hwmon: (acpi_power_meter) fix lockdep spew due to non-static lock class
  hwmon: (adm1031) Fix compiler warning
  hwmon: (f75375s) Fix warning message seen in some configurations
  hwmon: (max6639) Convert to dev_pm_ops
  hwmon: (sht15) Fix Kconfig dependencies
  hwmon: (gpio-fan) Fix Kconfig dependencies
parents 7114a72f e16de913
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ Supported chips:
  Socket S1G2: Athlon (X2), Sempron (X2), Turion X2 (Ultra)
* AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series)
* AMD Family 14h processors: "Brazos" (C/E/G/Z-Series)
* AMD Family 15h processors: "Bulldozer"
* AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity"

  Prefix: 'k10temp'
  Addresses scanned: PCI space
+4 −3
Original line number Diff line number Diff line
@@ -253,7 +253,8 @@ config SENSORS_K10TEMP
	  If you say yes here you get support for the temperature
	  sensor(s) inside your CPU. Supported are later revisions of
	  the AMD Family 10h and all revisions of the AMD Family 11h,
	  12h (Llano), 14h (Brazos) and 15h (Bulldozer) microarchitectures.
	  12h (Llano), 14h (Brazos) and 15h (Bulldozer/Trinity)
	  microarchitectures.

	  This driver can also be built as a module.  If so, the module
	  will be called k10temp.
@@ -425,7 +426,7 @@ config SENSORS_GL520SM

config SENSORS_GPIO_FAN
	tristate "GPIO fan"
	depends on GENERIC_GPIO
	depends on GPIOLIB
	help
	  If you say yes here you get support for fans connected to GPIO lines.

@@ -883,7 +884,7 @@ source drivers/hwmon/pmbus/Kconfig

config SENSORS_SHT15
	tristate "Sensiron humidity and temperature sensors. SHT15 and compat."
	depends on GENERIC_GPIO
	depends on GPIOLIB
	help
	  If you say yes here you get support for the Sensiron SHT10, SHT11,
	  SHT15, SHT71, SHT75 humidity and temperature sensors.
+2 −0
Original line number Diff line number Diff line
@@ -632,6 +632,7 @@ static int register_ro_attrs(struct acpi_power_meter_resource *resource,
		sensors->dev_attr.show = ro->show;
		sensors->index = ro->index;

		sysfs_attr_init(&sensors->dev_attr.attr);
		res = device_create_file(dev, &sensors->dev_attr);
		if (res) {
			sensors->dev_attr.attr.name = NULL;
@@ -661,6 +662,7 @@ static int register_rw_attrs(struct acpi_power_meter_resource *resource,
		sensors->dev_attr.store = rw->set;
		sensors->index = rw->index;

		sysfs_attr_init(&sensors->dev_attr.attr);
		res = device_create_file(dev, &sensors->dev_attr);
		if (res) {
			sensors->dev_attr.attr.name = NULL;
+1 −0
Original line number Diff line number Diff line
@@ -128,6 +128,7 @@ static int __devinit ad7314_probe(struct spi_device *spi_dev)
		ret = PTR_ERR(chip->hwmon_dev);
		goto error_remove_group;
	}
	chip->spi_dev = spi_dev;

	return 0;
error_remove_group:
+8 −12
Original line number Diff line number Diff line
@@ -233,18 +233,15 @@ static const auto_chan_table_t auto_channel_select_table_adm1030 = {
 * nearest match if no exact match where found.
 */
static int
get_fan_auto_nearest(struct adm1031_data *data,
		     int chan, u8 val, u8 reg, u8 *new_reg)
get_fan_auto_nearest(struct adm1031_data *data, int chan, u8 val, u8 reg)
{
	int i;
	int first_match = -1, exact_match = -1;
	u8 other_reg_val =
	    (*data->chan_select_table)[FAN_CHAN_FROM_REG(reg)][chan ? 0 : 1];

	if (val == 0) {
		*new_reg = 0;
	if (val == 0)
		return 0;
	}

	for (i = 0; i < 8; i++) {
		if ((val == (*data->chan_select_table)[i][chan]) &&
@@ -264,13 +261,11 @@ get_fan_auto_nearest(struct adm1031_data *data,
	}

	if (exact_match >= 0)
		*new_reg = exact_match;
		return exact_match;
	else if (first_match >= 0)
		*new_reg = first_match;
	else
		return -EINVAL;
		return first_match;

	return 0;
	return -EINVAL;
}

static ssize_t show_fan_auto_channel(struct device *dev,
@@ -301,11 +296,12 @@ set_fan_auto_channel(struct device *dev, struct device_attribute *attr,

	mutex_lock(&data->update_lock);

	ret = get_fan_auto_nearest(data, nr, val, data->conf1, &reg);
	if (ret) {
	ret = get_fan_auto_nearest(data, nr, val, data->conf1);
	if (ret < 0) {
		mutex_unlock(&data->update_lock);
		return ret;
	}
	reg = ret;
	data->conf1 = FAN_CHAN_TO_REG(reg, data->conf1);
	if ((data->conf1 & ADM1031_CONF1_AUTO_MODE) ^
	    (old_fan_mode & ADM1031_CONF1_AUTO_MODE)) {
Loading