All of lore.kernel.org
 help / color / mirror / Atom feed
From: boris.brezillon@free-electrons.com (Boris Brezillon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 3/5] irqchip: Add DT binding doc for the virtual irq demuxer chip
Date: Fri, 20 Feb 2015 15:53:47 +0100	[thread overview]
Message-ID: <20150220155347.1477b02d@bbrezillon> (raw)
In-Reply-To: <20150220142208.GJ13659@leverpostej>

Hi Mark,

On Fri, 20 Feb 2015 14:22:08 +0000
Mark Rutland <mark.rutland@arm.com> wrote:

> Hi Boris,
> 
> On Wed, Feb 11, 2015 at 04:38:23PM +0000, Boris Brezillon wrote:
> 
> [...]
> 
> > For the list of impacted drivers, you can have a look at this series [1]
> > (patches 2 to 5), and I'll take care of the testing part once every one
> > has agreed on the solution ;-).
> > 
> > [1]https://lkml.org/lkml/2014/12/15/552
> 
> Looking at those:
> 
> * The pmc looks like it could be a valid use of the new flag. It also
>   seems to function as an irqchip.
>   
>   Do any of its child IRQs need to be handled during the suspend-resume
>   cycle? If so using IRQF_NO_SUSPEND would seem to be valid.

No they don't, they are used for clock activation only, and thus should
be disabled on suspend.

> 
> * atmel_serial seems to be intended to be used as a wakeup device (given
>   it calls device_set_wakeup_enable). Therefore it needs to call
>   enable_irq_wake, and when it does so it can share an IRQ with other
>   interrupts, just not IRQF_NO_SUSPEND interrupts.

I'll have a look, but AFAIR serial core already taking care of that.

>   
>   None of the approaches thus far can fix the fundamental mismatch
>   between wakeup interrupts and IRQF_NO_SUSPEND interrupts.
> 
> * Similarly, rtc-at91rm9200 and rtc-at91sam9 are intended to be used as 
>   wakeup devices. They call enable_irq_wake (though don't bother
>   checking the return value). They can share an IRQ with other
>   interrupts, just not IRQF_NO_SUSPEND interrupts.

Yep.

> 
> * at91sam9_wdt seems to be fundamentally incompatible with suspend. If
>   the watchdog cannot be disabled, and you need to handle it during
>   suspend, then it needs to be a wakeup interrupt, not an
>   IRQF_NO_SUSPEND interrupt.

You forgot the PIT timer, which is the one in cause here (no other
drivers are specifying this IRQF_NO_SUSPEND flag), and, as you already
know, a timer sets the IRQF_NO_SUSPEND flag.

> 
> As far as I can see, the flag or virtual irqchip approaches only help
> the PMC case, and even then might not be necessary. All the others seem
> to be relying on guarantees the genirq layer don't provide, and fixing
> that would mean moving them further from IRQF_NO_SUSPEND.

I don't know what you're trying to prove here, but I never said my goal
was to set IRQF_NO_SUSPEND flags on existing at91 drivers ?
The problem here, is that all those IPs are sharing the irq line with a
timer which sets IRQF_NO_SUSPEND.

I just want to be able to share an irq line with a timer and other
devices that do not set IRQF_NO_SUSPEND.
Could we focus on that ?

Best Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

WARNING: multiple messages have this Message-ID (diff)
From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Mark Rutland <mark.rutland@arm.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Thomas Gleixner <tglx@linutronix.de>,
	Jason Cooper <jason@lakedaemon.net>,
	Nicolas Ferre <nicolas.ferre@atmel.com>,
	Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>,
	Alexandre Belloni <alexandre.belloni@free-electrons.com>,
	Rob Herring <robh+dt@kernel.org>, Pawel Moll <Pawel.Moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v4 3/5] irqchip: Add DT binding doc for the virtual irq demuxer chip
Date: Fri, 20 Feb 2015 15:53:47 +0100	[thread overview]
Message-ID: <20150220155347.1477b02d@bbrezillon> (raw)
In-Reply-To: <20150220142208.GJ13659@leverpostej>

Hi Mark,

On Fri, 20 Feb 2015 14:22:08 +0000
Mark Rutland <mark.rutland@arm.com> wrote:

