All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Driver for TI INA238 I2C Power Monitor
@ 2021-10-25  2:58 Nathan Rossi
  2021-10-25  2:58 ` [PATCH 1/2] dt-bindings: hwmon: ti,ina2xx: Document ti,ina238 compatible string Nathan Rossi
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Nathan Rossi @ 2021-10-25  2:58 UTC (permalink / raw)
  To: linux-hwmon, devicetree, linux-kernel, linux-doc
  Cc: Nathan Rossi, Nathan Rossi, Guenter Roeck, Jean Delvare,
	Rob Herring, Jonathan Corbet

From: Nathan Rossi <nathan.rossi@digi.com>


Nathan Rossi (2):
  dt-bindings: hwmon: ti,ina2xx: Document ti,ina238 compatible string
  hwmon: Driver for Texas Instruments INA238

 .../devicetree/bindings/hwmon/ti,ina2xx.yaml  |   1 +
 Documentation/hwmon/ina238.rst                |  57 +++
 drivers/hwmon/Kconfig                         |  12 +
 drivers/hwmon/Makefile                        |   1 +
 drivers/hwmon/ina238.c                        | 453 ++++++++++++++++++
 5 files changed, 524 insertions(+)
 create mode 100644 Documentation/hwmon/ina238.rst
 create mode 100644 drivers/hwmon/ina238.c
---
2.33.0

^ permalink raw reply	[flat|nested] 19+ messages in thread
* Re: [PATCH 2/2] hwmon: Driver for Texas Instruments INA238
  2021-10-25  2:58 ` [PATCH 2/2] hwmon: Driver for Texas Instruments INA238 Nathan Rossi
  2021-10-25  5:06   ` Guenter Roeck
@ 2021-11-03 14:52 ` Dan Carpenter
  1 sibling, 0 replies; 19+ messages in thread
From: kernel test robot @ 2021-10-28  5:56 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 6612 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20211025025805.618566-2-nathan@nathanrossi.com>
References: <20211025025805.618566-2-nathan@nathanrossi.com>
TO: Nathan Rossi <nathan@nathanrossi.com>
TO: linux-hwmon(a)vger.kernel.org
TO: linux-doc(a)vger.kernel.org
TO: linux-kernel(a)vger.kernel.org
CC: Nathan Rossi <nathan@nathanrossi.com>
CC: Jean Delvare <jdelvare@suse.com>
CC: Guenter Roeck <linux@roeck-us.net>
CC: Jonathan Corbet <corbet@lwn.net>

Hi Nathan,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on groeck-staging/hwmon-next]
[also build test WARNING on v5.15-rc7 next-20211027]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Nathan-Rossi/Driver-for-TI-INA238-I2C-Power-Monitor/20211025-105911
base:   https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: x86_64-randconfig-m001-20211027 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

smatch warnings:
drivers/hwmon/ina238.c:304 ina238_alert_store() error: uninitialized symbol 'regval'.

vim +/regval +304 drivers/hwmon/ina238.c

