linux_dsm_epyc7002/drivers/gpu/drm/i915
Ville Syrjälä e4abb733bb drm/i915: Check VBT for CRT port presence on HSW/BDW
Unfortunatey there appear to quite a few HSW/BDW machines (eg.
NUCs, Brix Pro) in the wild with LPT/WPT-H that have no physical
CRT connector and non-working FDI. FDI training fails every
single time on these machines. Dunno, maybe they just didn't
bother wiring it up or something?

Unfortunately all the fuse bits and whatnot are telling us that
the CRT connector is present. And so what we get from this is tons
of false positives from the CI systems due to VGA connector forcing.

I've not found any way to detect this purely from hardware, so we
have to resort to looking at the VBT int_crt_support bit. We used
to check this bit on all platforms, but that broke all the old
machines, so the check was then restricted to VLV only in
commit 84b4e042c4 ("drm/i915: only apply crt_present check on VLV")

Considering HSW and VLV VBT probably got defined around the same time,
it should be reasonably safe to assume that the bits is sane for
HSW/BDW as well. At least I have one copy of some VBT spec here that
says it's meant for both VLV and HSW, and it knows about the bit
(lists it being valid from version 155 onwards). Also I have two
desktop machines with actual CRT ports and both have
int_crt_support==1 in their VBTs.

Also we already trust VBT >= 155 to tell us various details about
the DDI ports, so trusting it a bit more seems reasonable.

As far as VLV goes, the added VBT version check should be fine. Even
if someone has some weird VLV machine with a very old VBT version,
it just means they'll end up with a shadow CRT connector. IIRC the
reason for eliminating the shadow CRT connector on VLV was to speed
up display probing rather than fixing something more serious.

v2: Move the platform checks into the VBT parsing code
    Also check that the VBT version is at least 155
