]> www.infradead.org Git - nvme.git/commit
i2c: viai2c: turn common code into a proper module
authorArnd Bergmann <arnd@arndb.de>
Tue, 28 May 2024 12:06:30 +0000 (14:06 +0200)
committerAndi Shyti <andi.shyti@kernel.org>
Wed, 26 Jun 2024 14:07:21 +0000 (16:07 +0200)
commit103458874baca0bbc8ae0b66d50201d5faa8c17b
tree76c3d998cb63a9be2568f62fc7d4a88142f8f4b9
parentf2661062f16b2de5d7b6a5c42a9a5c96326b8454
i2c: viai2c: turn common code into a proper module

The i2c-viai2c-common.c file is used by two drivers, but is not a proper
abstraction and can get linked into both modules in the same configuration,
which results in a warning:

scripts/Makefile.build:236: drivers/i2c/busses/Makefile: i2c-viai2c-common.o is added to multiple modules: i2c-wmt i2c-zhaoxin

The other problems with this include the incorrect use of a __weak function
when both are built-in, and the fact that the "common" module is sprinked
with 'if (i2c->plat == ...)' checks that have knowledge about the differences
between the drivers using it.

Avoid the link time warning by making the common driver a proper module
with MODULE_LICENCE()/MODULE_AUTHOR() tags, and remove the __weak function
by slightly rearranging the code.

This adds a little more duplication between the two main drivers, but
those versions get more readable in the process.

Fixes: a06b80e83011 ("i2c: add zhaoxin i2c controller driver")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Tested-by: Hans Hu <HansHu-oc@zhaoxin.com>
Signed-off-by: Andi Shyti <andi.shyti@kernel.org>
drivers/i2c/busses/Makefile
drivers/i2c/busses/i2c-viai2c-common.c
drivers/i2c/busses/i2c-viai2c-common.h
drivers/i2c/busses/i2c-viai2c-wmt.c
drivers/i2c/busses/i2c-viai2c-zhaoxin.c