[i915_bpo] Fix flickering issue after panel change

Bug #1770565 reported by Timo Aaltonen
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Unassigned
linux (Ubuntu)
Invalid
Undecided
Unassigned
Xenial
Fix Released
High
Timo Aaltonen

Bug Description

[Impact]
A certain OEM laptop changed the panel type/vendor, and the change regressed the driver causing a flickering image. The ODM has tools to measure various values of the driver/panel combination, and determined that some voltage levels were way too low to pass the spec. The process to bisect the commits took weeks, so while it's technically possible that this issue was fixed by a single commit (drm/i915: Ignore OpRegion panel type except on select machines), we've also kept another 10 commits which upstream thought should help (and did, they improved the measured values but not enough).

So, this backport carries all 11 commits from 4.8/4.9 that the ODM verified to pass the tests.

[Test case]
Needs to be tested with the ODM tools to be sure.

[Regression potential]
There is some, but apart from the necessary refactoring the rest are bugfixes to match the HW specs, so this should in fact fix a lot more than just this certain machine.

Timo Aaltonen (tjaalton)
Changed in linux (Ubuntu):
assignee: nobody → Timo Aaltonen (tjaalton)
importance: Undecided → High
status: New → Triaged
Timo Aaltonen (tjaalton)
description: updated
Timo Aaltonen (tjaalton)
Changed in linux (Ubuntu Xenial):
assignee: nobody → Timo Aaltonen (tjaalton)
importance: Undecided → High
status: New → Triaged
Changed in linux (Ubuntu):
assignee: Timo Aaltonen (tjaalton) → nobody
importance: High → Undecided
status: Triaged → Invalid
tags: added: originate-from-1747439 somerville
Revision history for this message
Taihsiang Ho (tai271828) wrote :

No regression was found by testing Dell Inspiron 3179[1] and Dell Latitude 3480[2] with their OEM images and this kernel deb https://aaltoset.kapsi.fi/lp1747439/

[1] https://certification.ubuntu.com/hardware/201605-22333/
[2] https://certification.ubuntu.com/hardware/201612-25305/

Stefan Bader (smb)
Changed in linux (Ubuntu Xenial):
status: Triaged → Fix Committed
Revision history for this message
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-xenial' to 'verification-done-xenial'. If the problem still exists, change the tag 'verification-needed-xenial' to 'verification-failed-xenial'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-xenial
tags: added: verification-done-xenial
removed: verification-needed-xenial
Revision history for this message
ethan.hsieh (ethan.hsieh) wrote :

Need special instrument to verify this issue.
ODM verified the following patch in their lab and got positive test result.

UBUNTU: Ubuntu-4.4.0-128.154
commit 2d19b35bc9773eb4de54b6104bfec79814f930db
Author: Ville Syrjälä <email address hidden>
Date: Fri May 11 08:21:00 2018 +0200
    drm/i915: Ignore OpRegion panel type except on select machines

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (15.1 KiB)

This bug was fixed in the package linux - 4.4.0-128.154

---------------
linux (4.4.0-128.154) xenial; urgency=medium

  * linux: 4.4.0-128.154 -proposed tracker (LP: #1772960)

  * CVE-2018-3639 (x86)
    - x86/cpu: Make alternative_msr_write work for 32-bit code
    - x86/bugs: Fix the parameters alignment and missing void
    - KVM: SVM: Move spec control call after restore of GS
    - x86/speculation: Use synthetic bits for IBRS/IBPB/STIBP
    - x86/cpufeatures: Disentangle MSR_SPEC_CTRL enumeration from IBRS
    - x86/cpufeatures: Disentangle SSBD enumeration
    - x86/cpu/AMD: Fix erratum 1076 (CPB bit)
    - x86/cpufeatures: Add FEATURE_ZEN
    - x86/speculation: Handle HT correctly on AMD
    - x86/bugs, KVM: Extend speculation control for VIRT_SPEC_CTRL
    - x86/speculation: Add virtualized speculative store bypass disable support
    - x86/speculation: Rework speculative_store_bypass_update()
    - x86/bugs: Unify x86_spec_ctrl_{set_guest,restore_host}
    - x86/bugs: Expose x86_spec_ctrl_base directly
    - x86/bugs: Remove x86_spec_ctrl_set()
    - x86/bugs: Rework spec_ctrl base and mask logic
    - x86/speculation, KVM: Implement support for VIRT_SPEC_CTRL/LS_CFG
    - KVM: SVM: Implement VIRT_SPEC_CTRL support for SSBD
    - x86/bugs: Rename SSBD_NO to SSB_NO
    - KVM: VMX: Expose SSBD properly to guests.

  * [i915_bpo] Fix flickering issue after panel change (LP: #1770565)
    - drm/i915: Fix iboost setting for DDI with 4 lanes on SKL
    - drm/i915: Name the "iboost bit"
    - drm/i915: Program iboost settings for HDMI/DVI on SKL
    - drm/i915: Move bxt_ddi_vswing_sequence() call into intel_ddi_pre_enable()
      for HDMI
    - drm/i915: Explicitly use ddi buf trans entry 9 for hdmi
    - drm/i915: Split DP/eDP/FDI and HDMI/DVI DDI buffer programming apart
    - drm/i915: Get the iboost setting based on the port type
    - drm/i915: Simplify intel_ddi_get_encoder_port()
    - drm/i915: Fix iboost setting for SKL Y/U DP DDI buffer translation entry 2
    - drm/i915: KBL - Recommended buffer translation programming for DisplayPort
    - drm/i915: Ignore OpRegion panel type except on select machines

  * [SRU][Bionic/Artful] fix false positives in W+X checking (LP: #1769696)
    - init: fix false positives in W+X checking

  * [Ubuntu 16.04] kernel: fix rwlock implementation (LP: #1761674)
    - SAUCE: (no-up) s390: fix rwlock implementation

  * linux < 4.11: unable to use netfilter logging from non-init namespaces
    (LP: #1766573)
    - netfilter: allow logging from non-init namespaces

  * [LTC Test] Ubuntu 18.04: tm_sigreturn failed on P8 compat mode 16.04.04
    guest (LP: #1771439)
    - powerpc: signals: Discard transaction state from signal frames

  * QCA9377 requires more IRAM banks for its new firmware (LP: #1748345)
    - ath10k: update the IRAM bank number for QCA9377

  * i915/kbl_dmc_ver1.bin failed with error -2 package 1.157.17 kernel
    4.4.0-116-generic (LP: #1752536)
    - ubuntu: i915_bpo - Add MODULE_FIRMWARE for Geminilake's DMC

  * Xenial update to 4.4.131 stable release (LP: #1768825)
    - ext4: prevent right-shifting extents beyond EXT_MAX_BLOCKS
    - ext4: set h_journal if there is a failure...

Changed in linux (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Killercow (janklopper) wrote :

Since installing this kernel, I see instant screen garbage or blanking (everything but the cursor), when attaching / removing a second / third screen on My Lenovo Thinkpad T440s.

Older kernels do not suffer these problems. A restart of lightdm makes the problems go away and makes a second screen be detected as expected.

What logs would be usefull? Xorg.0.log doesn't realy have anything out of the ordinary, nor does Dmesg.

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

file a new bug, test mainline kernels starting from 4.8 and up

http://kernel.ubuntu.com/~kernel-ppa/mainline/

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

although, your issue can't be the result of this backport, because T440s has a haswell (gen7.5) gpu, i915_bpo is used only on gen9 gpus

Changed in hwe-next:
status: New → 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.