All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Sean Wang <sean.wang@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Light Hsieh <light.hsieh@mediatek.com>
Cc: Arnd Bergmann <arnd@arndb.de>, Sean Wang <sean.wang@mediatek.com>,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH] pinctrl: mediatek: fix mtk_eint link error
Date: Wed, 29 Apr 2020 15:24:22 +0200	[thread overview]
Message-ID: <20200429132443.1295194-1-arnd@arndb.de> (raw)

In a configuration with CONFIG_PINCTRL_MTK_MOORE=y and CONFIG_PINCTRL_MTK_PARIS=m,
we end up with the mtk_eint driver as a loadable module that cannot be
linked from built-in code:

aarch64-linux-ld: drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.o: in function `mtk_build_eint':
(.text+0x304): undefined reference to `mtk_eint_do_init'
aarch64-linux-ld: drivers/pinctrl/mediatek/pinctrl-moore.o: in function `mtk_gpio_set_config':
pinctrl-moore.c:(.text+0xf80): undefined reference to `mtk_eint_set_debounce'
aarch64-linux-ld: drivers/pinctrl/mediatek/pinctrl-moore.o: in function `mtk_gpio_to_irq':
pinctrl-moore.c:(.text+0x1028): undefined reference to `mtk_eint_find_irq'

Simplify the Kconfig logic to always select EINT_MTK when it is needed, and
remove the 'default' statements.

Fixes: 8174a8512e3e ("pinctrl: mediatek: make MediaTek pinctrl v2 driver ready for buidling loadable module")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/pinctrl/mediatek/Kconfig    |  4 +---
 drivers/pinctrl/mediatek/mtk-eint.h | 28 ----------------------------
 2 files changed, 1 insertion(+), 31 deletions(-)

diff --git a/drivers/pinctrl/mediatek/Kconfig b/drivers/pinctrl/mediatek/Kconfig
index f32d3644c509..b6a8d91f4885 100644
--- a/drivers/pinctrl/mediatek/Kconfig
+++ b/drivers/pinctrl/mediatek/Kconfig
@@ -7,8 +7,6 @@ config EINT_MTK
 	depends on PINCTRL_MTK || PINCTRL_MTK_MOORE || PINCTRL_MTK_PARIS || COMPILE_TEST
 	select GPIOLIB
 	select IRQ_DOMAIN
-	default y if PINCTRL_MTK || PINCTRL_MTK_MOORE
-	default PINCTRL_MTK_PARIS
 
 config PINCTRL_MTK
 	bool
@@ -20,6 +18,7 @@ config PINCTRL_MTK
 	select OF_GPIO
 
 config PINCTRL_MTK_V2
+	select EINT_MTK
 	tristate
 
 config PINCTRL_MTK_MOORE
@@ -38,7 +37,6 @@ config PINCTRL_MTK_PARIS
 	select PINMUX
 	select GENERIC_PINCONF
 	select GPIOLIB
-	select EINT_MTK
 	select OF_GPIO
 	select PINCTRL_MTK_V2
 
diff --git a/drivers/pinctrl/mediatek/mtk-eint.h b/drivers/pinctrl/mediatek/mtk-eint.h
index 48468d0fae68..f40dab50a5f3 100644
--- a/drivers/pinctrl/mediatek/mtk-eint.h
+++ b/drivers/pinctrl/mediatek/mtk-eint.h
@@ -68,7 +68,6 @@ struct mtk_eint {
 	const struct mtk_eint_xt *gpio_xlate;
 };
 
-#if IS_ENABLED(CONFIG_EINT_MTK)
 int mtk_eint_do_init(struct mtk_eint *eint);
 int mtk_eint_do_suspend(struct mtk_eint *eint);
 int mtk_eint_do_resume(struct mtk_eint *eint);
@@ -76,31 +75,4 @@ int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n,
 			  unsigned int debounce);
 int mtk_eint_find_irq(struct mtk_eint *eint, unsigned long eint_n);
 
-#else
-static inline int mtk_eint_do_init(struct mtk_eint *eint)
-{
-	return -EOPNOTSUPP;
-}
-
-static inline int mtk_eint_do_suspend(struct mtk_eint *eint)
-{
-	return -EOPNOTSUPP;
-}
-
-static inline int mtk_eint_do_resume(struct mtk_eint *eint)
-{
-	return -EOPNOTSUPP;
-}
-
-static inline int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n,
-			  unsigned int debounce)
-{
-	return -EOPNOTSUPP;
-}
-
-static inline int mtk_eint_find_irq(struct mtk_eint *eint, unsigned long eint_n)
-{
-	return -EOPNOTSUPP;
-}
-#endif
 #endif /* __MTK_EINT_H */
-- 
2.26.0


WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: Sean Wang <sean.wang@kernel.org>,
	Linus Walleij <linus.walleij@linaro.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Light Hsieh <light.hsieh@mediatek.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org,
	Sean Wang <sean.wang@mediatek.com>,
	linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH] pinctrl: mediatek: fix mtk_eint link error
