[i915_bpo/SKL] Display corrupted after resume from suspend

Bug #1490035 reported by Timo Aaltonen
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Critical
Timo Aaltonen
linux (Ubuntu)
Fix Released
Undecided
Timo Aaltonen
Vivid
Fix Released
Critical
Unassigned

Bug Description

A new video BIOS code from Intel causes a regression on Skylake where the screen gets corrupted after resuming from suspend. This is a blocker for OEM's, since new BIOS releases will include this VBIOS. We've helped the vendor to verify a patch to fix it, and it's already been queued for 4.3:

commit 39d9b85a4d4fa1642663ca0d208b5c246a3d6f50
Author: Gary Wang <email address hidden>
Date: Fri Aug 28 16:40:34 2015 +0800

    drm/i915: set CDCLK if DPLL0 enabled during resuming from S3

    Since BIOS RC 1.4 it would enable CDCLK PLL during BIOS S3 resume, then
    driver needs to set CDCLK to avoid display corruption if DPLL0 enabled.

    References: https://bugs.freedesktop.org/show_bug.cgi?id=91697
    Reviewed-by: Rodrigo Vivi <email address hidden>
    Reviewed-by: Damien Lespiau <email address hidden>
    Reviewed-by: Cooper Chiou <email address hidden>
    Reviewed-by: Wei Shun Chang <email address hidden>
    Tested-by: Gary Wang <email address hidden>
    Cc: Daniel Vetter <email address hidden>
    Cc: Gavin Hindman <email address hidden>
    Cc: Chris Wilson <email address hidden>
    Cc: Xiong Y Zhang <email address hidden>
    Signed-off-by: Gary Wang <email address hidden>
    Signed-off-by: Jani Nikula <email address hidden>

Timo Aaltonen (tjaalton)
Changed in linux (Ubuntu):
assignee: nobody → Timo Aaltonen (tjaalton)
status: New → In Progress
Timo Aaltonen (tjaalton)
Changed in linux (Ubuntu Vivid):
importance: Undecided → Critical
status: New → In Progress
summary: - [i915_bpo] Display corrupted after resume from suspend
+ [i915_bpo/SKL] Display corrupted after resume from suspend
Revision history for this message
Timo Aaltonen (tjaalton) wrote :

wily will get this once it's in Linus' tree

Changed in linux (Ubuntu):
status: In Progress → Triaged
Revision history for this message
Kent Lin (kent-jclin) wrote :

Test VOSSKL-E3-C1 with -27.29+bpo1, VGA ouput issue is also fixed.
Test TRI-SFF-DVT2-C1 X02 with -27.29+bpo1, VGA ouput issue is also fixed.

Revision history for this message
Kent Lin (kent-jclin) wrote :

Test Kernel -27.29+bpo1 fixed the S3 resume display corruption issue caused by Intel RC 1.4 code.

Luis Henriques (henrix)
Changed in linux (Ubuntu Vivid):
status: In Progress → Fix Committed
Keng-Yu Lin (lexical)
Changed in hwe-next:
assignee: nobody → Timo Aaltonen (tjaalton)
status: New → Triaged
importance: Undecided → Critical
Robert Hooker (sarvatt)
Changed in hwe-next:
status: Triaged → Fix Released
status: Fix Released → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (14.6 KiB)

This bug was fixed in the package linux - 3.19.0-28.30

---------------
linux (3.19.0-28.30) vivid; urgency=low

  [ Luis Henriques ]

  * Release Tracking Bug
    - LP: #1490606

  [ Gary Wang ]

  * SAUCE: i915_bpo: drm/i915: set CDCLK if DPLL0 enabled during resuming
    from S3
    - LP: #1490035

  [ Timo Aaltonen ]

  * Revert "SAUCE: i915_bpo: drm/i915/skl: DDI-E and DDI-A shares 4 lanes."
    - LP: #1490038

linux (3.19.0-27.29) vivid; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1485113

  [ Adam Lee ]

  * SAUCE: serial: 8250_pci: Add support for Pericom PI7C9X795[1248]
    - LP: #1480142

  [ Arun Siluvery ]

  * SAUCE: i915_bpo: drm/i915/gen8: Add infrastructure to initialize WA
    batch buffers
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915/gen8: Re-order init pipe_control in lrc mode
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915/gen8: Add WaDisableCtxRestoreArbitration
    workaround
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915/gen8: Add
    WaFlushCoherentL3CacheLinesAtContextSwitch workaround
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915: Bail out early if WA batch is not available
    for given Gen
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915/gen8: Add WaClearSlmSpaceAtContextSwitch
    workaround
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915: Update
    WaFlushCoherentL3CacheLinesAtContextSwitch
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915: Enable WA batch buffers for Gen9
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915/gen9: Add WaDisableCtxRestoreArbitration
    workaround
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915: Update wa_ctx_emit() macro as per kernel
    coding guidelines
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915/gen9: Add
    WaFlushCoherentL3CacheLinesAtContextSwitch workaround
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915/gen9: Add
    WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915:skl: Add WaEnableGapsTsvCreditFix
    - LP: #1484486

  [ Chris Wilson ]

  * SAUCE: i915_bpo: drm/i915: Use two 32bit reads for select 64bit
    REG_READ ioctls
    - LP: #1484482
  * SAUCE: i915_bpo: drm/i915: Replace WARN inside I915_READ64_2x32 with
    retry loop
    - LP: #1484482
  * SAUCE: i915_bpo: drm/i915: Mark PIN_USER binding as GLOBAL_BIND without
    the aliasing ppgtt
    - LP: #1484482
  * SAUCE: i915_bpo: drm/i915: Declare the swizzling unknown for L-shaped
    configurations
    - LP: #1484482

  [ Damien Lespiau ]

  * SAUCE: i915_bpo: drm/i915/skl: Don't expose the top most plane on gen9
    display
    - LP: #1484486

  [ Daniel Vetter ]

  * SAUCE: i915_bpo: drm/i915: Fixup dp mst encoder selection
    - LP: #1484482

  [ David Weinehall ]

  * SAUCE: i915_bpo: drm/i915: Allow parsing of variable size child device
    entries from VBT
  * SAUCE: i915_bpo: drm/i915: Allow parsing of variable size child device
    entries from VBT, addendum v2
    - LP: #1484482

  [ Jani Nikula ]

  * SAUCE: i915_bpo: drm/i915/skl: WaIgnoreDDIAStrap is forever, always
    init DDI A
    - LP: #1484486
  * SAUCE: i915_bpo: drm/i915: reduce indent in i9xx_hpd_irq_handler
    - LP: #1484531
  * SAUCE: i915_bpo: drm/i91...

