Bug 32748

Summary: Reverted: Lenovo U160 clocks fix
Product: DRI Reporter: Chris Wilson <chris>
Component: DRM/IntelAssignee: Chris Wilson <chris>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: medium CC: freedesktop, jbarnes
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Poke SSC bits
none
Poke SSC bits none

Description Chris Wilson 2010-12-30 11:10:23 UTC
This patch was required to enable the LVDS panel on the U160, however it caused a regression for others:

commit bcfbbce822d219eb587acaba8a6e062bbeae4761
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Thu Dec 30 09:07:15 2010 +0000

    Revert "drm/i915/bios: Reverse order of 100/120 Mhz SSC clocks"
    
    As I feared, whilst this fixed the clocks for the Lenovo U160, it broke
    many other machines. So lets reverts commit 448f53a1ede54eb854d036abf
    and search for the real bug.
    
    Reported-and-tested-by: Travis Hume <travis@computoring.org> [et al]
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=25842
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=32698
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 1 Lukács, Árpád 2011-01-12 08:56:45 UTC
At the moment, this patch is the only way I know of to use the U160 with linux. Is it possible to add a kernel option for enabling it, while developers figure out how to make it compatible with other computers?
Comment 2 Chris Wilson 2011-01-12 09:20:19 UTC
Good suggestion:

commit 2cfad3600e192f867c0e03905c90903f189c010a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 12 17:04:08 2011 +0000

    drm/i915: Add a module option to override the use of SSC
    
    In order to workaround the issue with LVDS not working on the Lenovo
    U160 apparently due to using the wrong SSC frequency, add an option to
    disable SSC.
    
    Suggested-by: Lukács, Árpád <lukacs.arpad@gmail.com>
    Bugzillla: https://bugs.freedesktop.org/show_bug.cgi?id=32748
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 3 Chris Wilson 2011-01-12 14:45:43 UTC
Created attachment 41938 [details] [review]
Poke SSC bits

I was looking at how to disable SSC for non-panel CRTCs and saw that it had some impact on the U160. Maybe this is the lucky patch?
Comment 4 Chris Wilson 2011-01-12 15:08:40 UTC
Created attachment 41941 [details] [review]
Poke SSC bits

Refined the patch to include another bit of information from the VBT.
Comment 5 Chris Wilson 2011-01-12 16:23:49 UTC
(In reply to comment #4)
> Created an attachment (id=41941) [details]
> Poke SSC bits

That patch causes "ERROR failed to disable transcoder" on my x201s. Not perfect yet.
Comment 6 Chris Wilson 2011-01-19 05:42:56 UTC
drm-intel-next works for me(tm).
Comment 7 Tony Houghton 2011-06-17 09:40:49 UTC
(In reply to comment #2)

>     drm/i915: Add a module option to override the use of SSC

I had to do a bit of detective work to find out what the option is! For the benfit of others struggling to get their Lenovo U160 to work, you need to add lvds_use_ssc=0 to the module options for i915.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.