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

Commit 19127af9 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'hwmon-for-linus-v4.2-rc1' of...

Merge tag 'hwmon-for-linus-v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging

Pull hwmon fixes from Guenter Roeck:
 "Two patches headed for stable:
   - Fix broken output scaling in mcp3021 driver
   - Fix attribute visibility in nct7802 driver

  One regression:
   - Fix name attribute in dell-smm-hwmon driver"

* tag 'hwmon-for-linus-v4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
  hwmon: (mcp3021) Fix broken output scaling
  hwmon: (nct7802) fix visibility of temp3
  hwmon: (dell-smm-hwmon) Use a valid name attribute
parents 799b63a4 347d7e45
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -777,7 +777,7 @@ static int __init i8k_init_hwmon(void)
	if (err >= 0)
		i8k_hwmon_flags |= I8K_HWMON_HAVE_FAN2;

	i8k_hwmon_dev = hwmon_device_register_with_groups(NULL, "dell-smm",
	i8k_hwmon_dev = hwmon_device_register_with_groups(NULL, "dell_smm",
							  NULL, i8k_groups);
	if (IS_ERR(i8k_hwmon_dev)) {
		err = PTR_ERR(i8k_hwmon_dev);
+1 −13
Original line number Diff line number Diff line
@@ -31,14 +31,11 @@
/* output format */
#define MCP3021_SAR_SHIFT	2
#define MCP3021_SAR_MASK	0x3ff

#define MCP3021_OUTPUT_RES	10	/* 10-bit resolution */
#define MCP3021_OUTPUT_SCALE	4

#define MCP3221_SAR_SHIFT	0
#define MCP3221_SAR_MASK	0xfff
#define MCP3221_OUTPUT_RES	12	/* 12-bit resolution */
#define MCP3221_OUTPUT_SCALE	1

enum chips {
	mcp3021,
@@ -54,7 +51,6 @@ struct mcp3021_data {
	u16 sar_shift;
	u16 sar_mask;
	u8 output_res;
	u8 output_scale;
};

static int mcp3021_read16(struct i2c_client *client)
@@ -84,13 +80,7 @@ static int mcp3021_read16(struct i2c_client *client)

static inline u16 volts_from_reg(struct mcp3021_data *data, u16 val)
{
	if (val == 0)
		return 0;

	val = val * data->output_scale - data->output_scale / 2;

	return val * DIV_ROUND_CLOSEST(data->vdd,
			(1 << data->output_res) * data->output_scale);
	return DIV_ROUND_CLOSEST(data->vdd * val, 1 << data->output_res);
}

static ssize_t show_in_input(struct device *dev, struct device_attribute *attr,
@@ -132,14 +122,12 @@ static int mcp3021_probe(struct i2c_client *client,
		data->sar_shift = MCP3021_SAR_SHIFT;
		data->sar_mask = MCP3021_SAR_MASK;
		data->output_res = MCP3021_OUTPUT_RES;
		data->output_scale = MCP3021_OUTPUT_SCALE;
		break;

	case mcp3221:
		data->sar_shift = MCP3221_SAR_SHIFT;
		data->sar_mask = MCP3221_SAR_MASK;
		data->output_res = MCP3221_OUTPUT_RES;
		data->output_scale = MCP3221_OUTPUT_SCALE;
		break;
	}

+1 −1
Original line number Diff line number Diff line
@@ -547,7 +547,7 @@ static umode_t nct7802_temp_is_visible(struct kobject *kobj,
	if (index >= 9 && index < 18 &&
	    (reg & 0x0c) != 0x04 && (reg & 0x0c) != 0x08)	/* RD2 */
		return 0;
	if (index >= 18 && index < 27 && (reg & 0x30) != 0x10)	/* RD3 */
	if (index >= 18 && index < 27 && (reg & 0x30) != 0x20)	/* RD3 */
		return 0;
	if (index >= 27 && index < 35)				/* local */
		return attr->mode;