Re: [PATCH] gpio: dwapb: enable for ARC

From: Linus Walleij
Date: Thu Apr 09 2015 - 04:30:09 EST


Better ask Steven, Arnd et al...

On Thu, Apr 9, 2015 at 9:48 AM, Alexey Brodkin
<Alexey.Brodkin@xxxxxxxxxxxx> wrote:
> On Wed, 2015-04-08 at 17:03 +0200, Linus Walleij wrote:
>> On Tue, Mar 31, 2015 at 10:30 AM, Alexey Brodkin
>> <Alexey.Brodkin@xxxxxxxxxxxx> wrote:
>>
>> > From: Vineet Gupta <vgupta@xxxxxxxxxxxx>
>> >
>> > Synopsys SDP platform uses DW GPIO controller in design with
>> > ARC cores. So adding ARC to architectures that may select this
>> > GPIO controller.
>> >
>> > Even though support for Synopsys SDP is yet to be submitted we'll need
>> > this tiny option enabled at least for properly working interrupts (DW
>> > GPIO controller is used as interrupt controller).
>> >
>> > Signed-off-by: Vineet Gupta <vgupta@xxxxxxxxxxxx>
>> > Signed-off-by: Alexey Brodkin <abrodkin@xxxxxxxxxxxx>
>> > Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
>> > Cc: Linus Walleij <linus.walleij@xxxxxxxxxx>
>>
>> Patch applied.
>>
>> But ...
>>
>> > - depends on ((ARM || ARM64) && OF_GPIO) || X86_INTEL_QUARK
>> > + depends on ((ARC || ARM || ARM64) && OF_GPIO) || X86_INTEL_QUARK
>>
>> This is getting a bit silly. What stops us from actually just enabling
>> it for any architecture?
>
> Agree. That looks like nonsense now.
> Origin of arch-limitation is
> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/drivers/gpio/Kconfig?id=1972c97db5b0c125918f662cd084c7d5370674c0
>
> --->8---
> gpio: dwapb: fix compile errors
> Whereas the DWAPB driver does not really depend on the ARM
> architecture, it uses [readl|writel]_relaxed() not found on
> arch such as Blackfin, so restrict this to ARM until there is
> another architecture that can make use of it.
>
> It is also using the of_node of the gpiochip, so fix this
> too by requiring OF_GPIO.
>
> All error/warnings:
>
> make.cross ARCH=blackfin
> drivers/gpio/gpio-dwapb.c: In function 'dwapb_irq_handler':
> drivers/gpio/gpio-dwapb.c:91:2: error: implicit declaration of function
> 'readl_relaxed' [-Werror=implicit-function-declaration]
> drivers/gpio/gpio-dwapb.c: In function 'dwapb_configure_irqs':
> drivers/gpio/gpio-dwapb.c:212:32: error: 'struct gpio_chip' has no
> member named 'of_node'
> drivers/gpio/gpio-dwapb.c:221:16: error: 'struct gpio_chip' has no
> member named 'of_node'
> drivers/gpio/gpio-dwapb.c: In function 'dwapb_gpio_add_port':
> drivers/gpio/gpio-dwapb.c:331:14: error: 'struct gpio_chip' has no
> member named 'of_node'
> cc1: some warnings being treated as errors
> --->8---
>
> Probably better fix is to make dwgpio depend on !BLACKFIN because we
> know it won't be built for it. If there're other arches that don't
> define [readl|writel]_relaxed() we may add them as well.

This restrictions should be gone after commit
9439eb3ab9d1ece6e4ad7baaa4a7f534f9b9dab0
"asm-generic: io: implement relaxed accessor macros as conditional wrappers"

I will make a patch removing the dependencies and see what happens.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/