From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] drm/i915: Fix wrong number of HDMI translation entries Date: Mon, 11 Aug 2014 11:29:49 +0200 Message-ID: <20140811092949.GF8727@phenom.ffwll.local> References: <1407598171-23000-1-git-send-email-damien.lespiau@intel.com> <8761hz77vo.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-wg0-f41.google.com (mail-wg0-f41.google.com [74.125.82.41]) by gabe.freedesktop.org (Postfix) with ESMTP id A380289811 for ; Mon, 11 Aug 2014 02:29:37 -0700 (PDT) Received: by mail-wg0-f41.google.com with SMTP id z12so8352302wgg.24 for ; Mon, 11 Aug 2014 02:29:36 -0700 (PDT) Content-Disposition: inline In-Reply-To: <8761hz77vo.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jani Nikula Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org On Mon, Aug 11, 2014 at 11:22:51AM +0300, Jani Nikula wrote: > On Sat, 09 Aug 2014, Damien Lespiau wrote: > > I keep telling myself that those tables aren't great because their size > > is the number of dwords we need to program and not the number of entries > > (number of dwords = number of entries * 2). > > > > And... I got it wrong when I refactored the code. Fortunately, it was > > only wrong when the VBT table (or the code parsing it) is itself > > erroneous. Long story short, it shouldn't matter, but still, there's a > > potential array overflow and random programming of the DDI translation > > tables. > > Ugh I looked at the code. I think it would benefit from making the > tables have the right amount of entries, with struct { u32 hi, lo; } for > each element. I also dislike the ARRAY_SIZE(hsw_ddi_translations_fdi) in > the first loop, and magic 2 in the second. But that's for a rainy day. > > Reviewed-by: Jani Nikula Queued for -next, thanks for the patch. -Daniel > > > > > Cc: Paulo Zanoni > > Signed-off-by: Damien Lespiau > > --- > > drivers/gpu/drm/i915/intel_ddi.c | 6 +++--- > > 1 file changed, 3 insertions(+), 3 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c > > index ca1f9a8..02d5584 100644 > > --- a/drivers/gpu/drm/i915/intel_ddi.c > > +++ b/drivers/gpu/drm/i915/intel_ddi.c > > @@ -169,14 +169,14 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) > > ddi_translations_dp = bdw_ddi_translations_dp; > > ddi_translations_edp = bdw_ddi_translations_edp; > > ddi_translations_hdmi = bdw_ddi_translations_hdmi; > > - n_hdmi_entries = ARRAY_SIZE(bdw_ddi_translations_hdmi); > > + n_hdmi_entries = ARRAY_SIZE(bdw_ddi_translations_hdmi) / 2; > > hdmi_800mV_0dB = 7; > > } else if (IS_HASWELL(dev)) { > > ddi_translations_fdi = hsw_ddi_translations_fdi; > > ddi_translations_dp = hsw_ddi_translations_dp; > > ddi_translations_edp = hsw_ddi_translations_dp; > > ddi_translations_hdmi = hsw_ddi_translations_hdmi; > > - n_hdmi_entries = ARRAY_SIZE(hsw_ddi_translations_hdmi); > > + n_hdmi_entries = ARRAY_SIZE(hsw_ddi_translations_hdmi) / 2; > > hdmi_800mV_0dB = 6; > > } else { > > WARN(1, "ddi translation table missing\n"); > > @@ -184,7 +184,7 @@ static void intel_prepare_ddi_buffers(struct drm_device *dev, enum port port) > > ddi_translations_fdi = bdw_ddi_translations_fdi; > > ddi_translations_dp = bdw_ddi_translations_dp; > > ddi_translations_hdmi = bdw_ddi_translations_hdmi; > > - n_hdmi_entries = ARRAY_SIZE(bdw_ddi_translations_hdmi); > > + n_hdmi_entries = ARRAY_SIZE(bdw_ddi_translations_hdmi) / 2; > > hdmi_800mV_0dB = 7; > > } > > > > -- > > 1.8.3.1 > > > > _______________________________________________ > > Intel-gfx mailing list > > Intel-gfx@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/intel-gfx > > -- > Jani Nikula, Intel Open Source Technology Center > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch