[lkml]   [2009]   [Jun]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRE: [PATCH] gpiolib: add gpio_request/free_irq
On Friday, June 05, 2009 10:20 PM, David Brownell wrote:
> On Friday 05 June 2009, H Hartley Sweeten wrote:
> Add support functions to gpiolib to request/free gpio irqs.
> I'm not keen on this.
> - At best it's a convenience layer ... for something that's
> not the least bit awkward to do otherwise.

I agree it's a convenience layer, but it cleans up the error path in
many drivers that allocate a number of gpio irqs. It also insures
that the gpios get requested before they are connected to an interrupt.
A number of drivers either don't do the gpio_request or they don't
set the gpio as an input before doing the request_irq.

> - Coupling it to gpiolib sort of defeats the point of saying
> that gpiolib is just an *implementation* of the interface.
> Where's the code to run for non-gpiolib platforms?

But if a driver is using the gpiolib interface calls wouldn't that
prevent that driver from working on a platform that does not support
gpiolib? File include/linux/gpio.h defines all the gpiolib calls to
either return an error code or WARN_ON(1) when called.

> - Since it implicitly couples gpio_request() to a flavor of
> request_irq(), it precludes sharing those IRQs.

Can't the IRQ be shared by passing IRQF_SHARED as one of the flags?

> Basically, board setup can know that the GPIO is being used
> as an IRQ, and do the request()/direction_input() before it
> passes gpio_to_irq() to the driver. That's worked in every
> case I've happened across so far...

I agree it works as-is right now. I just thought this would be a
convenient wrapper to handle a common setup step. If it's overkill
or not appropriate to add to gpiolib please disregard the patch.

I have cleaned up the patch to be more inline with how the various
drivers would use it. If there is any potential interest I will
repost the patch.

Thanks for your comments,

 \ /
  Last update: 2009-06-09 20:13    [W:0.061 / U:4.888 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site