Message ID | 20170530091314.891224-1-arnd@arndb.de |
---|---|
State | Accepted |
Commit | adeac77549ec13dc3bf87ec21f1b8a00f069bb1c |
Headers | show |
Hi, On Tue, May 30, 2017 at 11:11:28AM +0200, Arnd Bergmann wrote: > With "SPI_MASTER=y && I2C=m", we can build mcp23s08 as a built-in driver, > which then results in a link failure: > > drivers/pinctrl/built-in.o: In function `mcp23s08_probe_one.isra.0': > :(.text+0x7910): undefined reference to `__devm_regmap_init_i2c' > drivers/pinctrl/built-in.o: In function `mcp23s08_init': > :(.init.text+0x110): undefined reference to `i2c_register_driver' > drivers/pinctrl/built-in.o: In function `mcp23s08_exit': > :(.exit.text+0x3c): undefined reference to `i2c_del_driver' > > To avoid the problem, this adds another dependency on I2C that enforces > mcp23s08 to be a loadable module whenever the I2C core is a module. > > Fixes: 64ac43e6fa28 ("gpio: mcp23s08: move to pinctrl") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> -- Sebastian > --- > drivers/pinctrl/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig > index becda8f47e9e..ab4630ea305c 100644 > --- a/drivers/pinctrl/Kconfig > +++ b/drivers/pinctrl/Kconfig > @@ -149,6 +149,7 @@ config PINCTRL_FALCON > config PINCTRL_MCP23S08 > tristate "Microchip MCP23xxx I/O expander" > depends on SPI_MASTER || I2C > + depends on I2C || I2C=n > select GPIOLIB_IRQCHIP > select REGMAP_I2C if I2C > select REGMAP_SPI if SPI_MASTER > -- > 2.9.0 >
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig index becda8f47e9e..ab4630ea305c 100644 --- a/drivers/pinctrl/Kconfig +++ b/drivers/pinctrl/Kconfig @@ -149,6 +149,7 @@ config PINCTRL_FALCON config PINCTRL_MCP23S08 tristate "Microchip MCP23xxx I/O expander" depends on SPI_MASTER || I2C + depends on I2C || I2C=n select GPIOLIB_IRQCHIP select REGMAP_I2C if I2C select REGMAP_SPI if SPI_MASTER
With "SPI_MASTER=y && I2C=m", we can build mcp23s08 as a built-in driver, which then results in a link failure: drivers/pinctrl/built-in.o: In function `mcp23s08_probe_one.isra.0': :(.text+0x7910): undefined reference to `__devm_regmap_init_i2c' drivers/pinctrl/built-in.o: In function `mcp23s08_init': :(.init.text+0x110): undefined reference to `i2c_register_driver' drivers/pinctrl/built-in.o: In function `mcp23s08_exit': :(.exit.text+0x3c): undefined reference to `i2c_del_driver' To avoid the problem, this adds another dependency on I2C that enforces mcp23s08 to be a loadable module whenever the I2C core is a module. Fixes: 64ac43e6fa28 ("gpio: mcp23s08: move to pinctrl") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/pinctrl/Kconfig | 1 + 1 file changed, 1 insertion(+) -- 2.9.0 -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html