Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1483104 > unrolled thread

[PATCH] [RFC] irqchip or mfd/tps65217: fix link error

Started byArnd Bergmann <arnd@arndb.de>
First post2016-09-14 10:50 +0200
Last post2016-09-14 17:40 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] [RFC] irqchip or mfd/tps65217: fix link error Arnd Bergmann <arnd@arndb.de> - 2016-09-14 10:50 +0200
    Re: [PATCH] [RFC] irqchip or mfd/tps65217: fix link error Thomas Gleixner <tglx@linutronix.de> - 2016-09-14 11:40 +0200
      Re: [PATCH] [RFC] irqchip or mfd/tps65217: fix link error Arnd Bergmann <arnd@arndb.de> - 2016-09-14 16:00 +0200
        Re: [PATCH] [RFC] irqchip or mfd/tps65217: fix link error Marcin Niestroj <m.niestroj@grinn-global.com> - 2016-09-14 17:40 +0200

#1483104 — [PATCH] [RFC] irqchip or mfd/tps65217: fix link error

FromArnd Bergmann <arnd@arndb.de>
Date2016-09-14 10:50 +0200
Subject[PATCH] [RFC] irqchip or mfd/tps65217: fix link error
Message-ID<she3f-734-5@gated-at.bofh.it>
Building tps65217 as a loadable module (as done in allmodconfig)
now fails after we started calling irq_set_parent():

  ERROR: "irq_set_parent" [drivers/mfd/tps65217.ko] undefined!

The two obvious workarounds are either to force the driver
to be built-in, or to make that symbol exported to modules.

As it's not clear to me if either of them would be acceptable,
I'm sending both of them here, please comment on which one
you want to have, or whether the driver should handle this
differently and not call irq_set_parent() at all.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 262d5cc6ceb2 ("mfd: tps65217: Add support for IRQs")
---
 drivers/mfd/Kconfig | 2 +-
 kernel/irq/manage.c | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index be1945a42dd1..9a4cef5a2ece 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -1229,7 +1229,7 @@ config MFD_TPS65090
 	  functionality of the device.
 
 config MFD_TPS65217
-	tristate "TI TPS65217 Power Management / White LED chips"
+	bool "TI TPS65217 Power Management / White LED chips"
 	depends on I2C
 	select MFD_CORE
 	select REGMAP_I2C
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index 0c5f1a5db654..9c4d30483264 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -721,6 +721,7 @@ int irq_set_parent(int irq, int parent_irq)
 	irq_put_desc_unlock(desc, flags);
 	return 0;
 }
+EXPORT_SYMBOL_GPL(irq_set_parent);
 #endif
 
 /*
-- 
2.9.0

[toc] | [next] | [standalone]


#1483131

FromThomas Gleixner <tglx@linutronix.de>
Date2016-09-14 11:40 +0200
Message-ID<shePD-7Az-27@gated-at.bofh.it>
In reply to#1483104
On Wed, 14 Sep 2016, Arnd Bergmann wrote:
> Building tps65217 as a loadable module (as done in allmodconfig)
> now fails after we started calling irq_set_parent():
> 
>   ERROR: "irq_set_parent" [drivers/mfd/tps65217.ko] undefined!
> 
> The two obvious workarounds are either to force the driver
> to be built-in, or to make that symbol exported to modules.
> 
> As it's not clear to me if either of them would be acceptable,
> I'm sending both of them here, please comment on which one
> you want to have, or whether the driver should handle this
> differently and not call irq_set_parent() at all.

The question is why it needs to call that. But if it's justified, then I'm
not opposed to export it.

Thanks,

	tglx

[toc] | [prev] | [next] | [standalone]


#1483327

FromArnd Bergmann <arnd@arndb.de>
Date2016-09-14 16:00 +0200
Message-ID<shiTg-1yN-35@gated-at.bofh.it>
In reply to#1483131
On Wednesday, September 14, 2016 11:31:17 AM CEST Thomas Gleixner wrote:
> On Wed, 14 Sep 2016, Arnd Bergmann wrote:
> > Building tps65217 as a loadable module (as done in allmodconfig)
> > now fails after we started calling irq_set_parent():
> > 
> >   ERROR: "irq_set_parent" [drivers/mfd/tps65217.ko] undefined!
> > 
> > The two obvious workarounds are either to force the driver
> > to be built-in, or to make that symbol exported to modules.
> > 
> > As it's not clear to me if either of them would be acceptable,
> > I'm sending both of them here, please comment on which one
> > you want to have, or whether the driver should handle this
> > differently and not call irq_set_parent() at all.
> 
> The question is why it needs to call that. But if it's justified, then I'm
> not opposed to export it.

Ok. I just noticed that I forgot to put the right people on Cc
that worked on the patch originally, fixed that now.

My other approach of making the symbol "bool" in the meantime has
caused another problem when CONFIG_I2C=m:

drivers/mfd/tps65217.o: In function `tps65217_init':
tps65217.c:(.init.text+0x8): undefined reference to `i2c_register_driver'
drivers/mfd/tps65217.o: In function `tps65217_probe':
tps65217.c:(.text.tps65217_probe+0x94): undefined reference to `__devm_regmap_init_i2c'

so the dependency would be "depends on I2C=y", getting increasingly
ugly. I'll let Marcin or Grygorii reply on why the call is needed,
we can then either export the symbol or change the code.

	Arnd

[toc] | [prev] | [next] | [standalone]


#1483434

FromMarcin Niestroj <m.niestroj@grinn-global.com>
Date2016-09-14 17:40 +0200
Message-ID<shks1-2zX-9@gated-at.bofh.it>
In reply to#1483327
On 14.09.2016 15:56, Arnd Bergmann wrote:
> On Wednesday, September 14, 2016 11:31:17 AM CEST Thomas Gleixner wrote:
>> On Wed, 14 Sep 2016, Arnd Bergmann wrote:
>>> Building tps65217 as a loadable module (as done in allmodconfig)
>>> now fails after we started calling irq_set_parent():
>>>
>>>   ERROR: "irq_set_parent" [drivers/mfd/tps65217.ko] undefined!
>>>
>>> The two obvious workarounds are either to force the driver
>>> to be built-in, or to make that symbol exported to modules.
>>>
>>> As it's not clear to me if either of them would be acceptable,
>>> I'm sending both of them here, please comment on which one
>>> you want to have, or whether the driver should handle this
>>> differently and not call irq_set_parent() at all.
>>
>> The question is why it needs to call that. But if it's justified, then I'm
>> not opposed to export it.
>
> Ok. I just noticed that I forgot to put the right people on Cc
> that worked on the patch originally, fixed that now.
>
> My other approach of making the symbol "bool" in the meantime has
> caused another problem when CONFIG_I2C=m:
>
> drivers/mfd/tps65217.o: In function `tps65217_init':
> tps65217.c:(.init.text+0x8): undefined reference to `i2c_register_driver'
> drivers/mfd/tps65217.o: In function `tps65217_probe':
> tps65217.c:(.text.tps65217_probe+0x94): undefined reference to `__devm_regmap_init_i2c'
>
> so the dependency would be "depends on I2C=y", getting increasingly
> ugly. I'll let Marcin or Grygorii reply on why the call is needed,
> we can then either export the symbol or change the code.
>
> 	Arnd
>

I have added irq_set_parent() similarly as in 
drivers/base/regmap/regmap-irq.c

But to be honest I am not sure what it really does in case of tps65217.

-- 
Marcin Niestroj

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web