Patchwork [SRU,LUCID] Bug#554569 Blank screen with KMS on Thinkpad X201 with Arrandale (i915)

login
register
mail settings
Submitter Manoj Iyer
Date Aug. 3, 2010, 7:34 p.m.
Message ID <alpine.DEB.2.00.1008031426240.30907@hungry>
Download mbox | patch
Permalink /patch/60790/
State Accepted
Delegated to: Steve Conklin
Headers show

Comments

Manoj Iyer - Aug. 3, 2010, 7:34 p.m.
BUG
Tim Gardner - Aug. 3, 2010, 7:39 p.m.
On 08/03/2010 01:34 PM, Manoj Iyer wrote:
>
> BUG
> ===
> Blank screen with KMS on Thinkpad X201 with Arrandale (i915)
> http://launchpad.net/bugs/554569
>
> SRU JUSTFICATION
> ================
> This patch fixes the issue with Thinkpad X201 with Arrandale (i915), it is
> a critical patch needed to enable Thinkpad X201.
>
> TESTING
> =======
> The patch was tested by vanhoof@canonical and Thomas Uehlinger details of
> the test results can be found towards the end of the bug report.
>
> PATCH
> =====
> This patch is cherry picked from 2.6.34.y GKH stable tree. It applies
> cleanly to Lucid. It is a 2 line patch that applies to
> drivers/gpu/drm/i915/intel_display.c . Please consider for Lucid SRU.
>
> The following changes since commit
> 4d59634f6e1a9731f9f47979ef1af20007b866fe:
>     Adam Jackson (1):
>           drm/i915: Make G4X-style PLL search more permissive
>
> are available in the git repository at:
>
>
> git://kernel.ubuntu.com/git/manjo/ubuntu-lucid.git lp554569
>
>
>  From 4d59634f6e1a9731f9f47979ef1af20007b866fe Mon Sep 17 00:00:00 2001
> From: Adam Jackson<ajax@redhat.com>
> Date: Fri, 2 Jul 2010 16:43:30 -0400
> Subject: [PATCH] drm/i915: Make G4X-style PLL search more permissive
>
> commit 6ba770dc5c334aff1c055c8728d34656e0f091e2 upstream.
>
> Fixes an Ironlake laptop with a 68.940MHz 1280x800 panel and 120MHz SSC
> reference clock.
>
> More generally, the 0.488% tolerance used before is just too tight to
> reliably find a PLL setting.  I extracted the search algorithm and
> modified it to find the dot clocks with maximum error over the valid
> range for the given output type:
>
> http://people.freedesktop.org/~ajax/intel_g4x_find_best_pll.c
>
> This gave:
>
> Worst dotclock for Ironlake DAC refclk is 350000kHz (error 0.00571)
> Worst dotclock for Ironlake SL-LVDS refclk is 102321kHz (error 0.00524)
> Worst dotclock for Ironlake DL-LVDS refclk is 219642kHz (error 0.00488)
> Worst dotclock for Ironlake SL-LVDS SSC refclk is 84374kHz (error 0.00529)
> Worst dotclock for Ironlake DL-LVDS SSC refclk is 183035kHz (error 0.00488)
> Worst dotclock for G4X SDVO refclk is 267600kHz (error 0.00448)
> Worst dotclock for G4X HDMI refclk is 334400kHz (error 0.00478)
> Worst dotclock for G4X SL-LVDS refclk is 95571kHz (error 0.00449)
> Worst dotclock for G4X DL-LVDS refclk is 224000kHz (error 0.00510)
>
> Signed-off-by: Adam Jackson<ajax@redhat.com>
> Signed-off-by: Eric Anholt<eric@anholt.net>
> Signed-off-by: Greg Kroah-Hartman<gregkh@suse.de>
>
> (cherry picked from commit d4e0018e3e4dd685af25d300fd26a0d5a984482e)
>
> Signed-off-by: Manoj Iyer<manoj.iyer@canonical.com>
>
> Buglink: http://launchpad.net/bugs/554569
> ---
>    drivers/gpu/drm/i915/intel_display.c |    4 ++--
>    1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 2d1ac14..7c89b83 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -879,8 +879,8 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
>    	intel_clock_t clock;
>    	int max_n;
>    	bool found;
> -	/* approximately equals target * 0.00488 */
> -	int err_most = (target>>  8) + (target>>  10);
> +	/* approximately equals target * 0.00585 */
> +	int err_most = (target>>  8) + (target>>  9);
>    	found = false;
>
>    	if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {

Acked-by: Tim Gardner <tim.gardner@canonical.com>

though I think it could be cherry picked directly from Linus' tree.
Manoj Iyer - Aug. 3, 2010, 7:43 p.m.
>
> Acked-by: Tim Gardner <tim.gardner@canonical.com>
>
> though I think it could be cherry picked directly from Linus' tree.

Yep, I was told in my last SRU that for Lucid we pick from .32/.33/.34 
trees, may be I misunderstood...

> -- 
> Tim Gardner tim.gardner@canonical.com
>
Brad Figg - Aug. 3, 2010, 7:48 p.m.
On 08/03/2010 12:39 PM, Tim Gardner wrote:
> On 08/03/2010 01:34 PM, Manoj Iyer wrote:
>>
>> BUG
>> ===
>> Blank screen with KMS on Thinkpad X201 with Arrandale (i915)
>> http://launchpad.net/bugs/554569
>>
>> SRU JUSTFICATION
>> ================
>> This patch fixes the issue with Thinkpad X201 with Arrandale (i915), it is
>> a critical patch needed to enable Thinkpad X201.
>>
>> TESTING
>> =======
>> The patch was tested by vanhoof@canonical and Thomas Uehlinger details of
>> the test results can be found towards the end of the bug report.
>>
>> PATCH
>> =====
>> This patch is cherry picked from 2.6.34.y GKH stable tree. It applies
>> cleanly to Lucid. It is a 2 line patch that applies to
>> drivers/gpu/drm/i915/intel_display.c . Please consider for Lucid SRU.
>>
>> The following changes since commit
>> 4d59634f6e1a9731f9f47979ef1af20007b866fe:
>>      Adam Jackson (1):
>>            drm/i915: Make G4X-style PLL search more permissive
>>
>> are available in the git repository at:
>>
>>
>> git://kernel.ubuntu.com/git/manjo/ubuntu-lucid.git lp554569
>>
>>
>>   From 4d59634f6e1a9731f9f47979ef1af20007b866fe Mon Sep 17 00:00:00 2001
>> From: Adam Jackson<ajax@redhat.com>
>> Date: Fri, 2 Jul 2010 16:43:30 -0400
>> Subject: [PATCH] drm/i915: Make G4X-style PLL search more permissive
>>
>> commit 6ba770dc5c334aff1c055c8728d34656e0f091e2 upstream.
>>
>> Fixes an Ironlake laptop with a 68.940MHz 1280x800 panel and 120MHz SSC
>> reference clock.
>>
>> More generally, the 0.488% tolerance used before is just too tight to
>> reliably find a PLL setting.  I extracted the search algorithm and
>> modified it to find the dot clocks with maximum error over the valid
>> range for the given output type:
>>
>> http://people.freedesktop.org/~ajax/intel_g4x_find_best_pll.c
>>
>> This gave:
>>
>> Worst dotclock for Ironlake DAC refclk is 350000kHz (error 0.00571)
>> Worst dotclock for Ironlake SL-LVDS refclk is 102321kHz (error 0.00524)
>> Worst dotclock for Ironlake DL-LVDS refclk is 219642kHz (error 0.00488)
>> Worst dotclock for Ironlake SL-LVDS SSC refclk is 84374kHz (error 0.00529)
>> Worst dotclock for Ironlake DL-LVDS SSC refclk is 183035kHz (error 0.00488)
>> Worst dotclock for G4X SDVO refclk is 267600kHz (error 0.00448)
>> Worst dotclock for G4X HDMI refclk is 334400kHz (error 0.00478)
>> Worst dotclock for G4X SL-LVDS refclk is 95571kHz (error 0.00449)
>> Worst dotclock for G4X DL-LVDS refclk is 224000kHz (error 0.00510)
>>
>> Signed-off-by: Adam Jackson<ajax@redhat.com>
>> Signed-off-by: Eric Anholt<eric@anholt.net>
>> Signed-off-by: Greg Kroah-Hartman<gregkh@suse.de>
>>
>> (cherry picked from commit d4e0018e3e4dd685af25d300fd26a0d5a984482e)
>>
>> Signed-off-by: Manoj Iyer<manoj.iyer@canonical.com>
>>
>> Buglink: http://launchpad.net/bugs/554569
>> ---
>>     drivers/gpu/drm/i915/intel_display.c |    4 ++--
>>     1 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index 2d1ac14..7c89b83 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -879,8 +879,8 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
>>     	intel_clock_t clock;
>>     	int max_n;
>>     	bool found;
>> -	/* approximately equals target * 0.00488 */
>> -	int err_most = (target>>   8) + (target>>   10);
>> +	/* approximately equals target * 0.00585 */
>> +	int err_most = (target>>   8) + (target>>   9);
>>     	found = false;
>>
>>     	if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {
>
> Acked-by: Tim Gardner<tim.gardner@canonical.com>
>
> though I think it could be cherry picked directly from Linus' tree.

Acked-by: Brad Figg <brad.figg@canonical.com>
Steve Conklin - Aug. 3, 2010, 9:09 p.m.
On Tue, 2010-08-03 at 14:34 -0500, Manoj Iyer wrote:
> BUG
> ===
> Blank screen with KMS on Thinkpad X201 with Arrandale (i915)
> http://launchpad.net/bugs/554569
> 
> SRU JUSTFICATION
> ================
> This patch fixes the issue with Thinkpad X201 with Arrandale (i915), it is 
> a critical patch needed to enable Thinkpad X201.
> 
> TESTING
> =======
> The patch was tested by vanhoof@canonical and Thomas Uehlinger details of 
> the test results can be found towards the end of the bug report.
> 
> PATCH
> =====
> This patch is cherry picked from 2.6.34.y GKH stable tree. It applies 
> cleanly to Lucid. It is a 2 line patch that applies to 
> drivers/gpu/drm/i915/intel_display.c . Please consider for Lucid SRU.
> 
> The following changes since commit 
> 4d59634f6e1a9731f9f47979ef1af20007b866fe:
>    Adam Jackson (1):
>          drm/i915: Make G4X-style PLL search more permissive
> 
> are available in the git repository at:
> 
> 
> git://kernel.ubuntu.com/git/manjo/ubuntu-lucid.git lp554569
> 
> 
> From 4d59634f6e1a9731f9f47979ef1af20007b866fe Mon Sep 17 00:00:00 2001
> From: Adam Jackson <ajax@redhat.com>
> Date: Fri, 2 Jul 2010 16:43:30 -0400
> Subject: [PATCH] drm/i915: Make G4X-style PLL search more permissive
> 
> commit 6ba770dc5c334aff1c055c8728d34656e0f091e2 upstream.
> 
> Fixes an Ironlake laptop with a 68.940MHz 1280x800 panel and 120MHz SSC
> reference clock.
> 
> More generally, the 0.488% tolerance used before is just too tight to
> reliably find a PLL setting.  I extracted the search algorithm and
> modified it to find the dot clocks with maximum error over the valid
> range for the given output type:
> 
> http://people.freedesktop.org/~ajax/intel_g4x_find_best_pll.c
> 
> This gave:
> 
> Worst dotclock for Ironlake DAC refclk is 350000kHz (error 0.00571)
> Worst dotclock for Ironlake SL-LVDS refclk is 102321kHz (error 0.00524)
> Worst dotclock for Ironlake DL-LVDS refclk is 219642kHz (error 0.00488)
> Worst dotclock for Ironlake SL-LVDS SSC refclk is 84374kHz (error 0.00529)
> Worst dotclock for Ironlake DL-LVDS SSC refclk is 183035kHz (error 0.00488)
> Worst dotclock for G4X SDVO refclk is 267600kHz (error 0.00448)
> Worst dotclock for G4X HDMI refclk is 334400kHz (error 0.00478)
> Worst dotclock for G4X SL-LVDS refclk is 95571kHz (error 0.00449)
> Worst dotclock for G4X DL-LVDS refclk is 224000kHz (error 0.00510)
> 
> Signed-off-by: Adam Jackson <ajax@redhat.com>
> Signed-off-by: Eric Anholt <eric@anholt.net>
> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
> 
> (cherry picked from commit d4e0018e3e4dd685af25d300fd26a0d5a984482e)
> 
> Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>
> 
> Buglink: http://launchpad.net/bugs/554569
> ---
>   drivers/gpu/drm/i915/intel_display.c |    4 ++--
>   1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 2d1ac14..7c89b83 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -879,8 +879,8 @@ intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
>   	intel_clock_t clock;
>   	int max_n;
>   	bool found;
> -	/* approximately equals target * 0.00488 */
> -	int err_most = (target >> 8) + (target >> 10);
> +	/* approximately equals target * 0.00585 */
> +	int err_most = (target >> 8) + (target >> 9);
>   	found = false;
> 
>   	if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {
> -- 
> 1.7.0.4
> 
> 
> Cheers
> --- manjo
>

Patch

===
Blank screen with KMS on Thinkpad X201 with Arrandale (i915)
http://launchpad.net/bugs/554569

SRU JUSTFICATION
================
This patch fixes the issue with Thinkpad X201 with Arrandale (i915), it is 
a critical patch needed to enable Thinkpad X201.

TESTING
=======
The patch was tested by vanhoof@canonical and Thomas Uehlinger details of 
the test results can be found towards the end of the bug report.

PATCH
=====
This patch is cherry picked from 2.6.34.y GKH stable tree. It applies 
cleanly to Lucid. It is a 2 line patch that applies to 
drivers/gpu/drm/i915/intel_display.c . Please consider for Lucid SRU.

The following changes since commit 
4d59634f6e1a9731f9f47979ef1af20007b866fe:
   Adam Jackson (1):
         drm/i915: Make G4X-style PLL search more permissive

are available in the git repository at:


git://kernel.ubuntu.com/git/manjo/ubuntu-lucid.git lp554569


From 4d59634f6e1a9731f9f47979ef1af20007b866fe Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax@redhat.com>
Date: Fri, 2 Jul 2010 16:43:30 -0400
Subject: [PATCH] drm/i915: Make G4X-style PLL search more permissive

commit 6ba770dc5c334aff1c055c8728d34656e0f091e2 upstream.

Fixes an Ironlake laptop with a 68.940MHz 1280x800 panel and 120MHz SSC
reference clock.

More generally, the 0.488% tolerance used before is just too tight to
reliably find a PLL setting.  I extracted the search algorithm and
modified it to find the dot clocks with maximum error over the valid
range for the given output type:

http://people.freedesktop.org/~ajax/intel_g4x_find_best_pll.c

This gave:

Worst dotclock for Ironlake DAC refclk is 350000kHz (error 0.00571)
Worst dotclock for Ironlake SL-LVDS refclk is 102321kHz (error 0.00524)
Worst dotclock for Ironlake DL-LVDS refclk is 219642kHz (error 0.00488)
Worst dotclock for Ironlake SL-LVDS SSC refclk is 84374kHz (error 0.00529)
Worst dotclock for Ironlake DL-LVDS SSC refclk is 183035kHz (error 0.00488)
Worst dotclock for G4X SDVO refclk is 267600kHz (error 0.00448)
Worst dotclock for G4X HDMI refclk is 334400kHz (error 0.00478)
Worst dotclock for G4X SL-LVDS refclk is 95571kHz (error 0.00449)
Worst dotclock for G4X DL-LVDS refclk is 224000kHz (error 0.00510)

Signed-off-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

(cherry picked from commit d4e0018e3e4dd685af25d300fd26a0d5a984482e)

Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>

Buglink: http://launchpad.net/bugs/554569
---
  drivers/gpu/drm/i915/intel_display.c |    4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 2d1ac14..7c89b83 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -879,8 +879,8 @@  intel_g4x_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc,
  	intel_clock_t clock;
  	int max_n;
  	bool found;
-	/* approximately equals target * 0.00488 */
-	int err_most = (target >> 8) + (target >> 10);
+	/* approximately equals target * 0.00585 */
+	int err_most = (target >> 8) + (target >> 9);
  	found = false;

  	if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) {