diff --git a/drivers/misc/rk628/rk628_hdmirx.c b/drivers/misc/rk628/rk628_hdmirx.c index 777d3259d851..5a0faefd0977 100644 --- a/drivers/misc/rk628/rk628_hdmirx.c +++ b/drivers/misc/rk628/rk628_hdmirx.c @@ -363,7 +363,8 @@ static void rk628_hdmirx_delayed_work_audio(struct work_struct *work) } audio_state->pre_state = fifo_status; exit: - schedule_delayed_work(&hdmirx->delayed_work_audio, msecs_to_jiffies(delay)); + queue_delayed_work(system_freezable_wq, &hdmirx->delayed_work_audio, + msecs_to_jiffies(delay)); } static void rk628_hdmirx_audio_setup(struct rk628 *rk628) @@ -417,7 +418,8 @@ static void rk628_hdmirx_audio_setup(struct rk628 *rk628) rk628_i2c_write(rk628, HDMI_RX_AUD_CHEXTR_CTRL, AUD_LAYOUT_CTRL(1)); /* audio detect */ rk628_i2c_write(rk628, HDMI_RX_PDEC_AUDIODET_CTRL, AUDIODET_THRESHOLD(0)); - schedule_delayed_work(&hdmirx->delayed_work_audio, msecs_to_jiffies(1000)); + queue_delayed_work(system_freezable_wq, &hdmirx->delayed_work_audio, + msecs_to_jiffies(1000)); } static void rk628_hdmirx_ctrl_enable(struct rk628 *rk628)