Lines Matching refs:edid

179 		u8 edid[256];
182 } edid;
532 adv76xx_set_hpd(state, state->edid.present);
2258 static int adv76xx_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid)
2263 memset(edid->reserved, 0, sizeof(edid->reserved));
2265 switch (edid->pad) {
2270 if (state->edid.present & (1 << edid->pad))
2271 data = state->edid.edid;
2277 if (edid->start_block == 0 && edid->blocks == 0) {
2278 edid->blocks = data ? state->edid.blocks : 0;
2285 if (edid->start_block >= state->edid.blocks)
2288 if (edid->start_block + edid->blocks > state->edid.blocks)
2289 edid->blocks = state->edid.blocks - edid->start_block;
2291 memcpy(edid->edid, data + edid->start_block * 128, edid->blocks * 128);
2296 static int adv76xx_set_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid)
2305 memset(edid->reserved, 0, sizeof(edid->reserved));
2307 if (edid->pad > ADV7604_PAD_HDMI_PORT_D)
2309 if (edid->start_block != 0)
2311 if (edid->blocks == 0) {
2313 state->edid.present &= ~(1 << edid->pad);
2314 adv76xx_set_hpd(state, state->edid.present);
2315 rep_write_clr_set(sd, info->edid_enable_reg, 0x0f, state->edid.present);
2321 if (!state->edid.present) {
2322 state->edid.blocks = 0;
2326 v4l2_dbg(2, debug, sd, "%s: clear EDID pad %d, edid.present = 0x%x\n",
2327 __func__, edid->pad, state->edid.present);
2330 if (edid->blocks > 2) {
2331 edid->blocks = 2;
2334 pa = v4l2_get_edid_phys_addr(edid->edid, edid->blocks * 128, &spa_loc);
2339 v4l2_dbg(2, debug, sd, "%s: write EDID pad %d, edid.present = 0x%x\n",
2340 __func__, edid->pad, state->edid.present);
2354 switch (edid->pad) {
2356 state->spa_port_a[0] = edid->edid[spa_loc];
2357 state->spa_port_a[1] = edid->edid[spa_loc + 1];
2360 rep_write(sd, 0x70, edid->edid[spa_loc]);
2361 rep_write(sd, 0x71, edid->edid[spa_loc + 1]);
2364 rep_write(sd, 0x72, edid->edid[spa_loc]);
2365 rep_write(sd, 0x73, edid->edid[spa_loc + 1]);
2368 rep_write(sd, 0x74, edid->edid[spa_loc]);
2369 rep_write(sd, 0x75, edid->edid[spa_loc + 1]);
2384 edid->edid[spa_loc] = state->spa_port_a[0];
2385 edid->edid[spa_loc + 1] = state->spa_port_a[1];
2387 memcpy(state->edid.edid, edid->edid, 128 * edid->blocks);
2388 state->edid.blocks = edid->blocks;
2389 state->aspect_ratio = v4l2_calc_aspect_ratio(edid->edid[0x15],
2390 edid->edid[0x16]);
2391 state->edid.present |= 1 << edid->pad;
2393 err = edid_write_block(sd, 128 * edid->blocks, state->edid.edid);
2395 v4l2_err(sd, "error %d writing edid pad %d\n", err, edid->pad);
2401 rep_write_clr_set(sd, info->edid_enable_reg, 0x0f, state->edid.present);
2404 if (rep_read(sd, info->edid_status_reg) & state->edid.present)
2409 v4l2_err(sd, "error enabling edid (0x%x)\n", state->edid.present);
2775 [ADV76XX_PAGE_EDID] = { "edid", 0x36 },
3260 .name = "edid",