Re: [Intel-gfx] [PATCH v3 01/13] drm/edid: move drm_connector_update_edid_property() to drm_edid.c

2022-06-22 Thread Ville Syrjälä
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(>base,
> -   dev->mode_config.non_desktop_property,
> -   connector->display_info.non_desktop);
> -
> - ret = drm_property_replace_global_blob(dev,
> ->edid_blob_ptr,
> -size,
> -edid,
> ->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
> +++ 

[Intel-gfx] [PATCH v3 01/13] drm/edid: move drm_connector_update_edid_property() to drm_edid.c

2022-06-22 Thread Jani Nikula
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 
---
 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(>base,
- dev->mode_config.non_desktop_property,
- connector->display_info.non_desktop);
-
-   ret = drm_property_replace_global_blob(dev,
-  >edid_blob_ptr,
-  size,
-  edid,
-  >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