Bug 67591

Summary: Using i915.fastboot, mouse is displayed in 640x480 range only since commit d6e4db15, i.e. 3.12+
Product: Drivers Reporter: Andre Müller (andre.muller)
Component: Video(DRI - Intel)Assignee: intel-gfx-bugs (intel-gfx-bugs)
Status: RESOLVED CODE_FIX    
Severity: normal CC: daniel, intel-gfx-bugs, jbarnes
Priority: P1    
Hardware: x86-64   
OS: Linux   
Kernel Version: v3.12+ (commit d6e4db15) ... 3.13-rc6 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: .config for v3.13-rc5
dmesg after boot to 3.13-rc5
lspci -vvv output on 3.13-rc5
bisection log

Description Andre Müller 2013-12-23 21:03:55 UTC
The X (hardware) cursor is often not displayed.
The cursor is only displayed at all in a rectangle that looks
suspiciously to be 640x480 in size, located in the top left.
There are other restrictions, though.
The cursor is never displayed but in the leftmost terminal or below it.
But not below a second terminal to the right.
When closing that second terminal, the 640x480 visibility is restored.

There is a warning in the dmesg:

[...]
[    0.321336] [drm] Wrong MCH_SSKPD value: 0x16040307
[    0.321342] [drm] This can cause pipe underruns and display issues.
[    0.321344] [drm] Please upgrade your BIOS to fix this.
[    0.382191] [drm] GMBUS [i915 gmbus dpb] timed out, falling back to bit banging on pin 5
[...]

The BIOS has the latest available firmware though.

Linux-3.12 is fine, also this warning does not show.
Anything below 3.12, as well as stable until 3.12.6 are fine.

I have found this error present in 3.13-rc3 and -rc5,
but have not yet tried to further narrow it down.

Some info on the system:

Lenovo Thinkpad T420,
that is sandybridge with intel integrated graphics.
UEFI firmware v 1.46 83ET76WW
The Kernel boots directly from EFI, untroubled by bootloaders.

The .config, the dmesg and lspci -vvv outputs are attached.

I will happily provide further info.
Comment 1 Andre Müller 2013-12-23 21:05:07 UTC
Created attachment 119401 [details]
.config for v3.13-rc5
Comment 2 Andre Müller 2013-12-23 21:06:01 UTC
Created attachment 119411 [details]
dmesg after boot to 3.13-rc5
Comment 3 Andre Müller 2013-12-23 21:06:43 UTC
Created attachment 119421 [details]
lspci -vvv output on 3.13-rc5
Comment 4 Andre Müller 2013-12-28 16:57:33 UTC
Created attachment 119981 [details]
bisection log

A bisection of the error led me to
# first bad commit: [d6e4db15ed93e6c3857b904f33ac759d4c66fba9] drm/i915: Fix cursor visibility checks also for the right/bottom screen edges

The bisection log is attached.
Comment 5 Andre Müller 2013-12-28 18:05:18 UTC
(In reply to Andre Müller from comment #0)
> The X (hardware) cursor is often not displayed.
> The cursor is only displayed at all in a rectangle that looks
> suspiciously to be 640x480 in size, located in the top left.
> There are other restrictions, though.
> The cursor is never displayed but in the leftmost terminal or below it.
> But not below a second terminal to the right.
> When closing that second terminal, the 640x480 visibility is restored.

Actually, in pre-rc1 versions, mouse visibility was always limited
to the outer edge of a terminal if it existed, yet never exceeding
the 640x460 visibility. 
Don't think it matters, but trying to be precise.

> There is a warning in the dmesg:
> 
> [...]
> [    0.321336] [drm] Wrong MCH_SSKPD value: 0x16040307
> [    0.321342] [drm] This can cause pipe underruns and display issues.
> [    0.321344] [drm] Please upgrade your BIOS to fix this.
> [    0.382191] [drm] GMBUS [i915 gmbus dpb] timed out, falling back to bit
> banging on pin 5
> [...]
> 
> The BIOS has the latest available firmware though.
> 
> Linux-3.12 is fine, also this warning does not show.
> Anything below 3.12, as well as stable until 3.12.6 are fine.

This was a plain coincidence. The message is contained in the dmesg
of the last working commit as well. Sorry for the red herring.
Comment 6 Andre Müller 2013-12-30 01:24:08 UTC
Experimenting further with 3.13-rc6, I found i915.fastboot=1 to trigger the behaviour as discribed.
Without it, the issue disappears.

So I dare conclude that pipe_src_{w,h} does not get it right in the fastboot case.
Comment 7 Jesse Barnes 2014-01-06 23:28:03 UTC
Fix has been posted:

http://lists.freedesktop.org/archives/intel-gfx/2013-December/037761.html
Comment 8 Andre Müller 2014-01-07 19:34:33 UTC
Ah, thanks!
The patch works for me
on linus' tree.
Comment 9 Daniel Vetter 2014-01-08 16:37:26 UTC
And fix has been merged to drm-intel-next-queued plus a patch to make sure we catch such stuff earlier next time around.