Bug 39986 - VGA output on 945GM is broken
Summary: VGA output on 945GM is broken
Status: CLOSED INVALID
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Daniel Vetter
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-10 10:08 UTC by Adam Jackson
Modified: 2017-07-24 23:04 UTC (History)
4 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Adam Jackson 2011-08-10 10:08:12 UTC
But only if hotplugged at runtime.  If plugged at boot it works fine.  (Running RHEL 6.2 prerelease, which is essentially 3.0 for intel drm purposes.)

If I had to guess, I'd guess it's a problem with fence setup:

$ diff -U0 vga-at-boot vga-hotplugged
--- vga-at-boot	2011-07-28 10:48:31.203023400 -0400
+++ vga-hotplugged	2011-07-28 10:53:22.349643522 -0400
@@ -4 +4 @@
-                       HWS_PGA: 0x37a6b000
+                       HWS_PGA: 0x37cd2000
@@ -46 +46 @@
-             SDVOUDI: 0x00000037
+             SDVOUDI: 0x0000003f
@@ -72 +72 @@
-            DSPABASE: 0x006e0000
+            DSPABASE: 0x04860000
@@ -82,3 +82,3 @@
-       CURSOR_A_BASE: 0x3d580000
-    CURSOR_A_CONTROL: 0x04000027
-   CURSOR_A_POSITION: 0x01ff00ca
+       CURSOR_A_BASE: 0x00000000
+    CURSOR_A_CONTROL: 0x00000000
+   CURSOR_A_POSITION: 0x00668030
@@ -101 +101 @@
-            DSPBBASE: 0x006e1400
+            DSPBBASE: 0x04861400
@@ -112,2 +112,2 @@
-    CURSOR_B_CONTROL: 0x00000000
-   CURSOR_B_POSITION: 0x00000000
+    CURSOR_B_CONTROL: 0x10000000
+   CURSOR_B_POSITION: 0x00c401da
@@ -209,3 +209,3 @@
-            FENCE  0: 0x04600011 (enabled, X tiled, 1024 pitch, 0x04600000 - 0x04700000 (1024kb))
-            FENCE  1: 0x00000000 (disabled)
-            FENCE  2: 0x00000000 (disabled)
+            FENCE  0: 0x00000000 (disabled)
+            FENCE  1: 0x01800341 (enabled, X tiled, 8192 pitch, 0x01800000 - 0x02000000 (8192kb))
+            FENCE  2: 0x01100011 (enabled, X tiled, 1024 pitch, 0x01100000 - 0x01200000 (1024kb))
Comment 1 Adam Jackson 2011-09-26 09:52:35 UTC
A bit more data.  This happens on a Toshiba Tecra A8.  Oddly there's a BIOS setting that has some effect.  If the "boot display" is set to Auto it's as above.  If set to "LCD + RGB", VGA works as expected.

This doesn't appear to be a regression from previous driver behaviour, as far as I've been able to find, but it's still pretty annoying, and implies there's some magic bit of clock setup or similar that we're not doing on this machine.
Comment 2 Daniel Vetter 2012-02-08 07:57:37 UTC
Just to check: Is there any difference between the to bios settings in the intel_reg_dumper output?
Comment 3 Chris Wilson 2012-05-13 03:25:52 UTC
What's does intel_reg_read 0x06000, 0x06004 and 0x06010 report? They are the VGA clocks and divider, which are about the only seemingly relevant knobs I can spot that we do not already report.
Comment 4 Chris Wilson 2012-05-13 04:13:29 UTC
Alas it seems I can't type and they are included in intel_reg_dumper. Another dead end.
Comment 5 Daniel Vetter 2012-11-13 13:41:08 UTC
Just to check: Is this still bonghits-broken on 3.7-rc kernels (i.e. vain hope that the modeset rework is magic and fixed it)?
Comment 6 Jesse Barnes 2012-11-14 17:39:16 UTC
The fences are indeed different, but what were the configs in each case?

In the "vga at boot" case were you running a single head on VGA alone?  It looks like we only map a single buffer in that case at least...

Also, the cursor regs tell me maybe in the hotplug case you were running in X?  That would also change the fence config and make us use tiling.

So there are some things that could explain the fence diffs we see.

In #16702 I theorized the DDC routing may be different based on the BIOS configuration; is that something you see?  Do we get a proper mode list in either case?  I guess we'd still see the wrong mode though on VGA even if DDC failed...

Another possibility is that the core clocks aren't set up for VGA unless the BIOS does it for us; there's a register at 0xc8c in MCHBAR that has the configuration chosen by the BIOS that might be interesting to check.  We may need to change it to enable VGA properly.  This reg should be mirrored in device 2 pci config space at offset 0xf0 (or maybe it's MMIO space...)
Comment 7 Jesse Barnes 2012-12-12 18:43:24 UTC
timeout, maybe this is fixed with the latest bits anyway


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.