Date: Wed, 29 Apr 2020 15:24:22 +0200	[thread overview]
Message-ID: <20200429132443.1295194-1-arnd@arndb.de> (raw)

In a configuration with CONFIG_PINCTRL_MTK_MOORE=y and CONFIG_PINCTRL_MTK_PARIS=m,
we end up with the mtk_eint driver as a loadable module that cannot be
linked from built-in code:

aarch64-linux-ld: drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.o: in function `mtk_build_eint':
(.text+0x304): undefined reference to `mtk_eint_do_init'
aarch64-linux-ld: drivers/pinctrl/mediatek/pinctrl-moore.o: in function `mtk_gpio_set_config':
pinctrl-moore.c:(.text+0xf80): undefined reference to `mtk_eint_set_debounce'
aarch64-linux-ld: drivers/pinctrl/mediatek/pinctrl-moore.o: in function `mtk_gpio_to_irq':
pinctrl-moore.c:(.text+0x1028): undefined reference to `mtk_eint_find_irq'

Simplify the Kconfig logic to always select EINT_MTK when it is needed, and
remove the 'default' statements.

Fixes: 8174a8512e3e ("pinctrl: mediatek: make MediaTek pinctrl v2 driver ready for buidling loadable module")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/pinctrl/mediatek/Kconfig    |  4 +---
 drivers/pinctrl/mediatek/mtk-eint.h | 28 ----------------------------
 2 files changed, 1 insertion(+), 31 deletions(-)

diff --git a/drivers/pinctrl/mediatek/Kconfig b/drivers/pinctrl/mediatek/Kconfig
index f32d3644c509..b6a8d91f4885 100644
--- a/drivers/pinctrl/mediatek/Kconfig
+++ b/drivers/pinctrl/mediatek/Kconfig
@@ -7,8 +7,6 @@ config EINT_MTK
 	depends on PINCTRL_MTK || PINCTRL_MTK_MOORE || PINCTRL_MTK_PARIS || COMPILE_TEST
 	select GPIOLIB
 	select IRQ_DOMAIN
-	default y if PINCTRL_MTK || PINCTRL_MTK_MOORE
-	default PINCTRL_MTK_PARIS
 
 config PINCTRL_MTK
 	bool
@@ -20,6 +18,7 @@ config PINCTRL_MTK
 	select OF_GPIO
 
 config PINCTRL_MTK_V2
+	select EINT_MTK
 	tristate
 
 config PINCTRL_MTK_MOORE
@@ -38,7 +37,6 @@ config PINCTRL_MTK_PARIS
 	select PINMUX
 	select GENERIC_PINCONF
 	select GPIOLIB
-	select EINT_MTK
 	select OF_GPIO
 	select PINCTRL_MTK_V2
 
diff --git a/drivers/pinctrl/mediatek/mtk-eint.h b/drivers/pinctrl/mediatek/mtk-eint.h
index 48468d0fae68..f40dab50a5f3 100644
--- a/drivers/pinctrl/mediatek/mtk-eint.h
+++ b/drivers/pinctrl/mediatek/mtk-eint.h
@@ -68,7 +68,6 @@ struct mtk_eint {
 	const struct mtk_eint_xt *gpio_xlate;
 };
 
-#if IS_ENABLED(CONFIG_EINT_MTK)
 int mtk_eint_do_init(struct mtk_eint *eint);
 int mtk_eint_do_suspend(struct mtk_eint *eint);
 int mtk_eint_do_resume(struct mtk_eint *eint);
@@ -76,31 +75,4 @@ int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n,
 			  unsigned int debounce);
 int mtk_eint_find_irq(struct mtk_eint *eint, unsigned long eint_n);
 
-#else
-static inline int mtk_eint_do_init(struct mtk_eint *eint)
-{
-	return -EOPNOTSUPP;
-}
-
-static inline int mtk_eint_do_suspend(struct mtk_eint *eint)
-{
-	return -EOPNOTSUPP;
-}
-
-static inline int mtk_eint_do_resume(struct mtk_eint *eint)
-{
-	return -EOPNOTSUPP;
-}
-
-static inline int mtk_eint_set_debounce(struct mtk_eint *eint, unsigned long eint_n,
-			  unsigned int debounce)
-{
-	return -EOPNOTSUPP;
-}
-
-static inline int mtk_eint_find_irq(struct mtk_eint *eint, unsigned long eint_n)
-{
-	return -EOPNOTSUPP;
-}
-#endif
 #endif /* __MTK_EINT_H */
-- 
2.26.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

             reply	other threads:[~2020-04-29 13:25 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-29 13:24 Arnd Bergmann [this message]
2020-04-29 13:24 ` [PATCH] pinctrl: mediatek: fix mtk_eint link error Arnd Bergmann
2020-04-30  6:41 ` Light Hsieh
2020-04-30  6:41   ` Light Hsieh

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200429132443.1295194-1-arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=light.hsieh@mediatek.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=matthias.bgg@gmail.com \
    --cc=sean.wang@kernel.org \
    --cc=sean.wang@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.