> Hi Boris,
> 
> On Wed, Feb 11, 2015 at 04:38:23PM +0000, Boris Brezillon wrote:
> 
> [...]
> 
> > For the list of impacted drivers, you can have a look at this series [1]
> > (patches 2 to 5), and I'll take care of the testing part once every one
> > has agreed on the solution ;-).
> > 
> > [1]https://lkml.org/lkml/2014/12/15/552
> 
> Looking at those:
> 
> * The pmc looks like it could be a valid use of the new flag. It also
>   seems to function as an irqchip.
>   
>   Do any of its child IRQs need to be handled during the suspend-resume
>   cycle? If so using IRQF_NO_SUSPEND would seem to be valid.

No they don't, they are used for clock activation only, and thus should
be disabled on suspend.

> 
> * atmel_serial seems to be intended to be used as a wakeup device (given
>   it calls device_set_wakeup_enable). Therefore it needs to call
>   enable_irq_wake, and when it does so it can share an IRQ with other
>   interrupts, just not IRQF_NO_SUSPEND interrupts.

I'll have a look, but AFAIR serial core already taking care of that.

>   
>   None of the approaches thus far can fix the fundamental mismatch
>   between wakeup interrupts and IRQF_NO_SUSPEND interrupts.
> 
> * Similarly, rtc-at91rm9200 and rtc-at91sam9 are intended to be used as 
>   wakeup devices. They call enable_irq_wake (though don't bother
>   checking the return value). They can share an IRQ with other
>   interrupts, just not IRQF_NO_SUSPEND interrupts.

Yep.

> 
> * at91sam9_wdt seems to be fundamentally incompatible with suspend. If
>   the watchdog cannot be disabled, and you need to handle it during
>   suspend, then it needs to be a wakeup interrupt, not an
>   IRQF_NO_SUSPEND interrupt.

You forgot the PIT timer, which is the one in cause here (no other
drivers are specifying this IRQF_NO_SUSPEND flag), and, as you already
know, a timer sets the IRQF_NO_SUSPEND flag.

> 
> As far as I can see, the flag or virtual irqchip approaches only help
> the PMC case, and even then might not be necessary. All the others seem
> to be relying on guarantees the genirq layer don't provide, and fixing
> that would mean moving them further from IRQF_NO_SUSPEND.

I don't know what you're trying to prove here, but I never said my goal
was to set IRQF_NO_SUSPEND flags on existing at91 drivers ?
The problem here, is that all those IPs are sharing the irq line with a
timer which sets IRQF_NO_SUSPEND.

I just want to be able to share an irq line with a timer and other
devices that do not set IRQF_NO_SUSPEND.
Could we focus on that ?

Best Regards,

Boris

-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

  reply	other threads:[~2015-02-20 14:53 UTC|newest]

