Home
last modified time | relevance | path

Searched full:edid (Results 1 – 25 of 340) sorted by relevance

12345678910>>...14

/linux/Documentation/userspace-api/media/v4l/
H A Dvidioc-g-edid.rst13 VIDIOC_G_EDID - VIDIOC_S_EDID - VIDIOC_SUBDEV_G_EDID - VIDIOC_SUBDEV_S_EDID - Get or set the EDID o…
46 These ioctls can be used to get or set an EDID associated with an input
56 pad of the subdevice. If there is no EDID support for the given ``pad``
59 To get the EDID data the application has to fill in the ``pad``,
60 ``start_block``, ``blocks`` and ``edid`` fields, zero the ``reserved``
61 array and call :ref:`VIDIOC_G_EDID <VIDIOC_G_EDID>`. The current EDID from block
63 ``edid`` points to. The ``edid`` pointer must point to memory at least
67 ``blocks`` to the actual number of blocks. If there are no EDID blocks
75 total number of available EDID blocks and it will return 0 without
76 copying any data. This is an easy way to discover how many EDID blocks
[all …]
/linux/drivers/media/i2c/adv748x/
H A Dadv748x-hdmi.c460 static int adv748x_hdmi_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv748x_hdmi_get_edid() argument
464 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv748x_hdmi_get_edid()
466 if (!hdmi->edid.present) in adv748x_hdmi_get_edid()
469 if (edid->start_block == 0 && edid->blocks == 0) { in adv748x_hdmi_get_edid()
470 edid->blocks = hdmi->edid.blocks; in adv748x_hdmi_get_edid()
474 if (edid->start_block >= hdmi->edid.blocks) in adv748x_hdmi_get_edid()
477 if (edid->start_block + edid->blocks > hdmi->edid.blocks) in adv748x_hdmi_get_edid()
478 edid->blocks = hdmi->edid.blocks - edid->start_block; in adv748x_hdmi_get_edid()
480 memcpy(edid->edid, hdmi->edid.edid + edid->start_block * 128, in adv748x_hdmi_get_edid()
481 edid->blocks * 128); in adv748x_hdmi_get_edid()
[all …]
/linux/drivers/gpu/drm/
H A Ddrm_edid.c64 * EDID blocks out in the wild have a variety of bugs, try to collect
203 /* Rotel RSX-1058 forwards sink's EDID but only does HDMI 1.1*/
625 * modes are old-school Mac modes. The EDID spec says the 1152x864@75 mode
1601 * The opaque EDID type, internal to drm_edid.c.
1604 /* Size allocated for edid */
1606 const struct edid *edid; member
1609 static int edid_hfeeodb_extension_block_count(const struct edid *edid);
1611 static int edid_hfeeodb_block_count(const struct edid *edid) in edid_hfeeodb_block_count() argument
1613 int eeodb = edid_hfeeodb_extension_block_count(edid); in edid_hfeeodb_block_count()
1618 static int edid_extension_block_count(const struct edid *edid) in edid_extension_block_count() argument
[all …]
H A Ddrm_panel_backlight_quirks.c48 const struct drm_edid *edid) in drm_panel_min_backlight_quirk_matches() argument
53 if (!drm_edid_match(edid, &quirk->ident)) in drm_panel_min_backlight_quirk_matches()
61 * @edid: EDID of the panel to check
72 int drm_get_panel_min_brightness_quirk(const struct drm_edid *edid) in drm_get_panel_min_brightness_quirk() argument
80 if (!edid) in drm_get_panel_min_brightness_quirk()
86 if (drm_panel_min_backlight_quirk_matches(quirk, edid)) in drm_get_panel_min_brightness_quirk()
/linux/drivers/gpu/drm/gma500/
H A Dpsb_intel_modes.c19 * Fetch the EDID information from @connector using the DDC bus.
24 struct edid *edid; in psb_intel_ddc_get_modes() local
27 edid = drm_get_edid(connector, adapter); in psb_intel_ddc_get_modes()
28 if (edid) { in psb_intel_ddc_get_modes()
29 drm_connector_update_edid_property(connector, edid); in psb_intel_ddc_get_modes()
30 ret = drm_add_edid_modes(connector, edid); in psb_intel_ddc_get_modes()
31 kfree(edid); in psb_intel_ddc_get_modes()
H A 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 …]
/linux/Documentation/devicetree/bindings/media/i2c/
H A Dadi,adv7604.yaml36 - 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 ]
45 - enum: [ avlink, cec, infoframe, esdp, dpp, afe, rep, edid, hdmi, test, cp, vdp ]
[all …]
H A Dadi,adv748x.yaml38 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
39 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
40 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
41 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
42 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
43 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
44 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
45 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
46 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
47 - enum: [ dpll, cp, hdmi, edid, repeater, infoframe, cbus, cec, sdp, txa, txb ]
[all …]
/linux/drivers/gpu/drm/i915/gvt/
H A Dedid.c57 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; in edid_get_byte() local
60 if (edid->state == I2C_NOT_SPECIFIED || !edid->target_selected) { in edid_get_byte()
61 gvt_vgpu_err("Driver tries to read EDID without proper sequence!\n"); in edid_get_byte()
64 if (edid->current_edid_read >= EDID_SIZE) { in edid_get_byte()
65 gvt_vgpu_err("edid_get_byte() exceeds the size of EDID!\n"); in edid_get_byte()
69 if (!edid->edid_available) { in edid_get_byte()
70 gvt_vgpu_err("Reading EDID but EDID is not available!\n"); in edid_get_byte()
74 if (intel_vgpu_has_monitor_on_port(vgpu, edid->port)) { in edid_get_byte()
76 intel_vgpu_port(vgpu, edid->port)->edid; in edid_get_byte()
78 chr = edid_data->edid_block[edid->current_edid_read]; in edid_get_byte()
[all …]
/linux/drivers/video/fbdev/core/
H A Dfbmon.c8 * The EDID Parser is a conglomeration from the following sources:
35 #include <video/edid.h>
38 #include "../edid.h"
41 * EDID parser
44 #undef DEBUG /* define this for verbose EDID parsing output */
147 static int check_edid(unsigned char *edid) in check_edid() argument
149 unsigned char *block = edid + ID_MANUFACTURER_NAME, manufacturer[4]; in check_edid()
172 if (edid[i] != edid_v1_header[i]) { in check_edid()
179 b = edid + EDID_STRUCT_DISPLAY; in check_edid()
186 b = edid + DETAILED_TIMING_DESCRIPTIONS_START; in check_edid()
[all …]
H A Dfb_ddc.c2 * drivers/video/fb_ddc.c - DDC/EDID read support.
19 #include "../edid.h"
42 dev_warn(&adapter->dev, "unable to allocate memory for EDID " in fb_do_probe_ddc_edid()
50 dev_warn(&adapter->dev, "unable to read EDID block.\n"); in fb_do_probe_ddc_edid()
58 unsigned char *edid = NULL; in fb_ddc_read() local
91 edid = fb_do_probe_ddc_edid(adapter); in fb_ddc_read()
111 if (edid) in fb_ddc_read()
120 return edid; in fb_ddc_read()
126 MODULE_DESCRIPTION("DDC/EDID reading support");
/linux/drivers/video/fbdev/via/
H A Dvia_aux_edid.c6 * generic EDID driver
12 #include "../edid.h"
15 static const char *name = "EDID";
21 unsigned char edid[EDID_LENGTH]; in query_edid() local
33 if (via_aux_read(drv, 0x00, edid, EDID_LENGTH)) { in query_edid()
34 fb_edid_to_monspecs(edid, spec); in query_edid()
42 printk(KERN_DEBUG "EDID: %s %s\n", spec->manufacturer, spec->monitor); in query_edid()
83 /* as EDID devices can be connected/disconnected just add the driver */ in via_aux_edid_probe()
/linux/drivers/gpu/drm/bridge/
H A Dnxp-ptn3460.c93 /* Load the selected edid into SRAM (accessed at PTN3460_EDID_ADDR) */ in ptn3460_select_edid()
97 DRM_ERROR("Failed to transfer EDID to sram, ret=%d\n", ret); in ptn3460_select_edid()
101 /* Enable EDID emulation and select the desired EDID */ in ptn3460_select_edid()
107 DRM_ERROR("Failed to write EDID value, ret=%d\n", ret); in ptn3460_select_edid()
137 DRM_ERROR("Select EDID failed ret=%d\n", ret); in ptn3460_pre_enable()
162 u8 *edid; in ptn3460_edid_read() local
168 edid = kmalloc(EDID_LENGTH, GFP_KERNEL); in ptn3460_edid_read()
169 if (!edid) { in ptn3460_edid_read()
170 DRM_ERROR("Failed to allocate EDID\n"); in ptn3460_edid_read()
174 ret = ptn3460_read_bytes(ptn_bridge, PTN3460_EDID_ADDR, edid, in ptn3460_edid_read()
[all …]
/linux/drivers/media/v4l2-core/
H A Dv4l2-dv-timings.c833 * 0x15 and 0x16 from the EDID.
834 * @hor_landscape - byte 0x15 from the EDID.
835 * @vert_portrait - byte 0x16 from the EDID.
837 * Determines the aspect ratio from the EDID.
838 * See VESA Enhanced EDID standard, release A, rev 2, section 3.6.2:
1021 * v4l2_num_edid_blocks() - return the number of EDID blocks
1023 * @edid: pointer to the EDID data
1024 * @max_blocks: maximum number of supported EDID blocks
1026 * Return: the number of EDID blocks based on the contents of the EDID.
1027 * This supports the HDMI Forum EDID Extension Override Data Block.
[all …]
/linux/Documentation/admin-guide/
H A Dedid.rst4 EDID title
16 - The graphics board is unable to detect any EDID data.
17 - The graphics board incorrectly forwards EDID data to the driver.
18 - The monitor sends no or bogus EDID data.
19 - A KVM sends its own EDID data instead of querying the connected monitor.
26 individually prepared or corrected EDID data set in the /lib/firmware
/linux/drivers/media/i2c/
H A Dadv7511-v4l2.c71 /* Number of EDID read retries left */
114 struct adv7511_state_edid edid; member
561 struct adv7511_state_edid *edid = &state->edid; in adv7511_log_status() local
566 "reading EDID", in adv7511_log_status()
587 v4l2_info(sd, "%s hotplug, %s Rx Sense, %s EDID (%d block(s))\n", in adv7511_log_status()
590 edid->segments ? "found" : "no", in adv7511_log_status()
591 edid->blocks); in adv7511_log_status()
631 v4l2_info(sd, "i2c edid addr: 0x%x\n", state->i2c_edid_addr); in adv7511_log_status()
701 /* Set number of attempts to read the EDID */ in adv7511_s_power()
897 /* The datasheet says that the EDID ready interrupt should be in adv7511_set_isr()
[all …]
/linux/drivers/gpu/drm/nouveau/
H A Dnouveau_connector.c139 /* We allow 'None' for EDID modes, even on a fixed in nouveau_conn_atomic_set_property()
144 * Non-EDID modes will force the use of GPU scaling in nouveau_conn_atomic_set_property()
400 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()
551 struct edid *edid) in nouveau_connector_set_edid() argument
553 if (nv_connector->edid != edid) { in nouveau_connector_set_edid()
554 struct edid *old_edid = nv_connector->edid; in nouveau_connector_set_edid()
[all …]
/linux/drivers/media/cec/usb/extron-da-hd-4k-plus/
H A Dextron-da-hd-4k-plus.c47 "EDID Vendor String (3 uppercase characters)");
252 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()
[all …]
/linux/drivers/video/fbdev/nvidia/
H A Dnv_of.c26 #include "../edid.h"
34 "DFP,EDID", "LCD,EDID", "EDID", "EDID1", in nvidia_probe_of_connector()
35 "EDID,B", "EDID,A", NULL }; in nvidia_probe_of_connector()
74 printk(KERN_DEBUG "nvidiafb: Found OF EDID for head %d\n", conn); in nvidia_probe_of_connector()
/linux/include/media/
H A Dcec-notifier.h16 struct edid;
89 * cec_notifier_set_phys_addr_from_edid - set parse the PA from the EDID.
91 * @edid: the struct edid pointer
93 * Parses the EDID to obtain the new CEC physical address and set it.
97 const struct edid *edid);
142 const struct edid *edid) in cec_notifier_set_phys_addr_from_edid() argument
/linux/drivers/media/test-drivers/vivid/
H A 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/drivers/media/platform/synopsys/hdmirx/
H A DKconfig20 bool "Load default EDID"
23 Preload default EDID (Extended Display Identification Data)
30 For a higher display modes you will need to load customized EDID
34 non-functional until EDID will be loaded from userspace.
36 commercial product that should utilize own branded EDID.
/linux/drivers/gpu/drm/tests/
H A Ddrm_kunit_edid.h7 * edid-decode (hex):
20 * Block 0, Base EDID:
21 * EDID Structure Version & Revision: 1.3
44 * Display Product Name: 'Test EDID'
52 * edid-decode 1.30.0-5367
53 * edid-decode SHA: 41ebf7135691 2025-05-01 10:19:22
55 * EDID conformity: PASS
73 * This edid is intentionally broken with the 100MHz limit. It's meant
76 * edid-decode (hex):
98 * Block 0, Base EDID:
[all …]
/linux/Documentation/fb/
H A Dudlfb.rst22 Mode setting, EDID read, etc are other bulk or control transfers. Mode
59 DisplayLink chips (Alex and Ollie family). It will then attempt to read the EDID
139 edid If a valid EDID blob is written to this file (typically
140 by a udev rule), then udlfb will use this EDID as a
141 backup in case reading the actual EDID of the monitor
144 communicate their capabilities via EDID. Reading
145 this file returns the current EDID of the attached
147 useful to get the EDID of the attached monitor,
148 which can be passed to utilities like parse-edid.
/linux/drivers/video/fbdev/i810/
H A Di810-i2c.c20 #include "../edid.h"
34 #define DEBUG /* define this for verbose EDID parsing output */
158 u8 *edid = NULL; in i810_probe_i2c_connector() local
162 edid = fb_ddc_read(&par->chan[conn].adapter); in i810_probe_i2c_connector()
167 DPRINTK("i810-i2c: Getting EDID from BIOS\n"); 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()

12345678910>>...14