All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Warren <swarren@wwwdotorg.org>
To: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: Samuel Ortiz <sameo@linux.intel.com>,
	linux-kernel@vger.kernel.org, Stephen Warren <swarren@nvidia.com>
Subject: Re: [PATCH] mfd: arizona: convert to regmap_add_irq_chips
Date: Mon, 30 Jul 2012 11:05:08 -0600	[thread overview]
Message-ID: <5016BEC4.5000600@wwwdotorg.org> (raw)
In-Reply-To: <20120729203854.GF4384@opensource.wolfsonmicro.com>

On 07/29/2012 02:38 PM, Mark Brown wrote:
> On Fri, Jul 27, 2012 at 01:02:56PM -0600, Stephen Warren wrote:
>> From: Stephen Warren <swarren@nvidia.com>
>>
>> The Arizona chip contains a single interrupt that represents the unified
>> output of multiple internal interrupt controllers. This pattern has been
>> factored out into regmap-irq, so convert the Arizona driver to use the
>> new regmap-irq code.
> 
> So, I didn't like the patch this depends on but anyway..
> 
>> 1) regmap_add_irq_chips() calls regmap_add_irq_chip() with irq==0 rather
>>    than -1, so in turn irq_domain_add_linear() is called rather than
>>    irq_domain_add_legacy(). This change could be avoided by providing an
>>    irq_bases array to regmap_add_irq_chips().
> 
> This is a problem.

OK, can you explain why? Is the problem the difference between the two
types of IRQ domain? I would have assumed this was an internal detail of
the driver hence not an issue. I assume there's no issue with
known/static IRQ numbers, since both 0 and -1 end up dynamically
allocating the IRQ bases IIRC.

>> 2) regmap_add_irq_chips() requests the top-level interrupt itself, so this
>>    happens before the Arizona driver hooks the child BOOT_DONE and
>>    CTRLIF_ERR interrupts. In the original, all the IRQ chips were created
>>    first, and then the top-level IRQ was requested. This may cause a
>>    functional difference if those interrupts are pending at probe() time.
> 
> Boot done is very likely to be asserted.

Hmmm. Perhaps that means regmap_add_irq_chips() should be split into two
parts; one to create all the IRQ chips and hook everything together, and
the second to actually enable the interrupt.

  reply	other threads:[~2012-07-30 17:05 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-27 19:02 [PATCH] mfd: arizona: convert to regmap_add_irq_chips Stephen Warren
2012-07-29 20:38 ` Mark Brown
2012-07-30 17:05   ` Stephen Warren [this message]
2012-07-30 18:03     ` Mark Brown
2012-07-31 17:20       ` Stephen Warren
2012-07-31 17:22         ` Mark Brown

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=5016BEC4.5000600@wwwdotorg.org \
    --to=swarren@wwwdotorg.org \
    --cc=broonie@opensource.wolfsonmicro.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sameo@linux.intel.com \
    --cc=swarren@nvidia.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.