Home
last modified time | relevance | path

Searched refs:edid (Results 1 – 25 of 173) sorted by relevance

1234567

/linux-6.12.1/drivers/media/i2c/adv748x/
Dadv748x-hdmi.c470 static int adv748x_hdmi_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv748x_hdmi_get_edid() argument
474 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv748x_hdmi_get_edid()
476 if (!hdmi->edid.present) in adv748x_hdmi_get_edid()
479 if (edid->start_block == 0 && edid->blocks == 0) { in adv748x_hdmi_get_edid()
480 edid->blocks = hdmi->edid.blocks; in adv748x_hdmi_get_edid()
484 if (edid->start_block >= hdmi->edid.blocks) in adv748x_hdmi_get_edid()
487 if (edid->start_block + edid->blocks > hdmi->edid.blocks) in adv748x_hdmi_get_edid()
488 edid->blocks = hdmi->edid.blocks - edid->start_block; in adv748x_hdmi_get_edid()
490 memcpy(edid->edid, hdmi->edid.edid + edid->start_block * 128, in adv748x_hdmi_get_edid()
491 edid->blocks * 128); in adv748x_hdmi_get_edid()
[all …]
/linux-6.12.1/include/drm/
Ddrm_edid.h284 struct edid { struct
346 int drm_edid_to_sad(const struct edid *edid, struct cea_sad **sads); argument
347 int drm_edid_to_speaker_allocation(const struct edid *edid, u8 **sadb);
426 struct edid *drm_get_edid(struct drm_connector *connector,
428 struct edid *drm_get_edid_switcheroo(struct drm_connector *connector,
430 struct edid *drm_edid_duplicate(const struct edid *edid);
431 int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid);
435 bool drm_detect_hdmi_monitor(const struct edid *edid);
436 bool drm_detect_monitor_audio(const struct edid *edid);
442 int drm_edid_header_is_valid(const void *edid);
[all …]
/linux-6.12.1/drivers/gpu/drm/
Ddrm_edid.c1595 const struct edid *edid; member
1598 static int edid_hfeeodb_extension_block_count(const struct edid *edid);
1600 static int edid_hfeeodb_block_count(const struct edid *edid) in edid_hfeeodb_block_count() argument
1602 int eeodb = edid_hfeeodb_extension_block_count(edid); in edid_hfeeodb_block_count()
1607 static int edid_extension_block_count(const struct edid *edid) in edid_extension_block_count() argument
1609 return edid->extensions; in edid_extension_block_count()
1612 static int edid_block_count(const struct edid *edid) in edid_block_count() argument
1614 return edid_extension_block_count(edid) + 1; in edid_block_count()
1622 static int edid_size(const struct edid *edid) in edid_size() argument
1624 return edid_size_by_blocks(edid_block_count(edid)); in edid_size()
[all …]
/linux-6.12.1/drivers/gpu/drm/gma500/
Dpsb_intel_modes.c55 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()
Dcdv_intel_hdmi.c131 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 …]
Doaktrail_lvds.c299 struct edid *edid; in oaktrail_lvds_init() local
359 edid = NULL; in oaktrail_lvds_init()
364 edid = drm_get_edid(connector, i2c_adap); in oaktrail_lvds_init()
366 if (edid == NULL && dev_priv->lpc_gpio_base) { in oaktrail_lvds_init()
370 edid = drm_get_edid(connector, i2c_adap); in oaktrail_lvds_init()
385 if (edid) { in oaktrail_lvds_init()
386 drm_connector_update_edid_property(connector, edid); in oaktrail_lvds_init()
387 drm_add_edid_modes(connector, edid); in oaktrail_lvds_init()
388 kfree(edid); in oaktrail_lvds_init()
Dpsb_intel_sdvo.c1231 static struct edid *
1239 static struct edid *
1253 struct edid *edid; in psb_intel_sdvo_hdmi_sink_detect() local
1255 edid = psb_intel_sdvo_get_edid(connector); in psb_intel_sdvo_hdmi_sink_detect()
1257 if (edid == NULL && psb_intel_sdvo_multifunc_encoder(psb_intel_sdvo)) { in psb_intel_sdvo_hdmi_sink_detect()
1266 edid = psb_intel_sdvo_get_edid(connector); in psb_intel_sdvo_hdmi_sink_detect()
1267 if (edid) in psb_intel_sdvo_hdmi_sink_detect()
1274 if (edid == NULL) in psb_intel_sdvo_hdmi_sink_detect()
1282 if (edid == NULL) in psb_intel_sdvo_hdmi_sink_detect()
1283 edid = psb_intel_sdvo_get_analog_edid(connector); in psb_intel_sdvo_hdmi_sink_detect()
[all …]
/linux-6.12.1/drivers/video/fbdev/core/
Dfbmon.c145 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 …]
Dfb_ddc.c57 unsigned char *edid = NULL; in fb_ddc_read() local
90 edid = fb_do_probe_ddc_edid(adapter); in fb_ddc_read()
110 if (edid) in fb_ddc_read()
119 return edid; in fb_ddc_read()
/linux-6.12.1/include/media/
Dcec.h362 struct edid;
377 const struct edid *edid);
461 u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size,
489 const struct edid *edid) in cec_s_phys_addr_from_edid() argument
493 static inline u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size, in cec_get_edid_phys_addr() argument
544 static inline unsigned int cec_get_edid_spa_location(const u8 *edid, in cec_get_edid_spa_location() argument
562 if (edid[0x7e] + 1 < blocks) in cec_get_edid_spa_location()
563 blocks = edid[0x7e] + 1; in cec_get_edid_spa_location()
569 if (edid[offset] != 0x02 || edid[offset + 1] != 0x03) in cec_get_edid_spa_location()
573 d = edid[offset + 2] & 0x7f; in cec_get_edid_spa_location()
[all …]
Dcec-notifier.h16 struct edid;
97 const struct edid *edid);
142 const struct edid *edid) in cec_notifier_set_phys_addr_from_edid() argument
/linux-6.12.1/drivers/media/test-drivers/vivid/
Dvivid-vid-common.c1077 struct v4l2_edid *edid) in vidioc_g_edid() argument
1085 memset(edid->reserved, 0, sizeof(edid->reserved)); in vidioc_g_edid()
1087 if (edid->pad >= dev->num_inputs) in vidioc_g_edid()
1089 if (dev->input_type[edid->pad] != HDMI) in vidioc_g_edid()
1093 if (edid->pad >= dev->num_outputs) in vidioc_g_edid()
1095 if (dev->output_type[edid->pad] != HDMI) in vidioc_g_edid()
1097 dev_rx = dev->output_to_input_instance[edid->pad]; in vidioc_g_edid()
1101 unsigned int hdmi_output = dev->output_to_iface_index[edid->pad]; in vidioc_g_edid()
1105 if (edid->start_block == 0 && edid->blocks == 0) { in vidioc_g_edid()
1106 edid->blocks = dev_rx->edid_blocks; in vidioc_g_edid()
[all …]
/linux-6.12.1/drivers/media/cec/usb/extron-da-hd-4k-plus/
Dextron-da-hd-4k-plus.c252 const u8 *edid = port->edid; in extron_parse_edid() local
261 port->est_i = edid[0x23]; in extron_parse_edid()
262 port->est_ii = edid[0x24]; in extron_parse_edid()
266 const u8 *dtd = edid + 0x36 + i * 18; in extron_parse_edid()
292 edid += 128; in extron_parse_edid()
295 if (edid[0] != 0x02 || edid[1] != 0x03) in extron_parse_edid()
299 d = edid[2] & 0x7f; in extron_parse_edid()
308 u8 tag = edid[i] >> 5; in extron_parse_edid()
309 u8 len = edid[i] & 0x1f; in extron_parse_edid()
318 if (memchr(edid + i + 1, 97, len)) in extron_parse_edid()
[all …]
/linux-6.12.1/drivers/gpu/drm/i915/gvt/
Dedid.c54 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; in edid_get_byte() local
57 if (edid->state == I2C_NOT_SPECIFIED || !edid->target_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-6.12.1/drivers/media/i2c/
Dadv7511-v4l2.c114 struct adv7511_state_edid edid; member
543 struct adv7511_state_edid *edid = &state->edid; in adv7511_log_status() local
572 edid->segments ? "found" : "no", in adv7511_log_status()
573 edid->blocks); in adv7511_log_status()
1165 static int adv7511_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv7511_get_edid() argument
1169 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv7511_get_edid()
1171 if (edid->pad != 0) in adv7511_get_edid()
1174 if (edid->start_block == 0 && edid->blocks == 0) { in adv7511_get_edid()
1175 edid->blocks = state->edid.blocks; in adv7511_get_edid()
1179 if (state->edid.blocks == 0) in adv7511_get_edid()
[all …]
Dadv7604.c186 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 …]
Dtda1997x.c273 u8 edid[256]; member
276 } edid; member
572 state->edid.present = 1; in tda1997x_delayed_work_enable_hpd()
1841 static int tda1997x_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in tda1997x_get_edid() argument
1845 v4l_dbg(1, debug, state->client, "%s pad=%d\n", __func__, edid->pad); in tda1997x_get_edid()
1846 memset(edid->reserved, 0, sizeof(edid->reserved)); in tda1997x_get_edid()
1848 if (edid->start_block == 0 && edid->blocks == 0) { in tda1997x_get_edid()
1849 edid->blocks = state->edid.blocks; in tda1997x_get_edid()
1853 if (!state->edid.present) in tda1997x_get_edid()
1856 if (edid->start_block >= state->edid.blocks) in tda1997x_get_edid()
[all …]
Dtc358743.c1735 struct v4l2_subdev_edid *edid) in tc358743_g_edid() argument
1739 memset(edid->reserved, 0, sizeof(edid->reserved)); in tc358743_g_edid()
1741 if (edid->pad != 0) in tc358743_g_edid()
1744 if (edid->start_block == 0 && edid->blocks == 0) { in tc358743_g_edid()
1745 edid->blocks = state->edid_blocks_written; in tc358743_g_edid()
1752 if (edid->start_block >= state->edid_blocks_written || in tc358743_g_edid()
1753 edid->blocks == 0) in tc358743_g_edid()
1756 if (edid->start_block + edid->blocks > state->edid_blocks_written) in tc358743_g_edid()
1757 edid->blocks = state->edid_blocks_written - edid->start_block; in tc358743_g_edid()
1759 i2c_rd(sd, EDID_RAM + (edid->start_block * EDID_BLOCK_SIZE), edid->edid, in tc358743_g_edid()
[all …]
/linux-6.12.1/drivers/gpu/drm/nouveau/
Dnouveau_connector.c400 kfree(nv_connector->edid); in nouveau_connector_destroy()
489 const void *edid = of_get_property(cn, "EDID", NULL); in nouveau_connector_of_detect() local
492 if (nv_encoder->dcb->i2c_index == idx && edid) { in nouveau_connector_of_detect()
493 nv_connector->edid = in nouveau_connector_of_detect()
494 kmemdup(edid, EDID_LENGTH, GFP_KERNEL); in nouveau_connector_of_detect()
552 struct edid *edid) in nouveau_connector_set_edid() argument
554 if (nv_connector->edid != edid) { in nouveau_connector_set_edid()
555 struct edid *old_edid = nv_connector->edid; in nouveau_connector_set_edid()
557 drm_connector_update_edid_property(&nv_connector->base, edid); in nouveau_connector_set_edid()
559 nv_connector->edid = edid; in nouveau_connector_set_edid()
[all …]
/linux-6.12.1/drivers/gpu/drm/amd/display/amdgpu_dm/
Damdgpu_dm_helpers.c49 static u32 edid_extract_panel_id(struct edid *edid) in edid_extract_panel_id() argument
51 return (u32)edid->mfg_id[0] << 24 | in edid_extract_panel_id()
52 (u32)edid->mfg_id[1] << 16 | in edid_extract_panel_id()
53 (u32)EDID_PRODUCT_ID(edid); in edid_extract_panel_id()
56 static void apply_edid_quirks(struct edid *edid, struct dc_edid_caps *edid_caps) in apply_edid_quirks() argument
58 uint32_t panel_id = edid_extract_panel_id(edid); in apply_edid_quirks()
97 const struct dc_edid *edid, in dm_helpers_parse_edid_caps() argument
102 struct edid *edid_buf = edid ? (struct edid *) edid->raw_edid : NULL; in dm_helpers_parse_edid_caps()
111 if (!edid_caps || !edid) in dm_helpers_parse_edid_caps()
133 sad_count = drm_edid_to_sad((struct edid *) edid->raw_edid, &sads); in dm_helpers_parse_edid_caps()
[all …]
/linux-6.12.1/drivers/video/fbdev/nvidia/
Dnv_i2c.c155 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()
/linux-6.12.1/drivers/video/fbdev/savage/
Dsavagefb-i2c.c221 u8 *edid; in savagefb_probe_i2c_connector() local
224 edid = fb_ddc_read(&par->chan.adapter); in savagefb_probe_i2c_connector()
226 edid = NULL; in savagefb_probe_i2c_connector()
228 if (!edid) { in savagefb_probe_i2c_connector()
233 edid = kmemdup(e, EDID_LENGTH, GFP_KERNEL); in savagefb_probe_i2c_connector()
236 *out_edid = edid; in savagefb_probe_i2c_connector()
238 return (edid) ? 0 : 1; in savagefb_probe_i2c_connector()
/linux-6.12.1/drivers/media/cec/core/
Dcec-notifier.c205 const struct edid *edid) in cec_notifier_set_phys_addr_from_edid() argument
212 if (edid && edid->extensions) in cec_notifier_set_phys_addr_from_edid()
213 pa = cec_get_edid_phys_addr((const u8 *)edid, in cec_notifier_set_phys_addr_from_edid()
214 EDID_LENGTH * (edid->extensions + 1), NULL); in cec_notifier_set_phys_addr_from_edid()
/linux-6.12.1/drivers/video/fbdev/aty/
Dradeon_i2c.c144 u8 *edid; in radeon_probe_i2c_connector() local
146 edid = fb_ddc_read(&rinfo->i2c[conn-1].adapter); in radeon_probe_i2c_connector()
149 *out_edid = edid; in radeon_probe_i2c_connector()
150 if (!edid) { in radeon_probe_i2c_connector()
154 if (edid[0x14] & 0x80) { in radeon_probe_i2c_connector()
/linux-6.12.1/drivers/video/fbdev/i810/
Di810-i2c.c158 u8 *edid = NULL; in i810_probe_i2c_connector() local
162 edid = fb_ddc_read(&par->chan[conn].adapter); in i810_probe_i2c_connector()
168 edid = kmemdup(e, EDID_LENGTH, GFP_KERNEL); in i810_probe_i2c_connector()
172 *out_edid = edid; in i810_probe_i2c_connector()
174 return (edid) ? 0 : 1; in i810_probe_i2c_connector()

1234567