All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev,
	Mohammad Gomaa <midomaxgomaa@gmail.com>,
	Wolfram Sang <wsa-dev@sang-engineering.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-trace-kernel@vger.kernel.org, kenalba@google.com,
	hbarnor@chromium.org, rayxu@google.com,
	Mohammad Gomaa <midomaxgomaa@gmail.com>
Subject: Re: [PATCH WIP v2] i2c: add tracepoints to aid debugging in i2c-core-base
Date: Mon, 18 Aug 2025 10:19:41 +0300	[thread overview]
Message-ID: <202508181525.GKAXMVYv-lkp@intel.com> (raw)
In-Reply-To: <20250817-refactor-add-i2c-tracepoints-v2-1-c0bad299e02e@gmail.com>

Hi Mohammad,

kernel test robot noticed the following build warnings:

url:    https://github.com/intel-lab-lkp/linux/commits/Mohammad-Gomaa/i2c-add-tracepoints-to-aid-debugging-in-i2c-core-base/20250817-155936
base:   7e161a991ea71e6ec526abc8f40c6852ebe3d946
patch link:    https://lore.kernel.org/r/20250817-refactor-add-i2c-tracepoints-v2-1-c0bad299e02e%40gmail.com
patch subject: [PATCH WIP v2] i2c: add tracepoints to aid debugging in i2c-core-base
config: x86_64-randconfig-161-20250818 (https://download.01.org/0day-ci/archive/20250818/202508181525.GKAXMVYv-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0

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@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202508181525.GKAXMVYv-lkp@intel.com/

smatch warnings:
drivers/i2c/i2c-core-base.c:535 i2c_device_probe() error: uninitialized symbol 'err_reason'.

vim +/err_reason +535 drivers/i2c/i2c-core-base.c

f37dd80ac2a67e4 drivers/i2c/i2c-core.c      David Brownell           2007-02-13  491  static int i2c_device_probe(struct device *dev)
^1da177e4c3f415 drivers/i2c/i2c-core.c      Linus Torvalds           2005-04-16  492  {
5763a474c887d4a drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  493  	struct fwnode_handle	*fwnode = dev_fwnode(dev);
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  494  	struct i2c_client	*client = i2c_verify_client(dev);
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  495  	struct i2c_driver	*driver;
79ece9b292af6b0 drivers/i2c/i2c-core-base.c Ricardo Ribalda          2022-11-14  496  	bool do_power_on;
50c3304a5e1e521 drivers/i2c/i2c-core.c      Hans Verkuil             2008-03-12  497  	int status;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  498  	int err_reason;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  499  	bool has_id_table, has_acpi_match, has_of_match;
7b4fbc50fabb810 drivers/i2c/i2c-core.c      David Brownell           2007-05-01  500  
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  501  	if (!client)
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  502  		return 0;
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  503  
6e76cb7dfd34a2e drivers/i2c/i2c-core-base.c Charles Keepax           2019-06-27  504  	client->irq = client->init_irq;
6e76cb7dfd34a2e drivers/i2c/i2c-core-base.c Charles Keepax           2019-06-27  505  
0c2a34937f7e4c4 drivers/i2c/i2c-core-base.c Wolfram Sang             2020-06-30  506  	if (!client->irq) {
845c877009cf014 drivers/i2c/i2c-core.c      Mika Westerberg          2015-05-06  507  		int irq = -ENOENT;
845c877009cf014 drivers/i2c/i2c-core.c      Mika Westerberg          2015-05-06  508  
331c34255293cd0 drivers/i2c/i2c-core.c      Dmitry Torokhov          2017-01-04  509  		if (client->flags & I2C_CLIENT_HOST_NOTIFY) {
331c34255293cd0 drivers/i2c/i2c-core.c      Dmitry Torokhov          2017-01-04  510  			dev_dbg(dev, "Using Host Notify IRQ\n");
72bfcee11cf8950 drivers/i2c/i2c-core-base.c Jarkko Nikula            2019-04-30  511  			/* Keep adapter active when Host Notify is required */
72bfcee11cf8950 drivers/i2c/i2c-core-base.c Jarkko Nikula            2019-04-30  512  			pm_runtime_get_sync(&client->adapter->dev);
331c34255293cd0 drivers/i2c/i2c-core.c      Dmitry Torokhov          2017-01-04  513  			irq = i2c_smbus_host_notify_to_irq(client);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  514  			err_reason = I2C_TRACE_REASON_HOST_NOTIFY;
5763a474c887d4a drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  515  		} else if (is_of_node(fwnode)) {
5d9424b00b577b6 drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  516  			irq = fwnode_irq_get_byname(fwnode, "irq");
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  517  			if (irq == -EINVAL || irq == -ENODATA)
5d9424b00b577b6 drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  518  				irq = fwnode_irq_get(fwnode, 0);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  519  			err_reason = I2C_TRACE_REASON_FROM_OF;
5763a474c887d4a drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  520  		} else if (is_acpi_device_node(fwnode)) {
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  521  			bool wake_capable;
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  522  
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  523  			irq = i2c_acpi_get_irq(client, &wake_capable);
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  524  			if (irq > 0 && wake_capable)
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  525  				client->flags |= I2C_CLIENT_WAKE;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  526  			err_reason = I2C_TRACE_REASON_FROM_ACPI;
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  527  		}

err_reason not set on else { path.

3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  528  		if (irq == -EPROBE_DEFER) {
5c52473b4496b35 drivers/i2c/i2c-core-base.c Xu Yang                  2025-05-07  529  			status = dev_err_probe(dev, irq, "can't get irq\n");
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  530  			err_reason = I2C_TRACE_REASON_EPROBE_DEFER_IRQ;
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  531  			goto put_sync_adapter;
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  532  		}
331c34255293cd0 drivers/i2c/i2c-core.c      Dmitry Torokhov          2017-01-04  533  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  534  		if (irq < 0) {
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17 @535  			trace_i2c_device_probe_debug(dev, err_reason);
                                                                                                                                          ^^^^^^^^^^

6f34be7400c68d3 drivers/i2c/i2c-core.c      Geert Uytterhoeven       2014-11-17  536  			irq = 0;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  537  		}
2fd36c55264926e drivers/i2c/i2c-core.c      Laurent Pinchart         2014-10-30  538  
2fd36c55264926e drivers/i2c/i2c-core.c      Laurent Pinchart         2014-10-30  539  		client->irq = irq;
2fd36c55264926e drivers/i2c/i2c-core.c      Laurent Pinchart         2014-10-30  540  	}
2fd36c55264926e drivers/i2c/i2c-core.c      Laurent Pinchart         2014-10-30  541  
0c2a34937f7e4c4 drivers/i2c/i2c-core-base.c Wolfram Sang             2020-06-30  542  	driver = to_i2c_driver(dev->driver);
0c2a34937f7e4c4 drivers/i2c/i2c-core-base.c Wolfram Sang             2020-06-30  543  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  544  	has_id_table = driver->id_table;

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


WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: Re: [PATCH WIP v2] i2c: add tracepoints to aid debugging in i2c-core-base
Date: Mon, 18 Aug 2025 13:52:37 +0800	[thread overview]
Message-ID: <202508181525.GKAXMVYv-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250817-refactor-add-i2c-tracepoints-v2-1-c0bad299e02e@gmail.com>
References: <20250817-refactor-add-i2c-tracepoints-v2-1-c0bad299e02e@gmail.com>
TO: Mohammad Gomaa <midomaxgomaa@gmail.com>
TO: Wolfram Sang <wsa-dev@sang-engineering.com>
TO: Steven Rostedt <rostedt@goodmis.org>
TO: Masami Hiramatsu <mhiramat@kernel.org>
TO: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
CC: linux-i2c@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux-trace-kernel@vger.kernel.org
CC: kenalba@google.com
CC: hbarnor@chromium.org
CC: rayxu@google.com
CC: Mohammad Gomaa <midomaxgomaa@gmail.com>

Hi Mohammad,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 7e161a991ea71e6ec526abc8f40c6852ebe3d946]

url:    https://github.com/intel-lab-lkp/linux/commits/Mohammad-Gomaa/i2c-add-tracepoints-to-aid-debugging-in-i2c-core-base/20250817-155936
base:   7e161a991ea71e6ec526abc8f40c6852ebe3d946
patch link:    https://lore.kernel.org/r/20250817-refactor-add-i2c-tracepoints-v2-1-c0bad299e02e%40gmail.com
patch subject: [PATCH WIP v2] i2c: add tracepoints to aid debugging in i2c-core-base
:::::: branch date: 24 hours ago
:::::: commit date: 24 hours ago
config: x86_64-randconfig-161-20250818 (https://download.01.org/0day-ci/archive/20250818/202508181525.GKAXMVYv-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14+deb12u1) 12.2.0

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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202508181525.GKAXMVYv-lkp@intel.com/

smatch warnings:
drivers/i2c/i2c-core-base.c:535 i2c_device_probe() error: uninitialized symbol 'err_reason'.

vim +/err_reason +535 drivers/i2c/i2c-core-base.c

4d5538f5882a6b6 drivers/i2c/i2c-core.c      Benjamin Tissoires       2016-10-13  490  
f37dd80ac2a67e4 drivers/i2c/i2c-core.c      David Brownell           2007-02-13  491  static int i2c_device_probe(struct device *dev)
^1da177e4c3f415 drivers/i2c/i2c-core.c      Linus Torvalds           2005-04-16  492  {
5763a474c887d4a drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  493  	struct fwnode_handle	*fwnode = dev_fwnode(dev);
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  494  	struct i2c_client	*client = i2c_verify_client(dev);
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  495  	struct i2c_driver	*driver;
79ece9b292af6b0 drivers/i2c/i2c-core-base.c Ricardo Ribalda          2022-11-14  496  	bool do_power_on;
50c3304a5e1e521 drivers/i2c/i2c-core.c      Hans Verkuil             2008-03-12  497  	int status;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  498  	int err_reason;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  499  	bool has_id_table, has_acpi_match, has_of_match;
7b4fbc50fabb810 drivers/i2c/i2c-core.c      David Brownell           2007-05-01  500  
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  501  	if (!client)
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  502  		return 0;
51298d1257b9f0a drivers/i2c/i2c-core.c      Jean Delvare             2009-09-18  503  
6e76cb7dfd34a2e drivers/i2c/i2c-core-base.c Charles Keepax           2019-06-27  504  	client->irq = client->init_irq;
6e76cb7dfd34a2e drivers/i2c/i2c-core-base.c Charles Keepax           2019-06-27  505  
0c2a34937f7e4c4 drivers/i2c/i2c-core-base.c Wolfram Sang             2020-06-30  506  	if (!client->irq) {
845c877009cf014 drivers/i2c/i2c-core.c      Mika Westerberg          2015-05-06  507  		int irq = -ENOENT;
845c877009cf014 drivers/i2c/i2c-core.c      Mika Westerberg          2015-05-06  508  
331c34255293cd0 drivers/i2c/i2c-core.c      Dmitry Torokhov          2017-01-04  509  		if (client->flags & I2C_CLIENT_HOST_NOTIFY) {
331c34255293cd0 drivers/i2c/i2c-core.c      Dmitry Torokhov          2017-01-04  510  			dev_dbg(dev, "Using Host Notify IRQ\n");
72bfcee11cf8950 drivers/i2c/i2c-core-base.c Jarkko Nikula            2019-04-30  511  			/* Keep adapter active when Host Notify is required */
72bfcee11cf8950 drivers/i2c/i2c-core-base.c Jarkko Nikula            2019-04-30  512  			pm_runtime_get_sync(&client->adapter->dev);
331c34255293cd0 drivers/i2c/i2c-core.c      Dmitry Torokhov          2017-01-04  513  			irq = i2c_smbus_host_notify_to_irq(client);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  514  			err_reason = I2C_TRACE_REASON_HOST_NOTIFY;
5763a474c887d4a drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  515  		} else if (is_of_node(fwnode)) {
5d9424b00b577b6 drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  516  			irq = fwnode_irq_get_byname(fwnode, "irq");
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  517  			if (irq == -EINVAL || irq == -ENODATA)
5d9424b00b577b6 drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  518  				irq = fwnode_irq_get(fwnode, 0);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  519  			err_reason = I2C_TRACE_REASON_FROM_OF;
5763a474c887d4a drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  520  		} else if (is_acpi_device_node(fwnode)) {
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  521  			bool wake_capable;
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  522  
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  523  			irq = i2c_acpi_get_irq(client, &wake_capable);
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  524  			if (irq > 0 && wake_capable)
b38f2d5d9615cf9 drivers/i2c/i2c-core-base.c Raul E Rangel            2022-09-29  525  				client->flags |= I2C_CLIENT_WAKE;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  526  			err_reason = I2C_TRACE_REASON_FROM_ACPI;
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  527  		}
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  528  		if (irq == -EPROBE_DEFER) {
5c52473b4496b35 drivers/i2c/i2c-core-base.c Xu Yang                  2025-05-07  529  			status = dev_err_probe(dev, irq, "can't get irq\n");
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  530  			err_reason = I2C_TRACE_REASON_EPROBE_DEFER_IRQ;
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  531  			goto put_sync_adapter;
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  532  		}
331c34255293cd0 drivers/i2c/i2c-core.c      Dmitry Torokhov          2017-01-04  533  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  534  		if (irq < 0) {
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17 @535  			trace_i2c_device_probe_debug(dev, err_reason);
6f34be7400c68d3 drivers/i2c/i2c-core.c      Geert Uytterhoeven       2014-11-17  536  			irq = 0;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  537  		}
2fd36c55264926e drivers/i2c/i2c-core.c      Laurent Pinchart         2014-10-30  538  
2fd36c55264926e drivers/i2c/i2c-core.c      Laurent Pinchart         2014-10-30  539  		client->irq = irq;
2fd36c55264926e drivers/i2c/i2c-core.c      Laurent Pinchart         2014-10-30  540  	}
2fd36c55264926e drivers/i2c/i2c-core.c      Laurent Pinchart         2014-10-30  541  
0c2a34937f7e4c4 drivers/i2c/i2c-core-base.c Wolfram Sang             2020-06-30  542  	driver = to_i2c_driver(dev->driver);
0c2a34937f7e4c4 drivers/i2c/i2c-core-base.c Wolfram Sang             2020-06-30  543  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  544  	has_id_table = driver->id_table;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  545  	has_acpi_match = acpi_driver_match_device(dev, dev->driver);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  546  	has_of_match = i2c_of_match_device(dev->driver->of_match_table, client);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  547  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  548  	if (!has_id_table)
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  549  		trace_i2c_device_probe_debug(dev, I2C_TRACE_REASON_NO_I2C_ID_TABLE);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  550  	if (!has_acpi_match)
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  551  		trace_i2c_device_probe_debug(dev, I2C_TRACE_REASON_ACPI_ID_MISMATCH);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  552  	if (!has_of_match)
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  553  		trace_i2c_device_probe_debug(dev, I2C_TRACE_REASON_OF_ID_MISMATCH);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  554  
da10c06a044b375 drivers/i2c/i2c-core.c      Lee Jones                2016-11-07  555  	/*
f4b17a14faeec41 drivers/i2c/i2c-core-base.c Javier Martinez Canillas 2017-08-09  556  	 * An I2C ID table is not mandatory, if and only if, a suitable OF
f4b17a14faeec41 drivers/i2c/i2c-core-base.c Javier Martinez Canillas 2017-08-09  557  	 * or ACPI ID table is supplied for the probing device.
da10c06a044b375 drivers/i2c/i2c-core.c      Lee Jones                2016-11-07  558  	 */
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  559  	if (!has_id_table && !has_acpi_match && !has_of_match) {
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  560  		status = -ENODEV;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  561  		err_reason = I2C_TRACE_REASON_NO_ID_MATCH;
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  562  		goto put_sync_adapter;
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  563  	}
0acc2b321342aa8 drivers/i2c/i2c-core.c      Lars-Peter Clausen       2013-09-29  564  
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  565  	if (client->flags & I2C_CLIENT_WAKE) {
3e99834cc0c7f06 drivers/i2c/i2c-core-base.c Andy Shevchenko          2019-07-26  566  		int wakeirq;
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  567  
5d9424b00b577b6 drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  568  		wakeirq = fwnode_irq_get_byname(fwnode, "wakeup");
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  569  		if (wakeirq == -EPROBE_DEFER) {
5c52473b4496b35 drivers/i2c/i2c-core-base.c Xu Yang                  2025-05-07  570  			status = dev_err_probe(dev, wakeirq, "can't get wakeirq\n");
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  571  			err_reason = I2C_TRACE_REASON_EPROBE_DEFER_WAKEIRQ;
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  572  			goto put_sync_adapter;
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  573  		}
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  574  
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  575  		device_init_wakeup(&client->dev, true);
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  576  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  577  		if (wakeirq > 0 && wakeirq != client->irq) {
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  578  			status = dev_pm_set_dedicated_wake_irq(dev, wakeirq);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  579  			err_reason = I2C_TRACE_REASON_SET_DED_WAKE_FAILED;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  580  		} else if (client->irq > 0) {
c18fba23061f16d drivers/i2c/i2c-core.c      Grygorii Strashko        2015-11-12  581  			status = dev_pm_set_wake_irq(dev, client->irq);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  582  			err_reason = I2C_TRACE_REASON_SET_WAKE_FAILED;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  583  		} else {
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  584  			status = 0;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  585  			err_reason = I2C_TRACE_REASON_NO_IRQ;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  586  		}
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  587  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  588  		if (status) {
b93d3d373924670 drivers/i2c/i2c-core.c      Andy Shevchenko          2016-08-25  589  			dev_warn(&client->dev, "failed to set up wakeup irq\n");
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  590  			trace_i2c_device_probe_debug(&client->dev, err_reason);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  591  		}
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  592  	}
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  593  
7b4fbc50fabb810 drivers/i2c/i2c-core.c      David Brownell           2007-05-01  594  	dev_dbg(dev, "probe\n");
d2653e92732bd39 drivers/i2c/i2c-core.c      Jean Delvare             2008-04-29  595  
3435b7f0fd28b9c drivers/i2c/i2c-core-base.c Andy Shevchenko          2025-04-16  596  	status = of_clk_set_defaults(to_of_node(fwnode), false);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  597  	if (status < 0) {
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  598  		err_reason = I2C_TRACE_REASON_SET_DEF_CLOCKS;
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  599  		goto err_clear_wakeup_irq;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  600  	}
79ece9b292af6b0 drivers/i2c/i2c-core-base.c Ricardo Ribalda          2022-11-14  601  	do_power_on = !i2c_acpi_waive_d0_probe(dev);
d42c7c6fd66a6e2 drivers/i2c/i2c-core-base.c Claudiu Beznea           2025-07-03  602  	status = dev_pm_domain_attach(&client->dev, do_power_on ? PD_FLAG_ATTACH_POWER_ON : 0);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  603  	if (status) {
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  604  		err_reason = I2C_TRACE_REASON_ATTACH_PM_DOMAIN;
74cedd30522819d drivers/i2c/i2c-core.c      Kieran Bingham           2015-10-12  605  		goto err_clear_wakeup_irq;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  606  	}
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  607  	client->devres_group_id = devres_open_group(&client->dev, NULL,
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  608  						    GFP_KERNEL);
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  609  	if (!client->devres_group_id) {
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  610  		status = -ENOMEM;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  611  		err_reason = I2C_TRACE_REASON_OPEN_DEVRES_GROUP;
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  612  		goto err_detach_pm_domain;
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  613  	}
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  614  
6250ebe666e425e drivers/i2c/i2c-core-base.c Guenter Roeck            2025-01-25  615  	client->debugfs = debugfs_create_dir(dev_name(&client->dev),
6250ebe666e425e drivers/i2c/i2c-core-base.c Guenter Roeck            2025-01-25  616  					     client->adapter->debugfs);
6250ebe666e425e drivers/i2c/i2c-core-base.c Guenter Roeck            2025-01-25  617  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  618  	if (driver->probe) {
03c835f498b5400 drivers/i2c/i2c-core-base.c Uwe Kleine-König         2023-02-26  619  		status = driver->probe(client);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  620  		err_reason = I2C_TRACE_REASON_PROBE_FAILED;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  621  	} else {
b8a1a4cd5a98a2a drivers/i2c/i2c-core.c      Lee Jones                2016-11-07  622  		status = -EINVAL;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  623  		err_reason = I2C_TRACE_REASON_NO_PROBE;
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  624  	}
b8a1a4cd5a98a2a drivers/i2c/i2c-core.c      Lee Jones                2016-11-07  625  
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  626  	/*
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  627  	 * Note that we are not closing the devres group opened above so
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  628  	 * even resources that were attached to the device after probe is
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  629  	 * run are released when i2c_device_remove() is executed. This is
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  630  	 * needed as some drivers would allocate additional resources,
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  631  	 * for example when updating firmware.
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  632  	 */
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  633  
72fa818e8a3145a drivers/i2c/i2c-core.c      Wolfram Sang             2014-01-21  634  	if (status)
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  635  		goto err_release_driver_resources;
72fa818e8a3145a drivers/i2c/i2c-core.c      Wolfram Sang             2014-01-21  636  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  637  	trace_i2c_device_probe_complete(&client->dev, status, err_reason);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  638  
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  639  	return 0;
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  640  
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  641  err_release_driver_resources:
6250ebe666e425e drivers/i2c/i2c-core-base.c Guenter Roeck            2025-01-25  642  	debugfs_remove_recursive(client->debugfs);
5b5475826c5265c drivers/i2c/i2c-core-base.c Dmitry Torokhov          2021-03-21  643  	devres_release_group(&client->dev, client->devres_group_id);
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  644  err_detach_pm_domain:
79ece9b292af6b0 drivers/i2c/i2c-core-base.c Ricardo Ribalda          2022-11-14  645  	dev_pm_domain_detach(&client->dev, do_power_on);
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  646  err_clear_wakeup_irq:
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  647  	dev_pm_clear_wake_irq(&client->dev);
3fffd1283927342 drivers/i2c/i2c-core.c      Dmitry Torokhov          2015-08-17  648  	device_init_wakeup(&client->dev, false);
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  649  put_sync_adapter:
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  650  	if (client->flags & I2C_CLIENT_HOST_NOTIFY)
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  651  		pm_runtime_put_sync(&client->adapter->dev);
3c3dd56f760da05 drivers/i2c/i2c-core-base.c Alain Volmat             2020-04-30  652  
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  653  	trace_i2c_device_probe_complete(&client->dev, status, err_reason);
dc94c3bf033524a drivers/i2c/i2c-core-base.c Mohammad Gomaa           2025-08-17  654  
50c3304a5e1e521 drivers/i2c/i2c-core.c      Hans Verkuil             2008-03-12  655  	return status;
f37dd80ac2a67e4 drivers/i2c/i2c-core.c      David Brownell           2007-02-13  656  }
^1da177e4c3f415 drivers/i2c/i2c-core.c      Linus Torvalds           2005-04-16  657  

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

       reply	other threads:[~2025-08-18  7:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-18  5:52 kernel test robot [this message]
2025-08-18  7:19 ` [PATCH WIP v2] i2c: add tracepoints to aid debugging in i2c-core-base Dan Carpenter
  -- strict thread matches above, loose matches on Subject: below --
2025-08-17  7:55 Mohammad Gomaa
2025-08-19 16:09 ` Steven Rostedt
2025-09-04 20:04 ` Wolfram Sang
2025-09-06  7:10   ` Mohammad Gomaa
2025-09-06  8:08     ` Wolfram Sang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202508181525.GKAXMVYv-lkp@intel.com \
    --to=dan.carpenter@linaro.org \
    --cc=hbarnor@chromium.org \
    --cc=kenalba@google.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-trace-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mhiramat@kernel.org \
    --cc=midomaxgomaa@gmail.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=oe-kbuild@lists.linux.dev \
    --cc=rayxu@google.com \
    --cc=rostedt@goodmis.org \
    --cc=wsa-dev@sang-engineering.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.