mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
drivers: media: platform: rockchip: cif: fix pingpong mode issue
fix following problem when using pingpong mode rkcif: Bad frame, pp irq:0x20b frmst:0xda900000 size:1600x600 Signed-off-by: Wang Panzhenzhuan <randy.wang@rock-chips.com> Signed-off-by: Allon Huang <allon.huang@rock-chips.com> Change-Id: Iaf9222d5465a966047c26b7a7518bbc419cd5748
This commit is contained in:
committed by
Tao Huang
parent
bc28e06c42
commit
6459ce336d
@@ -2543,7 +2543,7 @@ void rkcif_irq_pingpong(struct rkcif_device *cif_dev)
|
||||
stream->frame_idx++;
|
||||
}
|
||||
} else {
|
||||
u32 lastline, lastpix, ctl, cif_frmst;
|
||||
u32 lastline, lastpix, ctl, cif_frmst, frmid;
|
||||
struct rkcif_stream *stream;
|
||||
|
||||
intstat = rkcif_read_register(cif_dev, CIF_REG_DVP_INTSTAT);
|
||||
@@ -2590,6 +2590,14 @@ void rkcif_irq_pingpong(struct rkcif_device *cif_dev)
|
||||
return;
|
||||
}
|
||||
|
||||
frmid = CIF_GET_FRAME_ID(cif_frmst);
|
||||
if ((cif_frmst == 0xfffd0002) || (cif_frmst == 0xfffe0002)) {
|
||||
v4l2_info(&cif_dev->v4l2_dev, "frmid:%d, frmstat:0x%x\n",
|
||||
frmid, cif_frmst);
|
||||
rkcif_write_register(cif_dev, CIF_REG_DVP_FRAME_STATUS,
|
||||
FRAME_STAT_CLS);
|
||||
}
|
||||
|
||||
if (lastline != stream->pixm.height ||
|
||||
(!(cif_frmst & CIF_F0_READY) &&
|
||||
!(cif_frmst & CIF_F1_READY))) {
|
||||
|
||||
Reference in New Issue
Block a user