From 9e134c481e45a4db226829c0c1fec184b01035af Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Tue, 4 Feb 2014 21:54:19 +0200 Subject: [PATCH] drm/i915/tv: fix gen4 composite s-video tv-out Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo Cc: Jani Nikula This is *not* bisected, but the likely regression is commit c35614380d5c956bfda20eab2755b2f5a7d6f1e7 Author: Zhao Yakui Date: Tue Nov 24 09:48:48 2009 +0800 drm/i915: Don't set up the TV port if it isn't in the BIOS table. The commit does not check for all TV device types that might be present in the VBT, disabling TV out for the missing ones. Add composite S-video. Reported-by: Matthew Khouzam Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73362 Signed-off-by: Jani Nikula --- The missing composite S-video was checked from the bug reporter's VBT dump. There are still these candidates in intel_bios.h we might want to accept: DEVICE_TYPE_TV_COMPOSITE 0x0209 DEVICE_TYPE_TV_MACROVISION 0x0289 DEVICE_TYPE_TV_RF_COMPOSITE 0x020c DEVICE_TYPE_TV_SVIDEO_COMPOSITE 0x0609 DEVICE_TYPE_TV_SCART 0x0209 DEVICE_TYPE_TV_CODEC_HOTPLUG_PWR 0x6009 --- drivers/gpu/drm/i915/intel_tv.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c index 22cf0f4..99faac5 100644 --- a/drivers/gpu/drm/i915/intel_tv.c +++ b/drivers/gpu/drm/i915/intel_tv.c @@ -1536,9 +1536,14 @@ static int tv_is_present_in_vbt(struct drm_device *dev) /* * If the device type is not TV, continue. */ - if (p_child->old.device_type != DEVICE_TYPE_INT_TV && - p_child->old.device_type != DEVICE_TYPE_TV) + switch (p_child->old.device_type) { + case DEVICE_TYPE_INT_TV: + case DEVICE_TYPE_TV: + case DEVICE_TYPE_TV_SVIDEO_COMPOSITE: + break; + default: continue; + } /* Only when the addin_offset is non-zero, it is regarded * as present. */ -- 1.7.10.4