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 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 smtp.lore.kernel.org (Postfix) with ESMTPS id E608FC43334 for ; Wed, 22 Jun 2022 14:37:28 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 754731133BD; Wed, 22 Jun 2022 14:37:28 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4E1D41133CE; Wed, 22 Jun 2022 14:37:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1655908647; x=1687444647; h=date:from:to:cc:subject:message-id:references: mime-version:content-transfer-encoding:in-reply-to; bh=3xBKrcDYK7hwkP7MoaXIe0icKVqL+21LUMt1cSvDf6A=; b=DlI4O2HB0vPoAWIC8ur2TpFn+SQbgBHGqkgvciYxYkfbEdvT0x2wUWQv Np+Lo62N0+bAMtbS0y5OUsvYJmVnwc7gojbcUPeB8vKYPk9nmbxhPx8eL CgB67RMMPfQ6l2DACcewut5/uYGFjn7uvqDL+Gpsm3SBVpDomtadCmXDQ tEKc5S1P4zZQffSTMOATkSuawKSkKdDbXGjhftrgJcstQV173zhfLQvWm MLHOfv3nV4Oy3FP9S1Ji+Z1B2RiyUOugVjFP2DrCdogH+xkwDx+OidNNf llqEqnnMRbrqhN61Z0MXAJsYOWIM2YwWIxSu2k/WssOOitmv4Zyp5T57z Q==; X-IronPort-AV: E=McAfee;i="6400,9594,10385"; a="344423547" X-IronPort-AV: E=Sophos;i="5.92,212,1650956400"; d="scan'208";a="344423547" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jun 2022 07:37:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,212,1650956400"; d="scan'208";a="677578152" Received: from stinkpipe.fi.intel.com (HELO stinkbox) ([10.237.72.163]) by FMSMGA003.fm.intel.com with SMTP; 22 Jun 2022 07:37:24 -0700 Received: by stinkbox (sSMTP sendmail emulation); Wed, 22 Jun 2022 17:37:23 +0300 Date: Wed, 22 Jun 2022 17:37:23 +0300 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= To: Jani Nikula Message-ID: References: <205b3b8905375506dc9f508fe18652c226cc6a50.1655895388.git.jani.nikula@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <205b3b8905375506dc9f508fe18652c226cc6a50.1655895388.git.jani.nikula@intel.com> X-Patchwork-Hint: comment Subject: Re: [Intel-gfx] [PATCH v3 01/13] drm/edid: move drm_connector_update_edid_property() to drm_edid.c 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: , Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" On Wed, Jun 22, 2022 at 01:59:15PM +0300, Jani Nikula wrote: > The function needs access to drm_edid.c internals more than > drm_connector.c. We can make drm_reset_display_info(), > drm_add_display_info() and drm_update_tile_info() static. There will be > more benefits with follow-up struct drm_edid refactoring. > > Signed-off-by: Jani Nikula Reviewed-by: Ville Syrjälä > --- > drivers/gpu/drm/drm_connector.c | 74 ------------------------- > drivers/gpu/drm/drm_crtc_internal.h | 3 - > drivers/gpu/drm/drm_edid.c | 86 +++++++++++++++++++++++++++-- > 3 files changed, 81 insertions(+), 82 deletions(-) > > diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c > index 28ea0f8196b9..2b9a8972eff1 100644 > --- a/drivers/gpu/drm/drm_connector.c > +++ b/drivers/gpu/drm/drm_connector.c > @@ -2078,80 +2078,6 @@ int drm_connector_set_tile_property(struct drm_connector *connector) > } > EXPORT_SYMBOL(drm_connector_set_tile_property); > > -/** > - * drm_connector_update_edid_property - update the edid property of a connector > - * @connector: drm connector > - * @edid: new value of the edid property > - * > - * This function creates a new blob modeset object and assigns its id to the > - * connector's edid property. > - * Since we also parse tile information from EDID's displayID block, we also > - * set the connector's tile property here. See drm_connector_set_tile_property() > - * for more details. > - * > - * Returns: > - * Zero on success, negative errno on failure. > - */ > -int drm_connector_update_edid_property(struct drm_connector *connector, > - const struct edid *edid) > -{ > - struct drm_device *dev = connector->dev; > - size_t size = 0; > - int ret; > - const struct edid *old_edid; > - > - /* ignore requests to set edid when overridden */ > - if (connector->override_edid) > - return 0; > - > - if (edid) > - size = EDID_LENGTH * (1 + edid->extensions); > - > - /* Set the display info, using edid if available, otherwise > - * resetting the values to defaults. This duplicates the work > - * done in drm_add_edid_modes, but that function is not > - * consistently called before this one in all drivers and the > - * computation is cheap enough that it seems better to > - * duplicate it rather than attempt to ensure some arbitrary > - * ordering of calls. > - */ > - if (edid) > - drm_add_display_info(connector, edid); > - else > - drm_reset_display_info(connector); > - > - drm_update_tile_info(connector, edid); > - > - if (connector->edid_blob_ptr) { > - old_edid = (const struct edid *)connector->edid_blob_ptr->data; > - if (old_edid) { > - if (!drm_edid_are_equal(edid, old_edid)) { > - DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Edid was changed.\n", > - connector->base.id, connector->name); > - > - connector->epoch_counter += 1; > - DRM_DEBUG_KMS("Updating change counter to %llu\n", > - connector->epoch_counter); > - } > - } > - } > - > - drm_object_property_set_value(&connector->base, > - dev->mode_config.non_desktop_property, > - connector->display_info.non_desktop); > - > - ret = drm_property_replace_global_blob(dev, > - &connector->edid_blob_ptr, > - size, > - edid, > - &connector->base, > - dev->mode_config.edid_property); > - if (ret) > - return ret; > - return drm_connector_set_tile_property(connector); > -} > -EXPORT_SYMBOL(drm_connector_update_edid_property); > - > /** > * drm_connector_set_link_status_property - Set link status property of a connector > * @connector: drm connector > diff --git a/drivers/gpu/drm/drm_crtc_internal.h b/drivers/gpu/drm/drm_crtc_internal.h > index 63279e984342..aecab5308bae 100644 > --- a/drivers/gpu/drm/drm_crtc_internal.h > +++ b/drivers/gpu/drm/drm_crtc_internal.h > @@ -286,6 +286,3 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev, > > /* drm_edid.c */ > void drm_mode_fixup_1366x768(struct drm_display_mode *mode); > -void drm_reset_display_info(struct drm_connector *connector); > -u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edid); > -void drm_update_tile_info(struct drm_connector *connector, const struct edid *edid); > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 2bdaf1e34a9d..36bf7b0fe8d9 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -5928,8 +5928,7 @@ static void drm_update_mso(struct drm_connector *connector, > /* A connector has no EDID information, so we've got no EDID to compute quirks from. Reset > * all of the values which would have been set from EDID > */ > -void > -drm_reset_display_info(struct drm_connector *connector) > +static void drm_reset_display_info(struct drm_connector *connector) > { > struct drm_display_info *info = &connector->display_info; > > @@ -6043,7 +6042,7 @@ static u32 update_display_info(struct drm_connector *connector, > return quirks; > } > > -u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edid) > +static u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edid) > { > struct drm_edid drm_edid; > > @@ -6207,6 +6206,83 @@ static int drm_edid_connector_update(struct drm_connector *connector, > return num_modes; > } > > +static void drm_update_tile_info(struct drm_connector *connector, > + const struct edid *edid); > + > +/** > + * drm_connector_update_edid_property - update the edid property of a connector > + * @connector: drm connector > + * @edid: new value of the edid property > + * > + * This function creates a new blob modeset object and assigns its id to the > + * connector's edid property. > + * Since we also parse tile information from EDID's displayID block, we also > + * set the connector's tile property here. See drm_connector_set_tile_property() > + * for more details. > + * > + * Returns: > + * Zero on success, negative errno on failure. > + */ > +int drm_connector_update_edid_property(struct drm_connector *connector, > + const struct edid *edid) > +{ > + struct drm_device *dev = connector->dev; > + size_t size = 0; > + int ret; > + const struct edid *old_edid; > + > + /* ignore requests to set edid when overridden */ > + if (connector->override_edid) > + return 0; > + > + if (edid) > + size = EDID_LENGTH * (1 + edid->extensions); > + > + /* > + * Set the display info, using edid if available, otherwise resetting > + * the values to defaults. This duplicates the work done in > + * drm_add_edid_modes, but that function is not consistently called > + * before this one in all drivers and the computation is cheap enough > + * that it seems better to duplicate it rather than attempt to ensure > + * some arbitrary ordering of calls. > + */ > + if (edid) > + drm_add_display_info(connector, edid); > + else > + drm_reset_display_info(connector); > + > + drm_update_tile_info(connector, edid); > + > + if (connector->edid_blob_ptr) { > + old_edid = (const struct edid *)connector->edid_blob_ptr->data; > + if (old_edid) { > + if (!drm_edid_are_equal(edid, old_edid)) { > + DRM_DEBUG_KMS("[CONNECTOR:%d:%s] Edid was changed.\n", > + connector->base.id, connector->name); > + > + connector->epoch_counter += 1; > + DRM_DEBUG_KMS("Updating change counter to %llu\n", > + connector->epoch_counter); > + } > + } > + } > + > + drm_object_property_set_value(&connector->base, > + dev->mode_config.non_desktop_property, > + connector->display_info.non_desktop); > + > + ret = drm_property_replace_global_blob(dev, > + &connector->edid_blob_ptr, > + size, > + edid, > + &connector->base, > + dev->mode_config.edid_property); > + if (ret) > + return ret; > + return drm_connector_set_tile_property(connector); > +} > +EXPORT_SYMBOL(drm_connector_update_edid_property); > + > /** > * drm_add_edid_modes - add modes from EDID data, if available > * @connector: connector we're probing > @@ -6645,8 +6721,8 @@ static void _drm_update_tile_info(struct drm_connector *connector, > } > } > > -void drm_update_tile_info(struct drm_connector *connector, > - const struct edid *edid) > +static void drm_update_tile_info(struct drm_connector *connector, > + const struct edid *edid) > { > struct drm_edid drm_edid; > > -- > 2.30.2 -- Ville Syrjälä Intel