提交 b60908a4 编写于 作者: M Martin Bugge 提交者: Mauro Carvalho Chehab

[media] adv7842: log-status for Audio Video Info frames (AVI)

Clear any pending AVI checksum-errors.
To be able to display last received AVI.
Signed-off-by: NMartin Bugge <marbugge@cisco.com>
Cc: Mats Randgaard <matrandg@cisco.com>
Signed-off-by: NHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: NMauro Carvalho Chehab <m.chehab@samsung.com>
上级 81ba0a4e
......@@ -2191,7 +2191,8 @@ static void print_avi_infoframe(struct v4l2_subdev *sd)
{
int i;
uint8_t buf[14];
uint8_t avi_inf_len;
u8 avi_len;
u8 avi_ver;
struct avi_info_frame avi;
if (!(hdmi_read(sd, 0x05) & 0x80)) {
......@@ -2204,18 +2205,20 @@ static void print_avi_infoframe(struct v4l2_subdev *sd)
}
if (io_read(sd, 0x88) & 0x10) {
/* Note: the ADV7842 calculated incorrect checksums for InfoFrames
with a length of 14 or 15. See the ADV7842 Register Settings
Recommendations document for more details. */
v4l2_info(sd, "AVI infoframe checksum error\n");
return;
v4l2_info(sd, "AVI infoframe checksum error has occurred earlier\n");
io_write(sd, 0x8a, 0x10); /* clear AVI_INF_CKS_ERR_RAW */
if (io_read(sd, 0x88) & 0x10) {
v4l2_info(sd, "AVI infoframe checksum error still present\n");
io_write(sd, 0x8a, 0x10); /* clear AVI_INF_CKS_ERR_RAW */
}
}
avi_inf_len = infoframe_read(sd, 0xe2);
avi_len = infoframe_read(sd, 0xe2);
avi_ver = infoframe_read(sd, 0xe1);
v4l2_info(sd, "AVI infoframe version %d (%d byte)\n",
infoframe_read(sd, 0xe1), avi_inf_len);
avi_ver, avi_len);
if (infoframe_read(sd, 0xe1) != 0x02)
if (avi_ver != 0x02)
return;
for (i = 0; i < 14; i++)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册