Re: [RESEND 4/6] drm/i2c: tda998x: switch to struct drm_edid

2024-05-13 Thread Robert Foss
On Fri, May 10, 2024 at 3:26 PM Jani Nikula  wrote:
>
> Prefer struct drm_edid based functions over struct edid.
>
> Signed-off-by: Jani Nikula 
>
> ---
>
> Cc: Russell King 
> ---
>  drivers/gpu/drm/i2c/tda998x_drv.c | 19 ++-
>  1 file changed, 10 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c 
> b/drivers/gpu/drm/i2c/tda998x_drv.c
> index d8d7de18dd65..2160f05bbd16 100644
> --- a/drivers/gpu/drm/i2c/tda998x_drv.c
> +++ b/drivers/gpu/drm/i2c/tda998x_drv.c
> @@ -1283,7 +1283,7 @@ static int read_edid_block(void *data, u8 *buf, 
> unsigned int blk, size_t length)
>  static int tda998x_connector_get_modes(struct drm_connector *connector)
>  {
> struct tda998x_priv *priv = conn_to_tda998x_priv(connector);
> -   struct edid *edid;
> +   const struct drm_edid *drm_edid;
> int n;
>
> /*
> @@ -1297,25 +1297,26 @@ static int tda998x_connector_get_modes(struct 
> drm_connector *connector)
> if (priv->rev == TDA19988)
> reg_clear(priv, REG_TX4, TX4_PD_RAM);
>
> -   edid = drm_do_get_edid(connector, read_edid_block, priv);
> +   drm_edid = drm_edid_read_custom(connector, read_edid_block, priv);
>
> if (priv->rev == TDA19988)
> reg_set(priv, REG_TX4, TX4_PD_RAM);
>
> -   if (!edid) {
> +   drm_edid_connector_update(connector, drm_edid);
> +   cec_notifier_set_phys_addr(priv->cec_notify,
> +  
> connector->display_info.source_physical_address);
> +
> +   if (!drm_edid) {
> dev_warn(>hdmi->dev, "failed to read EDID\n");
> return 0;
> }
>
> -   drm_connector_update_edid_property(connector, edid);
> -   cec_notifier_set_phys_addr_from_edid(priv->cec_notify, edid);
> -
> mutex_lock(>audio_mutex);
> -   n = drm_add_edid_modes(connector, edid);
> -   priv->sink_has_audio = drm_detect_monitor_audio(edid);
> +   n = drm_edid_connector_add_modes(connector);
> +   priv->sink_has_audio = connector->display_info.has_audio;
> mutex_unlock(>audio_mutex);
>
> -   kfree(edid);
> +   drm_edid_free(drm_edid);
>
> return n;
>  }
> --
> 2.39.2
>

Reviewed-by: Robert Foss 


[RESEND 4/6] drm/i2c: tda998x: switch to struct drm_edid

2024-05-10 Thread Jani Nikula
Prefer struct drm_edid based functions over struct edid.

Signed-off-by: Jani Nikula 

---

Cc: Russell King 
---
 drivers/gpu/drm/i2c/tda998x_drv.c | 19 ++-
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c 
b/drivers/gpu/drm/i2c/tda998x_drv.c
index d8d7de18dd65..2160f05bbd16 100644
--- a/drivers/gpu/drm/i2c/tda998x_drv.c
+++ b/drivers/gpu/drm/i2c/tda998x_drv.c
@@ -1283,7 +1283,7 @@ static int read_edid_block(void *data, u8 *buf, unsigned 
int blk, size_t length)
 static int tda998x_connector_get_modes(struct drm_connector *connector)
 {
struct tda998x_priv *priv = conn_to_tda998x_priv(connector);
-   struct edid *edid;
+   const struct drm_edid *drm_edid;
int n;
 
/*
@@ -1297,25 +1297,26 @@ static int tda998x_connector_get_modes(struct 
drm_connector *connector)
if (priv->rev == TDA19988)
reg_clear(priv, REG_TX4, TX4_PD_RAM);
 
-   edid = drm_do_get_edid(connector, read_edid_block, priv);
+   drm_edid = drm_edid_read_custom(connector, read_edid_block, priv);
 
if (priv->rev == TDA19988)
reg_set(priv, REG_TX4, TX4_PD_RAM);
 
-   if (!edid) {
+   drm_edid_connector_update(connector, drm_edid);
+   cec_notifier_set_phys_addr(priv->cec_notify,
+  
connector->display_info.source_physical_address);
+
+   if (!drm_edid) {
dev_warn(>hdmi->dev, "failed to read EDID\n");
return 0;
}
 
-   drm_connector_update_edid_property(connector, edid);
-   cec_notifier_set_phys_addr_from_edid(priv->cec_notify, edid);
-
mutex_lock(>audio_mutex);
-   n = drm_add_edid_modes(connector, edid);
-   priv->sink_has_audio = drm_detect_monitor_audio(edid);
+   n = drm_edid_connector_add_modes(connector);
+   priv->sink_has_audio = connector->display_info.has_audio;
mutex_unlock(>audio_mutex);
 
-   kfree(edid);
+   drm_edid_free(drm_edid);
 
return n;
 }
-- 
2.39.2