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@xxxxxxxxx/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@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202411020714.mhatOhhd-lkp@xxxxxxxxx/ 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