From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88E98C433F5 for ; Wed, 8 Sep 2021 12:03:50 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5513060249 for ; Wed, 8 Sep 2021 12:03:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5513060249 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DB0ED6E194; Wed, 8 Sep 2021 12:03:49 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E6EC46E194 for ; Wed, 8 Sep 2021 12:03:48 +0000 (UTC) X-IronPort-AV: E=McAfee;i="6200,9189,10100"; a="220146373" X-IronPort-AV: E=Sophos;i="5.85,277,1624345200"; d="scan'208";a="220146373" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Sep 2021 05:03:47 -0700 X-IronPort-AV: E=Sophos;i="5.85,277,1624345200"; d="scan'208";a="538614023" Received: from mdoerbec-mobl1.ger.corp.intel.com (HELO localhost) ([10.249.33.106]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 Sep 2021 05:03:45 -0700 From: Jani Nikula To: Dave Airlie , intel-gfx@lists.freedesktop.org Cc: Dave Airlie In-Reply-To: <20210908003944.2972024-13-airlied@gmail.com> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <20210908003944.2972024-1-airlied@gmail.com> <20210908003944.2972024-13-airlied@gmail.com> Date: Wed, 08 Sep 2021 15:03:42 +0300 Message-ID: <87tuiv46ld.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Subject: Re: [Intel-gfx] [PATCH 12/21] drm/i915: constify fdi link training vtable X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Wed, 08 Sep 2021, Dave Airlie wrote: > From: Dave Airlie > > Avoid having writeable function pointers. > --- > drivers/gpu/drm/i915/display/intel_display.c | 2 +- > drivers/gpu/drm/i915/display/intel_fdi.c | 18 +++++++++++++++--- > drivers/gpu/drm/i915/i915_drv.h | 2 +- > 3 files changed, 17 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c > index 87950202f4ce..0ad577aceb9d 100644 > --- a/drivers/gpu/drm/i915/display/intel_display.c > +++ b/drivers/gpu/drm/i915/display/intel_display.c > @@ -2100,7 +2100,7 @@ static void ilk_pch_enable(const struct intel_atomic_state *state, > assert_pch_transcoder_disabled(dev_priv, pipe); > > /* For PCH output, training FDI link */ > - dev_priv->fdi_funcs.fdi_link_train(crtc, crtc_state); > + dev_priv->fdi_funcs->fdi_link_train(crtc, crtc_state); > > /* We need to program the right clock selection before writing the pixel > * mutliplier into the DPLL. */ > diff --git a/drivers/gpu/drm/i915/display/intel_fdi.c b/drivers/gpu/drm/i915/display/intel_fdi.c > index d9f952e0c67f..68aa9c7b18ec 100644 > --- a/drivers/gpu/drm/i915/display/intel_fdi.c > +++ b/drivers/gpu/drm/i915/display/intel_fdi.c > @@ -1005,15 +1005,27 @@ void lpt_fdi_program_mphy(struct drm_i915_private *dev_priv) > intel_sbi_write(dev_priv, 0x21EC, tmp, SBI_MPHY); > } > > +static const struct drm_i915_fdi_link_train_funcs ilk_funcs = { > + .fdi_link_train = ilk_fdi_link_train Oh, I guess we could add , at the end of all of these, across all patches, even if some of them currently hold only one member. It's just so much cleaner if ever you need to add another member. BR, Jani. > +}; > + > +static const struct drm_i915_fdi_link_train_funcs gen6_funcs = { > + .fdi_link_train = gen6_fdi_link_train > +}; > + > +static const struct drm_i915_fdi_link_train_funcs ivb_funcs = { > + .fdi_link_train = ivb_manual_fdi_link_train > +}; > + > void > intel_fdi_init_hook(struct drm_i915_private *dev_priv) > { > if (IS_IRONLAKE(dev_priv)) { > - dev_priv->fdi_funcs.fdi_link_train = ilk_fdi_link_train; > + dev_priv->fdi_funcs = &ilk_funcs; > } else if (IS_SANDYBRIDGE(dev_priv)) { > - dev_priv->fdi_funcs.fdi_link_train = gen6_fdi_link_train; > + dev_priv->fdi_funcs = &gen6_funcs; > } else if (IS_IVYBRIDGE(dev_priv)) { > /* FIXME: detect B0+ stepping and use auto training */ > - dev_priv->fdi_funcs.fdi_link_train = ivb_manual_fdi_link_train; > + dev_priv->fdi_funcs = &ivb_funcs; > } > } > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 461ab0a0f088..b3765222e717 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1006,7 +1006,7 @@ struct drm_i915_private { > struct drm_i915_irq_funcs irq_funcs; > > /* fdi display functions */ > - struct drm_i915_fdi_link_train_funcs fdi_funcs; > + const struct drm_i915_fdi_link_train_funcs *fdi_funcs; > > /* display pll funcs */ > struct drm_i915_dpll_funcs dpll_funcs; -- Jani Nikula, Intel Open Source Graphics Center