/kernel/linux/linux-5.10/drivers/gpu/drm/ |
D | drm_edid_load.c | 162 static int edid_size(const u8 *edid, int data_size) in edid_size() argument 167 return (edid[0x7e] + 1) * EDID_LENGTH; in edid_size() 175 u8 *edid; in edid_load() local 211 edid = ERR_PTR(-EINVAL); in edid_load() 215 edid = kmemdup(fwdata, fwsize, GFP_KERNEL); in edid_load() 216 if (edid == NULL) { in edid_load() 217 edid = ERR_PTR(-ENOMEM); in edid_load() 221 if (!drm_edid_block_valid(edid, 0, print_bad_edid, in edid_load() 226 kfree(edid); in edid_load() 227 edid = ERR_PTR(-EINVAL); in edid_load() [all …]
|
D | drm_edid.c | 47 #define version_greater(edid, maj, min) \ argument 48 (((edid)->version > (maj)) || \ 49 ((edid)->version == (maj) && (edid)->revision > (min))) 91 struct edid *edid; member 1625 bool drm_edid_are_equal(const struct edid *edid1, const struct edid *edid2) in drm_edid_are_equal() 1665 struct edid *edid = (struct edid *)raw_edid; in drm_edid_block_valid() local 1716 if (edid->version != 1) { in drm_edid_block_valid() 1717 DRM_NOTE("EDID has major version %d, instead of 1\n", edid->version); in drm_edid_block_valid() 1721 if (edid->revision > 4) in drm_edid_block_valid() 1754 bool drm_edid_is_valid(struct edid *edid) in drm_edid_is_valid() argument [all …]
|
D | drm_bridge_connector.c | 236 struct edid *edid; in drm_bridge_connector_get_modes_edid() local 243 edid = bridge->funcs->get_edid(bridge, connector); in drm_bridge_connector_get_modes_edid() 244 if (!edid || !drm_edid_is_valid(edid)) { in drm_bridge_connector_get_modes_edid() 245 kfree(edid); in drm_bridge_connector_get_modes_edid() 249 drm_connector_update_edid_property(connector, edid); in drm_bridge_connector_get_modes_edid() 250 n = drm_add_edid_modes(connector, edid); in drm_bridge_connector_get_modes_edid() 252 kfree(edid); in drm_bridge_connector_get_modes_edid()
|
/kernel/linux/linux-5.10/drivers/media/i2c/adv748x/ |
D | adv748x-hdmi.c | 462 static int adv748x_hdmi_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv748x_hdmi_get_edid() argument 466 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv748x_hdmi_get_edid() 468 if (!hdmi->edid.present) in adv748x_hdmi_get_edid() 471 if (edid->start_block == 0 && edid->blocks == 0) { in adv748x_hdmi_get_edid() 472 edid->blocks = hdmi->edid.blocks; in adv748x_hdmi_get_edid() 476 if (edid->start_block >= hdmi->edid.blocks) in adv748x_hdmi_get_edid() 479 if (edid->start_block + edid->blocks > hdmi->edid.blocks) in adv748x_hdmi_get_edid() 480 edid->blocks = hdmi->edid.blocks - edid->start_block; in adv748x_hdmi_get_edid() 482 memcpy(edid->edid, hdmi->edid.edid + edid->start_block * 128, in adv748x_hdmi_get_edid() 483 edid->blocks * 128); in adv748x_hdmi_get_edid() [all …]
|
/kernel/linux/linux-5.10/include/drm/ |
D | drm_edid.h | 290 struct edid { struct 345 int drm_edid_to_sad(struct edid *edid, struct cea_sad **sads); argument 346 int drm_edid_to_speaker_allocation(struct edid *edid, u8 **sadb); 351 struct edid *drm_load_edid_firmware(struct drm_connector *connector); 355 static inline struct edid * 362 bool drm_edid_are_equal(const struct edid *edid1, const struct edid *edid2); 482 struct edid *drm_do_get_edid(struct drm_connector *connector, 486 struct edid *drm_get_edid(struct drm_connector *connector, 488 struct edid *drm_get_edid_switcheroo(struct drm_connector *connector, 490 struct edid *drm_edid_duplicate(const struct edid *edid); [all …]
|
/kernel/linux/patches/linux-5.10/imx8mm_patch/patches/drivers/ |
D | 0035_linux_drivers_video.patch | 169 +#include "../edid.h" 406 +int mxc_edid_parse_ext_blk(unsigned char *edid, 416 + if (edid[index++] != 0x2) /* only support cea ext block now */ 418 + revision = edid[index++]; 424 + detail_timing_desc_offset = edid[index++]; 427 + cfg->cea_underscan = (edid[index] >> 7) & 0x1; 428 + cfg->cea_basicaudio = (edid[index] >> 6) & 0x1; 429 + cfg->cea_ycbcr444 = (edid[index] >> 5) & 0x1; 430 + cfg->cea_ycbcr422 = (edid[index] >> 4) & 0x1; 445 + tagcode = (edid[index] >> 5) & 0x7; [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/gma500/ |
D | psb_intel_modes.c | 52 struct edid *edid; in psb_intel_ddc_get_modes() local 55 edid = drm_get_edid(connector, adapter); in psb_intel_ddc_get_modes() 56 if (edid) { in psb_intel_ddc_get_modes() 57 drm_connector_update_edid_property(connector, edid); in psb_intel_ddc_get_modes() 58 ret = drm_add_edid_modes(connector, edid); in psb_intel_ddc_get_modes() 59 kfree(edid); in psb_intel_ddc_get_modes()
|
D | cdv_intel_hdmi.c | 134 struct edid *edid = NULL; in cdv_hdmi_detect() local 137 edid = drm_get_edid(connector, &gma_encoder->i2c_bus->adapter); in cdv_hdmi_detect() 141 if (edid) { in cdv_hdmi_detect() 142 if (edid->input & DRM_EDID_INPUT_DIGITAL) { in cdv_hdmi_detect() 145 drm_detect_hdmi_monitor(edid); in cdv_hdmi_detect() 147 drm_detect_monitor_audio(edid); in cdv_hdmi_detect() 149 kfree(edid); in cdv_hdmi_detect() 216 struct edid *edid = NULL; in cdv_hdmi_get_modes() local 219 edid = drm_get_edid(connector, &gma_encoder->i2c_bus->adapter); in cdv_hdmi_get_modes() 220 if (edid) { in cdv_hdmi_get_modes() [all …]
|
/kernel/linux/linux-5.10/include/media/ |
D | cec.h | 287 struct edid; 302 const struct edid *edid); 386 u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size, 414 const struct edid *edid) in cec_s_phys_addr_from_edid() argument 418 static inline u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size, in cec_get_edid_phys_addr() argument 469 static inline unsigned int cec_get_edid_spa_location(const u8 *edid, in cec_get_edid_spa_location() 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() [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
|
/kernel/linux/linux-5.10/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-v4l2.c | 120 struct adv7511_state_edid edid; member 582 struct adv7511_state_edid *edid = &state->edid; in adv7511_log_status() local 611 edid->segments ? "found" : "no", in adv7511_log_status() 612 edid->blocks); in adv7511_log_status() 1200 static int adv7511_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv7511_get_edid() argument 1204 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv7511_get_edid() 1206 if (edid->pad != 0) in adv7511_get_edid() 1209 if (edid->start_block == 0 && edid->blocks == 0) { in adv7511_get_edid() 1210 edid->blocks = state->edid.segments * 2; in adv7511_get_edid() 1214 if (state->edid.segments == 0) in adv7511_get_edid() [all …]
|
D | adv7604.c | 179 u8 edid[256]; member 182 } edid; member 532 adv76xx_set_hpd(state, state->edid.present); in adv76xx_delayed_work_enable_hotplug() 2258 static int adv76xx_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv76xx_get_edid() argument 2263 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv76xx_get_edid() 2265 switch (edid->pad) { in adv76xx_get_edid() 2270 if (state->edid.present & (1 << edid->pad)) in adv76xx_get_edid() 2271 data = state->edid.edid; in adv76xx_get_edid() 2277 if (edid->start_block == 0 && edid->blocks == 0) { in adv76xx_get_edid() 2278 edid->blocks = data ? state->edid.blocks : 0; in adv76xx_get_edid() [all …]
|
/kernel/linux/linux-5.10/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 …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/i915/display/ |
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()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/tegra/ |
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()
|
/kernel/linux/linux-5.10/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 | 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()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/udl/ |
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()
|
/kernel/linux/linux-5.10/drivers/gpu/drm/msm/dp/ |
D | dp_panel.c | 133 struct edid *edid) in dp_panel_update_modes() argument 137 if (edid) { in dp_panel_update_modes() 138 rc = drm_connector_update_edid_property(connector, edid); in dp_panel_update_modes() 143 rc = drm_add_edid_modes(connector, edid); in dp_panel_update_modes() 192 kfree(dp_panel->edid); in dp_panel_read_sink_caps() 193 dp_panel->edid = NULL; in dp_panel_read_sink_caps() 195 dp_panel->edid = drm_get_edid(connector, in dp_panel_read_sink_caps() 197 if (!dp_panel->edid) { in dp_panel_read_sink_caps() 254 if (dp_panel->edid) in dp_panel_get_modes() 255 return dp_panel_update_modes(connector, dp_panel->edid); in dp_panel_get_modes() [all …]
|
/kernel/linux/linux-5.10/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() 570 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; in intel_vgpu_init_i2c_edid() local 572 edid->state = I2C_NOT_SPECIFIED; in intel_vgpu_init_i2c_edid() [all …]
|
/kernel/linux/linux-5.10/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() 114 sadb_count = drm_edid_to_speaker_allocation((struct edid *) edid->raw_edid, &sadb); in dm_helpers_parse_edid_caps() 561 struct edid *edid; in dm_helpers_read_local_edid() local 573 edid = drm_get_edid(&aconnector->base, ddc); in dm_helpers_read_local_edid() 579 if (!edid && connector->edid_corrupt) { in dm_helpers_read_local_edid() 584 if (!edid) in dm_helpers_read_local_edid() [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/exynos/ |
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 …]
|
/kernel/linux/linux-5.10/drivers/media/test-drivers/vivid/ |
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() 1039 if (dev->output_type[edid->pad] != HDMI) in vidioc_g_edid() 1041 if (!dev->display_present[edid->pad]) in vidioc_g_edid() 1043 bus_idx = dev->cec_output2bus_map[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() [all …]
|
/kernel/linux/linux-5.10/drivers/gpu/drm/nouveau/ |
D | nouveau_connector.c | 399 kfree(nv_connector->edid); in nouveau_connector_destroy() 472 const void *edid = of_get_property(cn, "EDID", NULL); in nouveau_connector_of_detect() local 475 if (nv_encoder->dcb->i2c_index == idx && edid) { in nouveau_connector_of_detect() 476 nv_connector->edid = in nouveau_connector_of_detect() 477 kmemdup(edid, EDID_LENGTH, GFP_KERNEL); in nouveau_connector_of_detect() 533 struct edid *edid) in nouveau_connector_set_edid() argument 535 if (nv_connector->edid != edid) { in nouveau_connector_set_edid() 536 struct edid *old_edid = nv_connector->edid; in nouveau_connector_set_edid() 538 drm_connector_update_edid_property(&nv_connector->base, edid); in nouveau_connector_set_edid() 540 nv_connector->edid = edid; in nouveau_connector_set_edid() [all …]
|