Bug 40013 - [gm45] Spurious S-Video connection causes initial configuration to be set to 800x600
Summary: [gm45] Spurious S-Video connection causes initial configuration to be set to ...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Daniel Vetter
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-11 07:13 UTC by Witold Piłat
Modified: 2017-07-24 23:04 UTC (History)
4 users (show)

See Also:
i915 platform:
i915 features:


Attachments
kernel log (80.52 KB, application/octet-stream)
2011-08-11 07:13 UTC, Witold Piłat
no flags Details
xorg log (53.12 KB, application/octet-stream)
2011-08-11 07:14 UTC, Witold Piłat
no flags Details
800x600 resolution (303.58 KB, image/jpeg)
2011-08-11 07:18 UTC, Witold Piłat
no flags Details
kernel log after setting 800x600 (216.51 KB, text/plain)
2011-08-11 15:27 UTC, Witold Piłat
no flags Details
xorg log after setting 800x600 (46.52 KB, text/plain)
2011-08-11 15:28 UTC, Witold Piłat
no flags Details
intel_reg_dumper output after setting 800x600 (11.16 KB, text/plain)
2011-08-11 15:28 UTC, Witold Piłat
no flags Details

Description Witold Piłat 2011-08-11 07:13:10 UTC
Created attachment 50130 [details]
kernel log

I have a laptop with build-in LVDS1 monitor and external crt monitor connected by VGA port. When I start X server the external monitor goes into 1280x800 mode (which is native mode for internal LVDS1 display) even when I disable LVDS1 by video:LVDS-1=d kernel parameter. Then I can change it's resolution to it's default 1280x1024@85 by xrandr --output VGA1 --auto.

When I try any lower resolution other than 1280x1024 it doesn't change actual resolution but crops working space instead and keeps 1280x1024 (pictures attached). On the other hand  when I try higher resolutions all I can get is 1280x1024 or 1280x800 and image cropped/going off the monitor.
Comment 1 Witold Piłat 2011-08-11 07:14:20 UTC
Created attachment 50131 [details]
xorg log
Comment 2 Witold Piłat 2011-08-11 07:18:01 UTC
Created attachment 50133 [details]
800x600 resolution
Comment 3 Keith Packard 2011-08-11 10:37:21 UTC
Can you attach the kernel log, xorg log and the output of 'intel_reg_dumper' after you've set the new mode?
Comment 4 Witold Piłat 2011-08-11 15:27:21 UTC
Created attachment 50144 [details]
kernel log after setting 800x600
Comment 5 Witold Piłat 2011-08-11 15:28:26 UTC
Created attachment 50145 [details]
xorg log after setting 800x600
Comment 6 Witold Piłat 2011-08-11 15:28:56 UTC
Created attachment 50146 [details]
intel_reg_dumper output after setting 800x600
Comment 7 Chris Wilson 2011-11-09 14:38:04 UTC
So the issue is that you have an S-Video connector (electronically connected to the chip even if there is no actual external header on the motherboard). As we are unable to determine whether there is a TV connected, the connector is left in the unknown status. X recognises this as a potential output, with a default set of modelines the intersection of which with your VGA monitor is 800x600. The reason we can't detect whether anything is attached seems to be a hardware limitation (lack of available pipes to perform the load testing), but it would be useful to check if the couple of recent fixes for gm45 TV (835bff7ef220f9d:  drm/i915: Select correct pipe during TV detect) detection do help

So you can either use video=SVIDEO-1:d to disable it during boot, or xrandr --output SVIDEO-1 --off (check the actual name using xrandr) at runtime.
Comment 8 Witold Piłat 2011-11-16 09:56:20 UTC
I've tried disabling it and it didn't change anything. the results were the same as on attached picture (yellow area is unusable copy of border pixels). I've also tested it with some LCD monitor and picture was moved, half of it was off the screen. Also S-Video connector and VGA modelines intersect at 1024x768 and 800x600 yet I can't set 800x600 on VGA monitor.
Comment 9 Witold Piłat 2011-12-02 07:04:24 UTC
I've bisected it to commit b690e96cf9e6a6cde6f0393de47bdd6317ddb5de (it turned out to be regression). Specifically this line of code (I'm on 2730p):

/* HP Compaq 2730p needs pipe A force quirk (LP: #291555) */
{ 0x2a42, 0x103c, 0x30eb, quirk_pipea_force },

Removing it from 3.1.4 kernel fixed my problems with external monitor. Also suspend to ram still works and this patch was supposed to fix problems with it (https://bugs.freedesktop.org/show_bug.cgi?id=22126)
Comment 10 Daniel Vetter 2012-03-31 08:05:45 UTC
Please try out the drm-intel-next queued git branch from git://people.freedesktop.org/~danvet/drm-intel

Specifically the following commit

commit d42c9e2c24f7e7897405b85816bdf4ac924881c0
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Sun Mar 25 22:56:14 2012 +0200

    drm/i915: reinstate GM45 TV detection fix

Given how many TV detection issues this patch fixed I'll close this bug. Please reopen if this is not the case and this patch doesn't fix your issues.
Comment 11 Witold Piłat 2012-04-05 06:55:38 UTC
Niether the patch itself nor any branch in your tree fix it.
Also I didn't mention it before but there is a accompanying bug that makes console output garbled (the lines aren't synchronized) in KMS mode.
Comment 12 Daniel Vetter 2012-04-11 03:48:23 UTC
Can you please attach a new dmesg with drm.debug=0xe with the latest -fixes branch from my drm-intel git repo (it obviously needs to include that patch)?
Comment 13 Witold Piłat 2012-04-11 09:02:12 UTC
This bug got fixed in 3.4-rc1 by

commit d12d04512c4430e29daede7f24b97f83f8cf259a
Author: Philipp Grete <mail@pgrete.de>
Date:   Tue Feb 21 12:40:20 2012 +0100

    drm/i915: Fixes distorted external screen image on HP 2730p

Do you still want me to send this dmesg?
Comment 14 Daniel Vetter 2012-04-11 09:08:02 UTC
Woot, another bug accidentally fixed. dmesg not required, happy dance appropriate ;-) Thanks for reporting this issue (and bearing with us, this took way too long to fix).


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.