On Wed, Jul 25, 2012 at 01:55:59PM +0200, Daniel Vetter wrote:
On Wed, Jul 25, 2012 at 12:57 PM, Maciej Rutecki maciej.rutecki@gmail.com wrote:
On środa, 25 lipca 2012 o 11:29:28 Daniel Vetter wrote:
On Wed, Jul 25, 2012 at 10:54:25AM +0200, Maciej Rutecki wrote:
On środa, 25 lipca 2012 o 10:29:26 Daniel Vetter wrote:
On Wed, Jul 25, 2012 at 10:20:47AM +0200, Maciej Rutecki wrote:
Last known good: 3.4.4 First bad: 3.5.0
When booting 3.5.0 resolution (in console, and after in KDE) is set to 1024x768 (60Hz). In 3.4.4 was correct: 1440x900 (60Hz).
Can you please attach the output of xrandr --verbose for both kernels? Also, please boot with drm.debug=0xe added to your kernel cmdline and grab the dmesg (again for both kernels).
Thanks for the ansfer.
Here xrandr and dmesg outputs for 3.4.4 and 3.5.0
Can you please test this quick hack:
diff --git a/drivers/gpu/drm/i915/intel_i2c.c b/drivers/gpu/drm/i915/intel_i2c.c index 1991a44..abe1611 100644 --- a/drivers/gpu/drm/i915/intel_i2c.c +++ b/drivers/gpu/drm/i915/intel_i2c.c @@ -405,7 +405,7 @@ clear_err: * timing out seems to happen when there _is_ a ddc chip present, but * it's slow responding and only answers on the 2nd retry. */
ret = -ENXIO;
ret = 0; if (wait_for((I915_READ(GMBUS2 + reg_offset) & GMBUS_ACTIVE) == 0, 10)) { DRM_DEBUG_KMS("GMBUS [%s] timed out after NAK\n",
Thanks, Daniel
Still the same.
Hm, can you attach the dmesg again (with drm.debug=0xe)? If I haven't botched up something, we should now retry at least the ddc transfer ...
Also, another little snippet for you to test. Fyi I'll be on vacation next week, so final patch (this one here should really work) might take a notch longer.
Yours, Daniel -- diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index bc5e2c9..85eca1c 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c @@ -338,6 +338,7 @@ static bool intel_crt_detect_ddc(struct drm_connector *connector) BUG_ON(crt->base.type != INTEL_OUTPUT_ANALOG);
i2c = intel_gmbus_get_adapter(dev_priv, dev_priv->crt_ddc_pin); + intel_gmbus_force_bit(i2c, true); edid = drm_get_edid(connector, i2c);
if (edid) { @@ -546,12 +547,14 @@ static int intel_crt_get_modes(struct drm_connector *connector) struct i2c_adapter *i2c;
i2c = intel_gmbus_get_adapter(dev_priv, dev_priv->crt_ddc_pin); + intel_gmbus_force_bit(i2c, true); ret = intel_ddc_get_modes(connector, i2c); if (ret || !IS_G4X(dev)) return ret;
/* Try to probe digital port for output in DVI-I -> VGA mode. */ i2c = intel_gmbus_get_adapter(dev_priv, GMBUS_PORT_DPB); + intel_gmbus_force_bit(i2c, true); return intel_ddc_get_modes(connector, i2c); }