From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: kbuild test robot <lkp@intel.com>,
Luis Oliveira <Luis.Oliveira@synopsys.com>
Cc: kbuild-all@01.org, wsa@the-dreams.de, robh+dt@kernel.org,
mark.rutland@arm.com, jarkko.nikula@linux.intel.com,
mika.westerberg@linux.intel.com, linux-i2c@vger.kernel.org,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Ramiro.Oliveira@synopsys.com, Joao.Pinto@synopsys.com,
CARLOS.PALMINHA@synopsys.com
Subject: Re: [PATCH v10 5/6] i2c: designware: add SLAVE mode functions
Date: Fri, 09 Jun 2017 11:53:52 +0300 [thread overview]
Message-ID: <1496998432.22624.70.camel@linux.intel.com> (raw)
In-Reply-To: <201706091426.kwfaxkBk%fengguang.wu@intel.com>
On Fri, 2017-06-09 at 14:57 +0800, kbuild test robot wrote:
> Hi Luis,
>
Luis, it seems you didn't rebase your patches against Wolfram's i2c-next
tree.
Please, rebase and retest.
> [auto build test ERROR on wsa/i2c/for-next]
> [also build test ERROR on v4.12-rc4 next-20170608]
> [if your patch is applied to the wrong git tree, please drop us a note
> to help improve the system]
>
> url: https://github.com/0day-ci/linux/commits/Luis-Oliveira/i2c-des
> ignware-add-I2C-SLAVE-support/20170609-143533
> base: https://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git
> i2c/for-next
> config: x86_64-randconfig-x012-201723 (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
> # save the attached .config to linux build tree
> make ARCH=x86_64
>
> All error/warnings (new ones prefixed by >>):
>
> drivers/i2c/busses/i2c-designware-slave.c: In function
> 'i2c_dw_irq_handler_slave':
> > > drivers/i2c/busses/i2c-designware-slave.c:285:3: error: implicit
> > > declaration of function 'i2c_slave_event' [-Werror=implicit-
> > > function-declaration]
>
> i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_REQUESTED, &val);
> ^~~~~~~~~~~~~~~
> > > drivers/i2c/busses/i2c-designware-slave.c:285:31: error:
> > > 'I2C_SLAVE_WRITE_REQUESTED' undeclared (first use in this
> > > function)
>
> i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_REQUESTED, &val);
> ^~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/i2c/busses/i2c-designware-slave.c:285:31: note: each
> undeclared identifier is reported only once for each function it
> appears in
> > > drivers/i2c/busses/i2c-designware-slave.c:293:9: error:
> > > 'I2C_SLAVE_WRITE_RECEIVED' undeclared (first use in this function)
>
> I2C_SLAVE_WRITE_RECEIVED, &val)) {
> ^~~~~~~~~~~~~~~~~~~~~~~~
> > > drivers/i2c/busses/i2c-designware-slave.c:305:8: error:
> > > 'I2C_SLAVE_READ_REQUESTED' undeclared (first use in this function)
>
> I2C_SLAVE_READ_REQUESTED, &val))
> ^~~~~~~~~~~~~~~~~~~~~~~~
> > > drivers/i2c/busses/i2c-designware-slave.c:311:36: error:
> > > 'I2C_SLAVE_READ_PROCESSED' undeclared (first use in this function)
>
> if (!i2c_slave_event(dev->slave, I2C_SLAVE_READ_PROCESSED,
> ^~~~~~~~~~~~~~~~~~~~~~~~
> > > drivers/i2c/busses/i2c-designware-slave.c:315:31: error:
> > > 'I2C_SLAVE_STOP' undeclared (first use in this function)
>
> i2c_slave_event(dev->slave, I2C_SLAVE_STOP, &val);
> ^~~~~~~~~~~~~~
> drivers/i2c/busses/i2c-designware-slave.c: At top level:
> > > drivers/i2c/busses/i2c-designware-slave.c:351:2: error: unknown
> > > field 'reg_slave' specified in initializer
>
> .reg_slave = i2c_dw_reg_slave,
> ^
> > > drivers/i2c/busses/i2c-designware-slave.c:351:15: warning: excess
> > > elements in struct initializer
>
> .reg_slave = i2c_dw_reg_slave,
> ^~~~~~~~~~~~~~~~
> drivers/i2c/busses/i2c-designware-slave.c:351:15: note: (near
> initialization for 'i2c_dw_algo')
> > > drivers/i2c/busses/i2c-designware-slave.c:352:2: error: unknown
> > > field 'unreg_slave' specified in initializer
>
> .unreg_slave = i2c_dw_unreg_slave,
> ^
> drivers/i2c/busses/i2c-designware-slave.c:352:17: warning: excess
> elements in struct initializer
> .unreg_slave = i2c_dw_unreg_slave,
> ^~~~~~~~~~~~~~~~~~
> drivers/i2c/busses/i2c-designware-slave.c:352:17: note: (near
> initialization for 'i2c_dw_algo')
> cc1: some warnings being treated as errors
>
> vim +/i2c_slave_event +285 drivers/i2c/busses/i2c-designware-slave.c
>
> 279 dev_dbg(dev->dev,
> 280 "%#x STAUTS SLAVE_ACTTVITY=%#x :
> RAW_INTR_STAT=%#x"
> 281 " : INTR_STAT=%#x\n",
> 282 enabled, slave_activity, raw_stat,
> stat);
> 283
> 284 if ((stat & DW_IC_INTR_RX_FULL) && (stat &
> DW_IC_INTR_STOP_DET))
> > 285 i2c_slave_event(dev->slave,
> I2C_SLAVE_WRITE_REQUESTED, &val);
> 286
> 287 if (stat & DW_IC_INTR_RD_REQ) {
> 288 if (slave_activity) {
> 289 if (stat & DW_IC_INTR_RX_FULL) {
> 290 val = dw_readl(dev,
> DW_IC_DATA_CMD);
> 291
> 292 if
> (!i2c_slave_event(dev->slave,
> > 293 I2C_SLAVE_WRITE_RECE
> IVED, &val)) {
> 294 dev_vdbg(dev-
> >dev, "Byte %X acked!",
> 295 val);
> 296 }
> 297 dw_readl(dev,
> DW_IC_CLR_RD_REQ);
> 298 stat =
> i2c_dw_read_clear_intrbits_slave(dev);
> 299 } else {
> 300 dw_readl(dev,
> DW_IC_CLR_RD_REQ);
> 301 dw_readl(dev,
> DW_IC_CLR_RX_UNDER);
> 302 stat =
> i2c_dw_read_clear_intrbits_slave(dev);
> 303 }
> 304 if (!i2c_slave_event(dev->slave,
> > 305 I2C_SLAVE_READ_REQUESTED,
> &val))
> 306 dw_writel(dev, val,
> DW_IC_DATA_CMD);
> 307 }
> 308 }
> 309
> 310 if (stat & DW_IC_INTR_RX_DONE) {
> > 311 if (!i2c_slave_event(dev->slave,
> I2C_SLAVE_READ_PROCESSED,
> 312 &val))
> 313 dw_readl(dev,
> DW_IC_CLR_RX_DONE);
> 314
> > 315 i2c_slave_event(dev->slave,
> I2C_SLAVE_STOP, &val);
> 316 stat =
> i2c_dw_read_clear_intrbits_slave(dev);
> 317 return 1;
> 318 }
> 319
> 320 if (stat & DW_IC_INTR_RX_FULL) {
> 321 val = dw_readl(dev, DW_IC_DATA_CMD);
> 322 if (!i2c_slave_event(dev->slave,
> I2C_SLAVE_WRITE_RECEIVED,
> 323 &val))
> 324 dev_vdbg(dev->dev, "Byte %X
> acked!", val);
> 325 } else {
> 326 i2c_slave_event(dev->slave,
> I2C_SLAVE_STOP, &val);
> 327 stat =
> i2c_dw_read_clear_intrbits_slave(dev);
> 328 }
> 329
> 330 //~ if (stat & DW_IC_INTR_TX_OVER)
> 331 //~ dw_readl(dev, DW_IC_CLR_TX_OVER);
> 332
> 333 return 1;
> 334 }
> 335
> 336 static irqreturn_t i2c_dw_isr_slave(int this_irq, void
> *dev_id)
> 337 {
> 338 struct dw_i2c_dev *dev = dev_id;
> 339 int ret;
> 340
> 341 i2c_dw_read_clear_intrbits_slave(dev);
> 342 ret = i2c_dw_irq_handler_slave(dev);
> 343 if (ret > 0)
> 344 complete(&dev->cmd_complete);
> 345
> 346 return IRQ_RETVAL(ret);
> 347 }
> 348
> 349 static struct i2c_algorithm i2c_dw_algo = {
> 350 .functionality = i2c_dw_func,
> > 351 .reg_slave = i2c_dw_reg_slave,
> > 352 .unreg_slave = i2c_dw_unreg_slave,
> 353 };
> 354
> 355 int i2c_dw_probe_slave(struct dw_i2c_dev *dev)
>
> ---
> 0-DAY kernel test infrastructure Open Source Technology
> Center
> https://lists.01.org/pipermail/kbuild-all Intel
> Corporation
--
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
next prev parent reply other threads:[~2017-06-09 8:53 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-08 17:36 [PATCH v10 0/6] i2c: designware: add I2C SLAVE support Luis Oliveira
2017-06-08 17:36 ` [PATCH v10 1/6] i2c: designware: Cleaning and comment style fixes Luis Oliveira
2017-06-09 5:12 ` Peter Rosin
[not found] ` <5bc3077b-2e4c-eb27-bca1-b7cbfc2dec01-koto5C5qi+TLoDKTGw+V6w@public.gmane.org>
2017-06-09 7:57 ` Luis Oliveira
2017-06-09 7:57 ` Luis Oliveira
2017-06-09 8:38 ` Andy Shevchenko
2017-06-09 8:38 ` Andy Shevchenko
2017-06-09 8:57 ` Peter Rosin
[not found] ` <cover.1496942505.git.lolivei-HKixBCOQz3hWk0Htik3J/w@public.gmane.org>
2017-06-08 17:36 ` [PATCH v10 2/6] i2c: designware: refactoring of the i2c-designware Luis Oliveira
2017-06-08 17:36 ` Luis Oliveira
2017-06-08 17:36 ` [PATCH v10 3/6] i2c: designware: MASTER mode as separated driver Luis Oliveira
2017-06-08 17:36 ` [PATCH v10 4/6] i2c: designware: introducing I2C_SLAVE definitions Luis Oliveira
2017-06-08 17:36 ` [PATCH v10 5/6] i2c: designware: add SLAVE mode functions Luis Oliveira
2017-06-09 6:57 ` kbuild test robot
2017-06-09 6:57 ` kbuild test robot
2017-06-09 8:53 ` Andy Shevchenko [this message]
2017-06-09 8:52 ` Andy Shevchenko
2017-06-08 17:36 ` [PATCH v10 6/6] i2c: designware: enable SLAVE in platform module Luis Oliveira
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=1496998432.22624.70.camel@linux.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=CARLOS.PALMINHA@synopsys.com \
--cc=Joao.Pinto@synopsys.com \
--cc=Luis.Oliveira@synopsys.com \
--cc=Ramiro.Oliveira@synopsys.com \
--cc=devicetree@vger.kernel.org \
--cc=jarkko.nikula@linux.intel.com \
--cc=kbuild-all@01.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=mark.rutland@arm.com \
--cc=mika.westerberg@linux.intel.com \
--cc=robh+dt@kernel.org \
--cc=wsa@the-dreams.de \
/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.