mbox

[pull,request,oneiric] Fixes for i915 PCH refclk code

Message ID 20111206224439.GG23686@thinkpad-t410
State New
Headers show

Pull-request

git://kernel.ubuntu.com/sforshee/ubuntu-oneiric.git lp614238

Message

Seth Forshee Dec. 6, 2011, 10:44 p.m. UTC
BugLink: http://bugs.launchpad.net/bugs/614238

These patches address a long-standing problem that causes VGA output
problems on some machines. These patches went into Linus's tree during
the 3.2 merge window, but I've been sitting on them a while as all
previous attempts to fix the problem had to be reverted due to
regressions on other hardware. Things are looking better this time
around, so please consider these backports for oneiric.

== SRU Justification ==

Impact: On some machines with an Ibex Peak PCH, SSC will be enabled on
the clock source used for analog outputs. This results in poor quality
output (described as "wavy") on the external display.

Fix: A series of upstream backports to the i915 driver. With these
backports, the driver will check for the existence of a CK505 clock
source, and if present this is used as the reference clock for analog
outputs so that SSC can remain enabled. Otherwise SSC is disabled. The
PCH refclk update code is also split out so that it can be called from
additional locations where the refclks should be updated.

Test Case: Running with backports on an affected system will fix quality
issues on VGA outputs. Verified for oneiric on LP #614238.


The following changes since commit 9b17787b269086b6556df3ff25f1421a5111131c:

  UBUNTU: Ubuntu-3.0.0-14.23 (2011-11-21 15:59:26 -0200)

are available in the git repository at:
  git://kernel.ubuntu.com/sforshee/ubuntu-oneiric.git lp614238

Jesse Barnes (1):
      drm/i915: split out PCH refclk update code

Keith Packard (7):
      drv/i915: Pull display_clock_mode out of VBT table
      drm/i915: Document a few more BDB_GENERAL_FEATURES bits from PCH BIOS
      drm/i915: Allow SSC parameter to override VBT value
      drm/i915: Fix PCH SSC reference clock settings
      drm/i915: Use CK505 as non-SSC source where available
      drm/i915: All PCH refclks are 120MHz
      drm/i915: Initialize PCH refclks at modeset init time

Thomas Jarosch (1):
      drm/i915: Fix wrong initializer for "locked" variable in assert_panel_unlocked

 drivers/gpu/drm/i915/i915_drv.c      |    8 ++-
 drivers/gpu/drm/i915/i915_drv.h      |    2 +
 drivers/gpu/drm/i915/intel_bios.c    |    7 ++
 drivers/gpu/drm/i915/intel_bios.h    |    9 ++-
 drivers/gpu/drm/i915/intel_display.c |  183 +++++++++++++++++++++++----------
 5 files changed, 150 insertions(+), 59 deletions(-)

Comments

Herton Ronaldo Krzesinski Dec. 7, 2011, 12:29 p.m. UTC | #1
On Tue, Dec 06, 2011 at 04:44:39PM -0600, Seth Forshee wrote:
> BugLink: http://bugs.launchpad.net/bugs/614238
> 
> These patches address a long-standing problem that causes VGA output
> problems on some machines. These patches went into Linus's tree during
> the 3.2 merge window, but I've been sitting on them a while as all
> previous attempts to fix the problem had to be reverted due to
> regressions on other hardware. Things are looking better this time
> around, so please consider these backports for oneiric.
> 
> == SRU Justification ==
> 
> Impact: On some machines with an Ibex Peak PCH, SSC will be enabled on
> the clock source used for analog outputs. This results in poor quality
> output (described as "wavy") on the external display.
> 
> Fix: A series of upstream backports to the i915 driver. With these
> backports, the driver will check for the existence of a CK505 clock
> source, and if present this is used as the reference clock for analog
> outputs so that SSC can remain enabled. Otherwise SSC is disabled. The
> PCH refclk update code is also split out so that it can be called from
> additional locations where the refclks should be updated.
> 
> Test Case: Running with backports on an affected system will fix quality
> issues on VGA outputs. Verified for oneiric on LP #614238.
> 
> 
> The following changes since commit 9b17787b269086b6556df3ff25f1421a5111131c:
> 
>   UBUNTU: Ubuntu-3.0.0-14.23 (2011-11-21 15:59:26 -0200)
> 
> are available in the git repository at:
>   git://kernel.ubuntu.com/sforshee/ubuntu-oneiric.git lp614238
> 
> Jesse Barnes (1):
>       drm/i915: split out PCH refclk update code
> 
> Keith Packard (7):
>       drv/i915: Pull display_clock_mode out of VBT table
>       drm/i915: Document a few more BDB_GENERAL_FEATURES bits from PCH BIOS
>       drm/i915: Allow SSC parameter to override VBT value
>       drm/i915: Fix PCH SSC reference clock settings
>       drm/i915: Use CK505 as non-SSC source where available
>       drm/i915: All PCH refclks are 120MHz
>       drm/i915: Initialize PCH refclks at modeset init time
> 
> Thomas Jarosch (1):
>       drm/i915: Fix wrong initializer for "locked" variable in assert_panel_unlocked
> 
>  drivers/gpu/drm/i915/i915_drv.c      |    8 ++-
>  drivers/gpu/drm/i915/i915_drv.h      |    2 +
>  drivers/gpu/drm/i915/intel_bios.c    |    7 ++
>  drivers/gpu/drm/i915/intel_bios.h    |    9 ++-
>  drivers/gpu/drm/i915/intel_display.c |  183 +++++++++++++++++++++++----------
>  5 files changed, 150 insertions(+), 59 deletions(-)

The backport looks ok. It seems cherry-picking the simple
"drm/i915: Use DRM_DEBUG_KMS for all messages in intel_bios.c",
belonging to the same series, would allow cherry-picking cleanly
abd06860185fc613776adae792772e076d77caf2, wouldn't change the end
result anyway. And looks like a bug with a lot of "heat", so:

Acked-by: Herton Ronaldo Krzesinski <herton.krzesinski@canonical.com>
Tim Gardner Dec. 7, 2011, 2:01 p.m. UTC | #2
On 12/06/2011 03:44 PM, Seth Forshee wrote:
> git://kernel.ubuntu.com/sforshee/ubuntu-oneiric.git lp614238

I took Herton's suggestion of a clean cherry-pick for 
562396b9e46bcb34cc18f513fea1c4764d8ea06d in order to avoid one of the 
backported patches (simple as it was).

I guess we'd better get some regression testing on this set.

rtg