mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Bowen Yu <yubowen8@huawei.com>,
	linuxarm@huawei.com, liudingyuan@h-partners.com,
	andi.shyti@kernel.org, linux-i2c@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: oe-kbuild-all@lists.linux.dev, zhanjie9@hisilicon.com,
	prime.zeng@hisilicon.com, wanghuiqiang@huawei.com,
	xuwei5@huawei.com, yubowen8@huawei.com, zhangpengjie2@huawei.com
Subject: Re: [PATCH v2] i2c: hisi: Add I2C bus recovery support
Date: Wed, 2 Sep 2026 19:41:07 +0800	[thread overview]
Message-ID: <202609021937.s2FqKDO3-lkp@intel.com> (raw)
In-Reply-To: <20260901063116.3438094-1-yubowen8@huawei.com>

Hi Bowen,

kernel test robot noticed the following build warnings:

[auto build test WARNING on andi-shyti/i2c/i2c-host]
[also build test WARNING on linus/master v7.3-rc1 next-20260901]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Bowen-Yu/i2c-hisi-Add-I2C-bus-recovery-support/20260901-143116
base:   https://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git i2c/i2c-host
patch link:    https://lore.kernel.org/r/20260901063116.3438094-1-yubowen8%40huawei.com
patch subject: [PATCH v2] i2c: hisi: Add I2C bus recovery support
config: csky-randconfig-r064-20260902 (https://download.01.org/0day-ci/archive/20260902/202609021937.s2FqKDO3-lkp@intel.com/config)
compiler: csky-linux-gcc (GCC) 13.4.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260902/202609021937.s2FqKDO3-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609021937.s2FqKDO3-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/i2c/busses/i2c-hisi.c:249:12: warning: 'hisi_i2c_get_bus_recovery_res' defined but not used [-Wunused-function]
     249 | static int hisi_i2c_get_bus_recovery_res(struct hisi_i2c_controller *ctlr,
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-hisi.c:222:13: warning: 'hisi_i2c_unprepare_recovery' defined but not used [-Wunused-function]
     222 | static void hisi_i2c_unprepare_recovery(struct i2c_adapter *adap)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-hisi.c:210:13: warning: 'hisi_i2c_prepare_recovery' defined but not used [-Wunused-function]
     210 | static void hisi_i2c_prepare_recovery(struct i2c_adapter *adap)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-hisi.c:197:13: warning: 'hisi_i2c_recovery_set_scl' defined but not used [-Wunused-function]
     197 | static void hisi_i2c_recovery_set_scl(struct i2c_adapter *adap, int val)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-hisi.c:189:12: warning: 'hisi_i2c_recovery_get_sda' defined but not used [-Wunused-function]
     189 | static int hisi_i2c_recovery_get_sda(struct i2c_adapter *adap)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-hisi.c:181:12: warning: 'hisi_i2c_recovery_get_scl' defined but not used [-Wunused-function]
     181 | static int hisi_i2c_recovery_get_scl(struct i2c_adapter *adap)
         |            ^~~~~~~~~~~~~~~~~~~~~~~~~


vim +/hisi_i2c_get_bus_recovery_res +249 drivers/i2c/busses/i2c-hisi.c

   180	
 > 181	static int hisi_i2c_recovery_get_scl(struct i2c_adapter *adap)
   182	{
   183		struct hisi_i2c_controller *ctlr = i2c_get_adapdata(adap);
   184		u32 reg = readl(ctlr->iobase + HISI_I2C_TRANS_STATE);
   185	
   186		return !!(reg & HISI_I2C_TRANS_STATE_SCL_LEVEL);
   187	}
   188	
 > 189	static int hisi_i2c_recovery_get_sda(struct i2c_adapter *adap)
   190	{
   191		struct hisi_i2c_controller *ctlr = i2c_get_adapdata(adap);
   192		u32 reg = readl(ctlr->iobase + HISI_I2C_TRANS_STATE);
   193	
   194		return !!(reg & HISI_I2C_TRANS_STATE_SDA_LEVEL);
   195	}
   196	
 > 197	static void hisi_i2c_recovery_set_scl(struct i2c_adapter *adap, int val)
   198	{
   199		struct hisi_i2c_controller *ctlr = i2c_get_adapdata(adap);
   200		u32 reg;
   201	
   202		reg = readl(ctlr->sctrl_addr);
   203		if (val)
   204			reg |= HISI_I2C_CTRL_SCL_OUT;
   205		else
   206			reg &= ~HISI_I2C_CTRL_SCL_OUT;
   207		writel(reg, ctlr->sctrl_addr);
   208	}
   209	
 > 210	static void hisi_i2c_prepare_recovery(struct i2c_adapter *adap)
   211	{
   212		struct hisi_i2c_controller *ctlr = i2c_get_adapdata(adap);
   213		u32 reg;
   214	
   215		reg = readl(ctlr->sctrl_addr);
   216		reg |= HISI_I2C_CTRL_SCL_CFG_EN | HISI_I2C_CTRL_DAT_CFG_EN |
   217			   HISI_I2C_CTRL_CLK_OE | HISI_I2C_CTRL_SCL_OUT;
   218		reg &= ~HISI_I2C_CTRL_DAT_OE;
   219		writel(reg, ctlr->sctrl_addr);
   220	}
   221	
 > 222	static void hisi_i2c_unprepare_recovery(struct i2c_adapter *adap)
   223	{
   224		struct hisi_i2c_controller *ctlr = i2c_get_adapdata(adap);
   225		u32 reg;
   226	
   227		reg = readl(ctlr->sctrl_addr);
   228		reg &= ~(HISI_I2C_CTRL_SCL_CFG_EN | HISI_I2C_CTRL_DAT_CFG_EN);
   229		writel(reg, ctlr->sctrl_addr);
   230	
   231		/*
   232		 * Invokes the specific ACPI method "_RST" to trigger a soft reset
   233		 * of the I2C controller to help the I2C controller recover from
   234		 * the abnormal state after the bus recovery process.
   235		 */
   236	#ifdef CONFIG_ACPI
   237		if (ctlr->acpi_handle && acpi_has_method(ctlr->acpi_handle, "_RST")) {
   238			acpi_status status;
   239	
   240			status = acpi_evaluate_object(ctlr->acpi_handle, "_RST", NULL, NULL);
   241			if (ACPI_FAILURE(status))
   242				dev_err(ctlr->dev, "_RST method failed: %s\n",
   243					acpi_format_exception(status));
   244		}
   245	#endif
   246		hisi_i2c_configure_bus(ctlr);
   247	}
   248	
 > 249	static int hisi_i2c_get_bus_recovery_res(struct hisi_i2c_controller *ctlr,
   250						 struct platform_device *pdev)
   251	{
   252		struct resource *res0;
   253	
   254		res0 = platform_get_resource(pdev, IORESOURCE_MEM, 1);
   255	
   256		if (!res0 || resource_size(res0) != HISI_I2C_RECOVERY_REG_SIZE)
   257			return -ENODEV;
   258	
   259		ctlr->sctrl_addr = devm_ioremap_resource(&pdev->dev, res0);
   260		if (IS_ERR(ctlr->sctrl_addr)) {
   261			ctlr->sctrl_addr = NULL;
   262			return -ENOMEM;
   263		}
   264	
   265		return 0;
   266	}
   267	

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

      reply	other threads:[~2026-09-02 11:42 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-01  6:31 Bowen Yu
2026-09-02 11:41 ` kernel test robot [this message]

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=202609021937.s2FqKDO3-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=andi.shyti@kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=liudingyuan@h-partners.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=prime.zeng@hisilicon.com \
    --cc=wanghuiqiang@huawei.com \
    --cc=xuwei5@huawei.com \
    --cc=yubowen8@huawei.com \
    --cc=zhangpengjie2@huawei.com \
    --cc=zhanjie9@hisilicon.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®