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: Thu, 28 Jun 2012 07:58:42 +0000 [thread overview]
Message-ID: <1340870322.5037.15.camel@deskari> (raw)
In-Reply-To: <CAJe_Zhf+Yihu+tJbUxYYoKhW9uvKdEoaVk0v_Goz-oATz+Jncw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3638 bytes --]
On Thu, 2012-06-28 at 13:16 +0530, Jassi Brar wrote:
> On 28 June 2012 12:11, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> > On Wed, 2012-06-27 at 20:23 +0530, Jassi Brar wrote:
> >> On 27 June 2012 13:43, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> >> >
> >> > I don't like it at all that omapdss disables and enables the panels in
> >> > omapdss's suspend/resume hooks. But I'm not sure how this should work...
> >> > Should panel drivers each have their own suspend/resume hooks, and
> >> > handle it themselves? Or should the call to suspend/resume come from
> >> > upper layers, like omapfb or omapdrm.
> >> >
> >> > I made a prototype patch a few weeks ago to move the suspend to omapfb,
> >> > and it feels better than the current one, but I'm still not sure...
> >> >
> >> IIUC, I have similar opinion.
> >> Each panel having its own suspend/resume sounds like inter-dependency trouble.
> >
> > What do you mean with that? If we just consider omapdss and the panel
> > drivers, I see no dependency trouble. Panels are independent of each
> > other, and omapdss is supposed to handle any locking & refcounting
> > related to multiple panels already, as from omapdss's point of view
> > panel suspend is the same as panel disable.
> >
> > And if we take omapfb/omapdrm into equation, well, in any case it
> > couldn't be any worse than the current one where suspend is handled by
> > omapdss.
> >
> I just anticipate it not trivial keeping omap_dss_device.state in
> sync with omap_dss_driver.suspend/resume
> when the latter is made system suspend/resume and former still
> affected by hdmi_panel_disable/enable.
This state variable is something I'd like to get rid of. While I think
it could work fine if we added some locking to omap_dss_device, I'd
actually like to get rid of omap_dss_device also. (totally another
issue, let's not go there).
But anyway, the state variable should only be written by the panel
driver, so I don't see a big problem there. The panel's
disable/enable/suspend/resume touch the state, but the panel driver
should protect that with a mutex.
> Perhaps .disable and .suspend would need merging?
Yes, I already have a patch that removes suspend/resume from
omap_dss_device, as they are identical to disable/enable. I haven't
merged it yet, as there's some funny code in omapdrm that breaks after
the change, and I haven't had time to look at it.
> But as I said, it 'sounds' like. It all may be straight forward - you
> would know better.
>
>
> >> I too would prefer suspend/resume propagating from omap-fb/drm, which
> >> imho fits better with the notion of a linux device(omapdss is only
> >> backend). Though I don't have strong feelings about how core then take
> >> various panels up/down optimally.
> >
> > One one hand, I see the combination of omapdss (or the "output" side of
> > omapdss) and a panel as a whole entity. I mean, if you just load omapdss
> > and a panel driver, but no omapfb/omapdrm, you already have a working
> > panel. You don't _need_ omapfb/omapdrm there. And in that sense it'd
> > make sense if the panels did handle their own suspend/resume.
> >
> Well, I would think if omapdss+panels (backend) serve none other
> omapfb/drm, they should simply lie dormant hogging no resources if the
> omapfb/drm driver isn't loaded (if that isn't already the case).
That should be the case.
I need to look more carefully what fb/drm already do. If they already
have good suspend mechanisms and expect to be the ones handling system
suspend, then I guess the choice is quite clear.
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: Thu, 28 Jun 2012 10:58:42 +0300 [thread overview]
Message-ID: <1340870322.5037.15.camel@deskari> (raw)
In-Reply-To: <CAJe_Zhf+Yihu+tJbUxYYoKhW9uvKdEoaVk0v_Goz-oATz+Jncw@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 3638 bytes --]
On Thu, 2012-06-28 at 13:16 +0530, Jassi Brar wrote:
> On 28 June 2012 12:11, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> > On Wed, 2012-06-27 at 20:23 +0530, Jassi Brar wrote:
> >> On 27 June 2012 13:43, Tomi Valkeinen <tomi.valkeinen@ti.com> wrote:
> >> >
> >> > I don't like it at all that omapdss disables and enables the panels in
> >> > omapdss's suspend/resume hooks. But I'm not sure how this should work...
> >> > Should panel drivers each have their own suspend/resume hooks, and
> >> > handle it themselves? Or should the call to suspend/resume come from
> >> > upper layers, like omapfb or omapdrm.
> >> >
> >> > I made a prototype patch a few weeks ago to move the suspend to omapfb,
> >> > and it feels better than the current one, but I'm still not sure...
> >> >
> >> IIUC, I have similar opinion.
> >> Each panel having its own suspend/resume sounds like inter-dependency trouble.
> >
> > What do you mean with that? If we just consider omapdss and the panel
> > drivers, I see no dependency trouble. Panels are independent of each
> > other, and omapdss is supposed to handle any locking & refcounting
> > related to multiple panels already, as from omapdss's point of view
> > panel suspend is the same as panel disable.
> >
> > And if we take omapfb/omapdrm into equation, well, in any case it
> > couldn't be any worse than the current one where suspend is handled by
> > omapdss.
> >
> I just anticipate it not trivial keeping omap_dss_device.state in
> sync with omap_dss_driver.suspend/resume
> when the latter is made system suspend/resume and former still
> affected by hdmi_panel_disable/enable.
This state variable is something I'd like to get rid of. While I think
it could work fine if we added some locking to omap_dss_device, I'd
actually like to get rid of omap_dss_device also. (totally another
issue, let's not go there).
But anyway, the state variable should only be written by the panel
driver, so I don't see a big problem there. The panel's
disable/enable/suspend/resume touch the state, but the panel driver
should protect that with a mutex.
> Perhaps .disable and .suspend would need merging?
Yes, I already have a patch that removes suspend/resume from
omap_dss_device, as they are identical to disable/enable. I haven't
merged it yet, as there's some funny code in omapdrm that breaks after
the change, and I haven't had time to look at it.
> But as I said, it 'sounds' like. It all may be straight forward - you
> would know better.
>
>
> >> I too would prefer suspend/resume propagating from omap-fb/drm, which
> >> imho fits better with the notion of a linux device(omapdss is only
> >> backend). Though I don't have strong feelings about how core then take
> >> various panels up/down optimally.
> >
> > One one hand, I see the combination of omapdss (or the "output" side of
> > omapdss) and a panel as a whole entity. I mean, if you just load omapdss
> > and a panel driver, but no omapfb/omapdrm, you already have a working
> > panel. You don't _need_ omapfb/omapdrm there. And in that sense it'd
> > make sense if the panels did handle their own suspend/resume.
> >
> Well, I would think if omapdss+panels (backend) serve none other
> omapfb/drm, they should simply lie dormant hogging no resources if the
> omapfb/drm driver isn't loaded (if that isn't already the case).
That should be the case.
I need to look more carefully what fb/drm already do. If they already
have good suspend mechanisms and expect to be the ones handling system
suspend, then I guess the choice is quite clear.
Tomi
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2012-06-28 7:58 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
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 [this message]
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=1340870322.5037.15.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.