public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 1/1] i2c: busses: Use *-y instead of *-objs in Makefile
@ 2024-11-01 13:11 Andy Shevchenko
  2024-11-01 23:30 ` kernel test robot
  2024-11-01 23:51 ` kernel test robot
  0 siblings, 2 replies; 3+ messages in thread
From: Andy Shevchenko @ 2024-11-01 13:11 UTC (permalink / raw)
  To: Andi Shyti, linux-i2c, linux-kernel; +Cc: Wolfram Sang, Andy Shevchenko

*-objs suffix is reserved rather for (user-space) host programs while
usually *-y suffix is used for kernel drivers (although *-objs works
for that purpose for now).

Let's correct the old usages of *-objs in Makefiles.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/i2c/busses/Makefile | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 613ec59502c8..bf2d76e055c5 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -39,10 +39,8 @@ obj-$(CONFIG_I2C_AMD_MP2)	+= i2c-amd-mp2-pci.o i2c-amd-mp2-plat.o
 obj-$(CONFIG_I2C_AMD_ASF)	+= i2c-amd-asf-plat.o
 obj-$(CONFIG_I2C_ASPEED)	+= i2c-aspeed.o
 obj-$(CONFIG_I2C_AT91)		+= i2c-at91.o
-i2c-at91-objs			:= i2c-at91-core.o i2c-at91-master.o
-ifeq ($(CONFIG_I2C_AT91_SLAVE_EXPERIMENTAL),y)
-	i2c-at91-objs		+= i2c-at91-slave.o
-endif
+i2c-at91-y			:= i2c-at91-core.o i2c-at91-master.o
+i2c-at91-$(CONFIG_I2C_AT91_SLAVE_EXPERIMENTAL)	+= i2c-at91-slave.o
 obj-$(CONFIG_I2C_AU1550)	+= i2c-au1550.o
 obj-$(CONFIG_I2C_AXXIA)		+= i2c-axxia.o
 obj-$(CONFIG_I2C_BCM2835)	+= i2c-bcm2835.o
@@ -111,8 +109,8 @@ obj-$(CONFIG_I2C_SIMTEC)	+= i2c-simtec.o
 obj-$(CONFIG_I2C_SPRD)		+= i2c-sprd.o
 obj-$(CONFIG_I2C_ST)		+= i2c-st.o
 obj-$(CONFIG_I2C_STM32F4)	+= i2c-stm32f4.o
-i2c-stm32f7-drv-objs := i2c-stm32f7.o i2c-stm32.o
 obj-$(CONFIG_I2C_STM32F7)	+= i2c-stm32f7-drv.o
+i2c-stm32f7-drv-y		:= i2c-stm32f7.o i2c-stm32.o
 obj-$(CONFIG_I2C_SUN6I_P2WI)	+= i2c-sun6i-p2wi.o
 obj-$(CONFIG_I2C_SYNQUACER)	+= i2c-synquacer.o
 obj-$(CONFIG_I2C_TEGRA)		+= i2c-tegra.o
@@ -121,10 +119,10 @@ obj-$(CONFIG_I2C_UNIPHIER)	+= i2c-uniphier.o
 obj-$(CONFIG_I2C_UNIPHIER_F)	+= i2c-uniphier-f.o
 obj-$(CONFIG_I2C_VERSATILE)	+= i2c-versatile.o
 obj-$(CONFIG_I2C_WMT)		+= i2c-viai2c-wmt.o i2c-viai2c-common.o
-i2c-octeon-objs := i2c-octeon-core.o i2c-octeon-platdrv.o
 obj-$(CONFIG_I2C_OCTEON)	+= i2c-octeon.o
-i2c-thunderx-objs := i2c-octeon-core.o i2c-thunderx-pcidrv.o
+i2c-octeon-y			:= i2c-octeon-core.o i2c-octeon-platdrv.o
 obj-$(CONFIG_I2C_THUNDERX)	+= i2c-thunderx.o
