All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Jassi Brar <jaswinder.singh@linaro.org>
Cc: mythripk@ti.com, linux-omap@vger.kernel.org,
	linux-fbdev@vger.kernel.org, andy.green@linaro.org,
	n-dechesne@ti.com
Subject: Re: [PATCH] OMAPDSS: Check if RPM enabled before trying to change state
Date: Mon, 25 Jun 2012 12:41:34 +0000	[thread overview]
Message-ID: <1340628094.3395.63.camel@deskari> (raw)
In-Reply-To: <CAJe_ZhftuNggxH+269-ZJbWJo5nSzSjo1dDCTQGMbsjPWoUpyg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2444 bytes --]

On Mon, 2012-06-25 at 17:57 +0530, Jassi Brar wrote:
> On 25 June 2012 15:00, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:

> > The driver needs to enable the HW and the call to pm_runtime_get() is
> > skipped. Won't this lead to crash as the DSS registers are accessed
> > without the HW in enabled state?
> >
> Hmm...  how does the extant code in hdmi driver ensures DSS is up and running ?
> While it does sound important even to my limited knowledge of OMAPDSS,
> I see rpm of HDMI, VENC and RFBI only dependent on DISPC, not DSS.

DSS device is parent to all the DSS subdevices. So when a subdevice is
enabled, DSS device is enabled first.

But anyway, I wasn't referring to the DSS part of OMAPDSS, but to
omapdss generally. If we do this:

/* this is skipped, if runtime PM is disabled */
dispc_runtime_get();

/* this accesses a register, but the HW is disabled? */
dispc_read_reg(FOO);

So again, I don't understand how the underlying HW gets enabled. Or does
hwmod/omap_device code make sure that it's enabled while the board is
being resumed? If so, what would happen if we continue the above
scenario as follows:

/* this is skipped, if runtime PM is disabled */
dispc_runtime_get();

/* this accesses a register, the HW is kept enabled by hwmod */
dispc_read_reg(FOO);

/* at some time later the resume procedure ends, and hwmod doesn't keep
the HW enabled any more */

/* this accesses a register, the HW is disabled */
dispc_read_reg(FOO);

> And for DISPC these drivers already hold a reference in their display
> enable/resume and keep it until disable/suspend. So we don't lose
> DISPC anytime it is really required.

If all the displays are disabled, nobody keeps a reference to dispc.

> > And what happens if the pm_runtime_get() call is skipped, but pm_runtime_put() is not?
> >
> Not sure in what newly introduced scenario by this patch, because
> get/put both check for pm_enabled before proceeding. Am I overlooking
> something?

Currently (for example) dispc_runtime_get/put call
pm_runtime_get/put_sync. When somebody uses dispc_runtime_get, the same
somebody knows it needs to call dispc_runtime_put later.

Now, what happens if dispc_runtime_get is called when runtime PM is
disabled (i.e. pm_runtime_get_sync is skipped), but runtime PM is
enabled later when that somebody calls dispc_runtime_put (i.e.
pm_runtime_put_sync is _not_ skipped)?

 Tomi


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: Jassi Brar <jaswinder.singh@linaro.org>
Cc: mythripk@ti.com, linux-omap@vger.kernel.org,
	linux-fbdev@vger.kernel.org, andy.green@linaro.org,
	n-dechesne@ti.com
Subject: Re: [PATCH] OMAPDSS: Check if RPM enabled before trying to change state
Date: Mon, 25 Jun 2012 15:41:34 +0300	[thread overview]
Message-ID: <1340628094.3395.63.camel@deskari> (raw)
In-Reply-To: <CAJe_ZhftuNggxH+269-ZJbWJo5nSzSjo1dDCTQGMbsjPWoUpyg@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 2444 bytes --]

On Mon, 2012-06-25 at 17:57 +0530, Jassi Brar wrote:
> On 25 June 2012 15:00, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:

> > The driver needs to enable the HW and the call to pm_runtime_get() is
> > skipped. Won't this lead to crash as the DSS registers are accessed
> > without the HW in enabled state?
> >
> Hmm...  how does the extant code in hdmi driver ensures DSS is up and running ?
> While it does sound important even to my limited knowledge of OMAPDSS,
> I see rpm of HDMI, VENC and RFBI only dependent on DISPC, not DSS.

DSS device is parent to all the DSS subdevices. So when a subdevice is
enabled, DSS device is enabled first.

But anyway, I wasn't referring to the DSS part of OMAPDSS, but to
omapdss generally. If we do this:

/* this is skipped, if runtime PM is disabled */
dispc_runtime_get();

/* this accesses a register, but the HW is disabled? */
dispc_read_reg(FOO);

So again, I don't understand how the underlying HW gets enabled. Or does
hwmod/omap_device code make sure that it's enabled while the board is
being resumed? If so, what would happen if we continue the above
scenario as follows:

/* this is skipped, if runtime PM is disabled */
dispc_runtime_get();

/* this accesses a register, the HW is kept enabled by hwmod */
dispc_read_reg(FOO);

/* at some time later the resume procedure ends, and hwmod doesn't keep
the HW enabled any more */

/* this accesses a register, the HW is disabled */
dispc_read_reg(FOO);

> And for DISPC these drivers already hold a reference in their display
> enable/resume and keep it until disable/suspend. So we don't lose
> DISPC anytime it is really required.

If all the displays are disabled, nobody keeps a reference to dispc.

> > And what happens if the pm_runtime_get() call is skipped, but pm_runtime_put() is not?
> >
> Not sure in what newly introduced scenario by this patch, because
> get/put both check for pm_enabled before proceeding. Am I overlooking
> something?