Thread overview: 165+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-29 10:33 [PATCH v4 0/5] ARM: at91: fix irq_pm_install_action WARNING Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-01-29 10:33 ` Boris Brezillon
2015-01-29 10:33 ` [PATCH v4 1/5] genirq: Authorize chained handlers to remain disabled when initialized Boris Brezillon
2015-01-29 10:33   ` Boris Brezillon
2015-01-29 10:33   ` Boris Brezillon
2015-01-29 10:33 ` [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation Boris Brezillon
2015-01-29 10:33   ` Boris Brezillon
2015-02-10 15:00   ` Peter Zijlstra
2015-02-10 15:00     ` Peter Zijlstra
2015-02-10 15:20     ` Boris Brezillon
2015-02-10 15:20       ` Boris Brezillon
2015-02-10 15:43     ` [PATCH] genirq: fix virtual irq demuxer related comments Boris Brezillon
2015-02-10 15:43       ` Boris Brezillon
2015-02-10 16:14       ` Peter Zijlstra
2015-02-10 16:14         ` Peter Zijlstra
2015-02-10 16:14         ` Peter Zijlstra
2015-02-20 16:12         ` Mark Rutland
2015-02-20 16:12           ` Mark Rutland
2015-02-20 16:17           ` Peter Zijlstra
2015-02-20 16:17             ` Peter Zijlstra
2015-02-10 15:48   ` [PATCH v4 2/5] irqchip: add virtual demultiplexer implementation Mark Rutland
2015-02-10 15:48     ` Mark Rutland
2015-02-10 15:48     ` Mark Rutland
2015-01-29 10:33 ` [PATCH v4 3/5] irqchip: Add DT binding doc for the virtual irq demuxer chip Boris Brezillon
2015-01-29 10:33   ` Boris Brezillon
2015-02-10 15:36   ` Mark Rutland
2015-02-10 15:36     ` Mark Rutland
2015-02-10 15:52     ` Boris Brezillon
2015-02-10 15:52       ` Boris Brezillon
2015-02-10 16:06       ` Boris Brezillon
2015-02-10 16:06         ` Boris Brezillon
2015-02-10 16:16       ` Mark Rutland
2015-02-10 16:16         ` Mark Rutland
2015-02-10 16:20         ` Boris Brezillon
2015-02-10 16:20           ` Boris Brezillon
2015-02-10 20:48       ` Mark Rutland
2015-02-10 20:48         ` Mark Rutland
2015-02-11  8:53         ` Boris Brezillon
2015-02-11  8:53           ` Boris Brezillon
2015-02-11 11:11           ` Mark Rutland
2015-02-11 11:11             ` Mark Rutland
2015-02-11 11:11             ` Mark Rutland
2015-02-11 12:24             ` Boris Brezillon
2015-02-11 12:24               ` Boris Brezillon
2015-02-11 12:24               ` Boris Brezillon
2015-02-11 12:36               ` Mark Rutland
2015-02-11 12:36                 ` Mark Rutland
2015-02-11 13:38                 ` Alexandre Belloni
2015-02-11 13:38                   ` Alexandre Belloni
2015-02-11 13:38                   ` Alexandre Belloni
2015-02-11 13:48                   ` Mark Rutland
2015-02-11 13:48                     ` Mark Rutland
2015-02-11 13:48                     ` Mark Rutland
2015-02-11 14:55               ` Rafael J. Wysocki
2015-02-11 14:55                 ` Rafael J. Wysocki
2015-02-11 14:55                 ` Rafael J. Wysocki
2015-02-11 14:43                 ` Mark Rutland
2015-02-11 14:43                   ` Mark Rutland
2015-02-11 15:17                   ` Rafael J. Wysocki
2015-02-11 15:17                     ` Rafael J. Wysocki
2015-02-11 15:03                     ` Boris Brezillon
2015-02-11 15:03                       ` Boris Brezillon
2015-02-11 15:03                       ` Boris Brezillon
2015-02-11 15:39                       ` Rafael J. Wysocki
2015-02-11 15:39                         ` Rafael J. Wysocki
2015-02-11 15:23                         ` Mark Rutland
2015-02-11 15:23                           ` Mark Rutland
2015-02-11 15:12                     ` Mark Rutland
2015-02-11 15:12                       ` Mark Rutland
2015-02-11 15:51                       ` Rafael J. Wysocki
2015-02-11 15:51                         ` Rafael J. Wysocki
2015-02-11 15:57                         ` Mark Rutland
2015-02-11 15:57                           ` Mark Rutland
2015-02-11 16:15                           ` Boris Brezillon
2015-02-11 16:15                             ` Boris Brezillon
2015-02-11 16:32                             ` Mark Rutland
2015-02-11 16:32                               ` Mark Rutland
2015-02-11 16:32                               ` Mark Rutland
2015-02-11 16:38                               ` Boris Brezillon
2015-02-11 16:38                                 ` Boris Brezillon
2015-02-11 17:17                                 ` Mark Rutland
2015-02-11 17:17                                   ` Mark Rutland
2015-02-20 14:22                                 ` Mark Rutland
2015-02-20 14:22                                   ` Mark Rutland
2015-02-20 14:22                                   ` Mark Rutland
2015-02-20 14:53                                   ` Boris Brezillon [this message]
2015-02-20 14:53                                     ` Boris Brezillon
2015-02-20 15:16                                     ` Mark Rutland
2015-02-20 15:16                                       ` Mark Rutland
2015-02-20 15:16                                       ` Mark Rutland
2015-02-23 17:00                                       ` Boris Brezillon
2015-02-23 17:00                                         ` Boris Brezillon
2015-02-23 18:14                                         ` Mark Rutland
2015-02-23 18:14                                           ` Mark Rutland
2015-02-23 18:14                                           ` Mark Rutland
2015-02-23 20:16                                           ` Boris Brezillon
2015-02-23 20:16                                             ` Boris Brezillon
2015-02-11 16:42                             ` Rafael J. Wysocki
2015-02-11 16:42                               ` Rafael J. Wysocki
2015-02-11 16:28                               ` Boris Brezillon
2015-02-11 16:28                                 ` Boris Brezillon
2015-02-11 17:13                               ` Mark Rutland
2015-02-11 17:13                                 ` Mark Rutland
2015-02-11 17:13                                 ` Mark Rutland
2015-02-11 17:29                                 ` Boris Brezillon
2015-02-11 17:29                                   ` Boris Brezillon
2015-02-12 10:52                                   ` Mark Rutland
2015-02-12 10:52                                     ` Mark Rutland
2015-02-12 11:09                                     ` Boris Brezillon
2015-02-12 11:09                                       ` Boris Brezillon
2015-02-12 11:23                                       ` Mark Rutland
2015-02-12 11:23                                         ` Mark Rutland
2015-02-16  9:49                                 ` Peter Zijlstra
2015-02-16  9:49                                   ` Peter Zijlstra
2015-02-16  9:49                                   ` Peter Zijlstra
2015-02-16  9:28                         ` Peter Zijlstra
2015-02-16  9:28                           ` Peter Zijlstra
2015-02-16 12:23                           ` Mark Rutland
2015-02-16 12:23                             ` Mark Rutland
2015-02-16 12:23                             ` Mark Rutland
2015-02-19  1:16                             ` Rafael J. Wysocki
2015-02-19  1:16                               ` Rafael J. Wysocki
2015-02-19 11:23                               ` Mark Rutland
2015-02-19 11:23                                 ` Mark Rutland
2015-02-19 11:23                                 ` Mark Rutland
2015-02-19 22:35                                 ` Rafael J. Wysocki
2015-02-19 22:35                                   ` Rafael J. Wysocki
2015-02-20 10:31                                   ` Mark Rutland
2015-02-20 10:31                                     ` Mark Rutland
2015-02-24  1:02                                     ` Rafael J. Wysocki
2015-02-24  1:02                                       ` Rafael J. Wysocki
2015-02-24  1:02                                       ` Rafael J. Wysocki
2015-02-24  8:42                                       ` Boris Brezillon
2015-02-24  8:42                                         ` Boris Brezillon
2015-02-11 14:45                 ` Boris Brezillon
2015-02-11 14:45                   ` Boris Brezillon
2015-02-11 14:45                   ` Boris Brezillon
2015-02-11 14:39             ` Rafael J. Wysocki
2015-02-11 14:39               ` Rafael J. Wysocki
2015-02-11  9:11         ` Peter Zijlstra
2015-02-11  9:11           ` Peter Zijlstra
2015-02-11  9:11           ` Peter Zijlstra
2015-02-11 11:15           ` Mark Rutland
2015-02-11 11:15             ` Mark Rutland
2015-02-11 14:31             ` Rafael J. Wysocki
2015-02-11 14:31               ` Rafael J. Wysocki
2015-02-11 14:14               ` Mark Rutland
2015-02-11 14:14                 ` Mark Rutland
2015-02-11 14:14                 ` Mark Rutland
2015-02-11 15:07                 ` Rafael J. Wysocki
2015-02-11 15:07                   ` Rafael J. Wysocki
2015-02-11 15:03                   ` Mark Rutland
2015-02-11 15:03                     ` Mark Rutland
2015-02-11 15:03                     ` Mark Rutland
2015-02-11 14:34         ` Rafael J. Wysocki
2015-02-11 14:34           ` Rafael J. Wysocki
2015-02-11 14:34           ` Rafael J. Wysocki
2015-01-29 10:33 ` [PATCH v4 4/5] ARM: at91/dt: select VIRT_IRQ_DEMUX for all at91 SoCs Boris Brezillon
2015-01-29 10:33   ` Boris Brezillon
2015-01-29 10:33 ` [PATCH v4 5/5] ARM: at91/dt: define a virtual irq demultiplexer chip connected on irq1 Boris Brezillon
2015-01-29 10:33   ` Boris Brezillon
2015-01-29 10:33   ` Boris Brezillon
2015-02-09 15:47 ` [PATCH v4 0/5] ARM: at91: fix irq_pm_install_action WARNING Boris Brezillon
2015-02-09 15:47   ` Boris Brezillon

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=20150220155347.1477b02d@bbrezillon \
    --to=boris.brezillon@free-electrons.com \
    --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.