mirror of
https://github.com/torvalds/linux.git
synced 2026-09-27 11:02:03 +02:00
serial: max310x: fix compile errors if CONFIG_SPI_MASTER is disabled
Since commit20ffe4b333("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:20ffe4b333("serial: max310x: allow driver to be built with SPI or I2C") Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202605121847.N9DVLNg2-lkp@intel.com/ Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com> Link: https://patch.msgid.link/20260521153333.2336642-1-hugo@hugovil.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
16e95bfb79
commit
f18643843b
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@
|
|||
#include <linux/device.h>
|
||||
#include <linux/gpio/driver.h>
|
||||
#include <linux/i2c.h>
|
||||
#include <linux/kconfig.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/mod_devicetable.h>
|
||||
#include <linux/property.h>
|
||||
|
|
@ -1507,6 +1508,21 @@ static const struct of_device_id __maybe_unused max310x_dt_ids[] = {
|
|||
};
|
||||
MODULE_DEVICE_TABLE(of, max310x_dt_ids);
|
||||
|
||||
static const char *max310x_regmap_name(u8 port_id)
|
||||
{
|
||||
switch (port_id) {
|
||||
case 0: return "port0";
|
||||
case 1: return "port1";
|
||||
case 2: return "port2";
|
||||
case 3: return "port3";
|
||||
default:
|
||||
WARN_ON(true);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_SPI_MASTER)
|
||||
|
||||
static struct regmap_config regcfg = {
|
||||
.reg_bits = 8,
|
||||
.val_bits = 8,
|
||||
|
|
@ -1522,20 +1538,6 @@ static struct regmap_config regcfg = {
|
|||
.max_raw_write = MAX310X_FIFO_SIZE,
|
||||
};
|
||||
|
||||
static const char *max310x_regmap_name(u8 port_id)
|
||||
{
|
||||
switch (port_id) {
|
||||
case 0: return "port0";
|
||||
case 1: return "port1";
|
||||
case 2: return "port2";
|
||||
case 3: return "port3";
|
||||
default:
|
||||
WARN_ON(true);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_SPI_MASTER
|
||||
static int max310x_spi_extended_reg_enable(struct device *dev, bool enable)
|
||||
{
|
||||
struct max310x_port *s = dev_get_drvdata(dev);
|
||||
|
|
@ -1606,7 +1608,8 @@ static struct spi_driver max310x_spi_driver = {
|
|||
};
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_I2C
|
||||
#if IS_ENABLED(CONFIG_I2C)
|
||||
|
||||
static int max310x_i2c_extended_reg_enable(struct device *dev, bool enable)
|
||||
{
|
||||
return 0;
|
||||
|
|
@ -1726,13 +1729,13 @@ static int __init max310x_uart_init(void)
|
|||
if (ret)
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_SPI_MASTER
|
||||
#if IS_ENABLED(CONFIG_SPI_MASTER)
|
||||
ret = spi_register_driver(&max310x_spi_driver);
|
||||
if (ret)
|
||||
goto err_spi_register;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_I2C
|
||||
#if IS_ENABLED(CONFIG_I2C)
|
||||
ret = i2c_add_driver(&max310x_i2c_driver);
|
||||
if (ret)
|
||||
goto err_i2c_register;
|
||||
|
|
@ -1740,12 +1743,13 @@ static int __init max310x_uart_init(void)
|
|||
|
||||
return 0;
|
||||
|
||||
#ifdef CONFIG_I2C
|
||||
#if IS_ENABLED(CONFIG_I2C)
|
||||
err_i2c_register:
|
||||
spi_unregister_driver(&max310x_spi_driver);
|
||||
#endif
|
||||
|
||||
#if IS_ENABLED(CONFIG_SPI_MASTER)
|
||||
spi_unregister_driver(&max310x_spi_driver);
|
||||
err_spi_register:
|
||||
#endif
|
||||
uart_unregister_driver(&max310x_uart);
|
||||
|
||||
return ret;
|
||||
|
|
@ -1754,11 +1758,11 @@ module_init(max310x_uart_init);
|
|||
|
||||
static void __exit max310x_uart_exit(void)
|
||||
{
|
||||
#ifdef CONFIG_I2C
|
||||
#if IS_ENABLED(CONFIG_I2C)
|
||||
i2c_del_driver(&max310x_i2c_driver);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPI_MASTER
|
||||
#if IS_ENABLED(CONFIG_SPI_MASTER)
|
||||
spi_unregister_driver(&max310x_spi_driver);
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user