2020-12-10 15:45:40

by Grygorii Strashko

[permalink] [raw]
Subject: Re: [RFC PATCH] RFC: drivers: gpio: helper for generic pin IRQ handling



On 09/12/2020 12:23, Enrico Weigelt, metux IT consult wrote:
> On 08.12.20 17:18, Grygorii Strashko wrote:
>
>>>>> Having all GPIO drivers doing their IRQ management entirely through the
>>>>> GPIO subsystem (eg. never calling generic_handle_irq() and using the
>>>>> builtin
>>>>> IRQ handling) would also allow a more direct (eg. callback-based)
>>>>> pin change
>>>>> notification for GPIO consumers, that doesn't involve registering
>>>>> them as
>>>>> generic IRQ handlers.
>>
>> Above part makes me worry - why?
>
> Why so ?
>
> Little clarification, in case i've been a bit confusion - there're two
> separate topics:
>
> a) consolidating repeated patterns (eg. calling the actual irq handling)
> into gpiolib, (and later possibly use more fields already existing in
> struct gpio_chip for irq handling)

Even if there is some pattern It doesn't mean consolidation is always reasonable.
one of the things to think about is compiler optimization and will/will not this change
add additional

>
> b) a direct consumer callback for change, where the consumer doesn't
> have to care about IRQs at all (some drivers could even do polling,
> when hw doesn't have IRQs). This is for consumers that don't use
> GPIOs as interrupt source, but more more like a very raw serial port,
> eg. bitbanging of other interfaces (maybe an gpio bus type ? ;-))

in his case they do polling, so what's the issue with this?

or you want gpio-controller to do polling for you?

Actually there are few types of consumers:
- gpio users, no irq
- irq users, no gpio
- gpio users and irq users
- and finally (only few) use the same gpio as gpio and as an irq,
including dynamic direction change.

>
> The above paragraph just outlines that b) might be much easier to
> implement, once the suggested refactoring is done and no driver would
> call irq handlers directly anymore. But this hasn't much to do with
> the proposal itself, just an idea for future use.
>
> --mtx
>

--
Best regards,
grygorii