linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] pinctrl: mcp23s08: improve I2C Kconfig dependency
@ 2017-05-30  9:11 Arnd Bergmann
  2017-05-30 10:27 ` Sebastian Reichel
  2017-05-30 23:59 ` Linus Walleij
  0 siblings, 2 replies; 3+ messages in thread
From: Arnd Bergmann @ 2017-05-30  9:11 UTC (permalink / raw)
  To: Linus Walleij; +Cc: Arnd Bergmann, Sebastian Reichel, linux-gpio, linux-kernel

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(+)

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


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] pinctrl: mcp23s08: improve I2C Kconfig dependency
  2017-05-30  9:11 [PATCH] pinctrl: mcp23s08: improve I2C Kconfig dependency Arnd Bergmann
@ 2017-05-30 10:27 ` Sebastian Reichel
  2017-05-30 23:59 ` Linus Walleij
  1 sibling, 0 replies; 3+ messages in thread
From: Sebastian Reichel @ 2017-05-30 10:27 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Linus Walleij, linux-gpio, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1488 bytes --]

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
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] pinctrl: mcp23s08: improve I2C Kconfig dependency
  2017-05-30  9:11 [PATCH] pinctrl: mcp23s08: improve I2C Kconfig dependency Arnd Bergmann
  2017-05-30 10:27 ` Sebastian Reichel
@ 2017-05-30 23:59 ` Linus Walleij
  1 sibling, 0 replies; 3+ messages in thread
From: Linus Walleij @ 2017-05-30 23:59 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Sebastian Reichel, linux-gpio@vger.kernel.org,
	linux-kernel@vger.kernel.org

On Tue, May 30, 2017 at 11:11 AM, Arnd Bergmann <arnd@arndb.de> 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>

Patch applied!

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-05-30 23:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-05-30  9:11 [PATCH] pinctrl: mcp23s08: improve I2C Kconfig dependency Arnd Bergmann
2017-05-30 10:27 ` Sebastian Reichel
2017-05-30 23:59 ` Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).