mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-17 04:36:56 +07:00
media: vim2m: improve debug messages
1) Use two levels for debug: - level 1: setup stuff - level 2: add queue/dequeue messages 2) Better display the debug output, translating buffer type, fourcc and making some messages clearer. Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
1875a7c857
commit
de5c46ad48
@ -39,7 +39,7 @@ MODULE_ALIAS("mem2mem_testdev");
|
||||
|
||||
static unsigned debug;
|
||||
module_param(debug, uint, 0644);
|
||||
MODULE_PARM_DESC(debug, "activates debug info");
|
||||
MODULE_PARM_DESC(debug, "debug level");
|
||||
|
||||
/* Default transaction time in msec */
|
||||
static unsigned int default_transtime = 40; /* Max 25 fps */
|
||||
@ -67,8 +67,8 @@ MODULE_PARM_DESC(default_transtime, "default transaction time in ms");
|
||||
#define MEM2MEM_HFLIP (1 << 0)
|
||||
#define MEM2MEM_VFLIP (1 << 1)
|
||||
|
||||
#define dprintk(dev, fmt, arg...) \
|
||||
v4l2_dbg(1, debug, &dev->v4l2_dev, "%s: " fmt, __func__, ## arg)
|
||||
#define dprintk(dev, lvl, fmt, arg...) \
|
||||
v4l2_dbg(lvl, debug, &(dev)->v4l2_dev, "%s: " fmt, __func__, ## arg)
|
||||
|
||||
|
||||
static void vim2m_dev_release(struct device *dev)
|
||||
@ -227,6 +227,18 @@ static struct vim2m_q_data *get_q_data(struct vim2m_ctx *ctx,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static const char *type_name(enum v4l2_buf_type type)
|
||||
{
|
||||
switch (type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_OUTPUT:
|
||||
return "Output";
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
return "Capture";
|
||||
default:
|
||||
return "Invalid";
|
||||
}
|
||||
}
|
||||
|
||||
#define CLIP(__color) \
|
||||
(u8)(((__color) > 0xff) ? 0xff : (((__color) < 0) ? 0 : (__color)))
|
||||
|
||||
@ -530,7 +542,7 @@ static int job_ready(void *priv)
|
||||
|
||||
if (v4l2_m2m_num_src_bufs_ready(ctx->fh.m2m_ctx) < ctx->translen
|
||||
|| v4l2_m2m_num_dst_bufs_ready(ctx->fh.m2m_ctx) < ctx->translen) {
|
||||
dprintk(ctx->dev, "Not enough buffers available\n");
|
||||
dprintk(ctx->dev, 1, "Not enough buffers available\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -601,7 +613,7 @@ static void device_work(struct work_struct *w)
|
||||
|
||||
if (curr_ctx->num_processed == curr_ctx->translen
|
||||
|| curr_ctx->aborting) {
|
||||
dprintk(curr_ctx->dev, "Finishing transaction\n");
|
||||
dprintk(curr_ctx->dev, 2, "Finishing capture buffer fill\n");
|
||||
curr_ctx->num_processed = 0;
|
||||
v4l2_m2m_job_finish(vim2m_dev->m2m_dev, curr_ctx->fh.m2m_ctx);
|
||||
} else {
|
||||
@ -796,9 +808,14 @@ static int vidioc_s_fmt(struct vim2m_ctx *ctx, struct v4l2_format *f)
|
||||
q_data->sizeimage = q_data->width * q_data->height
|
||||
* q_data->fmt->depth >> 3;
|
||||
|
||||
dprintk(ctx->dev,
|
||||
"Setting format for type %d, wxh: %dx%d, fmt: %d\n",
|
||||
f->type, q_data->width, q_data->height, q_data->fmt->fourcc);
|
||||
dprintk(ctx->dev, 1,
|
||||
"Format for type %s: %dx%d (%d bpp), fmt: %c%c%c%c\n",
|
||||
type_name(f->type), q_data->width, q_data->height,
|
||||
q_data->fmt->depth,
|
||||
(q_data->fmt->fourcc & 0xff),
|
||||
(q_data->fmt->fourcc >> 8) & 0xff,
|
||||
(q_data->fmt->fourcc >> 16) & 0xff,
|
||||
(q_data->fmt->fourcc >> 24) & 0xff);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -933,7 +950,8 @@ static int vim2m_queue_setup(struct vb2_queue *vq,
|
||||
*nplanes = 1;
|
||||
sizes[0] = size;
|
||||
|
||||
dprintk(ctx->dev, "get %d buffer(s) of size %d each.\n", count, size);
|
||||
dprintk(ctx->dev, 1, "%s: get %d buffer(s) of size %d each.\n",
|
||||
type_name(vq->type), count, size);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -946,7 +964,7 @@ static int vim2m_buf_out_validate(struct vb2_buffer *vb)
|
||||
if (vbuf->field == V4L2_FIELD_ANY)
|
||||
vbuf->field = V4L2_FIELD_NONE;
|
||||
if (vbuf->field != V4L2_FIELD_NONE) {
|
||||
dprintk(ctx->dev, "%s field isn't supported\n", __func__);
|
||||
dprintk(ctx->dev, 1, "%s field isn't supported\n", __func__);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -958,12 +976,14 @@ static int vim2m_buf_prepare(struct vb2_buffer *vb)
|
||||
struct vim2m_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue);
|
||||
struct vim2m_q_data *q_data;
|
||||
|
||||
dprintk(ctx->dev, "type: %d\n", vb->vb2_queue->type);
|
||||
dprintk(ctx->dev, 2, "type: %s\n", type_name(vb->vb2_queue->type));
|
||||
|
||||
q_data = get_q_data(ctx, vb->vb2_queue->type);
|
||||
if (vb2_plane_size(vb, 0) < q_data->sizeimage) {
|
||||
dprintk(ctx->dev, "%s data will not fit into plane (%lu < %lu)\n",
|
||||
__func__, vb2_plane_size(vb, 0), (long)q_data->sizeimage);
|
||||
dprintk(ctx->dev, 1,
|
||||
"%s data will not fit into plane (%lu < %lu)\n",
|
||||
__func__, vb2_plane_size(vb, 0),
|
||||
(long)q_data->sizeimage);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@ -1149,7 +1169,7 @@ static int vim2m_open(struct file *file)
|
||||
v4l2_fh_add(&ctx->fh);
|
||||
atomic_inc(&dev->num_inst);
|
||||
|
||||
dprintk(dev, "Created instance: %p, m2m_ctx: %p\n",
|
||||
dprintk(dev, 1, "Created instance: %p, m2m_ctx: %p\n",
|
||||
ctx, ctx->fh.m2m_ctx);
|
||||
|
||||
open_unlock:
|
||||
@ -1162,7 +1182,7 @@ static int vim2m_release(struct file *file)
|
||||
struct vim2m_dev *dev = video_drvdata(file);
|
||||
struct vim2m_ctx *ctx = file2ctx(file);
|
||||
|
||||
dprintk(dev, "Releasing instance %p\n", ctx);
|
||||
dprintk(dev, 1, "Releasing instance %p\n", ctx);
|
||||
|
||||
v4l2_fh_del(&ctx->fh);
|
||||
v4l2_fh_exit(&ctx->fh);
|
||||
|
Loading…
Reference in New Issue
Block a user