OSDN Git Service

drm/i915: Sprinkle WARN(!pll) into icl/dg1 .clock_enable()
authorVille Syrjälä <ville.syrjala@linux.intel.com>
Fri, 5 Feb 2021 21:46:29 +0000 (23:46 +0200)
committerVille Syrjälä <ville.syrjala@linux.intel.com>
Tue, 16 Feb 2021 12:35:51 +0000 (14:35 +0200)
The other DDI .enable_clock() functions are trying to protect us
against pll==NULL. A bit tempted to throw out all the WARNs as
just unnecessary noise, but I guess they might have some use
when poking around the shared_dpll code (not sure it wouldn't
oops elsewhere though). So let's unify it all and sprinkle in
the missing WARNs for icl/dg1.

Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210205214634.19341-11-ville.syrjala@linux.intel.com
drivers/gpu/drm/i915/display/intel_ddi.c

index a14baea..9c321b1 100644 (file)
@@ -1606,6 +1606,9 @@ static void dg1_ddi_enable_clock(struct intel_encoder *encoder,
        struct intel_shared_dpll *pll = crtc_state->shared_dpll;
        enum phy phy = intel_port_to_phy(dev_priv, encoder->port);
 
+       if (drm_WARN_ON(&dev_priv->drm, !pll))
+               return;
+
        /*
         * If we fail this, something went very wrong: first 2 PLLs should be
         * used by first 2 phys and last 2 PLLs by last phys
@@ -1663,6 +1666,9 @@ static void icl_ddi_combo_enable_clock(struct intel_encoder *encoder,
                sel = ICL_DPCLKA_CFGCR0_DDI_CLK_SEL(pll->info->id, phy);
        }
 
+       if (drm_WARN_ON(&dev_priv->drm, !pll))
+               return;
+
        mutex_lock(&dev_priv->dpll.lock);
 
        /*