From: Egbert Eich <eich@freedesktop.org>
To: Imre Deak <imre.deak@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: force full modeset if the connector is in DPMS OFF mode
Date: Fri, 3 May 2013 19:40:08 +0200 [thread overview]
Message-ID: <20130503174008.GF17947@debian> (raw)
In-Reply-To: <1367580129-6681-1-git-send-email-imre.deak@intel.com>
On Fri, May 03, 2013 at 02:22:09PM +0300, Imre Deak wrote:
> Currently the driver's assumed behavior for a modeset with an attached
> FB is that the corresponding connector will be switched to DPMS ON mode
> if it happened to be in DPMS OFF (or another power save mode). This
> wasn't enforced though if only the FB changed, everything else (format,
> connector etc.) remaining the same. In this case we only set the new FB
> base and left the connector in the old power save mode.
>
> Fix this by forcing a full modeset whenever there is an attached FB and
> any affected connector is in a power save mode.
>
> Signed-off-by: Imre Deak <imre.deak@intel.com>
[..]
> @@ -8397,8 +8412,12 @@ intel_set_config_compute_mode_changes(struct drm_mode_set *set,
> } else if (set->fb->pixel_format !=
> set->crtc->fb->pixel_format) {
> config->mode_changed = true;
> - } else
> + } else if (crtc_connector_off(set->crtc, *set->connectors,
> + set->num_connectors)) {
> + config->mode_changed = true;
> + } else {
> config->fb_changed = true;
> + }
> }
>
> if (set->fb && (set->x != set->crtc->x || set->y != set->crtc->y))
On https://bugs.freedesktop.org/show_bug.cgi?id=64178
I had a similar problem for which I found a very similar 'workaround':
Assuming the Xserver is displaying a mode a on output A, doing a:
xrandr --output A --off
xrandr --output A --mode a
will not light up the screen.
This all sounds quite similar, to the issues describe by this patch,
however the patch as is will not fix this issue: With this setup the
fb does not change. The crtc_connector_off() test however only runs if
set->crtc->fb != set->fb is true.
Thus the connector_off() test needs to happen before:
- if (set->crtc->fb != set->fb) {
+ if (set->connectors != NULL &&
+ connector_off(set->crtc, *set->connectors,
+ set->num_connectors)) {
+ config->mode_changed = true;
+ } else if (set->crtc->fb != set->fb) {
Mind the test for set->connectors != NULL as now the connectors list
may be empty.
Cheers,
Egbert.
next prev parent reply other threads:[~2013-05-03 17:40 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-03 11:22 [PATCH] drm/i915: force full modeset if the connector is in DPMS OFF mode Imre Deak
2013-05-03 11:27 ` Daniel Vetter
2013-05-03 11:32 ` Daniel Vetter
2013-05-03 11:39 ` Imre Deak
2013-05-03 11:44 ` Chris Wilson
2013-05-03 11:55 ` Imre Deak
2013-05-03 12:22 ` Chris Wilson
2013-05-03 12:43 ` Imre Deak
2013-05-03 15:55 ` Daniel Vetter
2013-05-03 16:22 ` Jesse Barnes
2013-05-03 16:28 ` Chris Wilson
2013-05-03 16:50 ` Daniel Vetter
2013-05-08 19:02 ` Daniel Vetter
2013-05-03 11:51 ` Jani Nikula
2013-05-03 17:40 ` Egbert Eich [this message]
2013-05-03 17:44 ` [PATCH V2] " Egbert Eich
2013-05-20 21:13 ` Jesse Barnes
2013-05-21 16:44 ` Daniel Vetter
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=20130503174008.GF17947@debian \
--to=eich@freedesktop.org \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.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.