Re: [PATCH v3] serial: max310x: fix compile errors if CONFIG_SPI_MASTER is disabled

From: Randy Dunlap

Date: Mon May 25 2026 - 13:43:55 EST




On 5/21/26 8:33 AM, Hugo Villeneuve wrote:
> From: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx>
>
> Since commit 20ffe4b3330a8 ("serial: max310x: allow driver to be built with
> SPI or I2C"), if I2C is enabled and SPI_MASTER is disabled, we have these
> compile errors:
>
> drivers/tty/serial/max310x.c: In function 'max310x_uart_init':
> drivers/tty/serial/max310x.c: error: 'max310x_spi_driver' undeclared...
> drivers/tty/serial/max310x.c: In function ‘max310x_uart_init’:
> drivers/tty/serial/max310x.c: error: label ‘err_spi_register’
> defined but not used...
> drivers/tty/serial/max310x.c: error: ‘regcfg’ defined but not used
>
> Fix by properly encapsulating i2c/spi code/variables in their respective
> context with IS_ENABLED() macros for CONFIG_I2C and CONFIG_SPI_MASTER.
>
> Also fix link failure with SERIAL_MAX310X=y and I2C=m by modifying Kconfig
> depends.
>
> Fixes: 20ffe4b3330a8 ("serial: max310x: allow driver to be built with SPI or I2C")
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202605121847.N9DVLNg2-lkp@xxxxxxxxx/
> Signed-off-by: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx>
> ---
> note: not Cc-ing stable as the commit is still in tty-next, and even if the
> errors originate from original commit that added I2C support, they were not
> trigerred because the driver could not be selected/compiled if
> CONFIG_SPI_MASTER was disabled.
>
> Changes for v3:
> - Fix link failure with SERIAL_MAX310X=y and I2C=m (Arnd Bergmann)
>
> Changes for v2:
> - replace #ifdef with #if IS_ENABLED() to suppoirt both built-in and modules
> options
> ---
> drivers/tty/serial/Kconfig | 2 +-
> drivers/tty/serial/max310x.c | 48 +++++++++++++++++++-----------------
> 2 files changed, 27 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index f834e5d292fd7..4accbfa75074c 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -321,7 +321,7 @@ config SERIAL_MAX3100
>
> config SERIAL_MAX310X
> tristate "MAX310X support"
> - depends on SPI_MASTER || I2C
> + depends on (SPI_MASTER && !I2C) || I2C
> select SERIAL_CORE
> select REGMAP_SPI if SPI_MASTER
> select REGMAP_I2C if I2C

Other than preferring Arnd's Kconfig dependencies (easier to
read/understand IMO), this is all good.
Thanks.

Acked-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
Tested-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx> # build-tested

--
~Randy