All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Arnd Bergmann <arnd@arndb.de>
Cc: Linus Walleij <linus.walleij@linaro.org>,
	grant.likely@secretlab.ca, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linus.walleij@stericsson.com,
	Samuel Ortiz <sameo@linux.intel.com>
Subject: Re: [PATCH 06/14] mfd: Initialise the DB8500 PRCMU driver at core_initcall time
Date: Tue, 12 Jun 2012 14:23:21 +0100	[thread overview]
Message-ID: <4FD742C9.7090603@linaro.org> (raw)
In-Reply-To: <201206121259.38807.arnd@arndb.de>

On 12/06/12 13:59, Arnd Bergmann wrote:
> On Tuesday 12 June 2012, Lee Jones wrote:
>> On 11/06/12 22:01, Linus Walleij wrote:
>>> Hm what shall we do when we run out of initlevels? I think this was the
>>> kind of thing that deferred probe should solve. Usually changing this kind
>>> of thing has side effects so I'm a bit hesitant.
>>
>> Ah yes, I remember now. The IRQ domain needs to be in place before the
>> Device Tree is parsed by the Open Firmware subsystem. If it's not the
>> error "no irq domain found" is triggered and the IRQs are never mapped.
>>
>> I'd be happy to take a second opinion, but I believe this (and the other
>> core_initcall patch) is required.
>
> It's still just a hack. The real solution that we discussed last time it
> came up is to defer the translation of irq numbers until device driver
> probe time, and bail out with -EPROBE_DEFER if you try to use a device
> whose interrupt is not available yet.

Ah yes, this:

> /*
>  * FIXME: Should we set up the GPIO domain here?
>  *
>  * The problem is that we cannot put the interrupt resources into the platform
>  * device until the irqdomain has been added. Right now, we set the GIC interrupt
>  * domain from init_irq(), then load the gpio driver from
>  * core_initcall(nmk_gpio_init) and add the platform devices from
>  * arch_initcall(customize_machine).
>  *
>  * This feels fragile because it depends on the gpio device getting probed
>  * _before_ any device uses the gpio interrupts.
> */

But your suggestion above involves some heavy refactoring of how Device 
Tree works. Meanwhile the ab8500 will not work as an IRQ controller 
until we either complete the work or use the same solution as we did for 
the Nomadik GPIO controller. I think for now at least we should continue 
to work on enablement and leave the 'nice to have's until last. We are 
doing nothing new here, just bringing the ab8500 IRQ controller into 
line with the Nomadik one.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
M: +44 77 88 633 515
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

WARNING: multiple messages have this Message-ID (diff)
From: lee.jones@linaro.org (Lee Jones)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 06/14] mfd: Initialise the DB8500 PRCMU driver at core_initcall time
Date: Tue, 12 Jun 2012 14:23:21 +0100	[thread overview]
Message-ID: <4FD742C9.7090603@linaro.org> (raw)
In-Reply-To: <201206121259.38807.arnd@arndb.de>

On 12/06/12 13:59, Arnd Bergmann wrote:
> On Tuesday 12 June 2012, Lee Jones wrote:
>> On 11/06/12 22:01, Linus Walleij wrote:
>>> Hm what shall we do when we run out of initlevels? I think this was the
>>> kind of thing that deferred probe should solve. Usually changing this kind
>>> of thing has side effects so I'm a bit hesitant.
>>
>> Ah yes, I remember now. The IRQ domain needs to be in place before the
>> Device Tree is parsed by the Open Firmware subsystem. If it's not the
>> error "no irq domain found" is triggered and the IRQs are never mapped.
>>
>> I'd be happy to take a second opinion, but I believe this (and the other
>> core_initcall patch) is required.
>
> It's still just a hack. The real solution that we discussed last time it
> came up is to defer the translation of irq numbers until device driver
> probe time, and bail out with -EPROBE_DEFER if you try to use a device
> whose interrupt is not available yet.

Ah yes, this:

> /*
>  * FIXME: Should we set up the GPIO domain here?
>  *
>  * The problem is that we cannot put the interrupt resources into the platform
>  * device until the irqdomain has been added. Right now, we set the GIC interrupt
>  * domain from init_irq(), then load the gpio driver from
>  * core_initcall(nmk_gpio_init) and add the platform devices from
>  * arch_initcall(customize_machine).
>  *
>  * This feels fragile because it depends on the gpio device getting probed
>  * _before_ any device uses the gpio interrupts.
> */

But your suggestion above involves some heavy refactoring of how Device 
Tree works. Meanwhile the ab8500 will not work as an IRQ controller 
until we either complete the work or use the same solution as we did for 
the Nomadik GPIO controller. I think for now at least we should continue 
to work on enablement and leave the 'nice to have's until last. We are 
doing nothing new here, just bringing the ab8500 IRQ controller into 
line with the Nomadik one.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
M: +44 77 88 633 515
Linaro.org ? Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

  reply	other threads:[~2012-06-12 13:23 UTC|newest]

Thread overview: 234+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-11 15:24 [PATCH 00/14] Final (large) batch of Snowball Device Tree Enablement Lee Jones
2012-06-11 15:24 ` Lee Jones
2012-06-11 15:24 ` [PATCH 01/14] rtc: ab8500-rtc: IRQF_ONESHOT when requesting a threaded IRQ Lee Jones
2012-06-11 15:24   ` Lee Jones
2012-06-11 15:31   ` Arnd Bergmann
2012-06-11 15:31     ` Arnd Bergmann
2012-06-11 15:37     ` Lee Jones
2012-06-11 15:37       ` Lee Jones
2012-06-11 15:51       ` Greg Kroah-Hartman
2012-06-11 15:51         ` Greg Kroah-Hartman
2012-06-11 16:01         ` Lee Jones
2012-06-11 16:01           ` Lee Jones
2012-06-11 20:54           ` [rtc-linux] " Linus Walleij
2012-06-11 20:54             ` Linus Walleij
2012-06-12  8:57     ` Lee Jones
2012-06-12  8:57       ` Lee Jones
2012-06-13 22:25       ` Andrew Morton
2012-06-13 22:25         ` Andrew Morton
2012-06-14  7:14         ` Lee Jones
2012-06-14  7:14           ` Lee Jones
2012-06-14  7:30           ` Andrew Morton
2012-06-14  7:30             ` Andrew Morton
2012-06-14  8:02             ` Lee Jones
2012-06-14  8:02               ` Lee Jones
2012-06-11 15:24 ` [PATCH 02/14] rtc: Ensure correct probing of the AB8500 RTC when Device Tree is enabled Lee Jones
2012-06-11 15:24   ` Lee Jones
2012-06-11 20:56   ` [rtc-linux] " Linus Walleij
2012-06-11 20:56     ` Linus Walleij
2012-07-02 15:23   ` Lee Jones
2012-07-02 15:23     ` Lee Jones
2012-06-11 15:24 ` [PATCH 03/14] mfd: ab8500-gpadc: Enable IRQF_ONESHOT when requesting a threaded IRQ Lee Jones
2012-06-11 15:24   ` Lee Jones
2012-06-11 20:54   ` Linus Walleij
2012-06-11 20:54     ` Linus Walleij
2012-06-12  8:58   ` Lee Jones
2012-06-12  8:58     ` Lee Jones
2012-06-11 15:24 ` [PATCH 04/14] mfd: Remove redundant Kconfig entry Lee Jones
2012-06-11 15:24   ` Lee Jones
2012-06-11 20:57   ` Linus Walleij
2012-06-11 20:57     ` Linus Walleij
2012-06-11 15:24 ` [PATCH 05/14] mfd: Enable DT probing of the DB8500 PRCMU Lee Jones
2012-06-11 15:24   ` Lee Jones
2012-06-11 20:58   ` Linus Walleij
2012-06-11 20:58     ` Linus Walleij
2012-06-29 14:47   ` Samuel Ortiz
2012-06-29 14:47     ` Samuel Ortiz
2012-06-11 15:24 ` [PATCH 06/14] mfd: Initialise the DB8500 PRCMU driver at core_initcall time Lee Jones
2012-06-11 15:24   ` Lee Jones
2012-06-11 21:01   ` Linus Walleij
2012-06-11 21:01     ` Linus Walleij
2012-06-12  8:11     ` Lee Jones
2012-06-12  8:11       ` Lee Jones
2012-06-12  8:35     ` Lee Jones
2012-06-12  8:35       ` Lee Jones
2012-06-12 12:59       ` Arnd Bergmann
2012-06-12 12:59         ` Arnd Bergmann
2012-06-12 13:23         ` Lee Jones [this message]
2012-06-12 13:23           ` Lee Jones
2012-06-12 14:49           ` Arnd Bergmann
2012-06-12 14:49             ` Arnd Bergmann
2012-06-12 15:39             ` Lee Jones
2012-06-12 15:39               ` Lee Jones
2012-06-18  8:32             ` Lee Jones
2012-06-18  8:32               ` Lee Jones
2012-06-29 14:48   ` Samuel Ortiz
2012-06-29 14:48     ` Samuel Ortiz
2012-06-11 15:25 ` [PATCH 07/14] mfd: Initialise the AB8500 " Lee Jones
2012-06-11 15:25   ` Lee Jones
2012-06-11 21:03   ` Linus Walleij
2012-06-11 21:03     ` Linus Walleij
2012-06-12  8:13     ` Lee Jones
2012-06-12  8:13       ` Lee Jones
2012-06-12  8:37     ` Lee Jones
2012-06-12  8:37       ` Lee Jones
2012-06-29 14:51   ` Samuel Ortiz
2012-06-29 14:51     ` Samuel Ortiz
2012-06-11 15:25 ` [PATCH 08/14] mfd: Add IRQ domain support for the AB8500 Lee Jones
2012-06-11 15:25   ` Lee Jones
2012-06-11 21:33   ` Linus Walleij
2012-06-11 21:33     ` Linus Walleij
2012-06-12  8:01     ` Lee Jones
2012-06-12  8:01       ` Lee Jones
2012-06-14 18:32   ` Mark Brown
2012-06-14 18:32     ` Mark Brown
2012-06-15 12:49     ` Lee Jones
2012-06-15 12:49       ` Lee Jones
2012-06-18  9:02     ` Lee Jones
2012-06-18  9:02       ` Lee Jones
2012-06-18  9:32       ` Mark Brown
2012-06-18  9:32         ` Mark Brown
2012-06-18 10:20       ` Russell King - ARM Linux
2012-06-18 10:20         ` Russell King - ARM Linux
2012-06-18 18:56         ` Mark Brown
2012-06-18 18:56           ` Mark Brown
2012-06-20 13:00           ` Lee Jones
2012-06-20 13:00             ` Lee Jones
2012-06-21  7:37             ` Linus Walleij
2012-06-21  7:37               ` Linus Walleij
2012-06-26  9:04               ` Lee Jones
2012-06-26  9:04                 ` Lee Jones
2012-06-20  9:12         ` Linus Walleij
2012-06-20  9:12           ` Linus Walleij
2012-06-11 15:25 ` [PATCH 09/14] i2c: Add Device Tree support to the Nomadik I2C driver Lee Jones
2012-06-11 15:25   ` Lee Jones
2012-06-11 19:05   ` Wolfram Sang
2012-06-11 19:05     ` Wolfram Sang
2012-06-12  7:23     ` Lee Jones
2012-06-12  7:23       ` Lee Jones
2012-06-12  8:52     ` Lee Jones
2012-06-12  8:52       ` Lee Jones
2012-06-12  8:52       ` Lee Jones
2012-06-12  8:57       ` Wolfram Sang
2012-06-12  8:57         ` Wolfram Sang
2012-06-12  8:57         ` Wolfram Sang
2012-06-11 20:37   ` Linus Walleij
2012-06-11 20:37     ` Linus Walleij
2012-06-11 20:37     ` Linus Walleij
2012-06-12  7:34     ` Lee Jones
2012-06-12  7:34       ` Lee Jones
2012-06-12  7:34       ` Lee Jones
2012-06-13  5:40       ` Linus Walleij
2012-06-13  5:40         ` Linus Walleij
2012-06-13  5:40         ` Linus Walleij
2012-06-13  7:01         ` Lee Jones
2012-06-13  7:01           ` Lee Jones
2012-06-13  7:01           ` Lee Jones
2012-06-13  8:12           ` Linus Walleij
2012-06-13  8:12             ` Linus Walleij
2012-06-13 12:28             ` Lee Jones
2012-06-13 12:28               ` Lee Jones
2012-06-13 12:28               ` Lee Jones
2012-06-14 18:36               ` Mark Brown
2012-06-14 18:36                 ` Mark Brown
2012-06-14 18:36                 ` Mark Brown
2012-06-14 18:46                 ` Mark Brown
2012-06-14 18:46                   ` Mark Brown
2012-06-14 18:46                   ` Mark Brown
2012-06-14 18:59                   ` Lee Jones
2012-06-14 18:59                     ` Lee Jones
2012-06-14 18:57                 ` Lee Jones
2012-06-14 18:57                   ` Lee Jones
2012-06-14 18:57                   ` Lee Jones
2012-06-15  9:32                   ` Mark Brown
2012-06-15  9:32                     ` Mark Brown
2012-06-15  9:32                     ` Mark Brown
2012-06-15 10:00                     ` Lee Jones
2012-06-15 10:00                       ` Lee Jones
2012-06-15 10:32                   ` Russell King - ARM Linux
2012-06-15 10:32                     ` Russell King - ARM Linux
2012-06-15 11:43                     ` Lee Jones
2012-06-15 11:43                       ` Lee Jones
2012-06-15 11:43                       ` Lee Jones
2012-06-13 16:07     ` [PATCH 1/3] " Lee Jones
2012-06-13 16:07       ` Lee Jones
2012-06-13 16:07       ` Lee Jones
2012-06-14 17:12       ` Linus Walleij
2012-06-14 17:12         ` Linus Walleij
2012-06-14 17:12         ` Linus Walleij
2012-06-15  9:02         ` Lee Jones
2012-06-15  9:02           ` Lee Jones
2012-06-15  9:02           ` Lee Jones
     [not found]           ` <CAE2-_9rRYxjU9QQgtBv9ReMY5x+oRiJG1cDQahYHanjDrwVUYA@mail.gmail.com>
2012-06-15 11:50             ` Fwd: " Srinidhi Kasagar
2012-06-15 11:50               ` Srinidhi Kasagar
2012-06-15 11:50               ` Srinidhi Kasagar
2012-06-15 12:45               ` Lee Jones
2012-06-15 12:45                 ` Lee Jones
2012-06-15 12:45                 ` Lee Jones
2012-06-15 13:05                 ` Srinidhi Kasagar
2012-06-15 13:05                   ` Srinidhi Kasagar
2012-06-15 13:05                   ` Srinidhi Kasagar
2012-06-15 13:18                   ` Lee Jones
2012-06-15 13:18                     ` Lee Jones
2012-06-15 13:18                     ` Lee Jones
2012-06-15 13:37                     ` Srinidhi Kasagar
2012-06-15 13:37                       ` Srinidhi Kasagar
2012-06-15 13:37                       ` Srinidhi Kasagar
2012-06-15 13:58                       ` Lee Jones
2012-06-15 13:58                         ` Lee Jones
2012-06-15 13:58                         ` Lee Jones
2012-06-17 17:43                     ` Linus Walleij
2012-06-17 17:43                       ` Linus Walleij
2012-06-17 17:43                       ` Linus Walleij
2012-06-18  7:18                       ` Lee Jones
2012-06-18  7:18                         ` Lee Jones
2012-06-18  7:18                         ` Lee Jones
2012-06-18  7:58                         ` Srinidhi Kasagar
2012-06-18  7:58                           ` Srinidhi Kasagar
2012-06-18  7:58                           ` Srinidhi Kasagar
2012-06-18  8:41                           ` Lee Jones
2012-06-18  8:41                             ` Lee Jones
2012-06-18  8:41                             ` Lee Jones
2012-06-13 16:08     ` [PATCH 2/3] ARM: ux500: Add i2c configurations to the Device Tree for DB8500 based devices Lee Jones
2012-06-13 16:08       ` Lee Jones
2012-06-14 17:13       ` Linus Walleij
2012-06-14 17:13         ` Linus Walleij
2012-06-14 17:13         ` Linus Walleij
2012-06-18 11:29       ` Linus Walleij
2012-06-18 11:29         ` Linus Walleij
2012-06-18 11:29         ` Linus Walleij
2012-06-18 11:37         ` Lee Jones
2012-06-18 11:37           ` Lee Jones
2012-06-18 11:37           ` Lee Jones
2012-06-13 16:08     ` [PATCH 3/3] Documentation: Device Tree binding information for i2c-nomadik driver Lee Jones
2012-06-13 16:08       ` Lee Jones
2012-06-13 16:08       ` Lee Jones
2012-06-14 17:13       ` Linus Walleij
2012-06-14 17:13         ` Linus Walleij
2012-06-14 17:13         ` Linus Walleij
2012-06-11 15:25 ` [PATCH 10/14] Input: Add Device Tree support to the ab8500-ponkey driver Lee Jones
2012-06-11 15:25   ` Lee Jones
2012-06-11 15:25 ` [PATCH 11/14] usb: otg: Enable probing of the ab8500 during a Device Tree boot Lee Jones
2012-06-11 15:25   ` Lee Jones
2012-06-11 21:39   ` Linus Walleij
2012-06-11 21:39     ` Linus Walleij
2012-07-02 15:24   ` Lee Jones
2012-07-02 15:24     ` Lee Jones
2012-06-11 15:25 ` [PATCH 12/14] ARM: ux500: Correctly reference IRQs supplied by the AB8500 from Device Tree Lee Jones
2012-06-11 15:25   ` Lee Jones
2012-06-11 21:41   ` Linus Walleij
2012-06-11 21:41     ` Linus Walleij
2012-06-11 15:25 ` [PATCH 13/14] ARM: ux500: Enable the AB8500 RTC for all DT:ed DB8500 based devices Lee Jones
2012-06-11 15:25   ` Lee Jones
2012-06-11 21:42   ` Linus Walleij
2012-06-11 21:42     ` Linus Walleij
2012-06-11 15:25 ` [PATCH 14/14] ARM: ux500: Move rtc-pl031 registration to Device Tree when enabled Lee Jones
2012-06-11 15:25   ` Lee Jones
2012-06-11 21:43   ` Linus Walleij
2012-06-11 21:43     ` Linus Walleij
2012-06-12  8:03     ` Lee Jones
2012-06-12  8:03       ` Lee Jones
2012-06-12 14:32       ` Linus Walleij
2012-06-12 14:32         ` Linus Walleij
2012-06-12 14:44         ` Lee Jones
2012-06-12 14:44           ` Lee Jones

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=4FD742C9.7090603@linaro.org \
    --to=lee.jones@linaro.org \
    --cc=arnd@arndb.de \
    --cc=grant.likely@secretlab.ca \
    --cc=linus.walleij@linaro.org \
    --cc=linus.walleij@stericsson.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sameo@linux.intel.com \
    /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.