All of lore.kernel.org
 help / color / mirror / Atom feed
From: Keith Packard <keithp@keithp.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Dave Airlie <airlied@gmail.com>
Cc: Carlos Mafra <crmafra2@gmail.com>,
	Dave Airlie <airlied@redhat.com>,
	"Rafael J. Wysocki" <rjw@sisk.pl>, Takashi Iwai <tiwai@suse.de>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Maciej Rutecki <maciej.rutecki@gmail.com>,
	Florian Mickler <florian@mickler.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Kernel Testers List <kernel-testers@vger.kernel.org>,
	Network Development <netdev@vger.kernel.org>,
	Linux ACPI <linux-acpi@vger.kernel.org>,
	Linux PM List <linux-pm@lists.linux-foundation.org>,
	Linux SCSI List <linux-scsi@vger.kernel.org>,
	Linux Wireless List <linux-wireless@vger.kernel.org>,
	DRI <dri-devel@lists.freedesktop.org>
Subject: Re: 2.6.38-rc3-git1: Reported regressions 2.6.36 -> 2.6.37
Date: Thu, 03 Feb 2011 17:05:54 -0800	[thread overview]
Message-ID: <yund3n88v7x.fsf@aiko.keithp.com> (raw)
In-Reply-To: <AANLkTimQPPDyBwkN0HWM2+bPcbzVd8YHZvn2iR8MVzfL@mail.gmail.com>

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

On Thu, 3 Feb 2011 16:30:56 -0800, Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Thu, Feb 3, 2011 at 4:06 PM, Dave Airlie <airlied@gmail.com> wrote:
> >
> > If we are setting a mode on a connector it automatically will end up
> > in a DPMS on state,
> > so this seemed correct from what I can see.
> 
> The more I look at that function, the more I disagree with you and
> with that patch.
> 
> The code is just crazy.
> 
> First off, it isn't even necessarily setting a mode to begin with,
> because as far as I can tell. If the mode doesn't change, neither
> mode_changed nor fb_changed will be true, afaik. There seems to be a
> fair amount of code there explicitly to avoid changing modes if not
> necessary.
> 
> But even _if_ we are setting a mode, if I read the code correctly, the
> mode may be set to NULL - which seems to mean "turn it off". In which
> case it looks to me that drm_helper_disable_unused_functions() will
> actually do a
> 
>    (*crtc_funcs->dpms)(crtc, DRM_MODE_DPMS_OFF);
> 
> call on the crtc in question. So then blindly just saying "it's mode
> DRM_MODE_DPMS_ON" afterwards looks rather bogus to me.
> 
> _Maybe_ it would work if it was done before that whole
> "disable_unused" logic. Or maybe it should just be done in
> drm_crtc_helper_set_mode(), which is what actually sets the mode (but
> there's the 'fb_changed' case too)
> 
> > A future mode set shouldn't ever not turn the connector on, since
> > modesetting is an implicit
> > DPMS,
> >
> > It sounds like something more subtle than that, though I'm happy to
> > revert this for now, and let Keith
> > think about it a bit more.
> 
> So I haven't heard anything from Keith. Keith? Just revert it? Or do
> you have a patch for people to try?

The goal is to make it so that when you *do* set a mode, DPMS gets set
to ON (as the monitor will actually be "on" at that point). Here's a
patch which does the DPMS_ON precisely when setting a mode.

Dave thinks we should instead force dpms to match crtc->enabled, I'd
rather have dpms get set when we know the hardware has been changed.

(note, this patch compiles, but is otherwise only lightly tested).

From 38507bb3a67441425e11085d17d727f3b230f927 Mon Sep 17 00:00:00 2001
From: Keith Packard <keithp@keithp.com>
Date: Thu, 3 Feb 2011 16:57:28 -0800
Subject: [PATCH] drm: Only set DPMS ON when actually configuring a mode

In drm_crtc_helper_set_config, instead of always forcing all outputs
to DRM_MODE_DPMS_ON, only set them if the CRTC is actually getting a
mode set, as any mode set will turn all outputs on.

Signed-off-by: Keith Packard <keithp@keithp.com>
---
 drivers/gpu/drm/drm_crtc_helper.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 952b3d4..17459ee 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -665,6 +665,12 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
 				ret = -EINVAL;
 				goto fail;
 			}
