/Linux-v6.6/drivers/media/i2c/adv748x/ |
D | adv748x-hdmi.c | 473 static int adv748x_hdmi_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv748x_hdmi_get_edid() argument 477 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv748x_hdmi_get_edid() 479 if (!hdmi->edid.present) in adv748x_hdmi_get_edid() 482 if (edid->start_block == 0 && edid->blocks == 0) { in adv748x_hdmi_get_edid() 483 edid->blocks = hdmi->edid.blocks; in adv748x_hdmi_get_edid() 487 if (edid->start_block >= hdmi->edid.blocks) in adv748x_hdmi_get_edid() 490 if (edid->start_block + edid->blocks > hdmi->edid.blocks) in adv748x_hdmi_get_edid() 491 edid->blocks = hdmi->edid.blocks - edid->start_block; in adv748x_hdmi_get_edid() 493 memcpy(edid->edid, hdmi->edid.edid + edid->start_block * 128, in adv748x_hdmi_get_edid() 494 edid->blocks * 128); in adv748x_hdmi_get_edid() [all …]
|
/Linux-v6.6/include/drm/ |
D | drm_edid.h | 330 struct edid { struct 385 int drm_edid_to_sad(const struct edid *edid, struct cea_sad **sads); argument 386 int drm_edid_to_speaker_allocation(const struct edid *edid, u8 **sadb); 395 bool drm_edid_are_equal(const struct edid *edid1, const struct edid *edid2); 562 struct edid *drm_do_get_edid(struct drm_connector *connector, 566 struct edid *drm_get_edid(struct drm_connector *connector, 569 struct edid *drm_get_edid_switcheroo(struct drm_connector *connector, 571 struct edid *drm_edid_duplicate(const struct edid *edid); 572 int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid); 576 bool drm_detect_hdmi_monitor(const struct edid *edid); [all …]
|
/Linux-v6.6/drivers/gpu/drm/ |
D | drm_edid.c | 1583 const struct edid *edid; member 1586 static int edid_hfeeodb_extension_block_count(const struct edid *edid); 1588 static int edid_hfeeodb_block_count(const struct edid *edid) in edid_hfeeodb_block_count() argument 1590 int eeodb = edid_hfeeodb_extension_block_count(edid); in edid_hfeeodb_block_count() 1595 static int edid_extension_block_count(const struct edid *edid) in edid_extension_block_count() argument 1597 return edid->extensions; in edid_extension_block_count() 1600 static int edid_block_count(const struct edid *edid) in edid_block_count() argument 1602 return edid_extension_block_count(edid) + 1; in edid_block_count() 1610 static int edid_size(const struct edid *edid) in edid_size() argument 1612 return edid_size_by_blocks(edid_block_count(edid)); in edid_size() [all …]
|
D | drm_bridge_connector.c | 234 struct edid *edid; in drm_bridge_connector_get_modes_edid() local 241 edid = bridge->funcs->get_edid(bridge, connector); in drm_bridge_connector_get_modes_edid() 242 if (!drm_edid_is_valid(edid)) { in drm_bridge_connector_get_modes_edid() 243 kfree(edid); in drm_bridge_connector_get_modes_edid() 247 drm_connector_update_edid_property(connector, edid); in drm_bridge_connector_get_modes_edid() 248 n = drm_add_edid_modes(connector, edid); in drm_bridge_connector_get_modes_edid() 250 kfree(edid); in drm_bridge_connector_get_modes_edid()
|
/Linux-v6.6/drivers/gpu/drm/gma500/ |
D | psb_intel_modes.c | 55 struct edid *edid; in psb_intel_ddc_get_modes() local 58 edid = drm_get_edid(connector, adapter); in psb_intel_ddc_get_modes() 59 if (edid) { in psb_intel_ddc_get_modes() 60 drm_connector_update_edid_property(connector, edid); in psb_intel_ddc_get_modes() 61 ret = drm_add_edid_modes(connector, edid); in psb_intel_ddc_get_modes() 62 kfree(edid); in psb_intel_ddc_get_modes()
|
D | cdv_intel_hdmi.c | 131 struct edid *edid = NULL; in cdv_hdmi_detect() local 134 edid = drm_get_edid(connector, connector->ddc); in cdv_hdmi_detect() 138 if (edid) { in cdv_hdmi_detect() 139 if (edid->input & DRM_EDID_INPUT_DIGITAL) { in cdv_hdmi_detect() 142 drm_detect_hdmi_monitor(edid); in cdv_hdmi_detect() 144 drm_detect_monitor_audio(edid); in cdv_hdmi_detect() 146 kfree(edid); in cdv_hdmi_detect() 212 struct edid *edid = NULL; in cdv_hdmi_get_modes() local 215 edid = drm_get_edid(connector, connector->ddc); in cdv_hdmi_get_modes() 216 if (edid) { in cdv_hdmi_get_modes() [all …]
|
/Linux-v6.6/drivers/video/fbdev/core/ |
D | fbmon.c | 145 static int check_edid(unsigned char *edid) in check_edid() argument 147 unsigned char *block = edid + ID_MANUFACTURER_NAME, manufacturer[4]; in check_edid() 170 if (edid[i] != edid_v1_header[i]) { in check_edid() 177 b = edid + EDID_STRUCT_DISPLAY; in check_edid() 184 b = edid + DETAILED_TIMING_DESCRIPTIONS_START; in check_edid() 207 static void fix_edid(unsigned char *edid, int fix) in fix_edid() argument 215 memcpy(edid, edid_v1_header, 8); in fix_edid() 219 b = edid + EDID_STRUCT_DISPLAY; in fix_edid() 221 edid[127] += 0x80; in fix_edid() 225 b = edid + DETAILED_TIMING_DESCRIPTIONS_START; in fix_edid() [all …]
|
/Linux-v6.6/include/media/ |
D | cec.h | 311 struct edid; 326 const struct edid *edid); 410 u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size, 438 const struct edid *edid) in cec_s_phys_addr_from_edid() argument 442 static inline u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size, in cec_get_edid_phys_addr() argument 493 static inline unsigned int cec_get_edid_spa_location(const u8 *edid, in cec_get_edid_spa_location() argument 511 if (edid[0x7e] + 1 < blocks) in cec_get_edid_spa_location() 512 blocks = edid[0x7e] + 1; in cec_get_edid_spa_location() 518 if (edid[offset] != 0x02 || edid[offset + 1] != 0x03) in cec_get_edid_spa_location() 522 d = edid[offset + 2] & 0x7f; in cec_get_edid_spa_location() [all …]
|
D | cec-notifier.h | 16 struct edid; 97 const struct edid *edid); 142 const struct edid *edid) in cec_notifier_set_phys_addr_from_edid() argument
|
/Linux-v6.6/drivers/gpu/drm/tegra/ |
D | output.c | 23 struct edid *edid = NULL; in tegra_output_connector_get_modes() local 36 if (output->edid) in tegra_output_connector_get_modes() 37 edid = kmemdup(output->edid, sizeof(*edid), GFP_KERNEL); in tegra_output_connector_get_modes() 39 edid = drm_get_edid(connector, output->ddc); in tegra_output_connector_get_modes() 41 cec_notifier_set_phys_addr_from_edid(output->cec, edid); in tegra_output_connector_get_modes() 42 drm_connector_update_edid_property(connector, edid); in tegra_output_connector_get_modes() 44 if (edid) { in tegra_output_connector_get_modes() 45 err = drm_add_edid_modes(connector, edid); in tegra_output_connector_get_modes() 46 kfree(edid); in tegra_output_connector_get_modes() 126 output->edid = of_get_property(output->of_node, "nvidia,edid", &size); in tegra_output_probe()
|
/Linux-v6.6/drivers/gpu/drm/bridge/ |
D | nxp-ptn3460.c | 157 static struct edid *ptn3460_get_edid(struct drm_bridge *bridge, in ptn3460_get_edid() 162 u8 *edid; in ptn3460_get_edid() local 168 edid = kmalloc(EDID_LENGTH, GFP_KERNEL); in ptn3460_get_edid() 169 if (!edid) { in ptn3460_get_edid() 174 ret = ptn3460_read_bytes(ptn_bridge, PTN3460_EDID_ADDR, edid, in ptn3460_get_edid() 177 kfree(edid); in ptn3460_get_edid() 178 edid = NULL; in ptn3460_get_edid() 186 return (struct edid *)edid; in ptn3460_get_edid() 192 struct edid *edid; in ptn3460_connector_get_modes() local 195 edid = ptn3460_get_edid(&ptn_bridge->bridge, connector); in ptn3460_connector_get_modes() [all …]
|
D | simple-bridge.c | 54 struct edid *edid; in simple_bridge_get_modes() local 58 edid = drm_bridge_get_edid(sbridge->next_bridge, connector); in simple_bridge_get_modes() 59 if (!edid) in simple_bridge_get_modes() 62 edid = NULL; in simple_bridge_get_modes() 65 if (!edid) { in simple_bridge_get_modes() 76 drm_connector_update_edid_property(connector, edid); in simple_bridge_get_modes() 77 ret = drm_add_edid_modes(connector, edid); in simple_bridge_get_modes() 78 kfree(edid); in simple_bridge_get_modes()
|
D | megachips-stdpxxxx-ge-b850v3-fw.c | 133 static struct edid *ge_b850v3_lvds_get_edid(struct drm_bridge *bridge, in ge_b850v3_lvds_get_edid() 140 return (struct edid *)stdp2690_get_edid(client); in ge_b850v3_lvds_get_edid() 145 struct edid *edid; in ge_b850v3_lvds_get_modes() local 148 edid = ge_b850v3_lvds_get_edid(&ge_b850v3_lvds_ptr->bridge, connector); in ge_b850v3_lvds_get_modes() 150 drm_connector_update_edid_property(connector, edid); in ge_b850v3_lvds_get_modes() 151 num_modes = drm_add_edid_modes(connector, edid); in ge_b850v3_lvds_get_modes() 152 kfree(edid); in ge_b850v3_lvds_get_modes()
|
/Linux-v6.6/drivers/gpu/drm/msm/dp/ |
D | dp_panel.c | 158 struct edid *edid) in dp_panel_update_modes() argument 162 if (edid) { in dp_panel_update_modes() 163 rc = drm_connector_update_edid_property(connector, edid); in dp_panel_update_modes() 168 rc = drm_add_edid_modes(connector, edid); in dp_panel_update_modes() 222 kfree(dp_panel->edid); in dp_panel_read_sink_caps() 223 dp_panel->edid = NULL; in dp_panel_read_sink_caps() 225 dp_panel->edid = drm_get_edid(connector, in dp_panel_read_sink_caps() 227 if (!dp_panel->edid) { in dp_panel_read_sink_caps() 284 if (dp_panel->edid) in dp_panel_get_modes() 285 return dp_panel_update_modes(connector, dp_panel->edid); in dp_panel_get_modes() [all …]
|
/Linux-v6.6/drivers/gpu/drm/i915/gvt/ |
D | edid.c | 54 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; in edid_get_byte() local 57 if (edid->state == I2C_NOT_SPECIFIED || !edid->slave_selected) { in edid_get_byte() 61 if (edid->current_edid_read >= EDID_SIZE) { in edid_get_byte() 66 if (!edid->edid_available) { in edid_get_byte() 71 if (intel_vgpu_has_monitor_on_port(vgpu, edid->port)) { in edid_get_byte() 73 intel_vgpu_port(vgpu, edid->port)->edid; in edid_get_byte() 75 chr = edid_data->edid_block[edid->current_edid_read]; in edid_get_byte() 76 edid->current_edid_read++; in edid_get_byte() 569 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; in intel_vgpu_init_i2c_edid() local 571 edid->state = I2C_NOT_SPECIFIED; in intel_vgpu_init_i2c_edid() [all …]
|
/Linux-v6.6/drivers/gpu/drm/loongson/ |
D | lsdc_output_7a1000.c | 44 struct edid *edid; in ls7a1000_dpi_connector_get_modes() local 47 edid = drm_get_edid(conn, conn->ddc); in ls7a1000_dpi_connector_get_modes() 48 if (edid) { in ls7a1000_dpi_connector_get_modes() 49 drm_connector_update_edid_property(conn, edid); in ls7a1000_dpi_connector_get_modes() 50 num = drm_add_edid_modes(conn, edid); in ls7a1000_dpi_connector_get_modes() 51 kfree(edid); in ls7a1000_dpi_connector_get_modes()
|
/Linux-v6.6/drivers/gpu/drm/exynos/ |
D | exynos_drm_vidi.c | 44 struct edid *raw_edid; 200 ctx->raw_edid = (struct edid *)fake_edid_info; in vidi_store_connection() 203 if (ctx->raw_edid != (struct edid *)fake_edid_info) { in vidi_store_connection() 249 struct edid *raw_edid; in vidi_connection_ioctl() 251 raw_edid = (struct edid *)(unsigned long)vidi->edid; in vidi_connection_ioctl() 269 (struct edid *)fake_edid_info) { in vidi_connection_ioctl() 310 struct edid *edid; in vidi_get_modes() local 323 edid = kmemdup(ctx->raw_edid, edid_len, GFP_KERNEL); in vidi_get_modes() 324 if (!edid) { in vidi_get_modes() 329 drm_connector_update_edid_property(connector, edid); in vidi_get_modes() [all …]
|
/Linux-v6.6/drivers/media/i2c/ |
D | adv7511-v4l2.c | 119 struct adv7511_state_edid edid; member 548 struct adv7511_state_edid *edid = &state->edid; in adv7511_log_status() local 577 edid->segments ? "found" : "no", in adv7511_log_status() 578 edid->blocks); in adv7511_log_status() 1166 static int adv7511_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv7511_get_edid() argument 1170 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv7511_get_edid() 1172 if (edid->pad != 0) in adv7511_get_edid() 1175 if (edid->start_block == 0 && edid->blocks == 0) { in adv7511_get_edid() 1176 edid->blocks = state->edid.blocks; in adv7511_get_edid() 1180 if (state->edid.blocks == 0) in adv7511_get_edid() [all …]
|
D | adv7604.c | 186 u8 edid[ADV76XX_MAX_EDID_BLOCKS * 128]; member 189 } edid; member 546 adv76xx_set_hpd(state, state->edid.present); in adv76xx_delayed_work_enable_hotplug() 2275 static int adv76xx_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv76xx_get_edid() argument 2280 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv76xx_get_edid() 2282 switch (edid->pad) { in adv76xx_get_edid() 2287 if (state->edid.present & (1 << edid->pad)) in adv76xx_get_edid() 2288 data = state->edid.edid; in adv76xx_get_edid() 2294 if (edid->start_block == 0 && edid->blocks == 0) { in adv76xx_get_edid() 2295 edid->blocks = data ? state->edid.blocks : 0; in adv76xx_get_edid() [all …]
|
/Linux-v6.6/drivers/gpu/drm/hisilicon/hibmc/ |
D | hibmc_drm_vdac.c | 27 void *edid; in hibmc_connector_get_modes() local 30 edid = drm_get_edid(connector, &hibmc_connector->adapter); in hibmc_connector_get_modes() 31 if (edid) { in hibmc_connector_get_modes() 32 drm_connector_update_edid_property(connector, edid); in hibmc_connector_get_modes() 33 count = drm_add_edid_modes(connector, edid); in hibmc_connector_get_modes() 44 kfree(edid); in hibmc_connector_get_modes()
|
/Linux-v6.6/drivers/media/test-drivers/vivid/ |
D | vivid-vid-common.c | 1036 struct v4l2_edid *edid) in vidioc_g_edid() argument 1042 memset(edid->reserved, 0, sizeof(edid->reserved)); in vidioc_g_edid() 1044 if (edid->pad >= dev->num_inputs) in vidioc_g_edid() 1046 if (dev->input_type[edid->pad] != HDMI) in vidioc_g_edid() 1052 if (edid->pad >= dev->num_outputs) in vidioc_g_edid() 1054 if (dev->output_type[edid->pad] != HDMI) in vidioc_g_edid() 1056 if (!dev->display_present[edid->pad]) in vidioc_g_edid() 1058 bus_idx = dev->cec_output2bus_map[edid->pad]; in vidioc_g_edid() 1061 if (edid->start_block == 0 && edid->blocks == 0) { in vidioc_g_edid() 1062 edid->blocks = dev->edid_blocks; in vidioc_g_edid() [all …]
|
/Linux-v6.6/drivers/gpu/drm/nouveau/ |
D | nouveau_connector.c | 400 kfree(nv_connector->edid); in nouveau_connector_destroy() 475 const void *edid = of_get_property(cn, "EDID", NULL); in nouveau_connector_of_detect() local 478 if (nv_encoder->dcb->i2c_index == idx && edid) { in nouveau_connector_of_detect() 479 nv_connector->edid = in nouveau_connector_of_detect() 480 kmemdup(edid, EDID_LENGTH, GFP_KERNEL); in nouveau_connector_of_detect() 538 struct edid *edid) in nouveau_connector_set_edid() argument 540 if (nv_connector->edid != edid) { in nouveau_connector_set_edid() 541 struct edid *old_edid = nv_connector->edid; in nouveau_connector_set_edid() 543 drm_connector_update_edid_property(&nv_connector->base, edid); in nouveau_connector_set_edid() 545 nv_connector->edid = edid; in nouveau_connector_set_edid() [all …]
|
/Linux-v6.6/include/drm/display/ |
D | drm_dp_helper.h | 275 struct edid; 510 const struct edid *edid); 515 const struct edid *edid); 518 const struct edid *edid); 521 const struct edid *edid); 533 const struct edid *edid, 702 void drm_dp_cec_set_edid(struct drm_dp_aux *aux, const struct edid *edid); 720 const struct edid *edid) in drm_dp_cec_set_edid() argument
|
/Linux-v6.6/drivers/gpu/drm/amd/display/amdgpu_dm/ |
D | amdgpu_dm_helpers.c | 47 static u32 edid_extract_panel_id(struct edid *edid) in edid_extract_panel_id() argument 49 return (u32)edid->mfg_id[0] << 24 | in edid_extract_panel_id() 50 (u32)edid->mfg_id[1] << 16 | in edid_extract_panel_id() 51 (u32)EDID_PRODUCT_ID(edid); in edid_extract_panel_id() 54 static void apply_edid_quirks(struct edid *edid, struct dc_edid_caps *edid_caps) in apply_edid_quirks() argument 56 uint32_t panel_id = edid_extract_panel_id(edid); in apply_edid_quirks() 82 const struct dc_edid *edid, in dm_helpers_parse_edid_caps() argument 87 struct edid *edid_buf = edid ? (struct edid *) edid->raw_edid : NULL; in dm_helpers_parse_edid_caps() 96 if (!edid_caps || !edid) in dm_helpers_parse_edid_caps() 116 sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads); in dm_helpers_parse_edid_caps() [all …]
|
/Linux-v6.6/drivers/video/fbdev/nvidia/ |
D | nv_i2c.c | 155 u8 *edid = NULL; in nvidia_probe_i2c_connector() local 158 edid = fb_ddc_read(&par->chan[conn - 1].adapter); in nvidia_probe_i2c_connector() 160 if (!edid && conn == 1) { in nvidia_probe_i2c_connector() 165 edid = kmemdup(e, EDID_LENGTH, GFP_KERNEL); in nvidia_probe_i2c_connector() 168 *out_edid = edid; in nvidia_probe_i2c_connector() 170 return (edid) ? 0 : 1; in nvidia_probe_i2c_connector()
|