All of lore.kernel.org
 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 [PATCH v2] i2c: hisi: Add I2C bus recovery support 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 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.