linux/drivers/gpu/drm/i915
Daniel Vetter c3456fb3e4 drm/i915: prefer VBT modes for SVDO-LVDS over EDID
In

commit 53d3b4d777
Author: Egbert Eich <eich@suse.de>
Date:   Tue Jun 4 17:13:21 2013 +0200

    drm/i915/sdvo: Use &intel_sdvo->ddc instead of intel_sdvo->i2c for DDC

Egbert Eich fixed a long-standing bug where we simply used a
non-working i2c controller to read the EDID for SDVO-LVDS panels.
Unfortunately some machines seem to not be able to cope with the mode
provided in the EDID. Specifically they seem to not be able to cope
with a 4x pixel mutliplier instead of a 2x one, which seems to have
been worked around by slightly changing the panels native mode in the
VBT so that the dotclock is just barely above 50MHz.

Since it took forever to notice the breakage it's fairly safe to
assume that at least for SDVO-LVDS panels the VBT contains fairly sane
data. So just switch around the order and use VBT modes first.

v2: Also add EDID modes just in case, and spell Egbert correctly.

v3: Elaborate a bit more about what's going on on Chris' machine.

Cc: Egbert Eich <eich@suse.de>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65524
Cc: stable@vger.kernel.org
Reported-and-tested-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-06-10 10:13:34 +02:00
..
dvo_ch7xxx.c drm/i915/dvo-ch7xxx: fix get_hw_state 2012-10-12 10:59:11 +02:00
dvo_ch7017.c
dvo_ivch.c
dvo_ns2501.c
dvo_sil164.c
dvo_tfp410.c
dvo.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2012-10-03 23:29:23 -07:00
i915_debugfs.c drm/i915: Scale ring, rather than ia, frequency on Haswell 2013-04-18 09:43:26 +02:00
i915_dma.c drm/i915: Map registers before GTT init 2013-04-18 09:43:12 +02:00
i915_drv.c drm/i915: Adding more reserved PCI IDs for Haswell. 2013-05-21 12:08:03 +02:00
i915_drv.h drm/i915: add msecs_to_jiffies_timeout to guarantee minimum duration 2013-05-22 13:51:15 +02:00
i915_gem_context.c drm/i915: Use MLC (l3$) for context objects 2013-04-18 09:43:11 +02:00
i915_gem_debug.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_gem_dmabuf.c drm/i915: fix dmabuf vmap support 2013-05-01 16:09:31 +10:00
i915_gem_evict.c drm/i915: Create a gtt structure 2013-01-17 22:33:56 +01:00
i915_gem_execbuffer.c Merge tag 'drm-intel-next-2013-03-23' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-04-05 10:18:13 +10:00
i915_gem_gtt.c Revert "drm/i915: Calculate correct stolen size for GEN7+" 2013-05-07 18:59:09 +02:00
i915_gem_stolen.c Revert "drm/i915: set dummy page for stolen objects" 2013-03-27 17:13:44 +01:00
i915_gem_tiling.c drm/i915: Increase max fence pitch limit to 256KB on IVB+ 2013-04-18 09:43:20 +02:00
i915_gem.c drm/i915: Fix spurious -EIO/SIGBUS on wedged gpus 2013-06-03 14:35:18 +02:00
i915_ioc32.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
i915_irq.c drm/i915: Add Reenable Timer to turn Hotplug Detection back on (v4) 2013-04-18 09:43:30 +02:00
i915_reg.h Revert "drm/i915: Calculate correct stolen size for GEN7+" 2013-05-07 18:59:09 +02:00
i915_suspend.c drm/i915: don't save/restore PCH_LVDS on LPT 2013-03-17 21:53:10 +01:00
i915_sysfs.c drm/i915: Return stored value from max freq sysfs entry 2013-04-18 09:43:21 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Allow DRM_ROOT_ONLY|DRM_MASTER to submit privileged batchbuffers 2012-10-17 21:06:59 +02:00
i915_ums.c drm/i915: move DP save/restore into i915_ums.c 2013-01-31 11:50:04 +01:00
intel_acpi.c UAPI: (Scripted) Convert #include "..." to #include <path/...> in drivers/gpu/ 2012-10-02 18:01:07 +01:00
intel_bios.c drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
intel_bios.h drm/i915: set CPT FDI RX polarity bits based on VBT 2013-04-18 09:43:31 +02:00
intel_crt.c Merge branch 'drm-intel-fixes' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-04-22 18:48:45 +10:00
intel_ddi.c drm/i915: hsw: fix link training for eDP on port-A 2013-05-04 10:24:56 +02:00
intel_display.c drm/i915: Quirk the pipe A quirk in the modeset state checker 2013-06-03 14:35:19 +02:00
intel_dp.c drm/i915: avoid premature DP AUX timeouts 2013-05-22 13:51:26 +02:00
intel_drv.h drm/i915: hsw: fix link training for eDP on port-A 2013-05-04 10:24:56 +02:00
intel_dvo.c drm/i915: Fall back to bit banging mode for DVO transmitter detection 2013-04-19 16:31:41 +02:00
intel_fb.c drm/i915: clear the stolen fb before resuming 2013-05-07 22:25:11 +02:00
intel_hdmi.c drm/i915: avoid full modeset when changing the color range properties 2013-04-23 13:52:57 +02:00
intel_i2c.c drm/i915: avoid premature DP AUX timeouts 2013-05-22 13:51:26 +02:00
intel_lvds.c drm/i915: no lvds quirk for hp t5740 2013-06-03 14:35:20 +02:00
intel_modes.c drm/i915: Add "Automatic" mode for the "Broadcast RGB" property 2013-01-20 13:09:44 +01:00
intel_opregion.c ACPI: Remove acpi_device dependency in acpi_device_set_id() 2013-03-24 23:49:38 +01:00
intel_overlay.c Merge tag 'drm-intel-next-2013-02-01' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-02-08 11:08:10 +10:00
intel_panel.c drm/i915: ensure single initialization and cleanup of backlight device 2013-04-18 09:43:23 +02:00
intel_pm.c drm/i915: Fix pipe enabled mask for pipe C in WM calculations 2013-05-01 21:17:22 +02:00
intel_ringbuffer.c drm/i915: Fix PIPE_CONTROL DW/QW write through global GTT on IVB+ 2013-02-20 00:21:47 +01:00
intel_ringbuffer.h Merge tag 'drm-intel-next-2012-12-21' of git://people.freedesktop.org/~danvet/drm-intel into drm-next 2013-01-17 20:34:08 +10:00
intel_sdvo_regs.h drm/i915: clear the entire sdvo infoframe buffer 2012-10-24 15:12:48 +02:00
intel_sdvo.c drm/i915: prefer VBT modes for SVDO-LVDS over EDID 2013-06-10 10:13:34 +02:00
intel_sprite.c drm/i915: sprite support for ValleyView v4 2013-04-02 20:28:53 +02:00
intel_tv.c drm/i915: (re)init HPD interrupt storm statistics 2013-04-18 09:43:29 +02:00
Makefile drm/i915: extract ums suspend/resume into i915_ums.c 2013-01-31 11:50:03 +01:00