Changed in linux (Ubuntu Vivid):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.2 KiB)

This bug was fixed in the package linux - 4.2.0-10.11

---------------
linux (4.2.0-10.11) wily; urgency=low

  [ Andy Whitcroft ]

  * Release Tracking Bug
    - LP: #1495208
  * No change rebuild to avoid issues with leading zero bytes on
    internal module signing key. (see launchpad bug 1494943)

  [ Ming Lei ]

  * [Config] SERIAL_8250_DW=y for arm64

  [ Upstream Kernel Changes ]

  * drm/i915: Move WaBarrierPerformanceFixDisable:skl to skl code from chv
    code
    - LP: #1484486
  * drm/i915/gen8: Add infrastructure to initialize WA batch buffers
    - LP: #1484486
  * drm/i915/gen8: Re-order init pipe_control in lrc mode
    - LP: #1484486
  * drm/i915/gen8: Add WaDisableCtxRestoreArbitration workaround
    - LP: #1484486
  * drm/i915/gen8: Add WaFlushCoherentL3CacheLinesAtContextSwitch
    workaround
    - LP: #1484486
  * drm/i915: Bail out early if WA batch is not available for given Gen
    - LP: #1484486
  * drm/i915/gen8: Add WaClearSlmSpaceAtContextSwitch workaround
    - LP: #1484486
  * drm/i915: Update WaFlushCoherentL3CacheLinesAtContextSwitch
    - LP: #1484486
  * drm/i915/gen9: Implement WaDisableKillLogic for gen 9
    - LP: #1484486
  * drm/i915: Enable WA batch buffers for Gen9
    - LP: #1484486
  * drm/i915/gen9: Add WaDisableCtxRestoreArbitration workaround
    - LP: #1484486
  * drm/i915: Update wa_ctx_emit() macro as per kernel coding guidelines
    - LP: #1484486
  * drm/i915/gen9: Add WaFlushCoherentL3CacheLinesAtContextSwitch
    workaround
    - LP: #1484486
  * drm/i915/gen9: Add
    WaSetDisablePixMaskCammingAndRhwoInCommonSliceChicken
    - LP: #1484486
  * drm/i915:skl: Add WaEnableGapsTsvCreditFix
    - LP: #1484486
  * drm/i915/skl: revert duplicated WaBarrierPerformanceFixDisable:skl
    - LP: #1484486
  * drm/i915/skl: Don't expose the top most plane on gen9 display
    - LP: #1484486
  * drm/i915/skl WaDisableSbeCacheDispatchPortSharing
    - LP: #1484486
  * drm/i915/skl: WaIgnoreDDIAStrap is forever, always init DDI A
    - LP: #1484486
  * drm/i915: reduce indent in i9xx_hpd_irq_handler
    - LP: #1484531
  * drm/i915: reduce duplicate conditions in i9xx_hpd_irq_handler
    - LP: #1484531
  * drm/i915: reduce indent in intel_hpd_irq_handler
    - LP: #1484531
  * drm/i915: group all hotplug related fields into a new struct in
    dev_priv
    - LP: #1484531
  * drm/i915: add for_each_hpd_pin to iterate over hotplug pins
    - LP: #1484531
  * drm/i915: simplify conditions for skipping the 2nd hpd loop iterations
    - LP: #1484531
  * drm/i915: put back the indent in intel_hpd_irq_handler
    - LP: #1484531
  * drm/i915: merge the two hpd loops in intel_hpd_irq_handler to one
    - LP: #1484531
  * drm/i915: simplify condition for digital port
    - LP: #1484531
  * drm/i915: abstract away platform specific parts from hpd handling
    - LP: #1484531
  * drm/i915: Handle HPD when it has actually occurred
    - LP: #1484531
  * drm/i915: Set power domain for DDI-E
    - LP: #1484531
  * drm/i915: Set alternate aux for DDI-E
    - LP: #1484531
  * drm/i915/skl: enable DDI-E hotplug
    - LP: #1484531
  * drm/i915/bxt: fix DDI PHY vswing scale value setting
    - LP: #1494163
  * drm/i915/skl: Buf...

Read more...

Changed in linux (Ubuntu):
status: Triaged → Fix Released
Timo Aaltonen (tjaalton)
Changed in hwe-next:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.