Currently (for example) dispc_runtime_get/put call
pm_runtime_get/put_sync. When somebody uses dispc_runtime_get, the same
somebody knows it needs to call dispc_runtime_put later.

Now, what happens if dispc_runtime_get is called when runtime PM is
disabled (i.e. pm_runtime_get_sync is skipped), but runtime PM is
enabled later when that somebody calls dispc_runtime_put (i.e.
pm_runtime_put_sync is _not_ skipped)?

 Tomi


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2012-06-25 12:41 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-23  8:06 [PATCH] OMAPDSS: Check if RPM enabled before trying to change state jaswinder.singh
2012-06-23  8:18 ` jaswinder.singh
2012-06-25  6:20 ` Tomi Valkeinen
2012-06-25  6:20   ` Tomi Valkeinen
2012-06-25  8:49   ` Jassi Brar
2012-06-25  8:53     ` Jassi Brar
2012-06-25  9:30     ` Tomi Valkeinen
2012-06-25  9:30       ` Tomi Valkeinen
2012-06-25 12:27       ` Jassi Brar
2012-06-25 12:39         ` Jassi Brar
2012-06-25 12:41         ` Tomi Valkeinen [this message]
2012-06-25 12:41           ` Tomi Valkeinen
2012-06-25 13:31           ` Jassi Brar
2012-06-25 13:43             ` Jassi Brar
2012-06-25 13:49             ` Tomi Valkeinen
2012-06-25 13:49               ` Tomi Valkeinen
2012-06-25 17:06               ` Jassi Brar
2012-06-25 17:18                 ` Jassi Brar
2012-06-26  7:19                 ` Tomi Valkeinen
2012-06-26  7:19                   ` Tomi Valkeinen
2012-06-26  8:32                   ` Jassi Brar
2012-06-26  8:44                     ` Jassi Brar
2012-06-26  8:40                     ` Andy Green
2012-06-26  8:40                       ` Andy Green
2012-06-26  9:07                     ` Tomi Valkeinen
2012-06-26  9:07                       ` Tomi Valkeinen
2012-06-26  9:57                       ` Jassi Brar
2012-06-26 10:09                         ` Jassi Brar
2012-06-26 12:03                         ` Tomi Valkeinen
2012-06-26 12:03                           ` Tomi Valkeinen
2012-06-26 14:49                           ` Jassi Brar
2012-06-26 14:52                             ` Jassi Brar
2012-06-26 15:08                             ` Tomi Valkeinen
2012-06-26 15:08                               ` Tomi Valkeinen
2012-06-26 15:09                               ` Jassi Brar
2012-06-26 15:21                                 ` Jassi Brar
2012-06-26 15:11                                 ` Tomi Valkeinen
2012-06-26 15:11                                   ` Tomi Valkeinen
2012-06-26 17:01                                   ` Jassi Brar
2012-06-26 17:13                                     ` Jassi Brar
2012-06-26 18:44                                     ` Tomi Valkeinen
2012-06-26 18:44                                       ` Tomi Valkeinen
2012-06-27  4:42                                       ` Jassi Brar
2012-06-27  4:54                                         ` Jassi Brar
2012-06-27  5:58                                         ` Tomi Valkeinen
2012-06-27  5:58                                           ` Tomi Valkeinen
2012-06-27  7:41                                           ` Jassi Brar
2012-06-27  7:53                                             ` Jassi Brar
2012-06-27  8:13                                             ` Tomi Valkeinen
2012-06-27  8:13                                               ` Tomi Valkeinen
2012-06-27 14:53                                               ` Jassi Brar
2012-06-27 14:56                                                 ` Jassi Brar
2012-06-28  6:41                                                 ` Tomi Valkeinen
2012-06-28  6:41                                                   ` Tomi Valkeinen
2012-06-28  7:46                                                   ` Jassi Brar
2012-06-28  7:58                                                     ` Jassi Brar
2012-06-28  7:58                                                     ` Tomi Valkeinen
2012-06-28  7:58                                                       ` Tomi Valkeinen
2012-06-25 12:05   ` Grazvydas Ignotas
2012-06-25 12:05     ` Grazvydas Ignotas
2012-06-25 12:30     ` Tomi Valkeinen
2012-06-25 12:30       ` Tomi Valkeinen
2012-06-25 12:42       ` Rajendra Nayak
2012-06-25 12:54         ` Rajendra Nayak
2012-06-25 12:50         ` Tomi Valkeinen
2012-06-25 12:50           ` Tomi Valkeinen
2012-06-26  4:51           ` Rajendra Nayak
2012-06-26  4:55             ` Rajendra Nayak
2012-06-26 13:02             ` Grazvydas Ignotas
2012-06-26 13:02               ` Grazvydas Ignotas
2012-06-26 14:34               ` Alan Stern
2012-06-26 14:34                 ` Alan Stern
2012-06-26 15:01                 ` Tomi Valkeinen
2012-06-26 15:01                   ` Tomi Valkeinen
2012-06-26 15:11                   ` Alan Stern
2012-06-26 15:11                     ` Alan Stern
2012-06-25 12:33     ` Jassi Brar
2012-06-25 12:45       ` Jassi Brar

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=1340628094.3395.63.camel@deskari \
    --to=tomi.valkeinen@ti.com \
    --cc=andy.green@linaro.org \
    --cc=jaswinder.singh@linaro.org \
    --cc=linux-fbdev@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=mythripk@ti.com \
    --cc=n-dechesne@ti.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.