drm/i915: clean up virtual PCH special case handling
authorJani Nikula <jani.nikula@intel.com>
Fri, 8 Jun 2018 12:33:28 +0000 (15:33 +0300)
committerJani Nikula <jani.nikula@intel.com>
Mon, 11 Jun 2018 07:21:12 +0000 (10:21 +0300)
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 <Colin.Xu@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Tested-by: Colin Xu <Colin.Xu@intel.com>
Reviewed-by: Colin Xu <Colin.Xu@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180608123330.31003-4-jani.nikula@intel.com
drivers/gpu/drm/i915/i915_drv.c

index 8f22ae8925fc656d01be3921919a54beee6957c7..9aba419e5d8bb518053c6bb43b3549dc1934bfc0 100644 (file)
@@ -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;