All of lore.kernel.org
 help / color / mirror / Atom feed
From: lars@metafoo.de (Lars-Peter Clausen)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V2] media: i2c: Add ADV761X support
Date: Fri, 29 Nov 2013 14:48:03 +0100	[thread overview]
Message-ID: <52989B13.8010207@metafoo.de> (raw)
In-Reply-To: <CACRpkdYuiwH5MzdY3HO7oBSGLqRr5t4HMvGscjsf4QL2G1wiNw@mail.gmail.com>

On 11/29/2013 02:42 PM, Linus Walleij wrote:
> On Fri, Nov 29, 2013 at 11:45 AM, Lars-Peter Clausen <lars@metafoo.de> wrote:
>> On 11/29/2013 11:37 AM, Linus Walleij wrote:
> (...)
>>> Specifically you should be able to request an IRQ from the irq_chip
>>> portions of the driver without first requesting the GPIO line.
>>>
>>> Some drivers already support this.
>>>
>>> We added an internal API to the gpiolib so that the lib, *internally*
>>> can be made aware that a certain GPIO line is used for IRQs,
>>> see commit d468bf9ecaabd3bf3a6134e5a369ced82b1d1ca1
>>> "gpio: add API to be strict about GPIO IRQ usage"
>>>
>>> So I guess the answer to the question is something like, fix
>>> the GPIO driver to stop requiring the GPIO lines to be requested
>>> and configured before being used as IRQs, delete that code,
>>> and while you're at it add a call to gpiod_lock_as_irq()
>>> to your GPIO driver in the right spot: examples are on the
>>> mailing list and my mark-irqs branch in the GPIO tree.
>>
>> As far as I understand it this already works more or less with the driver.
>> The problem is that the IRQ numbers are dynamically allocated, while the
>> GPIO numbers apparently are not. So the board code knows the the GPIO number
>> at compile time and can pass this to the diver which then does a gpio_to_irq
>> to lookup the IRQ number. This of course isn't really a problem with
>> devicetree, but only with platform board code.
> 
> This has been solved *also* for platform board code by the new, fresh
> GPIO descriptor mechanism, see Documentation/gpio/*
> in Torvalds' git HEAD.

This works when the GPIO numbers are dynamically allocated (which are static
in this case), but not for IRQ numbers.

- Lars

WARNING: multiple messages have this Message-ID (diff)
From: Lars-Peter Clausen <lars@metafoo.de>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: Alexandre Courbot <acourbot@nvidia.com>,
	Mika Westerberg <mika.westerberg@linux.intel.com>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>,
	Stephen Warren <swarren@wwwdotorg.org>,
	Valentine <valentine.barshak@cogentembedded.com>,
	Hans Verkuil <hansverk@cisco.com>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	Mauro Carvalho Chehab <m.chehab@samsung.com>,
	Hans Verkuil <hans.verkuil@cisco.com>,
	Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	Simon Horman <horms@verge.net.au>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Wolfram Sang <wsa@the-dreams.de>
Subject: Re: [PATCH V2] media: i2c: Add ADV761X support
Date: Fri, 29 Nov 2013 14:48:03 +0100	[thread overview]
Message-ID: <52989B13.8010207@metafoo.de> (raw)
In-Reply-To: <CACRpkdYuiwH5MzdY3HO7oBSGLqRr5t4HMvGscjsf4QL2G1wiNw@mail.gmail.com>

On 11/29/2013 02:42 PM, Linus Walleij wrote:
> On Fri, Nov 29, 2013 at 11:45 AM, Lars-Peter Clausen <lars@metafoo.de> wrote:
>> On 11/29/2013 11:37 AM, Linus Walleij wrote:
> (...)
>>> Specifically you should be able to request an IRQ from the irq_chip
>>> portions of the driver without first requesting the GPIO line.
>>>
>>> Some drivers already support this.
>>>
>>> We added an internal API to the gpiolib so that the lib, *internally*
>>> can be made aware that a certain GPIO line is used for IRQs,
>>> see commit d468bf9ecaabd3bf3a6134e5a369ced82b1d1ca1
>>> "gpio: add API to be strict about GPIO IRQ usage"
>>>
>>> So I guess the answer to the question is something like, fix
>>> the GPIO driver to stop requiring the GPIO lines to be requested
>>> and configured before being used as IRQs, delete that code,
>>> and while you're at it add a call to gpiod_lock_as_irq()
>>> to your GPIO driver in the right spot: examples are on the
>>> mailing list and my mark-irqs branch in the GPIO tree.
>>
>> As far as I understand it this already works more or less with the driver.
>> The problem is that the IRQ numbers are dynamically allocated, while the
>> GPIO numbers apparently are not. So the board code knows the the GPIO number
>> at compile time and can pass this to the diver which then does a gpio_to_irq
>> to lookup the IRQ number. This of course isn't really a problem with
>> devicetree, but only with platform board code.
> 
> This has been solved *also* for platform board code by the new, fresh
> GPIO descriptor mechanism, see Documentation/gpio/*
> in Torvalds' git HEAD.

This works when the GPIO numbers are dynamically allocated (which are static
in this case), but not for IRQ numbers.

- Lars

  reply	other threads:[~2013-11-29 13:48 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-15 12:54 [PATCH V2] media: i2c: Add ADV761X support Valentine Barshak
2013-11-19  9:50 ` Hans Verkuil
2013-11-20 10:14   ` Valentine
2013-11-20 11:19     ` Hans Verkuil
2013-11-20 12:24       ` Valentine
2013-11-20 15:42         ` Hans Verkuil
2013-11-20 15:53           ` Valentine
2013-11-26 21:28             ` Valentine
2013-11-26 21:43               ` Lars-Peter Clausen
2013-11-26 21:57                 ` Valentine
2013-11-26 22:02                   ` Lars-Peter Clausen
2013-11-26 22:00                 ` Laurent Pinchart
2013-11-26 22:03                   ` Lars-Peter Clausen
2013-11-26 22:03                     ` Laurent Pinchart
2013-11-26 22:06                       ` Lars-Peter Clausen
2013-11-29 20:07                         ` Lars-Peter Clausen
2013-11-27  8:21               ` Hans Verkuil
2013-11-27  9:59                 ` Lars-Peter Clausen
2013-11-27 11:26                   ` Hans Verkuil
2013-11-27 10:29                 ` Valentine
2013-11-27 11:18                   ` Hans Verkuil
2013-11-27 11:39                 ` Laurent Pinchart
2013-11-27 12:14                   ` Hans Verkuil
2013-11-27 12:32                     ` Valentine
2013-11-27 13:07                       ` Lars-Peter Clausen
2013-11-27 13:46                         ` Valentine
2013-11-27 16:40                       ` Laurent Pinchart
2013-11-27 16:40                         ` Laurent Pinchart
2013-11-27 16:48                         ` Lars-Peter Clausen
2013-11-27 16:48                           ` Lars-Peter Clausen
2013-11-29 10:37                         ` Linus Walleij
2013-11-29 10:37                           ` Linus Walleij
2013-11-29 10:45                           ` Lars-Peter Clausen
2013-11-29 10:45                             ` Lars-Peter Clausen
2013-11-29 12:14                             ` Valentine
2013-11-29 12:14                               ` Valentine
2013-11-29 13:46                               ` Linus Walleij
2013-11-29 13:46                                 ` Linus Walleij
2013-11-29 13:42                             ` Linus Walleij
2013-11-29 13:42                               ` Linus Walleij
2013-11-29 13:48                               ` Lars-Peter Clausen [this message]
2013-11-29 13:48                                 ` Lars-Peter Clausen
2013-11-29 19:52                                 ` Linus Walleij
2013-11-29 19:52                                   ` Linus Walleij
2013-11-29 20:03                                   ` Laurent Pinchart
2013-11-29 20:03                                     ` Laurent Pinchart
2013-11-29 20:05                                   ` Lars-Peter Clausen
2013-11-29 20:05                                     ` Lars-Peter Clausen
2013-11-29 20:09                                     ` Linus Walleij
2013-11-29 20:09                                       ` Linus Walleij
2013-11-27 14:50                     ` Lars-Peter Clausen
2013-11-27 16:29                       ` Laurent Pinchart
2013-11-27 16:32                     ` Laurent Pinchart

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=52989B13.8010207@metafoo.de \
    --to=lars@metafoo.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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.