[1/2] drm: Do not call drm_dp_cec_set_edid() while registering DP connectors

Submitted by José Roberto de Souza on Sept. 25, 2018, 1:16 a.m.

Details

Message ID 20180925011649.15505-1-jose.souza@intel.com
State New
Headers show
Series "Series without cover letter" ( rev: 1 ) in DRI devel

Not browsing as part of any series.

Commit Message

José Roberto de Souza Sept. 25, 2018, 1:16 a.m.
drm_dp_cec_register_connector() is called when registering each DP
connector in DRM, while sounds a good idea register CEC adapters as
earlier as possible, it causes some driver initialization delay
trying to do DPCD transactions in disconnected connectors.

This change will cause no regressions as drm_dp_cec_set_edid() will
still be called in further detection of connected connectors with a
valid edid parameter.

This change reduced the module load of i915 by average 0.5sec in a
machine with just one DP port disconnected while reducing more than
3sec in a machine with 4 DP ports disconnected.

Cc: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
---
 drivers/gpu/drm/drm_dp_cec.c | 2 --
 1 file changed, 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/drivers/gpu/drm/drm_dp_cec.c b/drivers/gpu/drm/drm_dp_cec.c
index 8a718f85079a..b15cee85b702 100644
--- a/drivers/gpu/drm/drm_dp_cec.c
+++ b/drivers/gpu/drm/drm_dp_cec.c
@@ -424,8 +424,6 @@  void drm_dp_cec_register_connector(struct drm_dp_aux *aux, const char *name,
 	aux->cec.parent = parent;
 	INIT_DELAYED_WORK(&aux->cec.unregister_work,
 			  drm_dp_cec_unregister_work);
-
-	drm_dp_cec_set_edid(aux, NULL);
 }
 EXPORT_SYMBOL(drm_dp_cec_register_connector);
 

Comments

On 09/25/2018 03:16 AM, José Roberto de Souza wrote:
> drm_dp_cec_register_connector() is called when registering each DP
> connector in DRM, while sounds a good idea register CEC adapters as
> earlier as possible, it causes some driver initialization delay
> trying to do DPCD transactions in disconnected connectors.
> 
> This change will cause no regressions as drm_dp_cec_set_edid() will
> still be called in further detection of connected connectors with a
> valid edid parameter.
> 
> This change reduced the module load of i915 by average 0.5sec in a
> machine with just one DP port disconnected while reducing more than
> 3sec in a machine with 4 DP ports disconnected.
> 
> Cc: Hans Verkuil <hans.verkuil@cisco.com>

Acked-by: Hans Verkuil <hans.verkuil@cisco.com>

Thanks, this makes sense.

	Hans

> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>   drivers/gpu/drm/drm_dp_cec.c | 2 --
>   1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_dp_cec.c b/drivers/gpu/drm/drm_dp_cec.c
> index 8a718f85079a..b15cee85b702 100644
> --- a/drivers/gpu/drm/drm_dp_cec.c
> +++ b/drivers/gpu/drm/drm_dp_cec.c
> @@ -424,8 +424,6 @@ void drm_dp_cec_register_connector(struct drm_dp_aux *aux, const char *name,
>   	aux->cec.parent = parent;
>   	INIT_DELAYED_WORK(&aux->cec.unregister_work,
>   			  drm_dp_cec_unregister_work);
> -
> -	drm_dp_cec_set_edid(aux, NULL);
>   }
>   EXPORT_SYMBOL(drm_dp_cec_register_connector);
>   
>