media: rockchip: ispp: add frame loss info to procfs

Change-Id: I413608060c2245809a4b1f9d908511531901608d
Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
Cai YiWei
2021-09-11 10:25:24 +08:00
committed by Tao Huang
parent c5650d4372
commit 9ed21d58a9
2 changed files with 21 additions and 12 deletions

View File

@@ -50,7 +50,7 @@ static int ispp_show(struct seq_file *p, void *v)
stream = &dev->stream_vdev.stream[val];
if (!stream->streaming)
continue;
seq_printf(p, "%-10s %s Format:%c%c%c%c Size:%dx%d (frame:%d rate:%dms delay:%dms)\n",
seq_printf(p, "%-10s %s Format:%c%c%c%c Size:%dx%d (frame:%d rate:%dms delay:%dms frameloss:%d)\n",
"Output",
stream->vnode.vdev.name,
stream->out_fmt.pixelformat,
@@ -61,7 +61,8 @@ static int ispp_show(struct seq_file *p, void *v)
stream->out_fmt.height,
stream->dbg.id,
stream->dbg.interval / 1000 / 1000,
stream->dbg.delay / 1000 / 1000);
stream->dbg.delay / 1000 / 1000,
stream->dbg.frameloss);
}
val = rkispp_read(dev, RKISPP_TNR_CORE_CTRL);

View File

@@ -489,17 +489,25 @@ static int rkispp_frame_end(struct rkispp_stream *stream, u32 state)
stream->dbg.id = stream->curr_buf->vb.sequence;
stream->curr_buf = NULL;
} else if (stream->is_reg_withstream &&
(fmt->wr_fmt & FMT_FBC || fmt->wr_fmt == FMT_YUV420)) {
u32 frame_id;
} else {
u32 frame_id = dev->ispp_sdev.frm_sync_seq;
frame_id = dev->ispp_sdev.frm_sync_seq;
rkispp_find_regbuf_by_id(dev, &reg_buf, dev->dev_id, frame_id);
if (reg_buf) {
rkispp_release_regbuf(dev, reg_buf);
v4l2_info(&dev->v4l2_dev,
"%s: current frame use dummy buffer(dev_id %d, sequence %d)\n",
__func__, dev->dev_id, frame_id);
if (stream->is_cfg) {
stream->dbg.frameloss++;
v4l2_dbg(0, rkispp_debug, &dev->v4l2_dev,
"stream:%d no buf, lost frame:%d\n",
stream->id, frame_id);
}
if (stream->is_reg_withstream &&
(fmt->wr_fmt & FMT_FBC || fmt->wr_fmt == FMT_YUV420)) {
rkispp_find_regbuf_by_id(dev, &reg_buf, dev->dev_id, frame_id);
if (reg_buf) {
rkispp_release_regbuf(dev, reg_buf);
v4l2_info(&dev->v4l2_dev,
"%s: current frame use dummy buffer(dev_id %d, sequence %d)\n",
__func__, dev->dev_id, frame_id);
}
}
}