+i2c-thunderx-y			:= i2c-octeon-core.o i2c-thunderx-pcidrv.o
 obj-$(CONFIG_I2C_XILINX)	+= i2c-xiic.o
 obj-$(CONFIG_I2C_XLP9XX)	+= i2c-xlp9xx.o
 obj-$(CONFIG_I2C_RCAR)		+= i2c-rcar.o
-- 
2.43.0.rc1.1336.g36b5255a03ac


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v1 1/1] i2c: busses: Use *-y instead of *-objs in Makefile
  2024-11-01 13:11 [PATCH v1 1/1] i2c: busses: Use *-y instead of *-objs in Makefile Andy Shevchenko
@ 2024-11-01 23:30 ` kernel test robot
  2024-11-01 23:51 ` kernel test robot
  1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2024-11-01 23:30 UTC (permalink / raw)
  To: Andy Shevchenko, Andi Shyti, linux-i2c, linux-kernel
  Cc: llvm, oe-kbuild-all, Wolfram Sang, Andy Shevchenko

Hi Andy,

kernel test robot noticed the following build errors:

[auto build test ERROR on andi-shyti/i2c/i2c-host]
[also build test ERROR on linus/master v6.12-rc5 next-20241101]
[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/Andy-Shevchenko/i2c-busses-Use-y-instead-of-objs-in-Makefile/20241101-211148
base:   https://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git i2c/i2c-host
patch link:    https://lore.kernel.org/r/20241101131103.3679560-1-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v1 1/1] i2c: busses: Use *-y instead of *-objs in Makefile
config: arm-randconfig-001-20241102 (https://download.01.org/0day-ci/archive/20241102/202411020714.mhatOhhd-lkp@intel.com/config)
compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 639a7ac648f1e50ccd2556e17d401c04f9cce625)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241102/202411020714.mhatOhhd-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/202411020714.mhatOhhd-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from drivers/i2c/busses/i2c-at91-slave.c:9:
   In file included from include/linux/i2c.h:19:
   In file included from include/linux/regulator/consumer.h:35:
   In file included from include/linux/suspend.h:5:
   In file included from include/linux/swap.h:9:
   In file included from include/linux/memcontrol.h:21:
   In file included from include/linux/mm.h:2213:
   include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
     518 |         return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
         |                               ~~~~~~~~~~~ ^ ~~~
>> drivers/i2c/busses/i2c-at91-slave.c:28:25: error: no member named 'slave' in 'struct at91_twi_dev'
      28 |                         i2c_slave_event(dev->slave,
         |                                         ~~~  ^
   drivers/i2c/busses/i2c-at91-slave.c:34:25: error: no member named 'slave' in 'struct at91_twi_dev'
      34 |                         i2c_slave_event(dev->slave,
         |                                         ~~~  ^
   drivers/i2c/busses/i2c-at91-slave.c:44:24: error: no member named 'slave' in 'struct at91_twi_dev'
      44 |                 i2c_slave_event(dev->slave, I2C_SLAVE_READ_PROCESSED, &value);
         |                                 ~~~  ^
   drivers/i2c/busses/i2c-at91-slave.c:51:24: error: no member named 'slave' in 'struct at91_twi_dev'
      51 |                 i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_RECEIVED, &value);
         |                                 ~~~  ^
   drivers/i2c/busses/i2c-at91-slave.c:59:24: error: no member named 'slave' in 'struct at91_twi_dev'
      59 |                 i2c_slave_event(dev->slave, I2C_SLAVE_STOP, &value);
         |                                 ~~~  ^
   drivers/i2c/busses/i2c-at91-slave.c:69:11: error: no member named 'slave' in 'struct at91_twi_dev'
      69 |         if (dev->slave)
         |             ~~~  ^
   drivers/i2c/busses/i2c-at91-slave.c:78:7: error: no member named 'slave' in 'struct at91_twi_dev'
      78 |         dev->slave = slave;
         |         ~~~  ^
>> drivers/i2c/busses/i2c-at91-slave.c:79:7: error: no member named 'smr' in 'struct at91_twi_dev'; did you mean 'imr'?
      79 |         dev->smr = AT91_TWI_SMR_SADR(slave->addr);
         |              ^~~
         |              imr
   drivers/i2c/busses/i2c-at91.h:146:11: note: 'imr' declared here
     146 |         unsigned imr;
         |                  ^
   drivers/i2c/busses/i2c-at91-slave.c:93:16: error: no member named 'slave' in 'struct at91_twi_dev'
      93 |         WARN_ON(!dev->slave);
         |                  ~~~  ^
   include/asm-generic/bug.h:123:25: note: expanded from macro 'WARN_ON'
     123 |         int __ret_warn_on = !!(condition);                              \
         |                                ^~~~~~~~~
   drivers/i2c/busses/i2c-at91-slave.c:97:7: error: no member named 'slave' in 'struct at91_twi_dev'
      97 |         dev->slave = NULL;
         |         ~~~  ^
   drivers/i2c/busses/i2c-at91-slave.c:98:7: error: no member named 'smr' in 'struct at91_twi_dev'; did you mean 'imr'?
      98 |         dev->smr = 0;
         |              ^~~
         |              imr
   drivers/i2c/busses/i2c-at91.h:146:11: note: 'imr' declared here
     146 |         unsigned imr;
         |                  ^
   drivers/i2c/busses/i2c-at91-slave.c:118:5: error: redefinition of 'at91_twi_probe_slave'
     118 | int at91_twi_probe_slave(struct platform_device *pdev,
         |     ^
   drivers/i2c/busses/i2c-at91.h:185:19: note: previous definition is here
     185 | static inline int at91_twi_probe_slave(struct platform_device *pdev,
         |                   ^
   drivers/i2c/busses/i2c-at91-slave.c:135:6: error: redefinition of 'at91_init_twi_bus_slave'
     135 | void at91_init_twi_bus_slave(struct at91_twi_dev *dev)
         |      ^
   drivers/i2c/busses/i2c-at91.h:184:20: note: previous definition is here
     184 | static inline void at91_init_twi_bus_slave(struct at91_twi_dev *dev) {}
         |                    ^
   drivers/i2c/busses/i2c-at91-slave.c:138:34: error: no member named 'smr' in 'struct at91_twi_dev'; did you mean 'imr'?
     138 |         if (dev->slave_detected && dev->smr) {
         |                                         ^~~
         |                                         imr
   drivers/i2c/busses/i2c-at91.h:146:11: note: 'imr' declared here
     146 |         unsigned imr;
         |                  ^
   drivers/i2c/busses/i2c-at91-slave.c:139:42: error: no member named 'smr' in 'struct at91_twi_dev'; did you mean 'imr'?
     139 |                 at91_twi_write(dev, AT91_TWI_SMR, dev->smr);
         |                                                        ^~~
         |                                                        imr
   drivers/i2c/busses/i2c-at91.h:146:11: note: 'imr' declared here
     146 |         unsigned imr;
         |                  ^
   1 warning and 15 errors generated.

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for FB_IOMEM_HELPERS
   Depends on [n]: HAS_IOMEM [=y] && FB_CORE [=n]
   Selected by [m]:
   - DRM_XE_DISPLAY [=y] && HAS_IOMEM [=y] && DRM [=m] && DRM_XE [=m] && DRM_XE [=m]=m [=m]


vim +28 drivers/i2c/busses/i2c-at91-slave.c

9d3ca54b550ca0 Juergen Fitschen 2019-02-22  14  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  15  static irqreturn_t atmel_twi_interrupt_slave(int irq, void *dev_id)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  16  {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  17  	struct at91_twi_dev *dev = dev_id;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  18  	const unsigned status = at91_twi_read(dev, AT91_TWI_SR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  19  	const unsigned irqstatus = status & at91_twi_read(dev, AT91_TWI_IMR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  20  	u8 value;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  21  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  22  	if (!irqstatus)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  23  		return IRQ_NONE;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  24  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  25  	/* slave address has been detected on I2C bus */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  26  	if (irqstatus & AT91_TWI_SVACC) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  27  		if (status & AT91_TWI_SVREAD) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22 @28  			i2c_slave_event(dev->slave,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  29  					I2C_SLAVE_READ_REQUESTED, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  30  			writeb_relaxed(value, dev->base + AT91_TWI_THR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  31  			at91_twi_write(dev, AT91_TWI_IER,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  32  				       AT91_TWI_TXRDY | AT91_TWI_EOSACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  33  		} else {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  34  			i2c_slave_event(dev->slave,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  35  					I2C_SLAVE_WRITE_REQUESTED, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  36  			at91_twi_write(dev, AT91_TWI_IER,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  37  				       AT91_TWI_RXRDY | AT91_TWI_EOSACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  38  		}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  39  		at91_twi_write(dev, AT91_TWI_IDR, AT91_TWI_SVACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  40  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  41  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  42  	/* byte transmitted to remote master */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  43  	if (irqstatus & AT91_TWI_TXRDY) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  44  		i2c_slave_event(dev->slave, I2C_SLAVE_READ_PROCESSED, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  45  		writeb_relaxed(value, dev->base + AT91_TWI_THR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  46  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  47  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  48  	/* byte received from remote master */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  49  	if (irqstatus & AT91_TWI_RXRDY) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  50  		value = readb_relaxed(dev->base + AT91_TWI_RHR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  51  		i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_RECEIVED, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  52  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  53  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  54  	/* master sent stop */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  55  	if (irqstatus & AT91_TWI_EOSACC) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  56  		at91_twi_write(dev, AT91_TWI_IDR,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  57  			       AT91_TWI_TXRDY | AT91_TWI_RXRDY | AT91_TWI_EOSACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  58  		at91_twi_write(dev, AT91_TWI_IER, AT91_TWI_SVACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22 @59  		i2c_slave_event(dev->slave, I2C_SLAVE_STOP, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  60  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  61  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  62  	return IRQ_HANDLED;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  63  }
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  64  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  65  static int at91_reg_slave(struct i2c_client *slave)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  66  {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  67  	struct at91_twi_dev *dev = i2c_get_adapdata(slave->adapter);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  68  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  69  	if (dev->slave)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  70  		return -EBUSY;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  71  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  72  	if (slave->flags & I2C_CLIENT_TEN)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  73  		return -EAFNOSUPPORT;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  74  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  75  	/* Make sure twi_clk doesn't get turned off! */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  76  	pm_runtime_get_sync(dev->dev);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  77  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  78  	dev->slave = slave;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22 @79  	dev->smr = AT91_TWI_SMR_SADR(slave->addr);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  80  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  81  	at91_init_twi_bus(dev);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  82  	at91_twi_write(dev, AT91_TWI_IER, AT91_TWI_SVACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  83  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  84  	dev_info(dev->dev, "entered slave mode (ADR=%d)\n", slave->addr);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  85  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  86  	return 0;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  87  }
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  88  

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v1 1/1] i2c: busses: Use *-y instead of *-objs in Makefile
  2024-11-01 13:11 [PATCH v1 1/1] i2c: busses: Use *-y instead of *-objs in Makefile Andy Shevchenko
  2024-11-01 23:30 ` kernel test robot
@ 2024-11-01 23:51 ` kernel test robot
  1 sibling, 0 replies; 3+ messages in thread
From: kernel test robot @ 2024-11-01 23:51 UTC (permalink / raw)
  To: Andy Shevchenko, Andi Shyti, linux-i2c, linux-kernel
  Cc: oe-kbuild-all, Wolfram Sang, Andy Shevchenko

Hi Andy,

kernel test robot noticed the following build errors:

[auto build test ERROR on andi-shyti/i2c/i2c-host]
[also build test ERROR on linus/master v6.12-rc5 next-20241101]
[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/Andy-Shevchenko/i2c-busses-Use-y-instead-of-objs-in-Makefile/20241101-211148
base:   https://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git i2c/i2c-host
patch link:    https://lore.kernel.org/r/20241101131103.3679560-1-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v1 1/1] i2c: busses: Use *-y instead of *-objs in Makefile
config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20241102/202411020703.U4QYsqjF-lkp@intel.com/config)
compiler: m68k-linux-gcc (GCC) 14.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241102/202411020703.U4QYsqjF-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/202411020703.U4QYsqjF-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/i2c/busses/i2c-at91-slave.c: In function 'atmel_twi_interrupt_slave':
>> drivers/i2c/busses/i2c-at91-slave.c:28:44: error: 'struct at91_twi_dev' has no member named 'slave'
      28 |                         i2c_slave_event(dev->slave,
         |                                            ^~
   drivers/i2c/busses/i2c-at91-slave.c:34:44: error: 'struct at91_twi_dev' has no member named 'slave'
      34 |                         i2c_slave_event(dev->slave,
         |                                            ^~
   drivers/i2c/busses/i2c-at91-slave.c:44:36: error: 'struct at91_twi_dev' has no member named 'slave'
      44 |                 i2c_slave_event(dev->slave, I2C_SLAVE_READ_PROCESSED, &value);
         |                                    ^~
   drivers/i2c/busses/i2c-at91-slave.c:51:36: error: 'struct at91_twi_dev' has no member named 'slave'
      51 |                 i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_RECEIVED, &value);
         |                                    ^~
   drivers/i2c/busses/i2c-at91-slave.c:59:36: error: 'struct at91_twi_dev' has no member named 'slave'
      59 |                 i2c_slave_event(dev->slave, I2C_SLAVE_STOP, &value);
         |                                    ^~
   drivers/i2c/busses/i2c-at91-slave.c: In function 'at91_reg_slave':
   drivers/i2c/busses/i2c-at91-slave.c:69:16: error: 'struct at91_twi_dev' has no member named 'slave'
      69 |         if (dev->slave)
         |                ^~
   drivers/i2c/busses/i2c-at91-slave.c:78:12: error: 'struct at91_twi_dev' has no member named 'slave'
      78 |         dev->slave = slave;
         |            ^~
>> drivers/i2c/busses/i2c-at91-slave.c:79:14: error: 'struct at91_twi_dev' has no member named 'smr'; did you mean 'imr'?
      79 |         dev->smr = AT91_TWI_SMR_SADR(slave->addr);
         |              ^~~
         |              imr
   In file included from arch/m68k/include/asm/bug.h:32,
                    from include/linux/bug.h:5,
                    from include/linux/thread_info.h:13,
                    from include/asm-generic/preempt.h:5,
                    from ./arch/m68k/include/generated/asm/preempt.h:1,
                    from include/linux/preempt.h:79,
                    from include/linux/spinlock.h:56,
                    from include/linux/mmzone.h:8,
                    from include/linux/gfp.h:7,
                    from include/linux/slab.h:16,
                    from include/linux/resource_ext.h:11,
                    from include/linux/acpi.h:13,
                    from include/linux/i2c.h:13,
                    from drivers/i2c/busses/i2c-at91-slave.c:9:
   drivers/i2c/busses/i2c-at91-slave.c: In function 'at91_unreg_slave':
   drivers/i2c/busses/i2c-at91-slave.c:93:21: error: 'struct at91_twi_dev' has no member named 'slave'
      93 |         WARN_ON(!dev->slave);
         |                     ^~
   include/asm-generic/bug.h:123:32: note: in definition of macro 'WARN_ON'
     123 |         int __ret_warn_on = !!(condition);                              \
         |                                ^~~~~~~~~
   drivers/i2c/busses/i2c-at91-slave.c:97:12: error: 'struct at91_twi_dev' has no member named 'slave'
      97 |         dev->slave = NULL;
         |            ^~
   drivers/i2c/busses/i2c-at91-slave.c:98:14: error: 'struct at91_twi_dev' has no member named 'smr'; did you mean 'imr'?
      98 |         dev->smr = 0;
         |              ^~~
         |              imr
   drivers/i2c/busses/i2c-at91-slave.c: At top level:
>> drivers/i2c/busses/i2c-at91-slave.c:118:5: error: redefinition of 'at91_twi_probe_slave'
     118 | int at91_twi_probe_slave(struct platform_device *pdev,
         |     ^~~~~~~~~~~~~~~~~~~~
   In file included from drivers/i2c/busses/i2c-at91-slave.c:13:
   drivers/i2c/busses/i2c-at91.h:185:19: note: previous definition of 'at91_twi_probe_slave' with type 'int(struct platform_device *, u32,  struct at91_twi_dev *)' {aka 'int(struct platform_device *, unsigned int,  struct at91_twi_dev *)'}
     185 | static inline int at91_twi_probe_slave(struct platform_device *pdev,
         |                   ^~~~~~~~~~~~~~~~~~~~
>> drivers/i2c/busses/i2c-at91-slave.c:135:6: error: redefinition of 'at91_init_twi_bus_slave'
     135 | void at91_init_twi_bus_slave(struct at91_twi_dev *dev)
         |      ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-at91.h:184:20: note: previous definition of 'at91_init_twi_bus_slave' with type 'void(struct at91_twi_dev *)'
     184 | static inline void at91_init_twi_bus_slave(struct at91_twi_dev *dev) {}
         |                    ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/i2c/busses/i2c-at91-slave.c: In function 'at91_init_twi_bus_slave':
   drivers/i2c/busses/i2c-at91-slave.c:138:41: error: 'struct at91_twi_dev' has no member named 'smr'; did you mean 'imr'?
     138 |         if (dev->slave_detected && dev->smr) {
         |                                         ^~~
         |                                         imr
   drivers/i2c/busses/i2c-at91-slave.c:139:56: error: 'struct at91_twi_dev' has no member named 'smr'; did you mean 'imr'?
     139 |                 at91_twi_write(dev, AT91_TWI_SMR, dev->smr);
         |                                                        ^~~
         |                                                        imr

Kconfig warnings: (for reference only)
   WARNING: unmet direct dependencies detected for GET_FREE_REGION
   Depends on [n]: SPARSEMEM [=n]
   Selected by [m]:
   - RESOURCE_KUNIT_TEST [=m] && RUNTIME_TESTING_MENU [=y] && KUNIT [=m]


vim +28 drivers/i2c/busses/i2c-at91-slave.c

9d3ca54b550ca0 Juergen Fitschen 2019-02-22   14  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   15  static irqreturn_t atmel_twi_interrupt_slave(int irq, void *dev_id)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   16  {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   17  	struct at91_twi_dev *dev = dev_id;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   18  	const unsigned status = at91_twi_read(dev, AT91_TWI_SR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   19  	const unsigned irqstatus = status & at91_twi_read(dev, AT91_TWI_IMR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   20  	u8 value;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   21  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   22  	if (!irqstatus)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   23  		return IRQ_NONE;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   24  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   25  	/* slave address has been detected on I2C bus */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   26  	if (irqstatus & AT91_TWI_SVACC) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   27  		if (status & AT91_TWI_SVREAD) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  @28  			i2c_slave_event(dev->slave,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   29  					I2C_SLAVE_READ_REQUESTED, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   30  			writeb_relaxed(value, dev->base + AT91_TWI_THR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   31  			at91_twi_write(dev, AT91_TWI_IER,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   32  				       AT91_TWI_TXRDY | AT91_TWI_EOSACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   33  		} else {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   34  			i2c_slave_event(dev->slave,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   35  					I2C_SLAVE_WRITE_REQUESTED, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   36  			at91_twi_write(dev, AT91_TWI_IER,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   37  				       AT91_TWI_RXRDY | AT91_TWI_EOSACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   38  		}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   39  		at91_twi_write(dev, AT91_TWI_IDR, AT91_TWI_SVACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   40  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   41  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   42  	/* byte transmitted to remote master */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   43  	if (irqstatus & AT91_TWI_TXRDY) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   44  		i2c_slave_event(dev->slave, I2C_SLAVE_READ_PROCESSED, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   45  		writeb_relaxed(value, dev->base + AT91_TWI_THR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   46  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   47  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   48  	/* byte received from remote master */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   49  	if (irqstatus & AT91_TWI_RXRDY) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   50  		value = readb_relaxed(dev->base + AT91_TWI_RHR);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   51  		i2c_slave_event(dev->slave, I2C_SLAVE_WRITE_RECEIVED, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   52  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   53  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   54  	/* master sent stop */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   55  	if (irqstatus & AT91_TWI_EOSACC) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   56  		at91_twi_write(dev, AT91_TWI_IDR,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   57  			       AT91_TWI_TXRDY | AT91_TWI_RXRDY | AT91_TWI_EOSACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   58  		at91_twi_write(dev, AT91_TWI_IER, AT91_TWI_SVACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   59  		i2c_slave_event(dev->slave, I2C_SLAVE_STOP, &value);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   60  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   61  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   62  	return IRQ_HANDLED;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   63  }
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   64  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   65  static int at91_reg_slave(struct i2c_client *slave)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   66  {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   67  	struct at91_twi_dev *dev = i2c_get_adapdata(slave->adapter);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   68  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  @69  	if (dev->slave)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   70  		return -EBUSY;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   71  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   72  	if (slave->flags & I2C_CLIENT_TEN)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   73  		return -EAFNOSUPPORT;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   74  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   75  	/* Make sure twi_clk doesn't get turned off! */
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   76  	pm_runtime_get_sync(dev->dev);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   77  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   78  	dev->slave = slave;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  @79  	dev->smr = AT91_TWI_SMR_SADR(slave->addr);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   80  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   81  	at91_init_twi_bus(dev);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   82  	at91_twi_write(dev, AT91_TWI_IER, AT91_TWI_SVACC);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   83  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   84  	dev_info(dev->dev, "entered slave mode (ADR=%d)\n", slave->addr);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   85  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   86  	return 0;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   87  }
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   88  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   89  static int at91_unreg_slave(struct i2c_client *slave)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   90  {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   91  	struct at91_twi_dev *dev = i2c_get_adapdata(slave->adapter);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   92  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   93  	WARN_ON(!dev->slave);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   94  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   95  	dev_info(dev->dev, "leaving slave mode\n");
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   96  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  @97  	dev->slave = NULL;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   98  	dev->smr = 0;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22   99  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  100  	at91_init_twi_bus(dev);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  101  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  102  	pm_runtime_put(dev->dev);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  103  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  104  	return 0;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  105  }
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  106  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  107  static u32 at91_twi_func(struct i2c_adapter *adapter)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  108  {
d6d5645e5fc123 Jean Delvare     2024-05-31  109  	return I2C_FUNC_SLAVE;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  110  }
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  111  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  112  static const struct i2c_algorithm at91_twi_algorithm_slave = {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  113  	.reg_slave	= at91_reg_slave,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  114  	.unreg_slave	= at91_unreg_slave,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  115  	.functionality	= at91_twi_func,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  116  };
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  117  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22 @118  int at91_twi_probe_slave(struct platform_device *pdev,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  119  			 u32 phy_addr, struct at91_twi_dev *dev)
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  120  {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  121  	int rc;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  122  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  123  	rc = devm_request_irq(&pdev->dev, dev->irq, atmel_twi_interrupt_slave,
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  124  			      0, dev_name(dev->dev), dev);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  125  	if (rc) {
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  126  		dev_err(dev->dev, "Cannot get irq %d: %d\n", dev->irq, rc);
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  127  		return rc;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  128  	}
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  129  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  130  	dev->adapter.algo = &at91_twi_algorithm_slave;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  131  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  132  	return 0;
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  133  }
9d3ca54b550ca0 Juergen Fitschen 2019-02-22  134  
9d3ca54b550ca0 Juergen Fitschen 2019-02-22 @135  void at91_init_twi_bus_slave(struct at91_twi_dev *dev)

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-11-01 23:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-01 13:11 [PATCH v1 1/1] i2c: busses: Use *-y instead of *-objs in Makefile Andy Shevchenko
2024-11-01 23:30 ` kernel test robot
2024-11-01 23:51 ` kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox