/linux/drivers/gpu/drm/ |
A D | drm_edid_load.c | 175 u8 *edid; in edid_load() local 211 edid = ERR_PTR(-EINVAL); in edid_load() 216 if (edid == NULL) { in edid_load() 217 edid = ERR_PTR(-ENOMEM); in edid_load() 226 kfree(edid); in edid_load() 227 edid = ERR_PTR(-EINVAL); in edid_load() 244 edid[EDID_LENGTH-1] += edid[0x7e] - valid_extensions; in edid_load() 253 edid = new_edid; in edid_load() 263 return edid; in edid_load() 270 struct edid *edid; in drm_load_edid_firmware() local [all …]
|
A D | drm_edid.c | 98 struct edid *edid; member 1676 struct edid *edid = (struct edid *)raw_edid; in drm_edid_block_valid() local 2093 struct edid *edid; in drm_get_edid() local 2153 struct edid *edid; in drm_edid_get_panel_id() local 2188 struct edid *edid; in drm_get_edid_switcheroo() local 3026 .edid = edid, in add_inferred_modes() 3094 .edid = edid, in add_established_modes() 3122 struct edid *edid = closure->edid; in do_standard_modes() local 3154 .edid = edid, in add_standard_modes() 3245 .edid = edid, in add_cvt_modes() [all …]
|
A D | drm_displayid.c | 36 static const u8 *drm_find_displayid_extension(const struct edid *edid, in drm_find_displayid_extension() argument 40 const u8 *displayid = drm_find_edid_extension(edid, DISPLAYID_EXT, ext_index); in drm_find_displayid_extension() 61 void displayid_iter_edid_begin(const struct edid *edid, in displayid_iter_edid_begin() argument 66 iter->edid = edid; in displayid_iter_edid_begin() 91 if (!iter->edid) in __displayid_iter_next() 99 iter->edid = NULL; in __displayid_iter_next() 112 iter->section = drm_find_displayid_extension(iter->edid, in __displayid_iter_next() 117 iter->edid = NULL; in __displayid_iter_next()
|
/linux/drivers/media/i2c/adv748x/ |
A D | adv748x-hdmi.c | 467 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv748x_hdmi_get_edid() 472 if (edid->start_block == 0 && edid->blocks == 0) { in adv748x_hdmi_get_edid() 473 edid->blocks = hdmi->edid.blocks; in adv748x_hdmi_get_edid() 477 if (edid->start_block >= hdmi->edid.blocks) in adv748x_hdmi_get_edid() 480 if (edid->start_block + edid->blocks > hdmi->edid.blocks) in adv748x_hdmi_get_edid() 481 edid->blocks = hdmi->edid.blocks - edid->start_block; in adv748x_hdmi_get_edid() 483 memcpy(edid->edid, hdmi->edid.edid + edid->start_block * 128, in adv748x_hdmi_get_edid() 546 memcpy(hdmi->edid.edid, edid->edid, 128 * edid->blocks); in adv748x_hdmi_set_edid() 547 hdmi->edid.blocks = edid->blocks; in adv748x_hdmi_set_edid() 551 edid->edid[0x16]); in adv748x_hdmi_set_edid() [all …]
|
/linux/include/drm/ |
A D | drm_edid.h | 320 struct edid { struct 375 int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads); argument 376 int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb); 392 bool drm_edid_are_equal(const struct edid *edid1, const struct edid *edid2); 567 struct edid *drm_edid_duplicate(const struct edid *edid); 568 int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid); 572 bool drm_detect_hdmi_monitor(struct edid *edid); 573 bool drm_detect_monitor_audio(struct edid *edid); 584 bool drm_edid_is_valid(struct edid *edid); 585 void drm_edid_get_monitor_name(struct edid *edid, char *name, [all …]
|
/linux/drivers/media/i2c/ |
A D | ad9389b.c | 343 struct ad9389b_state_edid *edid = &state->edid; in ad9389b_log_status() local 376 edid->segments ? "found" : "no", edid->blocks); in ad9389b_log_status() 668 if (edid->pad != 0) in ad9389b_get_edid() 670 if (edid->blocks == 0 || edid->blocks > 256) 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() 680 memcpy(edid->edid, &state->edid.data[edid->start_block * 128], in ad9389b_get_edid() 1032 state->edid.blocks = state->edid.data[0x7e] + 1; in ad9389b_check_edid_status() 1046 if (((state->edid.data[0x7e] >> 1) + 1) > state->edid.segments) { in ad9389b_check_edid_status() [all …]
|
A D | adv7511-v4l2.c | 571 struct adv7511_state_edid *edid = &state->edid; in adv7511_log_status() local 601 edid->blocks); in adv7511_log_status() 1193 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv7511_get_edid() 1198 if (edid->start_block == 0 && edid->blocks == 0) { in adv7511_get_edid() 1199 edid->blocks = state->edid.blocks; in adv7511_get_edid() 1206 if (edid->start_block >= state->edid.blocks) in adv7511_get_edid() 1209 if (edid->start_block + edid->blocks > state->edid.blocks) in adv7511_get_edid() 1210 edid->blocks = state->edid.blocks - edid->start_block; in adv7511_get_edid() 1212 memcpy(edid->edid, &state->edid.data[edid->start_block * 128], in adv7511_get_edid() 1671 state->edid.blocks = state->edid.data[0x7e] + 1; in adv7511_check_edid_status() [all …]
|
A D | adv7604.c | 2285 data = state->edid.edid; in adv76xx_get_edid() 2302 if (edid->start_block + edid->blocks > state->edid.blocks) in adv76xx_get_edid() 2303 edid->blocks = state->edid.blocks - edid->start_block; in adv76xx_get_edid() 2305 memcpy(edid->edid, data + edid->start_block * 128, edid->blocks * 128); in adv76xx_get_edid() 2349 pa = v4l2_get_edid_phys_addr(edid->edid, edid->blocks * 128, &spa_loc); in adv76xx_set_edid() 2360 pa = (edid->edid[spa_loc] << 8) | edid->edid[spa_loc + 1]; in adv76xx_set_edid() 2403 memcpy(state->edid.edid, edid->edid, 128 * edid->blocks); in adv76xx_set_edid() 2404 state->edid.blocks = edid->blocks; in adv76xx_set_edid() 2406 edid->edid[0x16]); in adv76xx_set_edid() 2407 state->edid.present |= 1 << edid->pad; in adv76xx_set_edid() [all …]
|
/linux/drivers/video/fbdev/core/ |
A D | fbmon.c | 221 edid[127] += 0x80; in fix_edid() 249 csum += edid[i]; in fix_edid() 251 edid[127] = 256 - csum; in fix_edid() 262 fix_edid(edid, fix); in edid_checksum() 265 csum += edid[i]; in edid_checksum() 266 all_null |= edid[i]; in edid_checksum() 282 fix_edid(edid, fix); in edid_check_header() 628 if (edid == NULL || !edid_checksum(edid) || in fb_create_modedb() 942 if (edid == NULL) in fb_edid_to_monspecs() 1504 edid = edid_info.dummy; in fb_firmware_edid() [all …]
|
/linux/include/media/ |
A D | cec.h | 287 struct edid; 302 const struct edid *edid); 414 const struct edid *edid) in cec_s_phys_addr_from_edid() argument 487 if (edid[0x7e] + 1 < blocks) in cec_get_edid_spa_location() 488 blocks = edid[0x7e] + 1; in cec_get_edid_spa_location() 494 if (edid[offset] != 0x02 || edid[offset + 1] != 0x03) in cec_get_edid_spa_location() 498 d = edid[offset + 2] & 0x7f; in cec_get_edid_spa_location() 508 u8 tag = edid[i] >> 5; in cec_get_edid_spa_location() 509 u8 len = edid[i] & 0x1f; in cec_get_edid_spa_location() 512 edid[i + 1] == 0x03 && in cec_get_edid_spa_location() [all …]
|
A 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/drivers/gpu/drm/i915/display/ |
A D | intel_connector.c | 100 if (!IS_ERR_OR_NULL(intel_connector->edid)) in intel_connector_destroy() 101 kfree(intel_connector->edid); in intel_connector_destroy() 183 struct edid *edid) in intel_connector_update_modes() argument 187 drm_connector_update_edid_property(connector, edid); in intel_connector_update_modes() 188 ret = drm_add_edid_modes(connector, edid); in intel_connector_update_modes() 203 struct edid *edid; in intel_ddc_get_modes() local 206 edid = drm_get_edid(connector, adapter); in intel_ddc_get_modes() 207 if (!edid) in intel_ddc_get_modes() 210 ret = intel_connector_update_modes(connector, edid); in intel_ddc_get_modes() 211 kfree(edid); in intel_ddc_get_modes()
|
/linux/drivers/gpu/drm/gma500/ |
A D | psb_intel_modes.c | 53 struct edid *edid; in psb_intel_ddc_get_modes() local 56 edid = drm_get_edid(connector, adapter); in psb_intel_ddc_get_modes() 57 if (edid) { in psb_intel_ddc_get_modes() 58 drm_connector_update_edid_property(connector, edid); in psb_intel_ddc_get_modes() 59 ret = drm_add_edid_modes(connector, edid); in psb_intel_ddc_get_modes() 60 kfree(edid); in psb_intel_ddc_get_modes()
|
A D | cdv_intel_hdmi.c | 130 struct edid *edid = NULL; in cdv_hdmi_detect() local 137 if (edid) { in cdv_hdmi_detect() 138 if (edid->input & DRM_EDID_INPUT_DIGITAL) { in cdv_hdmi_detect() 141 drm_detect_hdmi_monitor(edid); in cdv_hdmi_detect() 143 drm_detect_monitor_audio(edid); in cdv_hdmi_detect() 145 kfree(edid); in cdv_hdmi_detect() 212 struct edid *edid = NULL; in cdv_hdmi_get_modes() local 216 if (edid) { in cdv_hdmi_get_modes() 217 drm_connector_update_edid_property(connector, edid); in cdv_hdmi_get_modes() 218 ret = drm_add_edid_modes(connector, edid); in cdv_hdmi_get_modes() [all …]
|
/linux/drivers/gpu/drm/msm/dp/ |
A D | dp_panel.c | 133 struct edid *edid) in dp_panel_update_modes() argument 137 if (edid) { in dp_panel_update_modes() 197 kfree(dp_panel->edid); in dp_panel_read_sink_caps() 198 dp_panel->edid = NULL; in dp_panel_read_sink_caps() 202 if (!dp_panel->edid) { in dp_panel_read_sink_caps() 264 if (dp_panel->edid) in dp_panel_get_modes() 270 static u8 dp_panel_get_edid_checksum(struct edid *edid) in dp_panel_get_edid_checksum() argument 276 if (!edid) { in dp_panel_get_edid_checksum() 281 raw_edid = (u8 *)edid; in dp_panel_get_edid_checksum() 308 if (dp_panel->edid) in dp_panel_handle_sink_request() [all …]
|
/linux/drivers/gpu/drm/bridge/ |
A D | nxp-ptn3460.c | 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() 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() 196 drm_connector_update_edid_property(connector, edid); in ptn3460_connector_get_modes() 197 num_modes = drm_add_edid_modes(connector, edid); in ptn3460_connector_get_modes() [all …]
|
A D | simple-bridge.c | 52 struct edid *edid; in simple_bridge_get_modes() local 56 edid = drm_bridge_get_edid(sbridge->next_bridge, connector); in simple_bridge_get_modes() 57 if (!edid) in simple_bridge_get_modes() 60 edid = NULL; in simple_bridge_get_modes() 63 if (!edid) { in simple_bridge_get_modes() 74 drm_connector_update_edid_property(connector, edid); in simple_bridge_get_modes() 75 ret = drm_add_edid_modes(connector, edid); in simple_bridge_get_modes() 76 kfree(edid); in simple_bridge_get_modes()
|
/linux/drivers/gpu/drm/tegra/ |
A D | output.c | 20 struct edid *edid = NULL; in tegra_output_connector_get_modes() local 33 if (output->edid) in tegra_output_connector_get_modes() 34 edid = kmemdup(output->edid, sizeof(*edid), GFP_KERNEL); in tegra_output_connector_get_modes() 36 edid = drm_get_edid(connector, output->ddc); in tegra_output_connector_get_modes() 38 cec_notifier_set_phys_addr_from_edid(output->cec, edid); in tegra_output_connector_get_modes() 39 drm_connector_update_edid_property(connector, edid); in tegra_output_connector_get_modes() 41 if (edid) { in tegra_output_connector_get_modes() 42 err = drm_add_edid_modes(connector, edid); in tegra_output_connector_get_modes() 43 kfree(edid); in tegra_output_connector_get_modes() 123 output->edid = of_get_property(output->of_node, "nvidia,edid", &size); in tegra_output_probe()
|
/linux/drivers/gpu/drm/udl/ |
A D | udl_connector.c | 53 drm_connector_update_edid_property(connector, udl_connector->edid); in udl_get_modes() 54 if (udl_connector->edid) in udl_get_modes() 55 return drm_add_edid_modes(connector, udl_connector->edid); in udl_get_modes() 82 if (udl_connector->edid != NULL) { in udl_detect() 83 kfree(udl_connector->edid); in udl_detect() 84 udl_connector->edid = NULL; in udl_detect() 87 udl_connector->edid = drm_do_get_edid(connector, udl_get_edid_block, udl); in udl_detect() 88 if (!udl_connector->edid) in udl_detect() 102 kfree(udl_connector->edid); in udl_connector_destroy()
|
/linux/drivers/gpu/drm/i915/gvt/ |
A D | edid.c | 54 if (edid->state == I2C_NOT_SPECIFIED || !edid->slave_selected) { in edid_get_byte() 63 if (!edid->edid_available) { in edid_get_byte() 70 intel_vgpu_port(vgpu, edid->port)->edid; in edid_get_byte() 73 edid->current_edid_read++; in edid_get_byte() 572 edid->state = I2C_NOT_SPECIFIED; in intel_vgpu_init_i2c_edid() 574 edid->port = -1; in intel_vgpu_init_i2c_edid() 575 edid->slave_selected = false; in intel_vgpu_init_i2c_edid() 576 edid->edid_available = false; in intel_vgpu_init_i2c_edid() 577 edid->current_edid_read = 0; in intel_vgpu_init_i2c_edid() 581 edid->aux_ch.i2c_over_aux_ch = false; in intel_vgpu_init_i2c_edid() [all …]
|
/linux/Documentation/devicetree/bindings/media/i2c/ |
A D | adv7604.yaml | 36 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 37 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 38 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 39 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 40 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 41 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 42 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 43 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 44 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ] 131 * The edid page will be accessible @ 0x66 on the I2C bus. All [all …]
|
/linux/drivers/gpu/drm/exynos/ |
A D | exynos_drm_vidi.c | 43 struct edid *raw_edid; 199 ctx->raw_edid = (struct edid *)fake_edid_info; in vidi_store_connection() 202 if (ctx->raw_edid != (struct edid *)fake_edid_info) { in vidi_store_connection() 248 struct edid *raw_edid; in vidi_connection_ioctl() 250 raw_edid = (struct edid *)(unsigned long)vidi->edid; in vidi_connection_ioctl() 268 (struct edid *)fake_edid_info) { in vidi_connection_ioctl() 309 struct edid *edid; in vidi_get_modes() local 322 edid = kmemdup(ctx->raw_edid, edid_len, GFP_KERNEL); in vidi_get_modes() 323 if (!edid) { in vidi_get_modes() 328 drm_connector_update_edid_property(connector, edid); in vidi_get_modes() [all …]
|
/linux/drivers/gpu/drm/nouveau/ |
A D | nouveau_connector.c | 536 struct edid *edid) in nouveau_connector_set_edid() argument 538 if (nv_connector->edid != edid) { in nouveau_connector_set_edid() 539 struct edid *old_edid = nv_connector->edid; in nouveau_connector_set_edid() 543 nv_connector->edid = edid; in nouveau_connector_set_edid() 667 struct edid *edid = NULL; in nouveau_connector_detect_lvds() local 678 edid = nv_connector->edid; in nouveau_connector_detect_lvds() 694 if (edid) { in nouveau_connector_detect_lvds() 714 edid = (struct edid *)nouveau_bios_embedded_edid(dev); in nouveau_connector_detect_lvds() 715 if (edid) { in nouveau_connector_detect_lvds() 716 edid = kmemdup(edid, EDID_LENGTH, GFP_KERNEL); in nouveau_connector_detect_lvds() [all …]
|
/linux/drivers/media/test-drivers/vivid/ |
A D | vivid-vid-common.c | 1021 struct v4l2_edid *edid) in vidioc_g_edid() argument 1027 memset(edid->reserved, 0, sizeof(edid->reserved)); in vidioc_g_edid() 1029 if (edid->pad >= dev->num_inputs) in vidioc_g_edid() 1031 if (dev->input_type[edid->pad] != HDMI) in vidioc_g_edid() 1037 if (edid->pad >= dev->num_outputs) in vidioc_g_edid() 1041 if (!dev->display_present[edid->pad]) in vidioc_g_edid() 1046 if (edid->start_block == 0 && edid->blocks == 0) { in vidioc_g_edid() 1047 edid->blocks = dev->edid_blocks; in vidioc_g_edid() 1054 if (edid->blocks > dev->edid_blocks - edid->start_block) in vidioc_g_edid() 1055 edid->blocks = dev->edid_blocks - edid->start_block; in vidioc_g_edid() [all …]
|
/linux/drivers/gpu/drm/amd/display/amdgpu_dm/ |
A D | amdgpu_dm_helpers.c | 87 const struct dc_edid *edid, in dm_helpers_parse_edid_caps() argument 90 struct edid *edid_buf = (struct edid *) edid->raw_edid; in dm_helpers_parse_edid_caps() 100 if (!edid_caps || !edid) in dm_helpers_parse_edid_caps() 130 (struct edid *) edid->raw_edid); in dm_helpers_parse_edid_caps() 132 sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads); in dm_helpers_parse_edid_caps() 146 sadb_count = drm_edid_to_speaker_allocation((struct edid *) edid->raw_edid, &sadb); in dm_helpers_parse_edid_caps() 621 struct edid *edid; in dm_helpers_read_local_edid() local 633 edid = drm_get_edid(&aconnector->base, ddc); in dm_helpers_read_local_edid() 639 if (!edid && connector->edid_corrupt) { in dm_helpers_read_local_edid() 644 if (!edid) in dm_helpers_read_local_edid() [all …]
|