diff mbox

Monitor sync out of range with current Linux git tree

Message ID CADnq5_NQ23tZqCN+w8FnsXv_ejjOPrYPgdQ=kMjvZV7MYhNZhQ@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Alex Deucher Oct. 5, 2012, 2:25 p.m. UTC
On Fri, Oct 5, 2012 at 10:15 AM, Markus Trippelsdorf
<markus@trippelsdorf.de> wrote:
> On 2012.10.05 at 10:02 -0400, Alex Deucher wrote:
>> On Fri, Oct 5, 2012 at 9:38 AM, Markus Trippelsdorf
>> <markus@trippelsdorf.de> wrote:
>> > On 2012.10.05 at 09:14 -0400, Alex Deucher wrote:
>> >> On Fri, Oct 5, 2012 at 8:37 AM, Markus Trippelsdorf
>> >> <markus@trippelsdorf.de> wrote:
>> >> > When I cold start my machine I see the following error message on my
>> >> > monitor:
>> >> >
>> >> >  Out of Range
>> >> >  48.2kHz / 44Hz
>> >> >
>> >> > I have to reboot on older kernel and kexec to the current one to get it
>> >> > working again.
>> >>
>> >> I don't see anything amiss; can you bisect?
>> >
>> > Yes. It's your commit:
>> >
>> > commit 9dbbcfc6894957fdbb311ba92c85c026659878b5
>> > Author: Alex Deucher <alexander.deucher@amd.com>
>> > Date:   Wed Sep 12 17:39:57 2012 -0400
>> >
>> >     drm/radeon/dce3: use a single PPLL for all DP displays
>>
>> Can you apply the attached patch and send me the output?
>
> [drm] == start crtc 0 driving DVI-D-1 ==
> [drm] crtc 0 is not DP
> [drm] plls in use 0x0
> [drm] crtc 0 using pll 0x1
> [drm] == end crtc 0 ==

Does the attached patch fix the issue?

Alex

Comments

Markus Trippelsdorf Oct. 5, 2012, 2:29 p.m. UTC | #1
On 2012.10.05 at 10:25 -0400, Alex Deucher wrote:
> On Fri, Oct 5, 2012 at 10:15 AM, Markus Trippelsdorf
> <markus@trippelsdorf.de> wrote:
> > On 2012.10.05 at 10:02 -0400, Alex Deucher wrote:
> >> On Fri, Oct 5, 2012 at 9:38 AM, Markus Trippelsdorf
> >> <markus@trippelsdorf.de> wrote:
> >> > On 2012.10.05 at 09:14 -0400, Alex Deucher wrote:
> >> >> On Fri, Oct 5, 2012 at 8:37 AM, Markus Trippelsdorf
> >> >> <markus@trippelsdorf.de> wrote:
> >> >> > When I cold start my machine I see the following error message on my
> >> >> > monitor:
> >> >> >
> >> >> >  Out of Range
> >> >> >  48.2kHz / 44Hz
> >> >> >
> >> >> > I have to reboot on older kernel and kexec to the current one to get it
> >> >> > working again.
> >> >>
> >> >> I don't see anything amiss; can you bisect?
> >> >
> >> > Yes. It's your commit:
> >> >
> >> > commit 9dbbcfc6894957fdbb311ba92c85c026659878b5
> >> > Author: Alex Deucher <alexander.deucher@amd.com>
> >> > Date:   Wed Sep 12 17:39:57 2012 -0400
> >> >
> >> >     drm/radeon/dce3: use a single PPLL for all DP displays
> >>
> >> Can you apply the attached patch and send me the output?
> >
> > [drm] == start crtc 0 driving DVI-D-1 ==
> > [drm] crtc 0 is not DP
> > [drm] plls in use 0x0
> > [drm] crtc 0 using pll 0x1
> > [drm] == end crtc 0 ==
> 
> Does the attached patch fix the issue?

Yes. Thanks Alex.
diff mbox

Patch

From 22044ce8b98127eea9761f3dd86d70abe7dd0a09 Mon Sep 17 00:00:00 2001
From: Alex Deucher <alexander.deucher@amd.com>
Date: Fri, 5 Oct 2012 10:22:02 -0400
Subject: [PATCH] drm/radeon: allocate PPLLs from low to high

The order shouldn't matter, but there have been problems
reported on certain older asics.  This behaves more
like the original code before the PPLL allocation
rework.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
---
 drivers/gpu/drm/radeon/atombios_crtc.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
index 96184d0..2e566e1 100644
--- a/drivers/gpu/drm/radeon/atombios_crtc.c
+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
@@ -1690,10 +1690,10 @@  static int radeon_atom_pick_pll(struct drm_crtc *crtc)
 		}
 		/* all other cases */
 		pll_in_use = radeon_get_pll_use_mask(crtc);
-		if (!(pll_in_use & (1 << ATOM_PPLL2)))
-			return ATOM_PPLL2;
 		if (!(pll_in_use & (1 << ATOM_PPLL1)))
 			return ATOM_PPLL1;
+		if (!(pll_in_use & (1 << ATOM_PPLL2)))
+			return ATOM_PPLL2;
 		DRM_ERROR("unable to allocate a PPLL\n");
 		return ATOM_PPLL_INVALID;
 	} else {
@@ -1715,10 +1715,10 @@  static int radeon_atom_pick_pll(struct drm_crtc *crtc)
 			}
 			/* all other cases */
 			pll_in_use = radeon_get_pll_use_mask(crtc);
-			if (!(pll_in_use & (1 << ATOM_PPLL2)))
-				return ATOM_PPLL2;
 			if (!(pll_in_use & (1 << ATOM_PPLL1)))
 				return ATOM_PPLL1;
+			if (!(pll_in_use & (1 << ATOM_PPLL2)))
+				return ATOM_PPLL2;
 			DRM_ERROR("unable to allocate a PPLL\n");
 			return ATOM_PPLL_INVALID;
 		} else {
-- 
1.7.7.5