summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrzej Hajda <a.hajda@samsung.com>2016-10-17 14:37:47 +0200
committerSeung-Woo Kim <sw0312.kim@samsung.com>2016-12-14 13:53:52 +0900
commit0a191fef8bab268c971b247a06663d59a57464dc (patch)
treea905edf9daae4e0dd263ae07a29a616f13abda38
parentcb6a312e3c935117fe2eb36684bd2dfbf9e5a749 (diff)
drm/bridge/sii8620: fix message worker function
Messages should not be handled in error and busy state. Also state should be update on success. Change-Id: Ib6ac51f920cb44f75628cbec78b3bb32774816ff Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
-rw-r--r--drivers/gpu/drm/bridge/sii8620.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/bridge/sii8620.c b/drivers/gpu/drm/bridge/sii8620.c
index 56d310de6959..384e592ba6e5 100644
--- a/drivers/gpu/drm/bridge/sii8620.c
+++ b/drivers/gpu/drm/bridge/sii8620.c
@@ -244,10 +244,13 @@ static void sii8620_mt_work(struct sii8620 *ctx)
{
struct sii8620_mt_msg *msg;
- if (list_empty(&ctx->mt_queue))
+ if (ctx->error)
+ return;
+ if (ctx->mt_state == MT_STATE_BUSY || list_empty(&ctx->mt_queue))
return;
if (ctx->mt_state == MT_STATE_DONE) {
+ ctx->mt_state = MT_STATE_READY;
msg = list_first_entry(&ctx->mt_queue, struct sii8620_mt_msg,
node);
if (msg->recv)