v3: Improve commit message (Paulo)

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1449005493-15487-1-git-send-email-ville.syrjala@linux.intel.com
2015-12-02 11:24:01 +02:00
..
dvo_ch7xxx.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_ch7017.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_ivch.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_ns2501.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_sil164.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo_tfp410.c drm/i915: Constify adjusted_mode 2015-09-30 10:20:11 +02:00
dvo.h drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
i915_cmd_parser.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
i915_debugfs.c drm/i915: Fix possible null dereference in framebuffer_info debugfs function 2015-11-30 09:14:24 +01:00
i915_dma.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
i915_drv.c drm/i915: more virtual south bridge detection 2015-11-26 15:20:41 +01:00
i915_drv.h drm/i915: Add HAS_PCH_LPT_H() 2015-12-02 11:22:57 +02:00
i915_gem_batch_pool.c
i915_gem_batch_pool.h
i915_gem_context.c drm/i915: Remove incorrect warning in context cleanup 2015-11-24 11:58:12 +01:00
i915_gem_debug.c
i915_gem_dmabuf.c
i915_gem_evict.c drm/i915: Remove dead i915_gem_evict_everything() 2015-10-07 16:05:40 +02:00
i915_gem_execbuffer.c drm/i915: Add functions to emit register offsets to the ring 2015-11-18 14:35:24 +02:00
i915_gem_fence.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
i915_gem_gtt.c drm/i915: Stuff rotation params into view union 2015-11-19 16:42:01 +01:00
i915_gem_gtt.h drm/i915: Fix i915_ggtt_view_equal to handle rotation correctly 2015-11-19 16:42:06 +01:00
i915_gem_render_state.c
i915_gem_render_state.h
i915_gem_shrinker.c drm/i915: Fix kerneldoc for i915_gem_shrink_all 2015-10-13 16:21:03 +03:00
i915_gem_stolen.c drm/i915/kbl: Introduce Kabylake platform defition. 2015-10-28 21:35:38 +02:00
i915_gem_tiling.c drm/i915: get runtime PM reference around GEM set_tiling IOCTL 2015-11-17 18:43:30 +02:00
i915_gem_userptr.c Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2015-11-10 09:33:06 -08:00
i915_gem.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
i915_gpu_error.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
i915_guc_reg.h drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
i915_guc_submission.c drm/i915: Fix kerneldoc indent fails 2015-11-26 18:55:40 +02:00
i915_ioc32.c
i915_irq.c drm/i915: Fix kerneldoc indent fails 2015-11-26 18:55:40 +02:00
i915_params.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
i915_reg.h drm/i915: Don't register the CRT connector when it's fused off on LPT-H 2015-12-02 11:23:32 +02:00
i915_suspend.c drm/i915: Parametrize and fix SWF registers 2015-10-13 13:20:38 +02:00
i915_sysfs.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
i915_trace_points.c
i915_trace.h drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
i915_vgpu.c drm/i915: Turn __raw_i915_read8() & co. in to inline functions 2015-10-26 16:28:04 +02:00
i915_vgpu.h drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_acpi.c drm/i915: Drop unnecessary #include <linux/vga_switcheroo.h> 2015-10-13 10:18:38 +02:00
intel_atomic_plane.c drm/i915: Wait for object idle without locks in atomic_commit, v2. 2015-11-02 15:50:31 +01:00
intel_atomic.c drm/i915: Make wait_for_flips interruptible. 2015-11-02 15:50:17 +01:00
intel_audio.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
intel_bios.c drm/i915: Check VBT for CRT port presence on HSW/BDW 2015-12-02 11:24:01 +02:00
intel_bios.h drm/i915: Ignore "digital output" and "not HDMI output" bits for eDP detection 2015-09-23 16:58:29 +02:00
intel_crt.c drm/i915: Don't register CRT connector when it's fused off 2015-11-24 16:23:44 +02:00
intel_csr.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_ddi.c drm/i915: Don't use crtc->config when reading out infoframe state 2015-12-01 16:01:21 +02:00
intel_display.c drm/i915: Check VBT for CRT port presence on HSW/BDW 2015-12-02 11:24:01 +02:00
intel_dp_link_training.c drm/i915: Make intel_dp_source_supports_hbr2() take an intel_dp pointer 2015-11-05 15:14:56 +02:00
intel_dp_mst.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
intel_dp.c drm/i915: Round the AUX clock divider to closest on all platforms 2015-12-02 11:22:57 +02:00
intel_drv.h drm/i915: Don't use crtc->config when reading out infoframe state 2015-12-01 16:01:21 +02:00
intel_dsi_panel_vbt.c
intel_dsi_pll.c drm/i915/bxt: vlv_dsi_reset_clocks() can be static 2015-10-06 10:57:06 +02:00
intel_dsi.c drm/i915: add has_dsi_encoder to crtc state 2015-11-30 12:54:33 +02:00
intel_dsi.h drm/i915/bxt: get DSI pixelclock 2015-10-02 14:45:51 +02:00
intel_dvo.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_fbc.c drm/i915: remove in_dbg_master check from intel_fbc.c 2015-11-10 11:00:58 +01:00
intel_fbdev.c drm/i915: Tear down fbdev if initialization fails 2015-11-19 17:52:38 +01:00
intel_fifo_underrun.c drm/i915: Introduce bdw_{update,enable,disable}_pipe_irq() 2015-11-26 18:55:39 +02:00
intel_frontbuffer.c
intel_guc_fwif.h drm/i915/guc: Add GuC css header parser 2015-10-21 14:31:34 +02:00
intel_guc_loader.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
intel_guc.h drm/i915/guc: Add GuC css header parser 2015-10-21 14:31:34 +02:00
intel_hdmi.c drm/i915: Don't use crtc->config when reading out infoframe state 2015-12-01 16:01:21 +02:00
intel_hotplug.c Revert "drm/i915: Call encoder hotplug for init and resume cases" 2015-10-08 21:51:57 +02:00
intel_i2c.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_lrc.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
intel_lrc.h Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
intel_lvds.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_mocs.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_mocs.h
intel_modes.c drm/i915: Add HDMI aspect ratio property for SDVO 2015-09-30 10:20:12 +02:00
intel_opregion.c drm/i915: Don't complain about lack of ACPI video bios 2015-10-31 09:26:20 +01:00
intel_overlay.c drm/i915: Wait for object idle without locks in atomic_commit, v2. 2015-11-02 15:50:31 +01:00
intel_panel.c drm/i915: Use cached cdclk_freq for PWM calculations 2015-12-02 11:22:57 +02:00
intel_pm.c drm/i915/bxt: backlight clock gating workaround 2015-12-02 10:10:39 +02:00
intel_psr.c drm/i915: Also disable PSR on Sink when disabling it on Source. 2015-11-24 13:33:50 +01:00
intel_renderstate_gen6.c
intel_renderstate_gen7.c
intel_renderstate_gen8.c
intel_renderstate_gen9.c
intel_renderstate.h
intel_ringbuffer.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
intel_ringbuffer.h drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_runtime_pm.c drm/i915/bxt: Disable power well support 2015-12-01 14:28:37 -08:00
intel_sdvo_regs.h
intel_sdvo.c drm/i915: Type safe register read/write 2015-11-18 15:39:11 +02:00
intel_sideband.c
intel_sprite.c drm/i915: Avoid pointer arithmetic in calculating plane surface offset 2015-11-09 20:00:11 +02:00
intel_tv.c Merge remote-tracking branch 'airlied/drm-next' into drm-intel-next 2015-09-30 08:47:41 +02:00
intel_uncore.c Linux 4.4-rc2 2015-11-23 09:04:05 +01:00
Kconfig drm/i915: Serialise updates to GGTT with access through GGTT on Braswell 2015-11-17 17:36:01 +01:00
Makefile drm/i915: Move generic link training code to a separate file 2015-11-05 15:14:56 +02:00