On Wed, Oct 18, 2017 at 08:54:12PM +0300, Ville Syrjälä wrote:
> On Wed, Oct 18, 2017 at 10:43:54AM -0700, James Ausmus wrote:
> > On Mon, Oct 16, 2017 at 05:57:05PM +0300, Ville Syrjala wrote:
> > > From: Ville Syrjälä <ville.syrj...@linux.intel.com>
> > > 
> > > A bunch of functions are now exclusively used for HDMI, so naming the
> > > variables with hdmi prefix/suffix is redundant. Also use int rather
> > > than u32 for the translation level consistently.
> > 
> > Is there a case for level to be negative, ever? If not, keeping it u32
> > could help catch cases where we accidently try to set level to -1.
> 
> Is UINT_MAX any better than -1?
> 

I was hoping gcc could be smart enough to throw a warning on an unsigned
underflow, but it doesn't appear to be.

> > 
> > > 
> > > Signed-off-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/intel_ddi.c | 61 
> > > +++++++++++++++++++---------------------
> > >  1 file changed, 29 insertions(+), 32 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c 
> > > b/drivers/gpu/drm/i915/intel_ddi.c
> > > index 5f1c546e5e61..cd550aab332b 100644
> > > --- a/drivers/gpu/drm/i915/intel_ddi.c
> > > +++ b/drivers/gpu/drm/i915/intel_ddi.c
> > > @@ -770,41 +770,38 @@ cnl_get_buf_trans_edp(struct drm_i915_private 
> > > *dev_priv, int *n_entries)
> > >  
> > >  static int intel_ddi_hdmi_level(struct drm_i915_private *dev_priv, enum 
> > > port port)
> > >  {
> > > - int n_hdmi_entries;
> > > - int hdmi_level;
> > > - int hdmi_default_entry;
> > > + int n_entries, level, default_entry;
> > >  
> > > - hdmi_level = dev_priv->vbt.ddi_port_info[port].hdmi_level_shift;
> > > + level = dev_priv->vbt.ddi_port_info[port].hdmi_level_shift;
> > >  
> > >   if (IS_CANNONLAKE(dev_priv)) {
> > > -         cnl_get_buf_trans_hdmi(dev_priv, &n_hdmi_entries);
> > > -         hdmi_default_entry = n_hdmi_entries - 1;
> > > +         cnl_get_buf_trans_hdmi(dev_priv, &n_entries);
> > > +         default_entry = n_entries - 1;
> > >   } else if (IS_GEN9_LP(dev_priv)) {
> > > -         bxt_get_buf_trans_hdmi(dev_priv, &n_hdmi_entries);
> > > -         hdmi_default_entry = n_hdmi_entries - 1;
> > > +         bxt_get_buf_trans_hdmi(dev_priv, &n_entries);
> > > +         default_entry = n_entries - 1;
> > >   } else if (IS_GEN9_BC(dev_priv)) {
> > > -         intel_ddi_get_buf_trans_hdmi(dev_priv, &n_hdmi_entries);
> > > -         hdmi_default_entry = 8;
> > > +         intel_ddi_get_buf_trans_hdmi(dev_priv, &n_entries);
> > > +         default_entry = 8;
> > >   } else if (IS_BROADWELL(dev_priv)) {
> > > -         intel_ddi_get_buf_trans_hdmi(dev_priv, &n_hdmi_entries);
> > > -         hdmi_default_entry = 7;
> > > +         intel_ddi_get_buf_trans_hdmi(dev_priv, &n_entries);
> > > +         default_entry = 7;
> > >   } else if (IS_HASWELL(dev_priv)) {
> > > -         intel_ddi_get_buf_trans_hdmi(dev_priv, &n_hdmi_entries);
> > > -         hdmi_default_entry = 6;
> > > +         intel_ddi_get_buf_trans_hdmi(dev_priv, &n_entries);
> > > +         default_entry = 6;
> > >   } else {
> > >           WARN(1, "ddi translation table missing\n");
> > >           return 0;
> > >   }
> > >  
> > >   /* Choose a good default if VBT is badly populated */
> > > - if (hdmi_level == HDMI_LEVEL_SHIFT_UNKNOWN ||
> > > -     hdmi_level >= n_hdmi_entries)
> > > -         hdmi_level = hdmi_default_entry;
> > > + if (level == HDMI_LEVEL_SHIFT_UNKNOWN || level >= n_entries)
> > > +         level = default_entry;
> > >  
> > > - if (WARN_ON_ONCE(hdmi_level >= n_hdmi_entries))
> > > -         hdmi_level = n_hdmi_entries - 1;
> > > + if (WARN_ON_ONCE(level >= n_entries))
> > > +         level = n_entries - 1;
> > >  
> > > - return hdmi_level;
> > > + return level;
> > >  }
> > >  
> > >  /*
> > > @@ -857,20 +854,20 @@ static void intel_prepare_dp_ddi_buffers(struct 
> > > intel_encoder *encoder)
> > >   * HDMI/DVI use cases.
> > >   */
> > >  static void intel_prepare_hdmi_ddi_buffers(struct intel_encoder *encoder,
> > > -                                    int hdmi_level)
> > > +                                    int level)
> > >  {
> > >   struct drm_i915_private *dev_priv = to_i915(encoder->base.dev);
> > >   u32 iboost_bit = 0;
> > > - int n_hdmi_entries;
> > > + int n_entries;
> > >   enum port port = intel_ddi_get_encoder_port(encoder);
> > > - const struct ddi_buf_trans *ddi_translations_hdmi;
> > > + const struct ddi_buf_trans *ddi_translations;
> > >  
> > > - ddi_translations_hdmi = intel_ddi_get_buf_trans_hdmi(dev_priv, 
> > > &n_hdmi_entries);
> > > + ddi_translations = intel_ddi_get_buf_trans_hdmi(dev_priv, &n_entries);
> > >  
> > > - if (WARN_ON_ONCE(!ddi_translations_hdmi))
> > > + if (WARN_ON_ONCE(!ddi_translations))
> > >           return;
> > > - if (WARN_ON_ONCE(hdmi_level >= n_hdmi_entries))
> > > -         hdmi_level = n_hdmi_entries - 1;
> > > + if (WARN_ON_ONCE(level >= n_entries))
> > > +         level = n_entries - 1;
> > >  
> > >   /* If we're boosting the current, set bit 31 of trans1 */
> > >   if (IS_GEN9_BC(dev_priv) &&
> > > @@ -879,9 +876,9 @@ static void intel_prepare_hdmi_ddi_buffers(struct 
> > > intel_encoder *encoder,
> > >  
> > >   /* Entry 9 is for HDMI: */
> > >   I915_WRITE(DDI_BUF_TRANS_LO(port, 9),
> > > -            ddi_translations_hdmi[hdmi_level].trans1 | iboost_bit);
> > > +            ddi_translations[level].trans1 | iboost_bit);
> > >   I915_WRITE(DDI_BUF_TRANS_HI(port, 9),
> > > -            ddi_translations_hdmi[hdmi_level].trans2);
> > > +            ddi_translations[level].trans2);
> > >  }
> > >  
> > >  static void intel_wait_ddi_buf_idle(struct drm_i915_private *dev_priv,
> > > @@ -2094,7 +2091,7 @@ u32 bxt_signal_levels(struct intel_dp *intel_dp)
> > >   struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
> > >   struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev);
> > >   struct intel_encoder *encoder = &dport->base;
> > > - u32 level = intel_ddi_dp_level(intel_dp);
> > > + int level = intel_ddi_dp_level(intel_dp);
> > >  
> > >   if (IS_CANNONLAKE(dev_priv))
> > >           cnl_ddi_vswing_sequence(encoder, level, encoder->type);
> > > @@ -2109,7 +2106,7 @@ uint32_t ddi_signal_levels(struct intel_dp 
> > > *intel_dp)
> > >   struct intel_digital_port *dport = dp_to_dig_port(intel_dp);
> > >   struct drm_i915_private *dev_priv = to_i915(dport->base.base.dev);
> > >   struct intel_encoder *encoder = &dport->base;
> > > - uint32_t level = intel_ddi_dp_level(intel_dp);
> > > + int level = intel_ddi_dp_level(intel_dp);
> > >  
> > >   if (IS_GEN9_BC(dev_priv))
> > >           skl_ddi_set_iboost(encoder, level, encoder->type);
> > > @@ -2182,7 +2179,7 @@ static void intel_ddi_pre_enable_dp(struct 
> > > intel_encoder *encoder,
> > >   enum port port = intel_ddi_get_encoder_port(encoder);
> > >   struct intel_digital_port *dig_port = enc_to_dig_port(&encoder->base);
> > >   bool is_mst = intel_crtc_has_type(crtc_state, INTEL_OUTPUT_DP_MST);
> > > - uint32_t level = intel_ddi_dp_level(intel_dp);
> > > + int level = intel_ddi_dp_level(intel_dp);
> > >  
> > >   WARN_ON(is_mst && (port == PORT_A || port == PORT_E));
> > >  
> > > -- 
> > > 2.13.6
> > > 
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> 
> -- 
> Ville Syrjälä
> Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to