mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-25 05:04:09 +08:00
[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: Martin Bugge <marbugge@cisco.com> Cc: Mats Randgaard <matrandg@cisco.com> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
81ba0a4e0b
commit
b60908a4e5
@ -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++)
|
||||
|
Loading…
Reference in New Issue
Block a user