From: Jani Nikula Date: Fri, 8 Jun 2018 12:33:28 +0000 (+0300) Subject: drm/i915: clean up virtual PCH special case handling X-Git-Tag: for-linus-20180825~57^2~38^2~98 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=85b17e6e4d3f288cc757ff5407b2ca6604673d74;p=linux-2.6-block.git drm/i915: clean up virtual PCH special case handling Use intel_pch_type() also for mapping the no PCH case (PCH id 0) to PCH_NONE to simplify code. Also make sure that intel_pch_type() knows all the PCH ids returned by intel_virt_detect_pch(). Loudly fail if this isn't the case; this shouldn't happen anyway. Cc: Colin Xu Reviewed-by: Ville Syrjälä Tested-by: Colin Xu Reviewed-by: Colin Xu Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20180608123330.31003-4-jani.nikula@intel.com --- diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 8f22ae8925fc..9aba419e5d8b 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -284,13 +284,12 @@ static void intel_detect_pch(struct drm_i915_private *dev_priv) } else if (intel_is_virt_pch(id, pch->subsystem_vendor, pch->subsystem_device)) { id = intel_virt_detect_pch(dev_priv); - if (id) { - pch_type = intel_pch_type(dev_priv, id); - if (WARN_ON(pch_type == PCH_NONE)) - pch_type = PCH_NOP; - } else { - pch_type = PCH_NONE; - } + pch_type = intel_pch_type(dev_priv, id); + + /* Sanity check virtual PCH id */ + if (WARN_ON(id && pch_type == PCH_NONE)) + id = 0; + dev_priv->pch_type = pch_type; dev_priv->pch_id = id; break;