projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
70028fe
)
[media] ad9389b: no monitor if EDID is wrong
author
Mats Randgaard
<matrandg@cisco.com>
Wed, 14 Aug 2013 12:23:48 +0000
(09:23 -0300)
committer
Mauro Carvalho Chehab
<m.chehab@samsung.com>
Sat, 24 Aug 2013 07:24:58 +0000
(
04:24
-0300)
state->have_monitor is set to false if the EDID that is read from
the monitor has too many segments or wrong CRC.
Signed-off-by: Mats Randgaard <matrandg@cisco.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
drivers/media/i2c/ad9389b.c
patch
|
blob
|
history
diff --git
a/drivers/media/i2c/ad9389b.c
b/drivers/media/i2c/ad9389b.c
index 7e68d8f9676f066d7769947a8b99ee59de294d77..52384e83cde95a80c1484d161f37a70ac0b710f5 100644
(file)
--- a/
drivers/media/i2c/ad9389b.c
+++ b/
drivers/media/i2c/ad9389b.c
@@
-1019,6
+1019,7
@@
static bool ad9389b_check_edid_status(struct v4l2_subdev *sd)
segment = ad9389b_rd(sd, 0xc4);
if (segment >= EDID_MAX_SEGM) {
v4l2_err(sd, "edid segment number too big\n");
+ state->have_monitor = false;
return false;
}
v4l2_dbg(1, debug, sd, "%s: got segment %d\n", __func__, segment);
@@
-1032,6
+1033,8
@@
static bool ad9389b_check_edid_status(struct v4l2_subdev *sd)
}
if (!edid_segment_verify_crc(sd, segment)) {
/* edid crc error, force reread of edid segment */
+ v4l2_err(sd, "%s: edid crc error\n", __func__);
+ state->have_monitor = false;
ad9389b_s_power(sd, false);
ad9389b_s_power(sd, true);
return false;