aafb1ad1e44aa2 Nathan Rossi 2021-10-25  242  
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  243  static ssize_t ina238_alert_store(struct device *dev,
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  244  				  struct device_attribute *da,
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  245  				  const char *buf, size_t count)
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  246  {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  247  	struct sensor_device_attribute *attr = to_sensor_dev_attr(da);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  248  	struct ina238_data *data = dev_get_drvdata(dev);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  249  	long long val;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  250  	int regval;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  251  	int ret;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  252  
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  253  	ret = kstrtoll(buf, 10, &val);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  254  	if (ret < 0)
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  255  		return ret;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  256  
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  257  	/* convert decimal to register value */
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  258  	switch (attr->index) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  259  	case INA238_SHUNT_OVER_VOLTAGE:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  260  	case INA238_SHUNT_UNDER_VOLTAGE:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  261  		/* signed */
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  262  		regval = div_s64((val * 1000), INA238_SHUNT_VOLTAGE_LSB);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  263  		if (regval > S16_MAX || regval < S16_MIN) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  264  			ret = -EINVAL;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  265  			goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  266  		}
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  267  		break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  268  	case INA238_BUS_OVER_VOLTAGE:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  269  	case INA238_BUS_UNDER_VOLTAGE:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  270  		regval = div_u64((val * 1000), INA238_BUS_VOLTAGE_LSB);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  271  		if (regval > U16_MAX || regval < 0) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  272  			ret = -EINVAL;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  273  			goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  274  		}
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  275  		break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  276  	case INA238_POWER_LIMIT:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  277  		/*
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  278  		 * Compared against the 24-bit power register, lower 8-bits are
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  279  		 * truncated. Same conversion to/from uW as POWER register.
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  280  		 */
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  281  		regval = div_u64(val * 5 * data->rshunt,
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  282  				 1000 * INA238_FIXED_SHUNT) >> 8;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  283  		if (regval > U16_MAX || regval < 0) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  284  			ret = -EINVAL;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  285  			goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  286  		}
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  287  		break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  288  	case INA238_TEMP_LIMIT:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  289  		/* Bits 15-4 of register */
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  290  		regval = (div_s64(val, INA238_DIE_TEMP_LSB) << 4);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  291  		if (regval > S16_MAX || regval < S16_MIN) {
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  292  			ret = -EINVAL;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  293  			goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  294  		}
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  295  		regval = regval & 0xfff0;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  296  		break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  297  	default:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  298  		WARN_ON_ONCE(1);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  299  		break;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  300  	}
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  301  
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  302  	mutex_lock(&data->config_lock);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  303  
aafb1ad1e44aa2 Nathan Rossi 2021-10-25 @304  	ret = regmap_write(data->regmap, attr->index, regval);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  305  	if (ret < 0)
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  306  		goto abort;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  307  
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  308  	ret = count;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  309  abort:
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  310  	mutex_unlock(&data->config_lock);
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  311  	return ret;
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  312  }
aafb1ad1e44aa2 Nathan Rossi 2021-10-25  313  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37432 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2021-11-03 14:53 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-25  2:58 [PATCH 0/2] Driver for TI INA238 I2C Power Monitor Nathan Rossi
2021-10-25  2:58 ` [PATCH 1/2] dt-bindings: hwmon: ti,ina2xx: Document ti,ina238 compatible string Nathan Rossi
2021-10-25  2:58 ` [PATCH 2/2] hwmon: Driver for Texas Instruments INA238 Nathan Rossi
2021-10-25  5:06   ` Guenter Roeck
2021-10-25  6:27     ` Nathan Rossi
2021-10-25 15:45       ` Guenter Roeck
2021-10-26  7:54         ` Nathan Rossi
2021-10-27  9:32   ` kernel test robot
2021-10-27  9:32     ` kernel test robot
2021-10-27  7:42 ` [PATCH v2 0/3] Driver for TI INA238 I2C Power Monitor Nathan Rossi
2021-10-27  7:42   ` [PATCH v2 3/3] hwmon: Driver for Texas Instruments INA238 Nathan Rossi
2021-10-27 15:56     ` Guenter Roeck
2021-10-27  7:42   ` [PATCH v2 2/3] dt-bindings: hwmon: ti,ina2xx: Add ti,shunt-gain property Nathan Rossi
2021-10-27 14:12     ` Rob Herring
2021-10-27  7:42   ` [PATCH v2 1/3] dt-bindings: hwmon: ti,ina2xx: Document ti,ina238 compatible string Nathan Rossi
2021-10-27 15:57   ` [PATCH v2 0/3] Driver for TI INA238 I2C Power Monitor Guenter Roeck
2021-10-28  5:56 [PATCH 2/2] hwmon: Driver for Texas Instruments INA238 kernel test robot
2021-11-03 14:52 ` Dan Carpenter
2021-11-03 14:52 ` Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.