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@xxxxxxxxxxxxxxx> Acked-by: Hans Verkuil <hans.verkuil@xxxxxxxxx> 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); > _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel