Re: [PATCH v3 18/25] i2c: designware: Remove ->disable() callback

From: Jarkko Nikula
Date: Tue Nov 14 2023 - 10:03:56 EST


On 11/10/23 20:11, Andy Shevchenko wrote:
Commit 90312351fd1e ("i2c: designware: MASTER mode as separated driver")
introduced ->disable() callback but there is no real use for it. Both
i2c-designware-master.c and i2c-designware-slave.c set it to the same
i2c_dw_disable() and scope is inside the same kernel module.

That said, replace the callback by explicitly calling the i2c_dw_disable().

Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
---
drivers/i2c/busses/i2c-designware-core.h | 2 --
drivers/i2c/busses/i2c-designware-master.c | 1 -
drivers/i2c/busses/i2c-designware-pcidrv.c | 4 ++--
drivers/i2c/busses/i2c-designware-platdrv.c | 4 ++--
drivers/i2c/busses/i2c-designware-slave.c | 3 +--
5 files changed, 5 insertions(+), 9 deletions(-)

Hmm... no report from kernel test robot but I'm getting build error below after this patch when driver (and I2C core) is built as module.

CONFIG_I2C_DESIGNWARE_CORE=m
CONFIG_I2C_DESIGNWARE_SLAVE=y
CONFIG_I2C_DESIGNWARE_PLATFORM=m
CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_SPI_DESIGNWARE=m

CC [M] drivers/i2c/busses/i2c-designware-common.o
CC [M] drivers/i2c/busses/i2c-designware-master.o
CC [M] drivers/i2c/busses/i2c-designware-slave.o
CC [M] drivers/i2c/busses/i2c-designware-platdrv.o
CC [M] drivers/i2c/busses/i2c-designware-baytrail.o
CC [M] drivers/i2c/busses/i2c-designware-pcidrv.o
LD [M] drivers/i2c/busses/i2c-designware-platform.o
LD [M] drivers/i2c/busses/i2c-designware-pci.o
LD [M] drivers/i2c/busses/i2c-designware-core.o
MODPOST Module.symvers
ERROR: modpost: "i2c_dw_disable" [drivers/i2c/busses/i2c-designware-platform.ko] undefined!
ERROR: modpost: "i2c_dw_disable" [drivers/i2c/busses/i2c-designware-pci.ko] undefined!
make[2]: *** [scripts/Makefile.modpost:145: Module.symvers] Error 1
make[1]: *** [/workdisk/linux/linux/Makefile:1863: modpost] Error 2
make: *** [Makefile:234: __sub-make] Error 2