Lines Matching defs:segment
1454 static void adv7511_dbg_dump_edid(int lvl, int debug, struct v4l2_subdev *sd, int segment, u8 *buf)
1458 v4l2_dbg(lvl, debug, sd, "edid segment %d\n", segment);
1481 ed.segment = adv7511_rd(sd, 0xc4);
1631 static bool edid_verify_crc(struct v4l2_subdev *sd, u32 segment)
1637 if (!edid_block_verify_crc(&data[segment * 256]))
1639 if ((segment + 1) * 2 <= blocks)
1640 return edid_block_verify_crc(&data[segment * 256 + 128]);
1644 static bool edid_verify_header(struct v4l2_subdev *sd, u32 segment)
1652 if (segment != 0)
1669 int segment = adv7511_rd(sd, 0xc4);
1672 if (segment >= EDID_MAX_SEGM) {
1673 v4l2_err(sd, "edid segment number too big\n");
1676 v4l2_dbg(1, debug, sd, "%s: got segment %d\n", __func__, segment);
1677 adv7511_edid_rd(sd, 256, &state->edid.data[segment * 256]);
1678 adv7511_dbg_dump_edid(2, debug, sd, segment, &state->edid.data[segment * 256]);
1679 if (segment == 0) {
1683 if (!edid_verify_crc(sd, segment) ||
1684 !edid_verify_header(sd, segment)) {
1685 /* edid crc error, force reread of edid segment */
1692 /* one more segment read ok */
1693 state->edid.segments = segment + 1;
1696 /* Request next EDID segment */
1697 v4l2_dbg(1, debug, sd, "%s: request segment %d\n", __func__, state->edid.segments);
1705 v4l2_dbg(1, debug, sd, "%s: edid complete with %d segment(s)\n", __func__, state->edid.segments);
1711 but report only for segment 0
1714 ed.segment = 0;