From: Philipp Zabel 
Date: Wed, 18 Mar 2020 18:35:34 +0000 (+0100)
Subject: media: coda: split marking last meta into helper function
X-Git-Tag: for-linux~45^2~427
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d2f1db8608527bed9478d87e710aa1a8bac8f40a;p=users%2Fdwmw2%2Flinux.git
media: coda: split marking last meta into helper function
Split marking the last metadata entry into a helper function to simplify
coda_decoder_cmd.
Signed-off-by: Philipp Zabel 
Signed-off-by: Hans Verkuil 
Signed-off-by: Mauro Carvalho Chehab 
---
diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c
index 096e8e11f8369..ee25435929a96 100644
--- a/drivers/media/platform/coda/coda-common.c
+++ b/drivers/media/platform/coda/coda-common.c
@@ -1153,6 +1153,26 @@ static int coda_try_decoder_cmd(struct file *file, void *fh,
 	return v4l2_m2m_ioctl_try_decoder_cmd(file, fh, dc);
 }
 
+static bool coda_mark_last_meta(struct coda_ctx *ctx)
+{
+	struct coda_buffer_meta *meta;
+
+	coda_dbg(1, ctx, "marking last meta\n");
+
+	spin_lock(&ctx->buffer_meta_lock);
+	if (list_empty(&ctx->buffer_meta_list)) {
+		spin_unlock(&ctx->buffer_meta_lock);
+		return false;
+	}
+
+	meta = list_last_entry(&ctx->buffer_meta_list, struct coda_buffer_meta,
+			       list);
+	meta->last = true;
+
+	spin_unlock(&ctx->buffer_meta_lock);
+	return true;
+}
+
 static int coda_decoder_cmd(struct file *file, void *fh,
 			    struct v4l2_decoder_cmd *dc)
 {
@@ -1197,22 +1217,10 @@ static int coda_decoder_cmd(struct file *file, void *fh,
 				stream_end = true;
 			}
 		} else {
-			coda_dbg(1, ctx, "marking last meta\n");
-
-			/* Mark last meta */
-			spin_lock(&ctx->buffer_meta_lock);
-			if (!list_empty(&ctx->buffer_meta_list)) {
-				struct coda_buffer_meta *meta;
-
-				meta = list_last_entry(&ctx->buffer_meta_list,
-						       struct coda_buffer_meta,
-						       list);
-				meta->last = true;
+			if (coda_mark_last_meta(ctx))
 				stream_end = true;
-			} else {
+			else
 				wakeup = true;
-			}
-			spin_unlock(&ctx->buffer_meta_lock);
 		}
 
 		if (stream_end) {