Subject : i915: 2.6.36-rc2 hoses my Intel display Submitter : Jonathan Corbet <corbet@lwn.net> Date : 2010-08-23 17:01 Message-ID : 20100823110145.08eb72fd@bike.lwn.net References : http://marc.info/?l=linux-kernel&m=128258293327326&w=2 Handled-By : Chris Wilson <chris@chris-wilson.co.uk> This entry is being used for tracking a regression from 2.6.35. Please don't close it until the problem is fixed in the mainline. Caused by: commit 32aad86fe88e7323d4fc5e9e423abcee0d55a03d Author: Chris Wilson <chris@chris-wilson.co.uk> Date: Wed Aug 4 13:50:25 2010 +0100 drm/i915/sdvo: Propagate errors from reading/writing control bus. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Signed-off-by: Eric Anholt <eric@anholt.net> First-Bad-Commit : 32aad86fe88e7323d4fc5e9e423abcee0d55a03d
On Monday, August 30, 2010, Jonathan Corbet wrote: > On Mon, 30 Aug 2010 00:36:36 +0200 (CEST) > "Rafael J. Wysocki" <rjw@sisk.pl> wrote: > > > The following bug entry is on the current list of known regressions > > from 2.6.35. Please verify if it still should be listed and let the > tracking team > > know (either way). > > > > > > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=17151 > > Yes, it was still definitely not working as of just a little prior to > -rc3.
I bisected the patch itself, and it looks like some checks in intel_sdvo_mode_set() are excessive. I'm attaching a preliminary patch that fixes the "blurring". It applies to 2.6.36-rc3. I didn't try to minimize changes, but I know that the change for intel_sdvo_set_input_timing() is needed, so it must be failing.
Created attachment 28721 [details] that's a preliminary patch, I'm not sure all changes are needed
Following calls are actually failing: intel_sdvo_set_value() for SDVO_CMD_SET_IN_OUT_MAP intel_sdvo_set_output_timing() intel_sdvo_set_input_timing() In all cases the status is SDVO_CMD_STATUS_NOTSUPP (not supported).
Created attachment 28782 [details] minimal patch
Pavel, thank you for digging in and finding the cause. Error handling ftw. IN_OUT_MAP we can ignore (we can assume a single function device in that case, and since we have a static assignment we could move that to initialisation), but we should be concerned if we cannot set the output timing and handle that error by reporting the mode invalid.
(In reply to comment #5) > Created an attachment (id=28782) [details] > minimal patch Yes, I think this is the minimal patch, please send it upstream to intel-gfx@ and linux-kernel@ Reported-by: Jonathan Corbet <corbet@lwn.net> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
I've just sent the patch. I think silent return on error is always bad, but I leave fixing it to the code maintainers.
Patch: http://lkml.org/lkml/2010/9/2/315
Fixed by commit c74696b9c890074c1e1ee3d7496fc71eb3680ced .