All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Turquette <mturquette@ti.com>
To: linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 05/11] OMAPDSS: add clk_prepare and clk_unprepare
Date: Wed, 27 Jun 2012 00:47:10 +0000	[thread overview]
Message-ID: <20120627004709.GA22766@gmail.com> (raw)
In-Reply-To: <1340630090.3395.85.camel@deskari>

On 20120625-16:14, Tomi Valkeinen wrote:
> A question about clk_prepare/unprepare, not directly related: let's say
> I have a driver for some HW block. The driver doesn't use clk functions,
> but uses runtime PM. The driver also sets pm_runtime_irq_safe().
> 
> Now, the driver can call pm_runtime_get_sync() in an atomic context, and
> this would lead to the underlying framework (hwmod, omap_device, I don't
> know who =) enabling the func clock for that HW. But this would happen
> in atomic context, so the underlying framework can't use clk_prepare.
> 
> How does the underlying framework handle that case? (sorry if that's a
> stupid question =).
> 

I think it's a good question!

If we're going to call clk_prepare_enable from within a runtime pm
callback then I think we'll need to check if _irq_safe() is set and
conditionally call only clk_enable in such a case.

I'm not a runtime pm expert, but if the driver owns the responsibility
of calling pm_runtime_irq_safe then the driver has the proper context
to know that it should call clk_prepare BEFORE calling
pm_runtime_get_sync.

However if some other framework (outside of the driver) calls
pm_runtime_irq_safe then it will be difficult for the driver to know
what to do...

Regards,
Mike

>  Tomi
> 



WARNING: multiple messages have this Message-ID (diff)
From: Mike Turquette <mturquette@ti.com>
To: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Rajendra Nayak <rnayak@ti.com>,
	paul@pwsan.com, linux-omap@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-fbdev@vger.kernel.org
Subject: Re: [PATCH 05/11] OMAPDSS: add clk_prepare and clk_unprepare
Date: Tue, 26 Jun 2012 17:47:10 -0700	[thread overview]
Message-ID: <20120627004709.GA22766@gmail.com> (raw)
In-Reply-To: <1340630090.3395.85.camel@deskari>

On 20120625-16:14, Tomi Valkeinen wrote:
> A question about clk_prepare/unprepare, not directly related: let's say
> I have a driver for some HW block. The driver doesn't use clk functions,
> but uses runtime PM. The driver also sets pm_runtime_irq_safe().
> 
> Now, the driver can call pm_runtime_get_sync() in an atomic context, and
> this would lead to the underlying framework (hwmod, omap_device, I don't
> know who =) enabling the func clock for that HW. But this would happen
> in atomic context, so the underlying framework can't use clk_prepare.
> 
> How does the underlying framework handle that case? (sorry if that's a
> stupid question =).
> 

I think it's a good question!

If we're going to call clk_prepare_enable from within a runtime pm
callback then I think we'll need to check if _irq_safe() is set and
conditionally call only clk_enable in such a case.

I'm not a runtime pm expert, but if the driver owns the responsibility
of calling pm_runtime_irq_safe then the driver has the proper context
to know that it should call clk_prepare BEFORE calling
pm_runtime_get_sync.

However if some other framework (outside of the driver) calls
pm_runtime_irq_safe then it will be difficult for the driver to know
what to do...

Regards,
Mike

>  Tomi
> 



WARNING: multiple messages have this Message-ID (diff)
From: mturquette@ti.com (Mike Turquette)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 05/11] OMAPDSS: add clk_prepare and clk_unprepare
Date: Tue, 26 Jun 2012 17:47:10 -0700	[thread overview]
Message-ID: <20120627004709.GA22766@gmail.com> (raw)
In-Reply-To: <1340630090.3395.85.camel@deskari>

On 20120625-16:14, Tomi Valkeinen wrote:
> A question about clk_prepare/unprepare, not directly related: let's say
> I have a driver for some HW block. The driver doesn't use clk functions,
> but uses runtime PM. The driver also sets pm_runtime_irq_safe().
> 
> Now, the driver can call pm_runtime_get_sync() in an atomic context, and
> this would lead to the underlying framework (hwmod, omap_device, I don't
> know who =) enabling the func clock for that HW. But this would happen
> in atomic context, so the underlying framework can't use clk_prepare.
> 
> How does the underlying framework handle that case? (sorry if that's a
> stupid question =).
> 

I think it's a good question!

If we're going to call clk_prepare_enable from within a runtime pm
callback then I think we'll need to check if _irq_safe() is set and
conditionally call only clk_enable in such a case.

I'm not a runtime pm expert, but if the driver owns the responsibility
of calling pm_runtime_irq_safe then the driver has the proper context
to know that it should call clk_prepare BEFORE calling
pm_runtime_get_sync.

However if some other framework (outside of the driver) calls
pm_runtime_irq_safe then it will be difficult for the driver to know
what to do...

Regards,
Mike

>  Tomi
> 

  parent reply	other threads:[~2012-06-27  0:47 UTC|newest]

Thread overview: 119+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-22 13:47 [PATCH 00/11] Prepare for OMAP2+ movement to Common Clk Rajendra Nayak
2012-06-22 13:47 ` Rajendra Nayak
2012-06-22 13:48 ` [PATCH 01/11] ARM: omap: clk: add clk_prepare and clk_unprepare Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 17:42   ` Pankaj Jangra
2012-06-22 17:42     ` Pankaj Jangra
2012-06-25  5:36     ` Rajendra Nayak
2012-06-25  5:36       ` Rajendra Nayak
2012-06-22 13:48 ` [PATCH 02/11] mmc: omap: " Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 18:23   ` S, Venkatraman
2012-06-22 18:23     ` S, Venkatraman
2012-06-22 18:34     ` Paul Walmsley
2012-06-22 18:34       ` Paul Walmsley
2012-06-25  5:25       ` Rajendra Nayak
2012-06-25  5:25         ` Rajendra Nayak
2012-06-25  6:18         ` Paul Walmsley
2012-06-25  6:18           ` Paul Walmsley
2012-06-25  7:13           ` Rajendra Nayak
2012-06-25  7:13             ` Rajendra Nayak
2012-06-25  5:32     ` Rajendra Nayak
2012-06-25  5:32       ` Rajendra Nayak
2012-06-22 13:48 ` [PATCH 03/11] hwrng: " Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 13:48 ` [PATCH 04/11] mfd: omap-usb: " Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 19:04   ` Paul Walmsley
2012-06-22 19:04     ` Paul Walmsley
2012-06-25  8:55     ` Munegowda, Keshava
2012-06-25  8:55       ` Munegowda, Keshava
2012-06-22 13:48 ` [PATCH 05/11] OMAPDSS: " Rajendra Nayak
2012-06-22 13:51   ` Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-25  6:07   ` Tomi Valkeinen
2012-06-25  6:07     ` Tomi Valkeinen
2012-06-25  6:07     ` Tomi Valkeinen
2012-06-25  6:59     ` Rajendra Nayak
2012-06-25  7:11       ` Rajendra Nayak
2012-06-25  6:59       ` Rajendra Nayak
2012-06-25  7:58       ` Tomi Valkeinen
2012-06-25  7:58         ` Tomi Valkeinen
2012-06-25  7:58         ` Tomi Valkeinen
2012-06-25 11:48         ` Rajendra Nayak
2012-06-25 11:52           ` Rajendra Nayak
2012-06-25 11:48           ` Rajendra Nayak
2012-06-25 13:14           ` Tomi Valkeinen
2012-06-25 13:14             ` Tomi Valkeinen
2012-06-25 13:14             ` Tomi Valkeinen
2012-06-26  5:00             ` Rajendra Nayak
2012-06-26  5:12               ` Rajendra Nayak
2012-06-26  5:00               ` Rajendra Nayak
2012-06-26  6:55               ` Tomi Valkeinen
2012-06-26  6:55                 ` Tomi Valkeinen
2012-06-26  6:55                 ` Tomi Valkeinen
2012-06-26  7:36                 ` Rajendra Nayak
2012-06-26  7:48                   ` Rajendra Nayak
2012-06-26  7:36                   ` Rajendra Nayak
2012-06-27  0:47             ` Mike Turquette [this message]
2012-06-27  0:47               ` Mike Turquette
2012-06-27  0:47               ` Mike Turquette
2012-06-27  4:19               ` Tomi Valkeinen
2012-06-27  4:19                 ` Tomi Valkeinen
2012-06-27  4:19                 ` Tomi Valkeinen
2012-06-27  5:19                 ` Rajendra Nayak
2012-06-27  5:31                   ` Rajendra Nayak
2012-06-27  5:19                   ` Rajendra Nayak
2012-06-25 11:22     ` Russell King - ARM Linux
2012-06-25 11:22       ` Russell King - ARM Linux
2012-06-25 11:22       ` Russell King - ARM Linux
2012-06-22 13:48 ` [PATCH 06/11] gpio/omap: " Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 15:57   ` Pankaj Jangra
2012-06-22 15:57     ` Pankaj Jangra
2012-06-22 19:17   ` Paul Walmsley
2012-06-22 19:17     ` Paul Walmsley
2012-06-25  5:30     ` Rajendra Nayak
2012-06-25  5:30       ` Rajendra Nayak
2012-06-25  6:11       ` DebBarma, Tarun Kanti
2012-06-25  6:11         ` DebBarma, Tarun Kanti
2012-06-25  7:02         ` Rajendra Nayak
2012-06-25  7:02           ` Rajendra Nayak
2012-06-25 10:22           ` DebBarma, Tarun Kanti
2012-06-25 10:22             ` DebBarma, Tarun Kanti
2012-06-22 13:48 ` [PATCH 07/11] w1: omap_hdq: " Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 18:35   ` Paul Walmsley
2012-06-22 18:35     ` Paul Walmsley
2012-06-25  5:25     ` Rajendra Nayak
2012-06-25  5:25       ` Rajendra Nayak
2012-06-22 13:48 ` [PATCH 08/11] crypto: omap: " Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 18:58   ` Paul Walmsley
2012-06-22 18:58     ` Paul Walmsley
2012-06-25  5:29     ` Rajendra Nayak
2012-06-25  5:29       ` Rajendra Nayak
2012-06-26 10:39       ` Paul Walmsley
2012-06-26 10:39         ` Paul Walmsley
2012-06-26 10:58         ` Rajendra Nayak
2012-06-26 10:58           ` Rajendra Nayak
2012-06-22 13:48 ` [PATCH 09/11] iommu: " Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 13:48 ` [PATCH 10/11] ARM: omap: hwmod: get rid of all omap_clk_get_by_name usage Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-22 13:48 ` [PATCH 11/11] ARM: omap: clk: Remove all direct dereferencing of struct clk Rajendra Nayak
2012-06-22 13:48   ` Rajendra Nayak
2012-06-27 12:50 ` [PATCH 00/11] Prepare for OMAP2+ movement to Common Clk Laurent Pinchart
2012-06-27 12:50   ` Laurent Pinchart
2012-06-27 16:36   ` Paul Walmsley
2012-06-27 16:36     ` Paul Walmsley
2012-06-27 18:05     ` Laurent Pinchart
2012-06-27 18:05       ` Laurent Pinchart
2012-06-27 18:45       ` Laurent Pinchart
2012-06-27 18:45         ` Laurent Pinchart
2012-06-27 19:56         ` Laurent Pinchart
2012-06-27 19:56           ` Laurent Pinchart
2012-06-27 19:59         ` Paul Walmsley
2012-06-27 19:59           ` Paul Walmsley
2012-06-27 20:25           ` Laurent Pinchart
2012-06-27 20:25             ` 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=20120627004709.GA22766@gmail.com \
    --to=mturquette@ti.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.