Re: [PATCH] media: vb2: Print the queue pointer in debug messages

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Laurent,

On 6/8/19 2:38 PM, Laurent Pinchart wrote:
> When debugging issues that involve more than one video queue, messages
> related to multiple queues get interleaved without any easy way to tell
> which queue they relate to. Fix this by printing the queue pointer for
> all debug messages in the vb2 core and V4L2 layers.

I like the idea, but I think it can be done better:

I'd suggest adding a name field to struct vb2_queue. In vb2_core_queue_init()
you check if name was set, and if not, then fill it with e.g.:

snprintf(q->name, sizeof(q->name), "%s-%p",
	 q->is_output ? "out" : "cap", q);

The out/cap prefix is very useful for debugging m2m devices.

Perhaps we should also introduce a vb2_queue_init_name() so drivers can
specify a name for the queue.

> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>
> ---
> Changes since v1:
> 
> - Fix format specifiers in vb2 ops-related macros
> ---
>  .../media/common/videobuf2/videobuf2-core.c   | 219 +++++++++---------
>  .../media/common/videobuf2/videobuf2-v4l2.c   |  55 ++---
>  2 files changed, 139 insertions(+), 135 deletions(-)
> 
> diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c
> index 4489744fbbd9..05677ebdb21f 100644
> --- a/drivers/media/common/videobuf2/videobuf2-core.c
> +++ b/drivers/media/common/videobuf2/videobuf2-core.c
> @@ -34,10 +34,10 @@
>  static int debug;
>  module_param(debug, int, 0644);
>  
> -#define dprintk(level, fmt, arg...)				\
> -	do {							\
> -		if (debug >= level)				\
> -			pr_info("%s: " fmt, __func__, ## arg);	\
> +#define dprintk(q, level, fmt, arg...)					\
> +	do {								\
> +		if (debug >= level)					\
> +			pr_info("(q=%p) %s: " fmt, q, __func__, ## arg);\

And with the proposed change I'd change this to:

			pr_info("%s %s: " fmt, (q)->name, __func__, ## arg);\

Regards,

	Hans

>  	} while (0)
>  
>  #ifdef CONFIG_VIDEO_ADV_DEBUG
> @@ -51,8 +51,8 @@ module_param(debug, int, 0644);
>   */
>  
>  #define log_memop(vb, op)						\
> -	dprintk(2, "call_memop(%p, %d, %s)%s\n",			\
> -		(vb)->vb2_queue, (vb)->index, #op,			\
> +	dprintk((vb)->vb2_queue, 2, "call_memop(%d, %s)%s\n",		\
> +		(vb)->index, #op,					\
>  		(vb)->vb2_queue->mem_ops->op ? "" : " (nop)")
>  
>  #define call_memop(vb, op, args...)					\
> @@ -90,7 +90,7 @@ module_param(debug, int, 0644);
>  })
>  
>  #define log_qop(q, op)							\
> -	dprintk(2, "call_qop(%p, %s)%s\n", q, #op,			\
> +	dprintk(q, 2, "call_qop(%s)%s\n", #op,				\
>  		(q)->ops->op ? "" : " (nop)")
>  
>  #define call_qop(q, op, args...)					\
> @@ -113,8 +113,8 @@ module_param(debug, int, 0644);
>  })
>  
>  #define log_vb_qop(vb, op, args...)					\
> -	dprintk(2, "call_vb_qop(%p, %d, %s)%s\n",			\
> -		(vb)->vb2_queue, (vb)->index, #op,			\
> +	dprintk((vb)->vb2_queue, 2, "call_vb_qop(%d, %s)%s\n",		\
> +		(vb)->index, #op,					\
>  		(vb)->vb2_queue->ops->op ? "" : " (nop)")
>  
>  #define call_vb_qop(vb, op, args...)					\
> @@ -246,7 +246,8 @@ static void __vb2_buf_mem_free(struct vb2_buffer *vb)
>  	for (plane = 0; plane < vb->num_planes; ++plane) {
>  		call_void_memop(vb, put, vb->planes[plane].mem_priv);
>  		vb->planes[plane].mem_priv = NULL;
> -		dprintk(3, "freed plane %d of buffer %d\n", plane, vb->index);
> +		dprintk(vb->vb2_queue, 3, "freed plane %d of buffer %d\n",
> +			plane, vb->index);
>  	}
>  }
>  
> @@ -316,7 +317,7 @@ static void __setup_offsets(struct vb2_buffer *vb)
>  	for (plane = 0; plane < vb->num_planes; ++plane) {
>  		vb->planes[plane].m.offset = off;
>  
> -		dprintk(3, "buffer %d, plane %d offset 0x%08lx\n",
> +		dprintk(q, 3, "buffer %d, plane %d offset 0x%08lx\n",
>  				vb->index, plane, off);
>  
>  		off += vb->planes[plane].length;
> @@ -347,7 +348,7 @@ static int __vb2_queue_alloc(struct vb2_queue *q, enum vb2_memory memory,
>  		/* Allocate videobuf buffer structures */
>  		vb = kzalloc(q->buf_struct_size, GFP_KERNEL);
>  		if (!vb) {
> -			dprintk(1, "memory alloc for buffer struct failed\n");
> +			dprintk(q, 1, "memory alloc for buffer struct failed\n");
>  			break;
>  		}
>  
> @@ -369,7 +370,7 @@ static int __vb2_queue_alloc(struct vb2_queue *q, enum vb2_memory memory,
>  		if (memory == VB2_MEMORY_MMAP) {
>  			ret = __vb2_buf_mem_alloc(vb);
>  			if (ret) {
> -				dprintk(1, "failed allocating memory for buffer %d\n",
> +				dprintk(q, 1, "failed allocating memory for buffer %d\n",
>  					buffer);
>  				q->bufs[vb->index] = NULL;
>  				kfree(vb);
> @@ -383,7 +384,7 @@ static int __vb2_queue_alloc(struct vb2_queue *q, enum vb2_memory memory,
>  			 */
>  			ret = call_vb_qop(vb, buf_init, vb);
>  			if (ret) {
> -				dprintk(1, "buffer %d %p initialization failed\n",
> +				dprintk(q, 1, "buffer %d %p initialization failed\n",
>  					buffer, vb);
>  				__vb2_buf_mem_free(vb);
>  				q->bufs[vb->index] = NULL;
> @@ -393,7 +394,7 @@ static int __vb2_queue_alloc(struct vb2_queue *q, enum vb2_memory memory,
>  		}
>  	}
>  
> -	dprintk(1, "allocated %d buffers, %d plane(s) each\n",
> +	dprintk(q, 1, "allocated %d buffers, %d plane(s) each\n",
>  			buffer, num_planes);
>  
>  	return buffer;
> @@ -445,7 +446,7 @@ static int __vb2_queue_free(struct vb2_queue *q, unsigned int buffers)
>  		if (q->bufs[buffer] == NULL)
>  			continue;
>  		if (q->bufs[buffer]->state == VB2_BUF_STATE_PREPARING) {
> -			dprintk(1, "preparing buffers, cannot free\n");
> +			dprintk(q, 1, "preparing buffers, cannot free\n");
>  			return -EAGAIN;
>  		}
>  	}
> @@ -623,12 +624,12 @@ int vb2_verify_memory_type(struct vb2_queue *q,
>  {
>  	if (memory != VB2_MEMORY_MMAP && memory != VB2_MEMORY_USERPTR &&
>  	    memory != VB2_MEMORY_DMABUF) {
> -		dprintk(1, "unsupported memory type\n");
> +		dprintk(q, 1, "unsupported memory type\n");
>  		return -EINVAL;
>  	}
>  
>  	if (type != q->type) {
> -		dprintk(1, "requested type is incorrect\n");
> +		dprintk(q, 1, "requested type is incorrect\n");
>  		return -EINVAL;
>  	}
>  
> @@ -637,17 +638,17 @@ int vb2_verify_memory_type(struct vb2_queue *q,
>  	 * are available.
>  	 */
>  	if (memory == VB2_MEMORY_MMAP && __verify_mmap_ops(q)) {
> -		dprintk(1, "MMAP for current setup unsupported\n");
> +		dprintk(q, 1, "MMAP for current setup unsupported\n");
>  		return -EINVAL;
>  	}
>  
>  	if (memory == VB2_MEMORY_USERPTR && __verify_userptr_ops(q)) {
> -		dprintk(1, "USERPTR for current setup unsupported\n");
> +		dprintk(q, 1, "USERPTR for current setup unsupported\n");
>  		return -EINVAL;
>  	}
>  
>  	if (memory == VB2_MEMORY_DMABUF && __verify_dmabuf_ops(q)) {
> -		dprintk(1, "DMABUF for current setup unsupported\n");
> +		dprintk(q, 1, "DMABUF for current setup unsupported\n");
>  		return -EINVAL;
>  	}
>  
> @@ -657,7 +658,7 @@ int vb2_verify_memory_type(struct vb2_queue *q,
>  	 * do the memory and type validation.
>  	 */
>  	if (vb2_fileio_is_active(q)) {
> -		dprintk(1, "file io in progress\n");
> +		dprintk(q, 1, "file io in progress\n");
>  		return -EBUSY;
>  	}
>  	return 0;
> @@ -673,12 +674,12 @@ int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory,
>  	int ret;
>  
>  	if (q->streaming) {
> -		dprintk(1, "streaming active\n");
> +		dprintk(q, 1, "streaming active\n");
>  		return -EBUSY;
>  	}
>  
>  	if (q->waiting_in_dqbuf && *count) {
> -		dprintk(1, "another dup()ped fd is waiting for a buffer\n");
> +		dprintk(q, 1, "another dup()ped fd is waiting for a buffer\n");
>  		return -EBUSY;
>  	}
>  
> @@ -691,7 +692,7 @@ int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory,
>  		mutex_lock(&q->mmap_lock);
>  		if (debug && q->memory == VB2_MEMORY_MMAP &&
>  		    __buffers_in_use(q))
> -			dprintk(1, "memory in use, orphaning buffers\n");
> +			dprintk(q, 1, "memory in use, orphaning buffers\n");
>  
>  		/*
>  		 * Call queue_cancel to clean up any buffers in the
> @@ -742,7 +743,7 @@ int vb2_core_reqbufs(struct vb2_queue *q, enum vb2_memory memory,
>  	allocated_buffers =
>  		__vb2_queue_alloc(q, memory, num_buffers, num_planes, plane_sizes);
>  	if (allocated_buffers == 0) {
> -		dprintk(1, "memory allocation failed\n");
> +		dprintk(q, 1, "memory allocation failed\n");
>  		return -ENOMEM;
>  	}
>  
> @@ -812,20 +813,20 @@ int vb2_core_create_bufs(struct vb2_queue *q, enum vb2_memory memory,
>  	int ret;
>  
>  	if (q->num_buffers == VB2_MAX_FRAME) {
> -		dprintk(1, "maximum number of buffers already allocated\n");
> +		dprintk(q, 1, "maximum number of buffers already allocated\n");
>  		return -ENOBUFS;
>  	}
>  
>  	if (!q->num_buffers) {
>  		if (q->waiting_in_dqbuf && *count) {
> -			dprintk(1, "another dup()ped fd is waiting for a buffer\n");
> +			dprintk(q, 1, "another dup()ped fd is waiting for a buffer\n");
>  			return -EBUSY;
>  		}
>  		memset(q->alloc_devs, 0, sizeof(q->alloc_devs));
>  		q->memory = memory;
>  		q->waiting_for_buffers = !q->is_output;
>  	} else if (q->memory != memory) {
> -		dprintk(1, "memory model mismatch\n");
> +		dprintk(q, 1, "memory model mismatch\n");
>  		return -EINVAL;
>  	}
>  
> @@ -849,7 +850,7 @@ int vb2_core_create_bufs(struct vb2_queue *q, enum vb2_memory memory,
>  	allocated_buffers = __vb2_queue_alloc(q, memory, num_buffers,
>  				num_planes, plane_sizes);
>  	if (allocated_buffers == 0) {
> -		dprintk(1, "memory allocation failed\n");
> +		dprintk(q, 1, "memory allocation failed\n");
>  		return -ENOMEM;
>  	}
>  
> @@ -939,7 +940,7 @@ void vb2_buffer_done(struct vb2_buffer *vb, enum vb2_buffer_state state)
>  	 */
>  	vb->cnt_buf_done++;
>  #endif
> -	dprintk(4, "done processing on buffer %d, state: %d\n",
> +	dprintk(q, 4, "done processing on buffer %d, state: %d\n",
>  			vb->index, state);
>  
>  	if (state != VB2_BUF_STATE_QUEUED) {
> @@ -1029,12 +1030,12 @@ static int __prepare_userptr(struct vb2_buffer *vb)
>  			&& vb->planes[plane].length == planes[plane].length)
>  			continue;
>  
> -		dprintk(3, "userspace address for plane %d changed, reacquiring memory\n",
> +		dprintk(q, 3, "userspace address for plane %d changed, reacquiring memory\n",
>  			plane);
>  
>  		/* Check if the provided plane buffer is large enough */
>  		if (planes[plane].length < vb->planes[plane].min_length) {
> -			dprintk(1, "provided buffer size %u is less than setup size %u for plane %d\n",
> +			dprintk(q, 1, "provided buffer size %u is less than setup size %u for plane %d\n",
>  						planes[plane].length,
>  						vb->planes[plane].min_length,
>  						plane);
> @@ -1064,7 +1065,7 @@ static int __prepare_userptr(struct vb2_buffer *vb)
>  				planes[plane].m.userptr,
>  				planes[plane].length, q->dma_dir);
>  		if (IS_ERR(mem_priv)) {
> -			dprintk(1, "failed acquiring userspace memory for plane %d\n",
> +			dprintk(q, 1, "failed acquiring userspace memory for plane %d\n",
>  				plane);
>  			ret = PTR_ERR(mem_priv);
>  			goto err;
> @@ -1091,14 +1092,14 @@ static int __prepare_userptr(struct vb2_buffer *vb)
>  		 */
>  		ret = call_vb_qop(vb, buf_init, vb);
>  		if (ret) {
> -			dprintk(1, "buffer initialization failed\n");
> +			dprintk(q, 1, "buffer initialization failed\n");
>  			goto err;
>  		}
>  	}
>  
>  	ret = call_vb_qop(vb, buf_prepare, vb);
>  	if (ret) {
> -		dprintk(1, "buffer preparation failed\n");
> +		dprintk(q, 1, "buffer preparation failed\n");
>  		call_void_vb_qop(vb, buf_cleanup, vb);
>  		goto err;
>  	}
> @@ -1141,7 +1142,7 @@ static int __prepare_dmabuf(struct vb2_buffer *vb)
>  		struct dma_buf *dbuf = dma_buf_get(planes[plane].m.fd);
>  
>  		if (IS_ERR_OR_NULL(dbuf)) {
> -			dprintk(1, "invalid dmabuf fd for plane %d\n",
> +			dprintk(q, 1, "invalid dmabuf fd for plane %d\n",
>  				plane);
>  			ret = -EINVAL;
>  			goto err;
> @@ -1152,7 +1153,7 @@ static int __prepare_dmabuf(struct vb2_buffer *vb)
>  			planes[plane].length = dbuf->size;
>  
>  		if (planes[plane].length < vb->planes[plane].min_length) {
> -			dprintk(1, "invalid dmabuf length %u for plane %d, minimum length %u\n",
> +			dprintk(q, 1, "invalid dmabuf length %u for plane %d, minimum length %u\n",
>  				planes[plane].length, plane,
>  				vb->planes[plane].min_length);
>  			dma_buf_put(dbuf);
> @@ -1167,7 +1168,7 @@ static int __prepare_dmabuf(struct vb2_buffer *vb)
>  			continue;
>  		}
>  
> -		dprintk(3, "buffer for plane %d changed\n", plane);
> +		dprintk(q, 3, "buffer for plane %d changed\n", plane);
>  
>  		if (!reacquired) {
>  			reacquired = true;
> @@ -1187,7 +1188,7 @@ static int __prepare_dmabuf(struct vb2_buffer *vb)
>  				q->alloc_devs[plane] ? : q->dev,
>  				dbuf, planes[plane].length, q->dma_dir);
>  		if (IS_ERR(mem_priv)) {
> -			dprintk(1, "failed to attach dmabuf\n");
> +			dprintk(q, 1, "failed to attach dmabuf\n");
>  			ret = PTR_ERR(mem_priv);
>  			dma_buf_put(dbuf);
>  			goto err;
> @@ -1208,7 +1209,7 @@ static int __prepare_dmabuf(struct vb2_buffer *vb)
>  
>  		ret = call_memop(vb, map_dmabuf, vb->planes[plane].mem_priv);
>  		if (ret) {
> -			dprintk(1, "failed to map dmabuf for plane %d\n",
> +			dprintk(q, 1, "failed to map dmabuf for plane %d\n",
>  				plane);
>  			goto err;
>  		}
> @@ -1233,14 +1234,14 @@ static int __prepare_dmabuf(struct vb2_buffer *vb)
>  		 */
>  		ret = call_vb_qop(vb, buf_init, vb);
>  		if (ret) {
> -			dprintk(1, "buffer initialization failed\n");
> +			dprintk(q, 1, "buffer initialization failed\n");
>  			goto err;
>  		}
>  	}
>  
>  	ret = call_vb_qop(vb, buf_prepare, vb);
>  	if (ret) {
> -		dprintk(1, "buffer preparation failed\n");
> +		dprintk(q, 1, "buffer preparation failed\n");
>  		call_void_vb_qop(vb, buf_cleanup, vb);
>  		goto err;
>  	}
> @@ -1276,7 +1277,7 @@ static int __buf_prepare(struct vb2_buffer *vb)
>  	int ret;
>  
>  	if (q->error) {
> -		dprintk(1, "fatal error occurred on queue\n");
> +		dprintk(q, 1, "fatal error occurred on queue\n");
>  		return -EIO;
>  	}
>  
> @@ -1287,7 +1288,7 @@ static int __buf_prepare(struct vb2_buffer *vb)
>  	if (q->is_output) {
>  		ret = call_vb_qop(vb, buf_out_validate, vb);
>  		if (ret) {
> -			dprintk(1, "buffer validation failed\n");
> +			dprintk(q, 1, "buffer validation failed\n");
>  			return ret;
>  		}
>  	}
> @@ -1311,7 +1312,7 @@ static int __buf_prepare(struct vb2_buffer *vb)
>  	}
>  
>  	if (ret) {
> -		dprintk(1, "buffer preparation failed: %d\n", ret);
> +		dprintk(q, 1, "buffer preparation failed: %d\n", ret);
>  		vb->state = orig_state;
>  		return ret;
>  	}
> @@ -1423,12 +1424,12 @@ int vb2_core_prepare_buf(struct vb2_queue *q, unsigned int index, void *pb)
>  
>  	vb = q->bufs[index];
>  	if (vb->state != VB2_BUF_STATE_DEQUEUED) {
> -		dprintk(1, "invalid buffer state %d\n",
> +		dprintk(q, 1, "invalid buffer state %d\n",
>  			vb->state);
>  		return -EINVAL;
>  	}
>  	if (vb->prepared) {
> -		dprintk(1, "buffer already prepared\n");
> +		dprintk(q, 1, "buffer already prepared\n");
>  		return -EINVAL;
>  	}
>  
> @@ -1439,7 +1440,7 @@ int vb2_core_prepare_buf(struct vb2_queue *q, unsigned int index, void *pb)
>  	/* Fill buffer information for the userspace */
>  	call_void_bufop(q, fill_user_buffer, vb, pb);
>  
> -	dprintk(2, "prepare of buffer %d succeeded\n", vb->index);
> +	dprintk(q, 2, "prepare of buffer %d succeeded\n", vb->index);
>  
>  	return 0;
>  }
> @@ -1477,7 +1478,7 @@ static int vb2_start_streaming(struct vb2_queue *q)
>  
>  	q->start_streaming_called = 0;
>  
> -	dprintk(1, "driver refused to start streaming\n");
> +	dprintk(q, 1, "driver refused to start streaming\n");
>  	/*
>  	 * If you see this warning, then the driver isn't cleaning up properly
>  	 * after a failed start_streaming(). See the start_streaming()
> @@ -1515,7 +1516,7 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb,
>  	int ret;
>  
>  	if (q->error) {
> -		dprintk(1, "fatal error occurred on queue\n");
> +		dprintk(q, 1, "fatal error occurred on queue\n");
>  		return -EIO;
>  	}
>  
> @@ -1523,14 +1524,14 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb,
>  
>  	if (!req && vb->state != VB2_BUF_STATE_IN_REQUEST &&
>  	    q->requires_requests) {
> -		dprintk(1, "qbuf requires a request\n");
> +		dprintk(q, 1, "qbuf requires a request\n");
>  		return -EBADR;
>  	}
>  
>  	if ((req && q->uses_qbuf) ||
>  	    (!req && vb->state != VB2_BUF_STATE_IN_REQUEST &&
>  	     q->uses_requests)) {
> -		dprintk(1, "queue in wrong mode (qbuf vs requests)\n");
> +		dprintk(q, 1, "queue in wrong mode (qbuf vs requests)\n");
>  		return -EBUSY;
>  	}
>  
> @@ -1539,7 +1540,7 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb,
>  
>  		q->uses_requests = 1;
>  		if (vb->state != VB2_BUF_STATE_DEQUEUED) {
> -			dprintk(1, "buffer %d not in dequeued state\n",
> +			dprintk(q, 1, "buffer %d not in dequeued state\n",
>  				vb->index);
>  			return -EINVAL;
>  		}
> @@ -1547,7 +1548,7 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb,
>  		if (q->is_output && !vb->prepared) {
>  			ret = call_vb_qop(vb, buf_out_validate, vb);
>  			if (ret) {
> -				dprintk(1, "buffer validation failed\n");
> +				dprintk(q, 1, "buffer validation failed\n");
>  				return ret;
>  			}
>  		}
> @@ -1583,7 +1584,7 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb,
>  			call_void_bufop(q, fill_user_buffer, vb, pb);
>  		}
>  
> -		dprintk(2, "qbuf of buffer %d succeeded\n", vb->index);
> +		dprintk(q, 2, "qbuf of buffer %d succeeded\n", vb->index);
>  		return 0;
>  	}
>  
> @@ -1600,10 +1601,10 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb,
>  		}
>  		break;
>  	case VB2_BUF_STATE_PREPARING:
> -		dprintk(1, "buffer still being prepared\n");
> +		dprintk(q, 1, "buffer still being prepared\n");
>  		return -EINVAL;
>  	default:
> -		dprintk(1, "invalid buffer state %d\n", vb->state);
> +		dprintk(q, 1, "invalid buffer state %d\n", vb->state);
>  		return -EINVAL;
>  	}
>  
> @@ -1645,7 +1646,7 @@ int vb2_core_qbuf(struct vb2_queue *q, unsigned int index, void *pb,
>  			return ret;
>  	}
>  
> -	dprintk(2, "qbuf of buffer %d succeeded\n", vb->index);
> +	dprintk(q, 2, "qbuf of buffer %d succeeded\n", vb->index);
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(vb2_core_qbuf);
> @@ -1671,22 +1672,22 @@ static int __vb2_wait_for_done_vb(struct vb2_queue *q, int nonblocking)
>  		int ret;
>  
>  		if (q->waiting_in_dqbuf) {
> -			dprintk(1, "another dup()ped fd is waiting for a buffer\n");
> +			dprintk(q, 1, "another dup()ped fd is waiting for a buffer\n");
>  			return -EBUSY;
>  		}
>  
>  		if (!q->streaming) {
> -			dprintk(1, "streaming off, will not wait for buffers\n");
> +			dprintk(q, 1, "streaming off, will not wait for buffers\n");
>  			return -EINVAL;
>  		}
>  
>  		if (q->error) {
> -			dprintk(1, "Queue in error state, will not wait for buffers\n");
> +			dprintk(q, 1, "Queue in error state, will not wait for buffers\n");
>  			return -EIO;
>  		}
>  
>  		if (q->last_buffer_dequeued) {
> -			dprintk(3, "last buffer dequeued already, will not wait for buffers\n");
> +			dprintk(q, 3, "last buffer dequeued already, will not wait for buffers\n");
>  			return -EPIPE;
>  		}
>  
> @@ -1698,7 +1699,7 @@ static int __vb2_wait_for_done_vb(struct vb2_queue *q, int nonblocking)
>  		}
>  
>  		if (nonblocking) {
> -			dprintk(3, "nonblocking and no buffers to dequeue, will not wait\n");
> +			dprintk(q, 3, "nonblocking and no buffers to dequeue, will not wait\n");
>  			return -EAGAIN;
>  		}
>  
> @@ -1713,7 +1714,7 @@ static int __vb2_wait_for_done_vb(struct vb2_queue *q, int nonblocking)
>  		/*
>  		 * All locks have been released, it is safe to sleep now.
>  		 */
> -		dprintk(3, "will sleep waiting for buffers\n");
> +		dprintk(q, 3, "will sleep waiting for buffers\n");
>  		ret = wait_event_interruptible(q->done_wq,
>  				!list_empty(&q->done_list) || !q->streaming ||
>  				q->error);
> @@ -1725,7 +1726,7 @@ static int __vb2_wait_for_done_vb(struct vb2_queue *q, int nonblocking)
>  		call_void_qop(q, wait_finish, q);
>  		q->waiting_in_dqbuf = 0;
>  		if (ret) {
> -			dprintk(1, "sleep was interrupted\n");
> +			dprintk(q, 1, "sleep was interrupted\n");
>  			return ret;
>  		}
>  	}
> @@ -1773,7 +1774,7 @@ static int __vb2_get_done_vb(struct vb2_queue *q, struct vb2_buffer **vb,
>  int vb2_wait_for_all_buffers(struct vb2_queue *q)
>  {
>  	if (!q->streaming) {
> -		dprintk(1, "streaming off, will not wait for buffers\n");
> +		dprintk(q, 1, "streaming off, will not wait for buffers\n");
>  		return -EINVAL;
>  	}
>  
> @@ -1811,13 +1812,13 @@ int vb2_core_dqbuf(struct vb2_queue *q, unsigned int *pindex, void *pb,
>  
>  	switch (vb->state) {
>  	case VB2_BUF_STATE_DONE:
> -		dprintk(3, "returning done buffer\n");
> +		dprintk(q, 3, "returning done buffer\n");
>  		break;
>  	case VB2_BUF_STATE_ERROR:
> -		dprintk(3, "returning done buffer with errors\n");
> +		dprintk(q, 3, "returning done buffer with errors\n");
>  		break;
>  	default:
> -		dprintk(1, "invalid buffer state\n");
> +		dprintk(q, 1, "invalid buffer state\n");
>  		return -EINVAL;
>  	}
>  
> @@ -1848,7 +1849,7 @@ int vb2_core_dqbuf(struct vb2_queue *q, unsigned int *pindex, void *pb,
>  		media_request_put(vb->request);
>  	vb->request = NULL;
>  
> -	dprintk(2, "dqbuf of buffer %d, with state %d\n",
> +	dprintk(q, 2, "dqbuf of buffer %d, with state %d\n",
>  			vb->index, vb->state);
>  
>  	return 0;
> @@ -1971,22 +1972,22 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type)
>  	int ret;
>  
>  	if (type != q->type) {
> -		dprintk(1, "invalid stream type\n");
> +		dprintk(q, 1, "invalid stream type\n");
>  		return -EINVAL;
>  	}
>  
>  	if (q->streaming) {
> -		dprintk(3, "already streaming\n");
> +		dprintk(q, 3, "already streaming\n");
>  		return 0;
>  	}
>  
>  	if (!q->num_buffers) {
> -		dprintk(1, "no buffers have been allocated\n");
> +		dprintk(q, 1, "no buffers have been allocated\n");
>  		return -EINVAL;
>  	}
>  
>  	if (q->num_buffers < q->min_buffers_needed) {
> -		dprintk(1, "need at least %u allocated buffers\n",
> +		dprintk(q, 1, "need at least %u allocated buffers\n",
>  				q->min_buffers_needed);
>  		return -EINVAL;
>  	}
> @@ -2006,7 +2007,7 @@ int vb2_core_streamon(struct vb2_queue *q, unsigned int type)
>  
>  	q->streaming = 1;
>  
> -	dprintk(3, "successful\n");
> +	dprintk(q, 3, "successful\n");
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(vb2_core_streamon);
> @@ -2022,7 +2023,7 @@ EXPORT_SYMBOL_GPL(vb2_queue_error);
>  int vb2_core_streamoff(struct vb2_queue *q, unsigned int type)
>  {
>  	if (type != q->type) {
> -		dprintk(1, "invalid stream type\n");
> +		dprintk(q, 1, "invalid stream type\n");
>  		return -EINVAL;
>  	}
>  
> @@ -2039,7 +2040,7 @@ int vb2_core_streamoff(struct vb2_queue *q, unsigned int type)
>  	q->waiting_for_buffers = !q->is_output;
>  	q->last_buffer_dequeued = false;
>  
> -	dprintk(3, "successful\n");
> +	dprintk(q, 3, "successful\n");
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(vb2_core_streamoff);
> @@ -2082,39 +2083,39 @@ int vb2_core_expbuf(struct vb2_queue *q, int *fd, unsigned int type,
>  	struct dma_buf *dbuf;
>  
>  	if (q->memory != VB2_MEMORY_MMAP) {
> -		dprintk(1, "queue is not currently set up for mmap\n");
> +		dprintk(q, 1, "queue is not currently set up for mmap\n");
>  		return -EINVAL;
>  	}
>  
>  	if (!q->mem_ops->get_dmabuf) {
> -		dprintk(1, "queue does not support DMA buffer exporting\n");
> +		dprintk(q, 1, "queue does not support DMA buffer exporting\n");
>  		return -EINVAL;
>  	}
>  
>  	if (flags & ~(O_CLOEXEC | O_ACCMODE)) {
> -		dprintk(1, "queue does support only O_CLOEXEC and access mode flags\n");
> +		dprintk(q, 1, "queue does support only O_CLOEXEC and access mode flags\n");
>  		return -EINVAL;
>  	}
>  
>  	if (type != q->type) {
> -		dprintk(1, "invalid buffer type\n");
> +		dprintk(q, 1, "invalid buffer type\n");
>  		return -EINVAL;
>  	}
>  
>  	if (index >= q->num_buffers) {
> -		dprintk(1, "buffer index out of range\n");
> +		dprintk(q, 1, "buffer index out of range\n");
>  		return -EINVAL;
>  	}
>  
>  	vb = q->bufs[index];
>  
>  	if (plane >= vb->num_planes) {
> -		dprintk(1, "buffer plane out of range\n");
> +		dprintk(q, 1, "buffer plane out of range\n");
>  		return -EINVAL;
>  	}
>  
>  	if (vb2_fileio_is_active(q)) {
> -		dprintk(1, "expbuf: file io in progress\n");
> +		dprintk(q, 1, "expbuf: file io in progress\n");
>  		return -EBUSY;
>  	}
>  
> @@ -2123,20 +2124,20 @@ int vb2_core_expbuf(struct vb2_queue *q, int *fd, unsigned int type,
>  	dbuf = call_ptr_memop(vb, get_dmabuf, vb_plane->mem_priv,
>  				flags & O_ACCMODE);
>  	if (IS_ERR_OR_NULL(dbuf)) {
> -		dprintk(1, "failed to export buffer %d, plane %d\n",
> +		dprintk(q, 1, "failed to export buffer %d, plane %d\n",
>  			index, plane);
>  		return -EINVAL;
>  	}
>  
>  	ret = dma_buf_fd(dbuf, flags & ~O_ACCMODE);
>  	if (ret < 0) {
> -		dprintk(3, "buffer %d, plane %d failed to export (%d)\n",
> +		dprintk(q, 3, "buffer %d, plane %d failed to export (%d)\n",
>  			index, plane, ret);
>  		dma_buf_put(dbuf);
>  		return ret;
>  	}
>  
> -	dprintk(3, "buffer %d, plane %d exported as %d descriptor\n",
> +	dprintk(q, 3, "buffer %d, plane %d exported as %d descriptor\n",
>  		index, plane, ret);
>  	*fd = ret;
>  
> @@ -2153,7 +2154,7 @@ int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma)
>  	unsigned long length;
>  
>  	if (q->memory != VB2_MEMORY_MMAP) {
> -		dprintk(1, "queue is not currently set up for mmap\n");
> +		dprintk(q, 1, "queue is not currently set up for mmap\n");
>  		return -EINVAL;
>  	}
>  
> @@ -2161,17 +2162,17 @@ int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma)
>  	 * Check memory area access mode.
>  	 */
>  	if (!(vma->vm_flags & VM_SHARED)) {
> -		dprintk(1, "invalid vma flags, VM_SHARED needed\n");
> +		dprintk(q, 1, "invalid vma flags, VM_SHARED needed\n");
>  		return -EINVAL;
>  	}
>  	if (q->is_output) {
>  		if (!(vma->vm_flags & VM_WRITE)) {
> -			dprintk(1, "invalid vma flags, VM_WRITE needed\n");
> +			dprintk(q, 1, "invalid vma flags, VM_WRITE needed\n");
>  			return -EINVAL;
>  		}
>  	} else {
>  		if (!(vma->vm_flags & VM_READ)) {
> -			dprintk(1, "invalid vma flags, VM_READ needed\n");
> +			dprintk(q, 1, "invalid vma flags, VM_READ needed\n");
>  			return -EINVAL;
>  		}
>  	}
> @@ -2179,7 +2180,7 @@ int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma)
>  	mutex_lock(&q->mmap_lock);
>  
>  	if (vb2_fileio_is_active(q)) {
> -		dprintk(1, "mmap: file io in progress\n");
> +		dprintk(q, 1, "mmap: file io in progress\n");
>  		ret = -EBUSY;
>  		goto unlock;
>  	}
> @@ -2200,7 +2201,7 @@ int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma)
>  	 */
>  	length = PAGE_ALIGN(vb->planes[plane].length);
>  	if (length < (vma->vm_end - vma->vm_start)) {
> -		dprintk(1,
> +		dprintk(q, 1,
>  			"MMAP invalid, as it would overflow buffer length\n");
>  		ret = -EINVAL;
>  		goto unlock;
> @@ -2220,7 +2221,7 @@ int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma)
>  	if (ret)
>  		return ret;
>  
> -	dprintk(3, "buffer %d, plane %d successfully mapped\n", buffer, plane);
> +	dprintk(q, 3, "buffer %d, plane %d successfully mapped\n", buffer, plane);
>  	return 0;
>  }
>  EXPORT_SYMBOL_GPL(vb2_mmap);
> @@ -2239,7 +2240,7 @@ unsigned long vb2_get_unmapped_area(struct vb2_queue *q,
>  	int ret;
>  
>  	if (q->memory != VB2_MEMORY_MMAP) {
> -		dprintk(1, "queue is not currently set up for mmap\n");
> +		dprintk(q, 1, "queue is not currently set up for mmap\n");
>  		return -EINVAL;
>  	}
>  
> @@ -2479,7 +2480,7 @@ static int __vb2_init_fileio(struct vb2_queue *q, int read)
>  	 */
>  	count = 1;
>  
> -	dprintk(3, "setting up file io: mode %s, count %d, read_once %d, write_immediately %d\n",
> +	dprintk(q, 3, "setting up file io: mode %s, count %d, read_once %d, write_immediately %d\n",
>  		(read) ? "read" : "write", count, q->fileio_read_once,
>  		q->fileio_write_immediately);
>  
> @@ -2577,7 +2578,7 @@ static int __vb2_cleanup_fileio(struct vb2_queue *q)
>  		fileio->count = 0;
>  		vb2_core_reqbufs(q, fileio->memory, &fileio->count);
>  		kfree(fileio);
> -		dprintk(3, "file io emulator closed\n");
> +		dprintk(q, 3, "file io emulator closed\n");
>  	}
>  	return 0;
>  }
> @@ -2606,7 +2607,7 @@ static size_t __vb2_perform_fileio(struct vb2_queue *q, char __user *data, size_
>  	unsigned index;
>  	int ret;
>  
> -	dprintk(3, "mode %s, offset %ld, count %zd, %sblocking\n",
> +	dprintk(q, 3, "mode %s, offset %ld, count %zd, %sblocking\n",
>  		read ? "read" : "write", (long)*ppos, count,
>  		nonblock ? "non" : "");
>  
> @@ -2614,7 +2615,7 @@ static size_t __vb2_perform_fileio(struct vb2_queue *q, char __user *data, size_
>  		return -EINVAL;
>  
>  	if (q->waiting_in_dqbuf) {
> -		dprintk(3, "another dup()ped fd is %s\n",
> +		dprintk(q, 3, "another dup()ped fd is %s\n",
>  			read ? "reading" : "writing");
>  		return -EBUSY;
>  	}
> @@ -2624,7 +2625,7 @@ static size_t __vb2_perform_fileio(struct vb2_queue *q, char __user *data, size_
>  	 */
>  	if (!vb2_fileio_is_active(q)) {
>  		ret = __vb2_init_fileio(q, read);
> -		dprintk(3, "vb2_init_fileio result: %d\n", ret);
> +		dprintk(q, 3, "vb2_init_fileio result: %d\n", ret);
>  		if (ret)
>  			return ret;
>  	}
> @@ -2641,7 +2642,7 @@ static size_t __vb2_perform_fileio(struct vb2_queue *q, char __user *data, size_
>  		 * Call vb2_dqbuf to get buffer back.
>  		 */
>  		ret = vb2_core_dqbuf(q, &index, NULL, nonblock);
> -		dprintk(5, "vb2_dqbuf result: %d\n", ret);
> +		dprintk(q, 5, "vb2_dqbuf result: %d\n", ret);
>  		if (ret)
>  			return ret;
>  		fileio->dq_count += 1;
> @@ -2672,20 +2673,20 @@ static size_t __vb2_perform_fileio(struct vb2_queue *q, char __user *data, size_
>  	 */
>  	if (buf->pos + count > buf->size) {
>  		count = buf->size - buf->pos;
> -		dprintk(5, "reducing read count: %zd\n", count);
> +		dprintk(q, 5, "reducing read count: %zd\n", count);
>  	}
>  
>  	/*
>  	 * Transfer data to userspace.
>  	 */
> -	dprintk(3, "copying %zd bytes - buffer %d, offset %u\n",
> +	dprintk(q, 3, "copying %zd bytes - buffer %d, offset %u\n",
>  		count, index, buf->pos);
>  	if (read)
>  		ret = copy_to_user(data, buf->vaddr + buf->pos, count);
>  	else
>  		ret = copy_from_user(buf->vaddr + buf->pos, data, count);
>  	if (ret) {
> -		dprintk(3, "error copying data\n");
> +		dprintk(q, 3, "error copying data\n");
>  		return -EFAULT;
>  	}
>  
> @@ -2705,7 +2706,7 @@ static size_t __vb2_perform_fileio(struct vb2_queue *q, char __user *data, size_
>  		 * Check if this is the last buffer to read.
>  		 */
>  		if (read && fileio->read_once && fileio->dq_count == 1) {
> -			dprintk(3, "read limit reached\n");
> +			dprintk(q, 3, "read limit reached\n");
>  			return __vb2_cleanup_fileio(q);
>  		}
>  
> @@ -2717,7 +2718,7 @@ static size_t __vb2_perform_fileio(struct vb2_queue *q, char __user *data, size_
>  		if (copy_timestamp)
>  			b->timestamp = ktime_get_ns();
>  		ret = vb2_core_qbuf(q, index, NULL, NULL);
> -		dprintk(5, "vb2_dbuf result: %d\n", ret);
> +		dprintk(q, 5, "vb2_dbuf result: %d\n", ret);
>  		if (ret)
>  			return ret;
>  
> @@ -2804,7 +2805,7 @@ static int vb2_thread(void *data)
>  			if (!threadio->stop)
>  				ret = vb2_core_dqbuf(q, &index, NULL, 0);
>  			call_void_qop(q, wait_prepare, q);
> -			dprintk(5, "file io: vb2_dqbuf result: %d\n", ret);
> +			dprintk(q, 5, "file io: vb2_dqbuf result: %d\n", ret);
>  			if (!ret)
>  				vb = q->bufs[index];
>  		}
> @@ -2858,7 +2859,7 @@ int vb2_thread_start(struct vb2_queue *q, vb2_thread_fnc fnc, void *priv,
>  	threadio->priv = priv;
>  
>  	ret = __vb2_init_fileio(q, !q->is_output);
> -	dprintk(3, "file io: vb2_init_fileio result: %d\n", ret);
> +	dprintk(q, 3, "file io: vb2_init_fileio result: %d\n", ret);
>  	if (ret)
>  		goto nomem;
>  	q->threadio = threadio;
> diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c
> index 40d76eb4c2fe..0f034cabcd21 100644
> --- a/drivers/media/common/videobuf2/videobuf2-v4l2.c
> +++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c
> @@ -35,10 +35,11 @@
>  static int debug;
>  module_param(debug, int, 0644);
>  
> -#define dprintk(level, fmt, arg...)					      \
> +#define dprintk(q, level, fmt, arg...)					      \
>  	do {								      \
>  		if (debug >= level)					      \
> -			pr_info("vb2-v4l2: %s: " fmt, __func__, ## arg); \
> +			pr_info("vb2-v4l2: (q=%p) %s: " fmt,		      \
> +				q, __func__, ## arg);			      \
>  	} while (0)
>  
>  /* Flags that are set by us */
> @@ -63,12 +64,14 @@ static int __verify_planes_array(struct vb2_buffer *vb, const struct v4l2_buffer
>  
>  	/* Is memory for copying plane information present? */
>  	if (b->m.planes == NULL) {
> -		dprintk(1, "multi-planar buffer passed but planes array not provided\n");
> +		dprintk(vb->vb2_queue, 1,
> +			"multi-planar buffer passed but planes array not provided\n");
>  		return -EINVAL;
>  	}
>  
>  	if (b->length < vb->num_planes || b->length > VB2_MAX_PLANES) {
> -		dprintk(1, "incorrect planes array length, expected %d, got %d\n",
> +		dprintk(vb->vb2_queue, 1,
> +			"incorrect planes array length, expected %d, got %d\n",
>  			vb->num_planes, b->length);
>  		return -EINVAL;
>  	}
> @@ -176,7 +179,7 @@ static int vb2_fill_vb2_v4l2_buffer(struct vb2_buffer *vb, struct v4l2_buffer *b
>  
>  	ret = __verify_length(vb, b);
>  	if (ret < 0) {
> -		dprintk(1, "plane parameters verification failed: %d\n", ret);
> +		dprintk(q, 1, "plane parameters verification failed: %d\n", ret);
>  		return ret;
>  	}
>  	if (b->field == V4L2_FIELD_ALTERNATE && q->is_output) {
> @@ -189,7 +192,7 @@ static int vb2_fill_vb2_v4l2_buffer(struct vb2_buffer *vb, struct v4l2_buffer *b
>  		 * that just says that it is either a top or a bottom field,
>  		 * but not which of the two it is.
>  		 */
> -		dprintk(1, "the field is incorrectly set to ALTERNATE for an output buffer\n");
> +		dprintk(q, 1, "the field is incorrectly set to ALTERNATE for an output buffer\n");
>  		return -EINVAL;
>  	}
>  	vbuf->sequence = 0;
> @@ -342,23 +345,23 @@ static int vb2_queue_or_prepare_buf(struct vb2_queue *q, struct media_device *md
>  	int ret;
>  
>  	if (b->type != q->type) {
> -		dprintk(1, "%s: invalid buffer type\n", opname);
> +		dprintk(q, 1, "%s: invalid buffer type\n", opname);
>  		return -EINVAL;
>  	}
>  
>  	if (b->index >= q->num_buffers) {
> -		dprintk(1, "%s: buffer index out of range\n", opname);
> +		dprintk(q, 1, "%s: buffer index out of range\n", opname);
>  		return -EINVAL;
>  	}
>  
>  	if (q->bufs[b->index] == NULL) {
>  		/* Should never happen */
> -		dprintk(1, "%s: buffer is NULL\n", opname);
> +		dprintk(q, 1, "%s: buffer is NULL\n", opname);
>  		return -EINVAL;
>  	}
>  
>  	if (b->memory != q->memory) {
> -		dprintk(1, "%s: invalid memory type\n", opname);
> +		dprintk(q, 1, "%s: invalid memory type\n", opname);
>  		return -EINVAL;
>  	}
>  
> @@ -370,7 +373,7 @@ static int vb2_queue_or_prepare_buf(struct vb2_queue *q, struct media_device *md
>  
>  	if (!is_prepare && (b->flags & V4L2_BUF_FLAG_REQUEST_FD) &&
>  	    vb->state != VB2_BUF_STATE_DEQUEUED) {
> -		dprintk(1, "%s: buffer is not in dequeued state\n", opname);
> +		dprintk(q, 1, "%s: buffer is not in dequeued state\n", opname);
>  		return -EINVAL;
>  	}
>  
> @@ -388,19 +391,19 @@ static int vb2_queue_or_prepare_buf(struct vb2_queue *q, struct media_device *md
>  
>  	if (!(b->flags & V4L2_BUF_FLAG_REQUEST_FD)) {
>  		if (q->requires_requests) {
> -			dprintk(1, "%s: queue requires requests\n", opname);
> +			dprintk(q, 1, "%s: queue requires requests\n", opname);
>  			return -EBADR;
>  		}
>  		if (q->uses_requests) {
> -			dprintk(1, "%s: queue uses requests\n", opname);
> +			dprintk(q, 1, "%s: queue uses requests\n", opname);
>  			return -EBUSY;
>  		}
>  		return 0;
>  	} else if (!q->supports_requests) {
> -		dprintk(1, "%s: queue does not support requests\n", opname);
> +		dprintk(q, 1, "%s: queue does not support requests\n", opname);
>  		return -EBADR;
>  	} else if (q->uses_qbuf) {
> -		dprintk(1, "%s: queue does not use requests\n", opname);
> +		dprintk(q, 1, "%s: queue does not use requests\n", opname);
>  		return -EBUSY;
>  	}
>  
> @@ -430,13 +433,13 @@ static int vb2_queue_or_prepare_buf(struct vb2_queue *q, struct media_device *md
>  		return -EINVAL;
>  
>  	if (b->request_fd < 0) {
> -		dprintk(1, "%s: request_fd < 0\n", opname);
> +		dprintk(q, 1, "%s: request_fd < 0\n", opname);
>  		return -EINVAL;
>  	}
>  
>  	req = media_request_get_by_fd(mdev, b->request_fd);
>  	if (IS_ERR(req)) {
> -		dprintk(1, "%s: invalid request_fd\n", opname);
> +		dprintk(q, 1, "%s: invalid request_fd\n", opname);
>  		return PTR_ERR(req);
>  	}
>  
> @@ -446,7 +449,7 @@ static int vb2_queue_or_prepare_buf(struct vb2_queue *q, struct media_device *md
>  	 */
>  	if (req->state != MEDIA_REQUEST_STATE_IDLE &&
>  	    req->state != MEDIA_REQUEST_STATE_UPDATING) {
> -		dprintk(1, "%s: request is not idle\n", opname);
> +		dprintk(q, 1, "%s: request is not idle\n", opname);
>  		media_request_put(req);
>  		return -EBUSY;
>  	}
> @@ -629,12 +632,12 @@ int vb2_querybuf(struct vb2_queue *q, struct v4l2_buffer *b)
>  	int ret;
>  
>  	if (b->type != q->type) {
> -		dprintk(1, "wrong buffer type\n");
> +		dprintk(q, 1, "wrong buffer type\n");
>  		return -EINVAL;
>  	}
>  
>  	if (b->index >= q->num_buffers) {
> -		dprintk(1, "buffer index out of range\n");
> +		dprintk(q, 1, "buffer index out of range\n");
>  		return -EINVAL;
>  	}
>  	vb = q->bufs[b->index];
> @@ -675,7 +678,7 @@ int vb2_prepare_buf(struct vb2_queue *q, struct media_device *mdev,
>  	int ret;
>  
>  	if (vb2_fileio_is_active(q)) {
> -		dprintk(1, "file io in progress\n");
> +		dprintk(q, 1, "file io in progress\n");
>  		return -EBUSY;
>  	}
>  
> @@ -751,7 +754,7 @@ int vb2_qbuf(struct vb2_queue *q, struct media_device *mdev,
>  	int ret;
>  
>  	if (vb2_fileio_is_active(q)) {
> -		dprintk(1, "file io in progress\n");
> +		dprintk(q, 1, "file io in progress\n");
>  		return -EBUSY;
>  	}
>  
> @@ -770,12 +773,12 @@ int vb2_dqbuf(struct vb2_queue *q, struct v4l2_buffer *b, bool nonblocking)
>  	int ret;
>  
>  	if (vb2_fileio_is_active(q)) {
> -		dprintk(1, "file io in progress\n");
> +		dprintk(q, 1, "file io in progress\n");
>  		return -EBUSY;
>  	}
>  
>  	if (b->type != q->type) {
> -		dprintk(1, "invalid buffer type\n");
> +		dprintk(q, 1, "invalid buffer type\n");
>  		return -EINVAL;
>  	}
>  
> @@ -799,7 +802,7 @@ EXPORT_SYMBOL_GPL(vb2_dqbuf);
>  int vb2_streamon(struct vb2_queue *q, enum v4l2_buf_type type)
>  {
>  	if (vb2_fileio_is_active(q)) {
> -		dprintk(1, "file io in progress\n");
> +		dprintk(q, 1, "file io in progress\n");
>  		return -EBUSY;
>  	}
>  	return vb2_core_streamon(q, type);
> @@ -809,7 +812,7 @@ EXPORT_SYMBOL_GPL(vb2_streamon);
>  int vb2_streamoff(struct vb2_queue *q, enum v4l2_buf_type type)
>  {
>  	if (vb2_fileio_is_active(q)) {
> -		dprintk(1, "file io in progress\n");
> +		dprintk(q, 1, "file io in progress\n");
>  		return -EBUSY;
>  	}
>  	return vb2_core_streamoff(q, type);
> 




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux