lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202507111539.F4FrQltx-lkp@intel.com>
Date: Fri, 11 Jul 2025 15:24:59 +0800
From: kernel test robot <lkp@...el.com>
To: Remi Buisson via B4 Relay <devnull+remi.buisson.tdk.com@...nel.org>,
	Jonathan Cameron <jic23@...nel.org>,
	David Lechner <dlechner@...libre.com>,
	Nuno Sá <nuno.sa@...log.com>,
	Andy Shevchenko <andy@...nel.org>, Rob Herring <robh@...nel.org>,
	Krzysztof Kozlowski <krzk@...nel.org>,
	Conor Dooley <conor+dt@...nel.org>
Cc: oe-kbuild-all@...ts.linux.dev, linux-kernel@...r.kernel.org,
	linux-iio@...r.kernel.org, devicetree@...r.kernel.org,
	Remi Buisson <remi.buisson@....com>
Subject: Re: [PATCH v2 5/8] iio: imu: inv_icm45600: add I2C driver for
 inv_icm45600 driver

Hi Remi,

kernel test robot noticed the following build warnings:

[auto build test WARNING on f8f559752d573a051a984adda8d2d1464f92f954]

url:    https://github.com/intel-lab-lkp/linux/commits/Remi-Buisson-via-B4-Relay/dt-bindings-iio-imu-Add-inv_icm45600/20250710-170143
base:   f8f559752d573a051a984adda8d2d1464f92f954
patch link:    https://lore.kernel.org/r/20250710-add_newport_driver-v2-5-bf76d8142ef2%40tdk.com
patch subject: [PATCH v2 5/8] iio: imu: inv_icm45600: add I2C driver for inv_icm45600 driver
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20250711/202507111539.F4FrQltx-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 15.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250711/202507111539.F4FrQltx-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507111539.F4FrQltx-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/iio/imu/inv_icm45600/inv_icm45600_core.c:894:12: warning: 'inv_icm45600_runtime_resume' defined but not used [-Wunused-function]
     894 | static int inv_icm45600_runtime_resume(struct device *dev)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/iio/imu/inv_icm45600/inv_icm45600_core.c:875:12: warning: 'inv_icm45600_runtime_suspend' defined but not used [-Wunused-function]
     875 | static int inv_icm45600_runtime_suspend(struct device *dev)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/iio/imu/inv_icm45600/inv_icm45600_core.c:832:12: warning: 'inv_icm45600_resume' defined but not used [-Wunused-function]
     832 | static int inv_icm45600_resume(struct device *dev)
         |            ^~~~~~~~~~~~~~~~~~~
>> drivers/iio/imu/inv_icm45600/inv_icm45600_core.c:790:12: warning: 'inv_icm45600_suspend' defined but not used [-Wunused-function]
     790 | static int inv_icm45600_suspend(struct device *dev)
         |            ^~~~~~~~~~~~~~~~~~~~


vim +/inv_icm45600_runtime_resume +894 drivers/iio/imu/inv_icm45600/inv_icm45600_core.c

