diff options
Diffstat (limited to 'drivers/media/platform/coda/coda-common.c')
| -rw-r--r-- | drivers/media/platform/coda/coda-common.c | 16 | 
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c index 3ce58dee4422..6238047273f2 100644 --- a/drivers/media/platform/coda/coda-common.c +++ b/drivers/media/platform/coda/coda-common.c @@ -1,14 +1,10 @@ +// SPDX-License-Identifier: GPL-2.0-or-later  /*   * Coda multi-standard codec IP   *   * Copyright (C) 2012 Vista Silicon S.L.   *    Javier Martin, <[email protected]>   *    Xavier Duret - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version.   */  #include <linux/clk.h> @@ -1515,10 +1511,20 @@ static int coda_queue_setup(struct vb2_queue *vq,  static int coda_buf_prepare(struct vb2_buffer *vb)  { +	struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);  	struct coda_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);  	struct coda_q_data *q_data;  	q_data = get_q_data(ctx, vb->vb2_queue->type); +	if (V4L2_TYPE_IS_OUTPUT(vb->vb2_queue->type)) { +		if (vbuf->field == V4L2_FIELD_ANY) +			vbuf->field = V4L2_FIELD_NONE; +		if (vbuf->field != V4L2_FIELD_NONE) { +			v4l2_warn(&ctx->dev->v4l2_dev, +				  "%s field isn't supported\n", __func__); +			return -EINVAL; +		} +	}  	if (vb2_plane_size(vb, 0) < q_data->sizeimage) {  		v4l2_warn(&ctx->dev->v4l2_dev,  |