/Linux-v4.19/drivers/gpu/drm/ |
D | drm_edid_load.c | 171 static int edid_size(const u8 *edid, int data_size) in edid_size() argument 176 return (edid[0x7e] + 1) * EDID_LENGTH; in edid_size() 184 u8 *edid; in edid_load() local 220 edid = ERR_PTR(-EINVAL); in edid_load() 224 edid = kmemdup(fwdata, fwsize, GFP_KERNEL); in edid_load() 225 if (edid == NULL) { in edid_load() 226 edid = ERR_PTR(-ENOMEM); in edid_load() 230 if (!drm_edid_block_valid(edid, 0, print_bad_edid, in edid_load() 235 kfree(edid); in edid_load() 236 edid = ERR_PTR(-EINVAL); in edid_load() [all …]
|
D | drm_edid.c | 44 #define version_greater(edid, maj, min) \ argument 45 (((edid)->version > (maj)) || \ 46 ((edid)->version == (maj) && (edid)->revision > (min))) 90 struct edid *edid; member 1323 struct edid *edid); 1359 struct edid *edid = (struct edid *)raw_edid; in drm_edid_block_valid() local 1409 if (edid->version != 1) { in drm_edid_block_valid() 1410 DRM_NOTE("EDID has major version %d, instead of 1\n", edid->version); in drm_edid_block_valid() 1414 if (edid->revision > 4) in drm_edid_block_valid() 1447 bool drm_edid_is_valid(struct edid *edid) in drm_edid_is_valid() argument [all …]
|
/Linux-v4.19/drivers/media/cec/ |
D | cec-edid.c | 20 static unsigned int cec_get_edid_spa_location(const u8 *edid, unsigned int size) in cec_get_edid_spa_location() argument 37 if (edid[0x7e] + 1 < blocks) in cec_get_edid_spa_location() 38 blocks = edid[0x7e] + 1; in cec_get_edid_spa_location() 44 if (edid[offset] != 0x02 || edid[offset + 1] != 0x03) in cec_get_edid_spa_location() 48 d = edid[offset + 2] & 0x7f; in cec_get_edid_spa_location() 58 u8 tag = edid[i] >> 5; in cec_get_edid_spa_location() 59 u8 len = edid[i] & 0x1f; in cec_get_edid_spa_location() 62 edid[i + 1] == 0x03 && in cec_get_edid_spa_location() 63 edid[i + 2] == 0x0c && in cec_get_edid_spa_location() 64 edid[i + 3] == 0x00) in cec_get_edid_spa_location() [all …]
|
D | cec-notifier.c | 95 const struct edid *edid) in cec_notifier_set_phys_addr_from_edid() argument 102 if (edid && edid->extensions) in cec_notifier_set_phys_addr_from_edid() 103 pa = cec_get_edid_phys_addr((const u8 *)edid, in cec_notifier_set_phys_addr_from_edid() 104 EDID_LENGTH * (edid->extensions + 1), NULL); in cec_notifier_set_phys_addr_from_edid()
|
/Linux-v4.19/drivers/media/i2c/adv748x/ |
D | adv748x-hdmi.c | 466 static int adv748x_hdmi_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv748x_hdmi_get_edid() argument 470 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv748x_hdmi_get_edid() 472 if (!hdmi->edid.present) in adv748x_hdmi_get_edid() 475 if (edid->start_block == 0 && edid->blocks == 0) { in adv748x_hdmi_get_edid() 476 edid->blocks = hdmi->edid.blocks; in adv748x_hdmi_get_edid() 480 if (edid->start_block >= hdmi->edid.blocks) in adv748x_hdmi_get_edid() 483 if (edid->start_block + edid->blocks > hdmi->edid.blocks) in adv748x_hdmi_get_edid() 484 edid->blocks = hdmi->edid.blocks - edid->start_block; in adv748x_hdmi_get_edid() 486 memcpy(edid->edid, hdmi->edid.edid + edid->start_block * 128, in adv748x_hdmi_get_edid() 487 edid->blocks * 128); in adv748x_hdmi_get_edid() [all …]
|
/Linux-v4.19/include/drm/ |
D | drm_edid.h | 282 struct edid { struct 336 int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads); argument 337 int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb); 342 struct edid *drm_load_edid_firmware(struct drm_connector *connector); 346 static inline struct edid * 459 struct edid *drm_do_get_edid(struct drm_connector *connector, 463 struct edid *drm_get_edid(struct drm_connector *connector, 465 struct edid *drm_get_edid_switcheroo(struct drm_connector *connector, 467 struct edid *drm_edid_duplicate(const struct edid *edid); 468 int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid); [all …]
|
/Linux-v4.19/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-v4.19/drivers/gpu/drm/i915/ |
D | intel_modes.c | 39 struct edid *edid) in intel_connector_update_modes() argument 43 drm_connector_update_edid_property(connector, edid); in intel_connector_update_modes() 44 ret = drm_add_edid_modes(connector, edid); in intel_connector_update_modes() 59 struct edid *edid; in intel_ddc_get_modes() local 62 edid = drm_get_edid(connector, adapter); in intel_ddc_get_modes() 63 if (!edid) in intel_ddc_get_modes() 66 ret = intel_connector_update_modes(connector, edid); in intel_ddc_get_modes() 67 kfree(edid); in intel_ddc_get_modes()
|
/Linux-v4.19/drivers/gpu/drm/gma500/ |
D | psb_intel_modes.c | 64 struct edid *edid; in psb_intel_ddc_get_modes() local 67 edid = drm_get_edid(connector, adapter); in psb_intel_ddc_get_modes() 68 if (edid) { in psb_intel_ddc_get_modes() 69 drm_connector_update_edid_property(connector, edid); in psb_intel_ddc_get_modes() 70 ret = drm_add_edid_modes(connector, edid); in psb_intel_ddc_get_modes() 71 kfree(edid); in psb_intel_ddc_get_modes()
|
D | cdv_intel_hdmi.c | 132 struct edid *edid = NULL; in cdv_hdmi_detect() local 135 edid = drm_get_edid(connector, &gma_encoder->i2c_bus->adapter); in cdv_hdmi_detect() 139 if (edid) { in cdv_hdmi_detect() 140 if (edid->input & DRM_EDID_INPUT_DIGITAL) { in cdv_hdmi_detect() 143 drm_detect_hdmi_monitor(edid); in cdv_hdmi_detect() 145 drm_detect_monitor_audio(edid); in cdv_hdmi_detect() 147 kfree(edid); in cdv_hdmi_detect() 214 struct edid *edid = NULL; in cdv_hdmi_get_modes() local 217 edid = drm_get_edid(connector, &gma_encoder->i2c_bus->adapter); in cdv_hdmi_get_modes() 218 if (edid) { in cdv_hdmi_get_modes() [all …]
|
/Linux-v4.19/drivers/media/i2c/ |
D | ad9389b.c | 86 struct ad9389b_state_edid edid; member 343 struct ad9389b_state_edid *edid = &state->edid; in ad9389b_log_status() local 376 edid->segments ? "found" : "no", edid->blocks); in ad9389b_log_status() 664 static int ad9389b_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in ad9389b_get_edid() argument 668 if (edid->pad != 0) in ad9389b_get_edid() 670 if (edid->blocks == 0 || edid->blocks > 256) in ad9389b_get_edid() 672 if (!state->edid.segments) { in ad9389b_get_edid() 676 if (edid->start_block >= state->edid.segments * 2) in ad9389b_get_edid() 678 if (edid->blocks + edid->start_block >= state->edid.segments * 2) in ad9389b_get_edid() 679 edid->blocks = state->edid.segments * 2 - edid->start_block; in ad9389b_get_edid() [all …]
|
D | adv7511.c | 115 struct adv7511_state_edid edid; member 577 struct adv7511_state_edid *edid = &state->edid; in adv7511_log_status() local 606 edid->segments ? "found" : "no", in adv7511_log_status() 607 edid->blocks); in adv7511_log_status() 1195 static int adv7511_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv7511_get_edid() argument 1199 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv7511_get_edid() 1201 if (edid->pad != 0) in adv7511_get_edid() 1204 if (edid->start_block == 0 && edid->blocks == 0) { in adv7511_get_edid() 1205 edid->blocks = state->edid.segments * 2; in adv7511_get_edid() 1209 if (state->edid.segments == 0) in adv7511_get_edid() [all …]
|
D | adv7604.c | 173 u8 edid[256]; member 176 } edid; member 526 adv76xx_set_hpd(state, state->edid.present); in adv76xx_delayed_work_enable_hotplug() 2224 static int adv76xx_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv76xx_get_edid() argument 2229 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv76xx_get_edid() 2231 switch (edid->pad) { in adv76xx_get_edid() 2236 if (state->edid.present & (1 << edid->pad)) in adv76xx_get_edid() 2237 data = state->edid.edid; in adv76xx_get_edid() 2243 if (edid->start_block == 0 && edid->blocks == 0) { in adv76xx_get_edid() 2244 edid->blocks = data ? state->edid.blocks : 0; in adv76xx_get_edid() [all …]
|
/Linux-v4.19/drivers/gpu/drm/tegra/ |
D | output.c | 21 struct edid *edid = NULL; in tegra_output_connector_get_modes() local 34 if (output->edid) in tegra_output_connector_get_modes() 35 edid = kmemdup(output->edid, sizeof(*edid), GFP_KERNEL); in tegra_output_connector_get_modes() 37 edid = drm_get_edid(connector, output->ddc); in tegra_output_connector_get_modes() 39 cec_notifier_set_phys_addr_from_edid(output->notifier, edid); in tegra_output_connector_get_modes() 40 drm_connector_update_edid_property(connector, edid); in tegra_output_connector_get_modes() 42 if (edid) { in tegra_output_connector_get_modes() 43 err = drm_add_edid_modes(connector, edid); in tegra_output_connector_get_modes() 44 kfree(edid); in tegra_output_connector_get_modes() 119 output->edid = of_get_property(output->of_node, "nvidia,edid", &size); in tegra_output_probe()
|
/Linux-v4.19/drivers/gpu/drm/i915/gvt/ |
D | edid.c | 51 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; in edid_get_byte() local 54 if (edid->state == I2C_NOT_SPECIFIED || !edid->slave_selected) { in edid_get_byte() 58 if (edid->current_edid_read >= EDID_SIZE) { in edid_get_byte() 63 if (!edid->edid_available) { in edid_get_byte() 68 if (intel_vgpu_has_monitor_on_port(vgpu, edid->port)) { in edid_get_byte() 70 intel_vgpu_port(vgpu, edid->port)->edid; in edid_get_byte() 72 chr = edid_data->edid_block[edid->current_edid_read]; in edid_get_byte() 73 edid->current_edid_read++; in edid_get_byte() 536 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; in intel_vgpu_init_i2c_edid() local 538 edid->state = I2C_NOT_SPECIFIED; in intel_vgpu_init_i2c_edid() [all …]
|
/Linux-v4.19/drivers/gpu/drm/bridge/ |
D | nxp-ptn3460.c | 41 struct edid *edid; member 199 u8 *edid; in ptn3460_get_modes() local 205 if (ptn_bridge->edid) in ptn3460_get_modes() 206 return drm_add_edid_modes(connector, ptn_bridge->edid); in ptn3460_get_modes() 211 edid = kmalloc(EDID_LENGTH, GFP_KERNEL); in ptn3460_get_modes() 212 if (!edid) { in ptn3460_get_modes() 217 ret = ptn3460_read_bytes(ptn_bridge, PTN3460_EDID_ADDR, edid, in ptn3460_get_modes() 220 kfree(edid); in ptn3460_get_modes() 224 ptn_bridge->edid = (struct edid *)edid; in ptn3460_get_modes() 225 drm_connector_update_edid_property(connector, ptn_bridge->edid); in ptn3460_get_modes() [all …]
|
D | megachips-stdpxxxx-ge-b850v3-fw.c | 74 struct edid *edid; member 151 kfree(ge_b850v3_lvds_ptr->edid); in ge_b850v3_lvds_get_modes() 152 ge_b850v3_lvds_ptr->edid = (struct edid *)stdp2690_get_edid(client); in ge_b850v3_lvds_get_modes() 154 if (ge_b850v3_lvds_ptr->edid) { in ge_b850v3_lvds_get_modes() 156 ge_b850v3_lvds_ptr->edid); in ge_b850v3_lvds_get_modes() 158 ge_b850v3_lvds_ptr->edid); in ge_b850v3_lvds_get_modes() 298 kfree(ge_b850v3_lvds_ptr->edid); in ge_b850v3_lvds_remove()
|
/Linux-v4.19/drivers/gpu/drm/amd/display/amdgpu_dm/ |
D | amdgpu_dm_helpers.c | 55 const struct dc_edid *edid, in dm_helpers_parse_edid_caps() argument 58 struct edid *edid_buf = (struct edid *) edid->raw_edid; in dm_helpers_parse_edid_caps() 68 if (!edid_caps || !edid) in dm_helpers_parse_edid_caps() 98 (struct edid *) edid->raw_edid); in dm_helpers_parse_edid_caps() 100 sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads); in dm_helpers_parse_edid_caps() 117 sadb_count = drm_edid_to_speaker_allocation((struct edid *) edid->raw_edid, &sadb); in dm_helpers_parse_edid_caps() 487 struct edid *edid; in dm_helpers_read_local_edid() local 499 edid = drm_get_edid(&aconnector->base, ddc); in dm_helpers_read_local_edid() 501 if (!edid) in dm_helpers_read_local_edid() 504 sink->dc_edid.length = EDID_LENGTH * (edid->extensions + 1); in dm_helpers_read_local_edid() [all …]
|
D | amdgpu_dm_mst_types.c | 186 if (amdgpu_dm_connector->edid) { in dm_dp_mst_connector_destroy() 187 kfree(amdgpu_dm_connector->edid); in dm_dp_mst_connector_destroy() 188 amdgpu_dm_connector->edid = NULL; in dm_dp_mst_connector_destroy() 226 ASSERT(aconnector->edid); in dm_dp_mst_dc_sink_create() 230 (uint8_t *)aconnector->edid, in dm_dp_mst_dc_sink_create() 231 (aconnector->edid->extensions + 1) * EDID_LENGTH, in dm_dp_mst_dc_sink_create() 238 connector, aconnector->edid); in dm_dp_mst_dc_sink_create() 249 if (!aconnector->edid) { in dm_dp_mst_get_modes() 250 struct edid *edid; in dm_dp_mst_get_modes() local 251 edid = drm_dp_mst_get_edid(connector, &aconnector->mst_port->mst_mgr, aconnector->port); in dm_dp_mst_get_modes() [all …]
|
/Linux-v4.19/drivers/gpu/drm/udl/ |
D | udl_connector.c | 60 extensions = ((struct edid *)block_buff)->extensions; in udl_get_edid() 102 drm_connector_update_edid_property(connector, udl_connector->edid); in udl_get_modes() 103 if (udl_connector->edid) in udl_get_modes() 104 return drm_add_edid_modes(connector, udl_connector->edid); in udl_get_modes() 133 if (udl_connector->edid != NULL) { in udl_detect() 134 kfree(udl_connector->edid); in udl_detect() 135 udl_connector->edid = NULL; in udl_detect() 142 udl_connector->edid = (struct edid *)edid_buff; in udl_detect() 170 kfree(udl_connector->edid); in udl_connector_destroy()
|
/Linux-v4.19/drivers/media/platform/vivid/ |
D | vivid-vid-common.c | 832 struct v4l2_edid *edid) in vidioc_g_edid() argument 838 memset(edid->reserved, 0, sizeof(edid->reserved)); in vidioc_g_edid() 840 if (edid->pad >= dev->num_inputs) in vidioc_g_edid() 842 if (dev->input_type[edid->pad] != HDMI) in vidioc_g_edid() 848 if (edid->pad >= dev->num_outputs) in vidioc_g_edid() 850 if (dev->output_type[edid->pad] != HDMI) in vidioc_g_edid() 852 bus_idx = dev->cec_output2bus_map[edid->pad]; in vidioc_g_edid() 855 if (edid->start_block == 0 && edid->blocks == 0) { in vidioc_g_edid() 856 edid->blocks = dev->edid_blocks; in vidioc_g_edid() 861 if (edid->start_block >= dev->edid_blocks) in vidioc_g_edid() [all …]
|
/Linux-v4.19/drivers/gpu/drm/exynos/ |
D | exynos_drm_vidi.c | 48 struct edid *raw_edid; 204 ctx->raw_edid = (struct edid *)fake_edid_info; in vidi_store_connection() 207 if (ctx->raw_edid != (struct edid *)fake_edid_info) { in vidi_store_connection() 244 struct edid *raw_edid; in vidi_connection_ioctl() 246 raw_edid = (struct edid *)(unsigned long)vidi->edid; in vidi_connection_ioctl() 262 (struct edid *)fake_edid_info) { in vidi_connection_ioctl() 303 struct edid *edid; in vidi_get_modes() local 316 edid = kmemdup(ctx->raw_edid, edid_len, GFP_KERNEL); in vidi_get_modes() 317 if (!edid) { in vidi_get_modes() 322 drm_connector_update_edid_property(connector, edid); in vidi_get_modes() [all …]
|
/Linux-v4.19/include/media/ |
D | cec-notifier.h | 16 struct edid; 64 const struct edid *edid); 107 const struct edid *edid) in cec_notifier_set_phys_addr_from_edid() argument
|
D | cec.h | 236 struct edid; 250 const struct edid *edid); 332 u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size, 347 void cec_set_edid_phys_addr(u8 *edid, unsigned int size, u16 phys_addr); 418 const struct edid *edid) in cec_s_phys_addr_from_edid() argument 422 static inline u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size, in cec_get_edid_phys_addr() argument 430 static inline void cec_set_edid_phys_addr(u8 *edid, unsigned int size, in cec_set_edid_phys_addr() argument
|
/Linux-v4.19/drivers/gpu/drm/nouveau/ |
D | nouveau_connector.c | 400 kfree(nv_connector->edid); in nouveau_connector_destroy() 469 const void *edid = of_get_property(cn, "EDID", NULL); in nouveau_connector_of_detect() local 472 if (nv_encoder->dcb->i2c_index == idx && edid) { in nouveau_connector_of_detect() 473 nv_connector->edid = in nouveau_connector_of_detect() 474 kmemdup(edid, EDID_LENGTH, GFP_KERNEL); in nouveau_connector_of_detect() 538 if (nv_connector->edid) { in nouveau_connector_detect() 540 kfree(nv_connector->edid); in nouveau_connector_detect() 541 nv_connector->edid = NULL; in nouveau_connector_detect() 563 nv_connector->edid = drm_get_edid_switcheroo(connector, in nouveau_connector_detect() 566 nv_connector->edid = drm_get_edid(connector, i2c); in nouveau_connector_detect() [all …]
|