01fd98fed267cd Remi Buisson 2025-07-10  785  
01fd98fed267cd Remi Buisson 2025-07-10  786  /*
01fd98fed267cd Remi Buisson 2025-07-10  787   * Suspend saves sensors state and turns everything off.
01fd98fed267cd Remi Buisson 2025-07-10  788   * Check first if runtime suspend has not already done the job.
01fd98fed267cd Remi Buisson 2025-07-10  789   */
01fd98fed267cd Remi Buisson 2025-07-10 @790  static int inv_icm45600_suspend(struct device *dev)
01fd98fed267cd Remi Buisson 2025-07-10  791  {
01fd98fed267cd Remi Buisson 2025-07-10  792  	struct inv_icm45600_state *st = dev_get_drvdata(dev);
01fd98fed267cd Remi Buisson 2025-07-10  793  	int ret;
01fd98fed267cd Remi Buisson 2025-07-10  794  
01fd98fed267cd Remi Buisson 2025-07-10  795  	guard(mutex)(&st->lock);
01fd98fed267cd Remi Buisson 2025-07-10  796  
01fd98fed267cd Remi Buisson 2025-07-10  797  	st->suspended.gyro = st->conf.gyro.mode;
01fd98fed267cd Remi Buisson 2025-07-10  798  	st->suspended.accel = st->conf.accel.mode;
01fd98fed267cd Remi Buisson 2025-07-10  799  	if (pm_runtime_suspended(dev))
01fd98fed267cd Remi Buisson 2025-07-10  800  		return 0;
01fd98fed267cd Remi Buisson 2025-07-10  801  
eaedaea6990c59 Remi Buisson 2025-07-10  802  	/* Disable FIFO data streaming. */
eaedaea6990c59 Remi Buisson 2025-07-10  803  	if (st->fifo.on) {
eaedaea6990c59 Remi Buisson 2025-07-10  804  		unsigned int val;
eaedaea6990c59 Remi Buisson 2025-07-10  805  
eaedaea6990c59 Remi Buisson 2025-07-10  806  		ret = regmap_clear_bits(st->map, INV_ICM45600_REG_FIFO_CONFIG3,
eaedaea6990c59 Remi Buisson 2025-07-10  807  					INV_ICM45600_FIFO_CONFIG3_IF_EN);
eaedaea6990c59 Remi Buisson 2025-07-10  808  		if (ret)
eaedaea6990c59 Remi Buisson 2025-07-10  809  			return ret;
eaedaea6990c59 Remi Buisson 2025-07-10  810  		val = FIELD_PREP(INV_ICM45600_FIFO_CONFIG0_MODE_MASK,
eaedaea6990c59 Remi Buisson 2025-07-10  811  			INV_ICM45600_FIFO_CONFIG0_MODE_BYPASS);
eaedaea6990c59 Remi Buisson 2025-07-10  812  		ret = regmap_update_bits(st->map, INV_ICM45600_REG_FIFO_CONFIG0,
eaedaea6990c59 Remi Buisson 2025-07-10  813  					 INV_ICM45600_FIFO_CONFIG0_MODE_MASK, val);
eaedaea6990c59 Remi Buisson 2025-07-10  814  		if (ret)
eaedaea6990c59 Remi Buisson 2025-07-10  815  			return ret;
eaedaea6990c59 Remi Buisson 2025-07-10  816  	}
eaedaea6990c59 Remi Buisson 2025-07-10  817  
01fd98fed267cd Remi Buisson 2025-07-10  818  	ret = inv_icm45600_set_pwr_mgmt0(st, INV_ICM45600_SENSOR_MODE_OFF,
01fd98fed267cd Remi Buisson 2025-07-10  819  					 INV_ICM45600_SENSOR_MODE_OFF, NULL);
01fd98fed267cd Remi Buisson 2025-07-10  820  	if (ret)
01fd98fed267cd Remi Buisson 2025-07-10  821  		return ret;
01fd98fed267cd Remi Buisson 2025-07-10  822  
01fd98fed267cd Remi Buisson 2025-07-10  823  	regulator_disable(st->vddio_supply);
01fd98fed267cd Remi Buisson 2025-07-10  824  
01fd98fed267cd Remi Buisson 2025-07-10  825  	return 0;
01fd98fed267cd Remi Buisson 2025-07-10  826  }
01fd98fed267cd Remi Buisson 2025-07-10  827  
01fd98fed267cd Remi Buisson 2025-07-10  828  /*
01fd98fed267cd Remi Buisson 2025-07-10  829   * System resume gets the system back on and restores the sensors state.
01fd98fed267cd Remi Buisson 2025-07-10  830   * Manually put runtime power management in system active state.
01fd98fed267cd Remi Buisson 2025-07-10  831   */
01fd98fed267cd Remi Buisson 2025-07-10 @832  static int inv_icm45600_resume(struct device *dev)
01fd98fed267cd Remi Buisson 2025-07-10  833  {
01fd98fed267cd Remi Buisson 2025-07-10  834  	struct inv_icm45600_state *st = dev_get_drvdata(dev);
eaedaea6990c59 Remi Buisson 2025-07-10  835  	struct inv_icm45600_sensor_state *gyro_st = iio_priv(st->indio_gyro);
eaedaea6990c59 Remi Buisson 2025-07-10  836  	struct inv_icm45600_sensor_state *accel_st = iio_priv(st->indio_accel);
01fd98fed267cd Remi Buisson 2025-07-10  837  	int ret;
01fd98fed267cd Remi Buisson 2025-07-10  838  
01fd98fed267cd Remi Buisson 2025-07-10  839  	guard(mutex)(&st->lock);
01fd98fed267cd Remi Buisson 2025-07-10  840  
01fd98fed267cd Remi Buisson 2025-07-10  841  	ret = inv_icm45600_enable_regulator_vddio(st);
01fd98fed267cd Remi Buisson 2025-07-10  842  	if (ret)
01fd98fed267cd Remi Buisson 2025-07-10  843  		return ret;
01fd98fed267cd Remi Buisson 2025-07-10  844  
01fd98fed267cd Remi Buisson 2025-07-10  845  	pm_runtime_disable(dev);
01fd98fed267cd Remi Buisson 2025-07-10  846  	pm_runtime_set_active(dev);
01fd98fed267cd Remi Buisson 2025-07-10  847  	pm_runtime_enable(dev);
01fd98fed267cd Remi Buisson 2025-07-10  848  
01fd98fed267cd Remi Buisson 2025-07-10  849  	/* Restore sensors state. */
eaedaea6990c59 Remi Buisson 2025-07-10  850  	ret = inv_icm45600_set_pwr_mgmt0(st, st->suspended.gyro,
01fd98fed267cd Remi Buisson 2025-07-10  851  					 st->suspended.accel, NULL);
eaedaea6990c59 Remi Buisson 2025-07-10  852  	if (ret)
eaedaea6990c59 Remi Buisson 2025-07-10  853  		return ret;
01fd98fed267cd Remi Buisson 2025-07-10  854  
eaedaea6990c59 Remi Buisson 2025-07-10  855  	/* Restore FIFO data streaming. */
eaedaea6990c59 Remi Buisson 2025-07-10  856  	if (st->fifo.on) {
eaedaea6990c59 Remi Buisson 2025-07-10  857  		unsigned int val;
eaedaea6990c59 Remi Buisson 2025-07-10  858  
eaedaea6990c59 Remi Buisson 2025-07-10  859  		inv_sensors_timestamp_reset(&gyro_st->ts);
eaedaea6990c59 Remi Buisson 2025-07-10  860  		inv_sensors_timestamp_reset(&accel_st->ts);
eaedaea6990c59 Remi Buisson 2025-07-10  861  		val = FIELD_PREP(INV_ICM45600_FIFO_CONFIG0_MODE_MASK,
eaedaea6990c59 Remi Buisson 2025-07-10  862  			INV_ICM45600_FIFO_CONFIG0_MODE_STREAM);
eaedaea6990c59 Remi Buisson 2025-07-10  863  		ret = regmap_update_bits(st->map, INV_ICM45600_REG_FIFO_CONFIG0,
eaedaea6990c59 Remi Buisson 2025-07-10  864  					 INV_ICM45600_FIFO_CONFIG0_MODE_MASK, val);
eaedaea6990c59 Remi Buisson 2025-07-10  865  		if (ret)
eaedaea6990c59 Remi Buisson 2025-07-10  866  			return ret;
eaedaea6990c59 Remi Buisson 2025-07-10  867  		ret = regmap_set_bits(st->map, INV_ICM45600_REG_FIFO_CONFIG3,
eaedaea6990c59 Remi Buisson 2025-07-10  868  				      INV_ICM45600_FIFO_CONFIG3_IF_EN);
eaedaea6990c59 Remi Buisson 2025-07-10  869  	}
eaedaea6990c59 Remi Buisson 2025-07-10  870  
eaedaea6990c59 Remi Buisson 2025-07-10  871  	return ret;
01fd98fed267cd Remi Buisson 2025-07-10  872  }
01fd98fed267cd Remi Buisson 2025-07-10  873  
01fd98fed267cd Remi Buisson 2025-07-10  874  /* Runtime suspend will turn off sensors that are enabled by iio devices. */
01fd98fed267cd Remi Buisson 2025-07-10 @875  static int inv_icm45600_runtime_suspend(struct device *dev)
01fd98fed267cd Remi Buisson 2025-07-10  876  {
01fd98fed267cd Remi Buisson 2025-07-10  877  	struct inv_icm45600_state *st = dev_get_drvdata(dev);
01fd98fed267cd Remi Buisson 2025-07-10  878  	int ret;
01fd98fed267cd Remi Buisson 2025-07-10  879  
01fd98fed267cd Remi Buisson 2025-07-10  880  	guard(mutex)(&st->lock);
01fd98fed267cd Remi Buisson 2025-07-10  881  
01fd98fed267cd Remi Buisson 2025-07-10  882  	/* disable all sensors */
01fd98fed267cd Remi Buisson 2025-07-10  883  	ret = inv_icm45600_set_pwr_mgmt0(st, INV_ICM45600_SENSOR_MODE_OFF,
01fd98fed267cd Remi Buisson 2025-07-10  884  					 INV_ICM45600_SENSOR_MODE_OFF, NULL);
01fd98fed267cd Remi Buisson 2025-07-10  885  	if (ret)
01fd98fed267cd Remi Buisson 2025-07-10  886  		return ret;
01fd98fed267cd Remi Buisson 2025-07-10  887  
01fd98fed267cd Remi Buisson 2025-07-10  888  	regulator_disable(st->vddio_supply);
01fd98fed267cd Remi Buisson 2025-07-10  889  
01fd98fed267cd Remi Buisson 2025-07-10  890  	return 0;
01fd98fed267cd Remi Buisson 2025-07-10  891  }
01fd98fed267cd Remi Buisson 2025-07-10  892  
01fd98fed267cd Remi Buisson 2025-07-10  893  /* Sensors are enabled by iio devices, no need to turn them back on here. */
01fd98fed267cd Remi Buisson 2025-07-10 @894  static int inv_icm45600_runtime_resume(struct device *dev)
01fd98fed267cd Remi Buisson 2025-07-10  895  {
01fd98fed267cd Remi Buisson 2025-07-10  896  	struct inv_icm45600_state *st = dev_get_drvdata(dev);
01fd98fed267cd Remi Buisson 2025-07-10  897  
01fd98fed267cd Remi Buisson 2025-07-10  898  	guard(mutex)(&st->lock);
01fd98fed267cd Remi Buisson 2025-07-10  899  
01fd98fed267cd Remi Buisson 2025-07-10  900  	return inv_icm45600_enable_regulator_vddio(st);
01fd98fed267cd Remi Buisson 2025-07-10  901  }
01fd98fed267cd Remi Buisson 2025-07-10  902  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