Home
last modified time | relevance | path

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

12345678910>>...16

/Linux-v6.1/Documentation/userspace-api/media/v4l/
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-v6.1/drivers/media/i2c/adv748x/
Dadv748x-hdmi.c463 static int adv748x_hdmi_get_edid(struct v4l2_subdev *sd, struct v4l2_edid *edid) in adv748x_hdmi_get_edid() argument
467 memset(edid->reserved, 0, sizeof(edid->reserved)); in adv748x_hdmi_get_edid()
469 if (!hdmi->edid.present) 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()
484 edid->blocks * 128); in adv748x_hdmi_get_edid()
[all …]
/Linux-v6.1/drivers/gpu/drm/
Ddrm_edid_load.c3 drm_edid_load.c: use a built-in EDID data set or load it via the firmware
22 MODULE_PARM_DESC(edid_firmware, "Do not probe monitor, use specified EDID blob "
43 "edid/800x600.bin",
44 "edid/1024x768.bin",
45 "edid/1280x1024.bin",
46 "edid/1600x1200.bin",
47 "edid/1680x1050.bin",
48 "edid/1920x1080.bin",
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()
[all …]
Ddrm_edid.c58 * EDID blocks out in the wild have a variety of bugs, try to collect
178 /* Rotel RSX-1058 forwards sink's EDID but only does HDMI 1.1*/
591 * modes are old-school Mac modes. The EDID spec says the 1152x864@75 mode
1567 * The opaque EDID type, internal to drm_edid.c.
1570 /* Size allocated for edid */
1572 const struct edid *edid; member
1578 const struct edid *edid = drm_edid->edid; in version_greater() local
1580 return edid->version > version || in version_greater()
1581 (edid->version == version && edid->revision > revision); in version_greater()
1584 static int edid_hfeeodb_extension_block_count(const struct edid *edid);
[all …]
/Linux-v6.1/drivers/gpu/drm/bridge/
Dnxp-ptn3460.c94 /* Load the selected edid into SRAM (accessed at PTN3460_EDID_ADDR) */ in ptn3460_select_edid()
98 DRM_ERROR("Failed to transfer EDID to sram, ret=%d\n", ret); in ptn3460_select_edid()
102 /* Enable EDID emulation and select the desired EDID */ in ptn3460_select_edid()
108 DRM_ERROR("Failed to write EDID value, ret=%d\n", ret); in ptn3460_select_edid()
138 DRM_ERROR("Select EDID failed ret=%d\n", ret); in ptn3460_pre_enable()
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()
170 DRM_ERROR("Failed to allocate EDID\n"); in ptn3460_get_edid()
[all …]
/Linux-v6.1/Documentation/admin-guide/
Dedid.rst4 EDID chapter
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
32 of the built-in binary EDID blobs and to facilitate the creation of
36 To create binary EDID and C source code files from the existing data
37 material, simply type "make" in tools/edid/.
39 If you want to create your own EDID file, copy the file 1024x768.S,
[all …]
/Linux-v6.1/drivers/gpu/drm/msm/dp/
Ddp_panel.c135 struct edid *edid) in dp_panel_update_modes() argument
139 if (edid) { in dp_panel_update_modes()
140 rc = drm_connector_update_edid_property(connector, edid); in dp_panel_update_modes()
142 DRM_ERROR("failed to update edid property %d\n", rc); in dp_panel_update_modes()
145 rc = drm_add_edid_modes(connector, edid); in dp_panel_update_modes()
151 DRM_ERROR("failed to update edid property %d\n", rc); in dp_panel_update_modes()
199 kfree(dp_panel->edid); in dp_panel_read_sink_caps()
200 dp_panel->edid = NULL; in dp_panel_read_sink_caps()
202 dp_panel->edid = drm_get_edid(connector, in dp_panel_read_sink_caps()
204 if (!dp_panel->edid) { in dp_panel_read_sink_caps()
[all …]
/Linux-v6.1/Documentation/devicetree/bindings/media/i2c/
Dadv7604.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 …]
Dadv748x.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-v6.1/drivers/gpu/drm/i915/gvt/
Dedid.c53 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; in edid_get_byte() local
56 if (edid->state == I2C_NOT_SPECIFIED || !edid->slave_selected) { in edid_get_byte()
57 gvt_vgpu_err("Driver tries to read EDID without proper sequence!\n"); in edid_get_byte()
60 if (edid->current_edid_read >= EDID_SIZE) { in edid_get_byte()
61 gvt_vgpu_err("edid_get_byte() exceeds the size of EDID!\n"); in edid_get_byte()
65 if (!edid->edid_available) { in edid_get_byte()
66 gvt_vgpu_err("Reading EDID but EDID is not available!\n"); in edid_get_byte()
70 if (intel_vgpu_has_monitor_on_port(vgpu, edid->port)) { in edid_get_byte()
72 intel_vgpu_port(vgpu, edid->port)->edid; in edid_get_byte()
74 chr = edid_data->edid_block[edid->current_edid_read]; in edid_get_byte()
[all …]
/Linux-v6.1/drivers/gpu/drm/i915/display/
Dintel_connector.c102 if (!IS_ERR_OR_NULL(intel_connector->edid)) in intel_connector_destroy()
103 kfree(intel_connector->edid); in intel_connector_destroy()
180 * intel_connector_update_modes - update connector from edid
182 * @edid: previously read EDID information
185 struct edid *edid) in intel_connector_update_modes() argument
189 drm_connector_update_edid_property(connector, edid); in intel_connector_update_modes()
190 ret = drm_add_edid_modes(connector, edid); in intel_connector_update_modes()
200 * Fetch the EDID information from @connector using the DDC bus.
205 struct edid *edid; in intel_ddc_get_modes() local
208 edid = drm_get_edid(connector, adapter); in intel_ddc_get_modes()
[all …]
/Linux-v6.1/drivers/media/i2c/
Dad9389b.c63 /* Number of EDID read retries left */
86 struct ad9389b_state_edid edid; member
343 struct ad9389b_state_edid *edid = &state->edid; in ad9389b_log_status() local
347 "reading EDID", in ad9389b_log_status()
371 v4l2_info(sd, "%s hotplug, %s Rx Sense, %s EDID (%d block(s))\n", in ad9389b_log_status()
376 edid->segments ? "found" : "no", edid->blocks); in ad9389b_log_status()
491 /* Set number of attempts to read the EDID */ in ad9389b_s_power()
503 /* The datasheet says that the EDID ready interrupt should be in ad9389b_set_isr()
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()
[all …]
Dadv7511-v4l2.c76 /* Number of EDID read retries left */
119 struct adv7511_state_edid edid; member
548 struct adv7511_state_edid *edid = &state->edid; in adv7511_log_status() local
553 "reading EDID", in adv7511_log_status()
574 v4l2_info(sd, "%s hotplug, %s Rx Sense, %s EDID (%d block(s))\n", in adv7511_log_status()
577 edid->segments ? "found" : "no", in adv7511_log_status()
578 edid->blocks); in adv7511_log_status()
618 v4l2_info(sd, "i2c edid addr: 0x%x\n", state->i2c_edid_addr); in adv7511_log_status()
688 /* Set number of attempts to read the EDID */ in adv7511_s_power()
884 /* The datasheet says that the EDID ready interrupt should be in adv7511_set_isr()
[all …]
/Linux-v6.1/drivers/gpu/drm/udl/
Dudl_connector.c36 DRM_ERROR("Read EDID byte %d failed err %x\n", i, ret); in udl_get_edid_block()
54 drm_connector_update_edid_property(connector, udl_connector->edid); in udl_get_modes()
55 if (udl_connector->edid) in udl_get_modes()
56 return drm_add_edid_modes(connector, udl_connector->edid); in udl_get_modes()
82 /* cleanup previous edid */ in udl_detect()
83 if (udl_connector->edid != NULL) { in udl_detect()
84 kfree(udl_connector->edid); in udl_detect()
85 udl_connector->edid = NULL; in udl_detect()
88 udl_connector->edid = drm_do_get_edid(connector, udl_get_edid_block, udl); in udl_detect()
89 if (!udl_connector->edid) in udl_detect()
[all …]
/Linux-v6.1/drivers/gpu/drm/gma500/
Dpsb_intel_modes.c50 * Fetch the EDID information from @connector using the DDC bus.
55 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.c129 struct edid *edid = NULL; in cdv_hdmi_detect() local
132 edid = drm_get_edid(connector, connector->ddc); in cdv_hdmi_detect()
136 if (edid) { in cdv_hdmi_detect()
137 if (edid->input & DRM_EDID_INPUT_DIGITAL) { in cdv_hdmi_detect()
140 drm_detect_hdmi_monitor(edid); in cdv_hdmi_detect()
142 drm_detect_monitor_audio(edid); in cdv_hdmi_detect()
144 kfree(edid); in cdv_hdmi_detect()
210 struct edid *edid = NULL; in cdv_hdmi_get_modes() local
213 edid = drm_get_edid(connector, connector->ddc); in cdv_hdmi_get_modes()
214 if (edid) { in cdv_hdmi_get_modes()
[all …]
/Linux-v6.1/include/media/
Dcec.h194 * read the EDID and is not dependent on an external HDMI driver.
308 struct edid;
323 const struct edid *edid);
399 * @edid: pointer to the EDID data
400 * @size: size in bytes of the EDID data
402 * bytes in the EDID will be returned here. This is set to 0
407 u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size,
435 const struct edid *edid) in cec_s_phys_addr_from_edid() argument
439 static inline u16 cec_get_edid_phys_addr(const u8 *edid, unsigned int size, in cec_get_edid_phys_addr() argument
477 * @edid: the EDID
[all …]
/Linux-v6.1/drivers/video/fbdev/core/
Dfbmon.c8 * The EDID Parser is a conglomeration from the following sources:
33 #include <video/edid.h>
36 #include "../edid.h"
39 * EDID parser
42 #undef DEBUG /* define this for verbose EDID parsing output */
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()
[all …]
Dfb_ddc.c2 * drivers/video/fb_ddc.c - DDC/EDID read support.
18 #include "../edid.h"
41 dev_warn(&adapter->dev, "unable to allocate memory for EDID " in fb_do_probe_ddc_edid()
49 dev_warn(&adapter->dev, "unable to read EDID block.\n"); in fb_do_probe_ddc_edid()
57 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()
120 return edid; in fb_ddc_read()
126 MODULE_DESCRIPTION("DDC/EDID reading support");
/Linux-v6.1/drivers/gpu/drm/tegra/
Doutput.c20 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-v6.1/include/drm/
Ddrm_edid.h326 struct edid { struct
334 /* EDID version */
381 int drm_edid_to_sad(const struct edid *edid, struct cea_sad **sads); argument
382 int drm_edid_to_speaker_allocation(const struct edid *edid, u8 **sadb);
387 struct edid *drm_load_edid_firmware(struct drm_connector *connector);
391 static inline struct edid *
398 bool drm_edid_are_equal(const struct edid *edid1, const struct edid *edid2);
565 struct edid *drm_do_get_edid(struct drm_connector *connector,
569 struct edid *drm_get_edid(struct drm_connector *connector,
572 struct edid *drm_get_edid_switcheroo(struct drm_connector *connector,
[all …]
/Linux-v6.1/drivers/video/fbdev/via/
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-v6.1/drivers/gpu/drm/nouveau/
Dnouveau_connector.c140 /* We allow 'None' for EDID modes, even on a fixed in nouveau_conn_atomic_set_property()
145 * 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()
475 const void *edid = of_get_property(cn, "EDID", NULL); in nouveau_connector_of_detect() local
478 if (nv_encoder->dcb->i2c_index == idx && edid) { in nouveau_connector_of_detect()
479 nv_connector->edid = in nouveau_connector_of_detect()
480 kmemdup(edid, EDID_LENGTH, GFP_KERNEL); in nouveau_connector_of_detect()
538 struct edid *edid) in nouveau_connector_set_edid() argument
540 if (nv_connector->edid != edid) { in nouveau_connector_set_edid()
541 struct edid *old_edid = nv_connector->edid; in nouveau_connector_set_edid()
[all …]
/Linux-v6.1/drivers/gpu/drm/exynos/
Dexynos_drm_vidi.c44 struct edid *raw_edid;
198 /* use fake edid data for test. */ in vidi_store_connection()
200 ctx->raw_edid = (struct edid *)fake_edid_info; in vidi_store_connection()
203 if (ctx->raw_edid != (struct edid *)fake_edid_info) { in vidi_store_connection()
204 DRM_DEV_DEBUG_KMS(dev, "edid data is not fake data.\n"); in vidi_store_connection()
249 struct edid *raw_edid; in vidi_connection_ioctl()
251 raw_edid = (struct edid *)(unsigned long)vidi->edid; in vidi_connection_ioctl()
254 "edid data is invalid.\n"); in vidi_connection_ioctl()
266 * only if raw edid data isn't same as fake data. in vidi_connection_ioctl()
269 (struct edid *)fake_edid_info) { in vidi_connection_ioctl()
[all …]
/Linux-v6.1/drivers/video/fbdev/nvidia/
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()

12345678910>>...16