[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#420840: Regression: Device-specific resolution no longer supported on i915GM



Sergey Yanovich wrote:
> Please find enclosed Xorg.0.log and xorg.conf with 'Virtual' set.

Thanks. I don't think the Virtual size matters here. The driver seems to
be probing the panel dimensions wrong. But I don't see any option to
supersede it in this driver. It would be nice to test the latest
upstream git snapshot with the attached patch to see the panel
dimensions. To build it, you need to:

Get some development headers/libs:
  $ apt-get build-dep xserver-xorg-video-intel
Then grab the git tree with:
  $ git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-intel
Then enter it and apply the patch with
  $ patch -p1 < <brice's patch file>
Build with
  $ ./autogen.sh
  $ make
If it complains about some macros being undef, you might need to install
xutils-dev or so. Let me know.

Once it is built, copy src/.libs/intel_drv.so in
/usr/lib/xorg/modules/drivers/ and restart X (logout/login is usually
not enough, ctrl-alt-backspace or xdm/gdm restart is ok).

Once this is done, we'll know how bad the panel size dimension is
detected and we'll have enough information to forward this bug upstream.

Brice

diff --git a/src/i830_dvo.c b/src/i830_dvo.c
index cb461d7..22942a8 100644
--- a/src/i830_dvo.c
+++ b/src/i830_dvo.c
@@ -172,6 +172,9 @@ i830_dvo_mode_valid(xf86OutputPtr output, DisplayModePtr pMode)
     /* XXX: Validate clock range */
 
     if (drv->panel_fixed_mode) {
+	xf86Msg(X_WARNING,
+		"i830_dvo_mode_valid: using panel dimensions %dx%d\n", 
+		drv->panel_fixed_mode->HDisplay, drv->panel_fixed_mode->VDisplay);
 	if (pMode->HDisplay > drv->panel_fixed_mode->HDisplay)
 	    return MODE_PANEL;
 	if (pMode->VDisplay > drv->panel_fixed_mode->VDisplay)
diff --git a/src/i830_lvds.c b/src/i830_lvds.c
index 18e5c2b..e8a9dcd 100644
--- a/src/i830_lvds.c
+++ b/src/i830_lvds.c
@@ -213,6 +213,9 @@ i830_lvds_mode_valid(xf86OutputPtr output, DisplayModePtr pMode)
 
     if (pFixedMode)
     {
+	xf86Msg(X_WARNING,
+ 		"i830_lvds_mode_valid: Using panel dimensions %dx%d\n",
+		pFixedMode->HDisplay, pFixedMode->VDisplay);
 	if (pMode->HDisplay > pFixedMode->HDisplay)
 	    return MODE_PANEL;
 	if (pMode->VDisplay > pFixedMode->VDisplay)

Reply to: