From: Andrzej Hajda Date: Mon, 17 Oct 2016 12:21:37 +0000 (+0200) Subject: drm/bridge/sii8620: add message queue cleanup X-Git-Tag: submit/tizen/20161031.063553~11 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=46775d92b28219c636155ee434090249b47d07ff;p=platform%2Fkernel%2Flinux-exynos.git drm/bridge/sii8620: add message queue cleanup Queue should be cleaned up on disconnect, otherwise we risk misbehavior. Change-Id: I4f212e1c36ac75f6f72102b24a1c5b14a932aeca Signed-off-by: Andrzej Hajda --- diff --git a/drivers/gpu/drm/bridge/sii8620.c b/drivers/gpu/drm/bridge/sii8620.c index dcc08c02191d..56d310de6959 100644 --- a/drivers/gpu/drm/bridge/sii8620.c +++ b/drivers/gpu/drm/bridge/sii8620.c @@ -229,6 +229,17 @@ static void sii8620_setbits(struct sii8620 *ctx, u16 addr, u8 mask, u8 val) sii8620_write(ctx, addr, val); } +static void sii8620_mt_cleanup(struct sii8620 *ctx) +{ + struct sii8620_mt_msg *msg, *n; + + list_for_each_entry_safe(msg, n, &ctx->mt_queue, node) { + list_del(&msg->node); + kfree(msg); + } + ctx->mt_state = MT_STATE_READY; +} + static void sii8620_mt_work(struct sii8620 *ctx) { struct sii8620_mt_msg *msg; @@ -1085,6 +1096,7 @@ static void sii8620_disconnect(struct sii8620 *ctx) ctx->sink_type = SINK_NONE; kfree(ctx->edid); ctx->edid = NULL; + sii8620_mt_cleanup(ctx); } static void sii8620_mhl_disconnected(struct sii8620 *ctx)