+			DRM_DEBUG_KMS("Setting connector DPMS state to on\n");
+			for (i = 0; i < set->num_connectors; i++) {
+				DRM_DEBUG_KMS("\t[CONNECTOR:%d:%s] set DPMS on\n", set->connectors[i]->base.id,
+					      drm_get_connector_name(set->connectors[i]));
+				set->connectors[i]->dpms = DRM_MODE_DPMS_ON;
+			}
 		}
 		drm_helper_disable_unused_functions(dev);
 	} else if (fb_changed) {
@@ -681,12 +687,6 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
 			goto fail;
 		}
 	}
-	DRM_DEBUG_KMS("Setting connector DPMS state to on\n");
-	for (i = 0; i < set->num_connectors; i++) {
-		DRM_DEBUG_KMS("\t[CONNECTOR:%d:%s] set DPMS on\n", set->connectors[i]->base.id,
-			      drm_get_connector_name(set->connectors[i]));
-		set->connectors[i]->dpms = DRM_MODE_DPMS_ON;
-	}
 
 	kfree(save_connectors);
 	kfree(save_encoders);
-- 
1.7.2.3

-- 
keith.packard@intel.com

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Keith Packard <keithp@keithp.com>
To: Linus Torvalds <torvalds@linux-foundation.org>,
	Dave Airlie <airlied@gmail.com>
Cc: Linux SCSI List <linux-scsi@vger.kernel.org>,
	Linux ACPI <linux-acpi@vger.kernel.org>,
	Takashi Iwai <tiwai@suse.de>, Carlos Mafra <crmafra2@gmail.com>,
	Linux Wireless List <linux-wireless@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	DRI <dri-devel@lists.freedesktop.org>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Florian Mickler <florian@mickler.org>,
	Network Development <netdev@vger.kernel.org>,
	Dave Airlie <airlied@redhat.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Kernel Testers List <kernel-testers@vger.kernel.org>,
	Linux PM List <linux-pm@lists.linux-foundation.org>,
	Maciej Rutecki <maciej.rutecki@gmail.com>
Subject: Re: 2.6.38-rc3-git1: Reported regressions 2.6.36 -> 2.6.37
Date: Thu, 03 Feb 2011 17:05:54 -0800	[thread overview]
Message-ID: <yund3n88v7x.fsf@aiko.keithp.com> (raw)
In-Reply-To: <AANLkTimQPPDyBwkN0HWM2+bPcbzVd8YHZvn2iR8MVzfL@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 4011 bytes --]

On Thu, 3 Feb 2011 16:30:56 -0800, Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Thu, Feb 3, 2011 at 4:06 PM, Dave Airlie <airlied@gmail.com> wrote:
> >
> > If we are setting a mode on a connector it automatically will end up
> > in a DPMS on state,
> > so this seemed correct from what I can see.
> 
> The more I look at that function, the more I disagree with you and
> with that patch.
> 
> The code is just crazy.
> 
> First off, it isn't even necessarily setting a mode to begin with,
> because as far as I can tell. If the mode doesn't change, neither
> mode_changed nor fb_changed will be true, afaik. There seems to be a
> fair amount of code there explicitly to avoid changing modes if not
> necessary.
> 
> But even _if_ we are setting a mode, if I read the code correctly, the
> mode may be set to NULL - which seems to mean "turn it off". In which
> case it looks to me that drm_helper_disable_unused_functions() will
> actually do a
> 
>    (*crtc_funcs->dpms)(crtc, DRM_MODE_DPMS_OFF);
> 
> call on the crtc in question. So then blindly just saying "it's mode
> DRM_MODE_DPMS_ON" afterwards looks rather bogus to me.
> 
> _Maybe_ it would work if it was done before that whole
> "disable_unused" logic. Or maybe it should just be done in
> drm_crtc_helper_set_mode(), which is what actually sets the mode (but
> there's the 'fb_changed' case too)
> 
> > A future mode set shouldn't ever not turn the connector on, since
> > modesetting is an implicit
> > DPMS,
> >
> > It sounds like something more subtle than that, though I'm happy to
> > revert this for now, and let Keith
> > think about it a bit more.
> 
> So I haven't heard anything from Keith. Keith? Just revert it? Or do
> you have a patch for people to try?

The goal is to make it so that when you *do* set a mode, DPMS gets set
to ON (as the monitor will actually be "on" at that point). Here's a
patch which does the DPMS_ON precisely when setting a mode.

Dave thinks we should instead force dpms to match crtc->enabled, I'd
rather have dpms get set when we know the hardware has been changed.

(note, this patch compiles, but is otherwise only lightly tested).

From 38507bb3a67441425e11085d17d727f3b230f927 Mon Sep 17 00:00:00 2001
From: Keith Packard <keithp@keithp.com>
Date: Thu, 3 Feb 2011 16:57:28 -0800
Subject: [PATCH] drm: Only set DPMS ON when actually configuring a mode

In drm_crtc_helper_set_config, instead of always forcing all outputs
to DRM_MODE_DPMS_ON, only set them if the CRTC is actually getting a
mode set, as any mode set will turn all outputs on.

Signed-off-by: Keith Packard <keithp@keithp.com>
---
 drivers/gpu/drm/drm_crtc_helper.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
index 952b3d4..17459ee 100644
--- a/drivers/gpu/drm/drm_crtc_helper.c
+++ b/drivers/gpu/drm/drm_crtc_helper.c
@@ -665,6 +665,12 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
 				ret = -EINVAL;
 				goto fail;
 			}
+			DRM_DEBUG_KMS("Setting connector DPMS state to on\n");
+			for (i = 0; i < set->num_connectors; i++) {
+				DRM_DEBUG_KMS("\t[CONNECTOR:%d:%s] set DPMS on\n", set->connectors[i]->base.id,
+					      drm_get_connector_name(set->connectors[i]));
+				set->connectors[i]->dpms = DRM_MODE_DPMS_ON;
+			}
 		}
 		drm_helper_disable_unused_functions(dev);
 	} else if (fb_changed) {
@@ -681,12 +687,6 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
 			goto fail;
 		}
 	}
-	DRM_DEBUG_KMS("Setting connector DPMS state to on\n");
-	for (i = 0; i < set->num_connectors; i++) {
-		DRM_DEBUG_KMS("\t[CONNECTOR:%d:%s] set DPMS on\n", set->connectors[i]->base.id,
-			      drm_get_connector_name(set->connectors[i]));
-		set->connectors[i]->dpms = DRM_MODE_DPMS_ON;
-	}
 
 	kfree(save_connectors);
 	kfree(save_encoders);
-- 
1.7.2.3

-- 
keith.packard@intel.com

[-- Attachment #1.2: Type: application/pgp-signature, Size: 189 bytes --]

[-- Attachment #2: Type: text/plain, Size: 159 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2011-02-04  1:14 UTC|newest]

Thread overview: 103+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-03  0:03 2.6.38-rc3-git1: Reported regressions 2.6.36 -> 2.6.37 Rafael J. Wysocki
2011-02-03  0:03 ` Rafael J. Wysocki
2011-02-03  0:03 ` [Bug #22542] [2.6.37-rc1] drm:i195 errors Rafael J. Wysocki
2011-02-03  8:19   ` Paul Rolland
2011-02-03  8:19     ` Paul Rolland
2011-02-03 19:01     ` Rafael J. Wysocki
2011-02-03 19:01       ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #22912] spi_lm70llp module crash on unload (2.6.37-rc1) Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #22642] 2.6.37-rc1: Disk takes 10 seconds to resume - MacBook2,1 Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #22882] (2.6.37-rc1) amd64-agp module crashed on second load Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #23472] 2.6.37-rc2 vs. 2.6.36 laptop backlight changes? Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #24822] Embedded DisplayPort is detected wrongly on HP ProBook 5320m Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #24762] BUG at perf_ctx_adjust_freq (kernel/perf_event.c:1582) Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #24582] Kernel Oops at tty_buffer_request_room when using pppd program (2.6.37-rc4) Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #22942] [2.6.37-rc1, OOM] virtblk: OOM in do_virtblk_request() Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #24882] PM/Hibernate: Memory corruption patch introduces regression (2.6.36.2) Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #25432] Alpha fails to build with gcc 4.4 Rafael J. Wysocki
2011-02-08  8:24   ` Michael Cree
2011-02-03  0:05 ` [Bug #25442] ixp4xx defines FREQ macro; conflicts with gspca/ov519 driver Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #25072] backlight level is not maintened during LID close/open Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #25402] kernel (2.6.37-8-generic_amd64) panic on boot (with message "map_single: bounce buffer is not DMA'ble) - possible regression !!! Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #25822] [BUG] kernel BUG at mm/truncate.c:479! on 2.6.37-rc8 Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #25832] kernel crashes upon resume if usb devices are removed when suspended Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #25732] i915 turns picture green when display switched off-on Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26112] [LogFS] [2.6.37-rc8+] Kernel BUG at logfs/readwrite.c:297! Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #25922] IdeaPad Y530 brightness keys not functioning Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26102] [2.6.37-rc8] BUG kmalloc-256: Poison overwritten Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26552] Screen flickering with 2.6.37 [ATI X1600] Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26212] kernel NULL pointer dereference in pxa3xx_nand_probe Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26242] BUG: unable to handle kernel NULL pointer dereference at (null) Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26802] b43: Suspend failed Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26932] [SNB mobile] Oops in DRM intel driver, esp. during S3/S4 stress test Rafael J. Wysocki
2011-02-03 13:35   ` Matthias Hopf
2011-02-03 13:35     ` Matthias Hopf
2011-02-03 19:03     ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26842] [2.6.37 regression] threads with CPU affinity cannot be killed Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26582] NULL pointer dereference on pipe creation Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #26942] radeon: screen distortion on resume Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #27152] VGA output broken at cold boot Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #27132] flush-btrfs gets into an infinite loop Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #27202] Remote control of saa7134-based tv card "ASUSTeK P7131 Hybrid" stopped working in 2.6.37 Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #27642] 2.6.37 says WARNING: at arch/x86/kernel/apic/apic.c:1287 setup_local_APIC+0x18f/0x263() Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #27532] ath9k prevents CPU from entering lower C-states Rafael J. Wysocki
2011-02-03  0:05   ` Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #27402] Atheros adapter no longer loads firmware Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #27892] SNB: GPU hang with Slip xscreensaver Rafael J. Wysocki
2011-02-03  0:05 ` [Bug #27842] [regression?] hang with 2.6.37 on a BTRFS test machine Rafael J. Wysocki
2011-02-03 11:20   ` Martin Steigerwald
2011-02-03 11:46     ` Helmut Hullen
2011-02-03 23:21       ` Chris Samuel
2011-02-03 19:05     ` Rafael J. Wysocki
2011-02-03 11:23 ` 2.6.38-rc3-git1: Reported regressions 2.6.36 -> 2.6.37 Carlos R. Mafra
2011-02-03 11:23   ` Carlos R. Mafra
2011-02-03 15:42   ` Linus Torvalds
2011-02-03 15:42   ` Linus Torvalds
2011-02-03 15:42     ` Linus Torvalds
2011-02-03 16:11     ` Takashi Iwai
2011-02-03 16:11     ` Takashi Iwai
2011-02-03 19:09       ` Rafael J. Wysocki
2011-02-03 21:56         ` Carlos Mafra
2011-02-03 21:56           ` Carlos Mafra
2011-02-03 22:10           ` Linus Torvalds
2011-02-03 22:10           ` Linus Torvalds
2011-02-03 22:19             ` Linus Torvalds
2011-02-03 22:19             ` Linus Torvalds
2011-02-04  0:06             ` Dave Airlie
2011-02-04  0:06             ` Dave Airlie
2011-02-04  0:06               ` Dave Airlie
2011-02-04  0:30               ` Linus Torvalds
2011-02-04  0:30               ` Linus Torvalds
2011-02-04  0:45                 ` Dave Airlie
2011-02-04  0:45                 ` Dave Airlie
2011-02-04  1:05                 ` Keith Packard
2011-02-04  1:05                 ` Keith Packard [this message]
2011-02-04  1:05                   ` Keith Packard
2011-02-04  1:11                   ` Linus Torvalds
2011-02-04  1:41                     ` Keith Packard
2011-02-04  1:41                     ` Keith Packard
2011-02-04  1:42                     ` Dave Airlie
2011-02-04  1:42                     ` Dave Airlie
2011-02-04  7:05                     ` Carlos R. Mafra
2011-02-04  7:05                       ` Carlos R. Mafra
2011-02-04  7:05                     ` Carlos R. Mafra
2011-02-04 11:16                     ` Takashi Iwai
2011-02-04 11:16                     ` Takashi Iwai
2011-02-04  1:11                   ` Linus Torvalds
2011-02-03 21:56         ` Carlos Mafra
2011-02-03 19:09       ` Rafael J. Wysocki
2011-02-03 11:23 ` Carlos R. Mafra
2011-02-03  0:03 Rafael J. Wysocki

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=yund3n88v7x.fsf@aiko.keithp.com \
    --to=keithp@keithp.com \
    --cc=airlied@gmail.com \
    --cc=airlied@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=crmafra2@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=florian@mickler.org \
    --cc=kernel-testers@vger.kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=maciej.rutecki@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --cc=tiwai@suse.de \
    --cc=torvalds@linux-foundation.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.