[PATCH v2 1/7] drm/i2c: tda998x: move mutex/waitqueue/timer/work init early

Hans Verkuil hverkuil at xs4all.nl
Wed Dec 6 13:51:31 UTC 2017


On 12/06/17 13:35, Russell King wrote:
> Move the mutex, waitqueue, timer and detect work initialisation early
> in the driver's initialisation, rather than being after we've registered
> the CEC device.
> 
> Signed-off-by: Russell King <rmk+kernel at armlinux.org.uk>

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

Regards,

	Hans

> ---
>  drivers/gpu/drm/i2c/tda998x_drv.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i2c/tda998x_drv.c b/drivers/gpu/drm/i2c/tda998x_drv.c
> index 127815253a84..7f4dbca7f7f4 100644
> --- a/drivers/gpu/drm/i2c/tda998x_drv.c
> +++ b/drivers/gpu/drm/i2c/tda998x_drv.c
> @@ -1476,7 +1476,11 @@ static int tda998x_create(struct i2c_client *client, struct tda998x_priv *priv)
>  	u32 video;
>  	int rev_lo, rev_hi, ret;
>  
> -	mutex_init(&priv->audio_mutex); /* Protect access from audio thread */
> +	mutex_init(&priv->mutex);	/* protect the page access */
> +	mutex_init(&priv->audio_mutex); /* protect access from audio thread */
> +	init_waitqueue_head(&priv->edid_delay_waitq);
> +	timer_setup(&priv->edid_delay_timer, tda998x_edid_delay_done, 0);
> +	INIT_WORK(&priv->detect_work, tda998x_detect_work);
>  
>  	priv->vip_cntrl_0 = VIP_CNTRL_0_SWAP_A(2) | VIP_CNTRL_0_SWAP_B(3);
>  	priv->vip_cntrl_1 = VIP_CNTRL_1_SWAP_C(0) | VIP_CNTRL_1_SWAP_D(1);
> @@ -1490,11 +1494,6 @@ static int tda998x_create(struct i2c_client *client, struct tda998x_priv *priv)
>  	if (!priv->cec)
>  		return -ENODEV;
>  
> -	mutex_init(&priv->mutex);	/* protect the page access */
> -	init_waitqueue_head(&priv->edid_delay_waitq);
> -	timer_setup(&priv->edid_delay_timer, tda998x_edid_delay_done, 0);
> -	INIT_WORK(&priv->detect_work, tda998x_detect_work);
> -
>  	/* wake up the device: */
>  	cec_write(priv, REG_CEC_ENAMODS,
>  			CEC_ENAMODS_EN_RXSENS | CEC_ENAMODS_EN_HDMI);
> 



More information about the dri-devel mailing list