Răsfoiți Sursa

hwmon: (ina2xx) don't accept shunt values greater than the calibration factor

Shunt resistance values greater than the chip's calibration factor make no
sense since the actual value written to the register equals:

	<calibration factor> / <shunt>

Bail-out from ina2xx_probe() if the configured value is greater than the
calibration factor.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Bartosz Golaszewski 10 ani în urmă
părinte
comite
e794704000
1 a modificat fișierele cu 2 adăugiri și 1 ștergeri
  1. 2 1
      drivers/hwmon/ina2xx.c

+ 2 - 1
drivers/hwmon/ina2xx.c

@@ -313,7 +313,8 @@ static int ina2xx_probe(struct i2c_client *client,
 	data->config = &ina2xx_config[data->kind];
 	data->config = &ina2xx_config[data->kind];
 	data->client = client;
 	data->client = client;
 
 
-	if (data->rshunt <= 0)
+	if (data->rshunt <= 0 ||
+	    data->rshunt > data->config->calibration_factor)
 		return -ENODEV;
 		return -ENODEV;
 
 
 	ret = ina2xx_init(data);
 	ret = ina2xx_init(data);