Comment 0 for bug 1041315

James M. Leddy (jm-leddy) wrote :

Issue Description
-----------------

Garbage green lines (4-5 pixel lines) appear on top of some Lenovo laptops'
screens, persist from boot splash screen to desktop running.

Collected Data
--------------

Attached are the kernel dmesg, Xorg.0.log and dump files by intel_reg_dumper
for oneiric installation with kernel version 3.0.0-19.33 and 3.0.0-20.34, and
for precise installation with kernel version 3.2.0-23.26.

Observations
------------

1. These laptops are pre-installed with Oneiric

2. This issue only happens on Oneiric with kernel version 3.0.0-20.34
and later ones

3. This issue does not happen on Oneiric with kernel version
3.0.0-19.33 and previous ones

4. This issue does not happen on Precise (12.04) with kernel version 3.2.0-23.36

5. This issue is caused by the upstream commit below:

   f47166d2 drm/i915: Sanitize BIOS debugging bits from PIPECONF

   The rationale and original bug description for the above commit can be
   found at https://bugs.freedesktop.org/show_bug.cgi?id=47271

6. This issue would be gone if the above commit is reverted on Oneiric kernel
   version 3.0.0-19.33 and later ones

7. There is one other commit below which fixed an issue of the above commit
   in later kernel version, BUT this commit was verified to have nothing to
   do with the issue here:

   a9dcf84b drm/i915: don't clobber the pipe param in sanitize_modesetting

8. This issue was reported to be related to BIOS version as well (supposedly)

9. There is a WARN_ON() oops on Oneiric with both kernel versions, but this is
   supposedly an unrelated seperate issue, as it happens in both cases, but
   presumably fixed in Precise.

10. By comparing the dump contents between two kernels running on Oneiric, the
    significant difference is the PIPEACONF register

11. By comparing the dump contents between oneiric and precise, there are many
    more registers with different values

Summary
-------

We are able to identify the guilty commit, and are able to provide a workaround
by reverting the commit or by doing PIPECONF register change for non-relevant
machines. However, we are not able to form a correct theory to explain exactly
the above observations and to shape a correct patch to fix the root cause.