| /linux/Documentation/userspace-api/media/v4l/ |
| H A D | vidioc-g-edid.rst | 13 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/gpu/drm/ |
| H A D | drm_edid.c | 64 * 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*/ 628 * modes are old-school Mac modes. The EDID spec says the 1152x864@75 mode 1604 * The opaque EDID type, internal to drm_edid.c. 1607 /* Size allocated for edid */ 1609 const struct edid *edid; member 1612 static int edid_hfeeodb_extension_block_count(const struct edid *edid); 1614 static int edid_hfeeodb_block_count(const struct edid *edid) in edid_hfeeodb_block_count() argument 1616 int eeodb = edid_hfeeodb_extension_block_count(edid); in edid_hfeeodb_block_count() 1621 static int edid_extension_block_count(const struct edid *edid) in edid_extension_block_count() argument [all …]
|
| H A D | drm_edid_load.c | 3 drm_edid_load.c: use a built-in EDID data set or load it via the firmware 24 "Do not probe monitor, use specified EDID blob from /lib/firmware instead."); 35 "[CONNECTOR:%d:%s] Requesting EDID firmware \"%s\" failed (err=%d)\n", in edid_load() 41 drm_dbg_kms(connector->dev, "[CONNECTOR:%d:%s] Loaded external firmware EDID \"%s\"\n", in edid_load() 46 drm_err(connector->dev, "Invalid firmware EDID \"%s\"\n", name); in edid_load() 65 * If there are multiple edid files specified and separated in drm_edid_load_firmware()
|
| /linux/drivers/video/fbdev/core/ |
| H A D | fbmon.c | 8 * The EDID Parser is a conglomeration from the following sources: 41 #include "../edid.h" 44 * EDID parser 47 #undef DEBUG /* define this for verbose EDID parsing output */ 150 static int check_edid(unsigned char *edid) in check_edid() argument 152 unsigned char *block = edid + ID_MANUFACTURER_NAME, manufacturer[4]; in check_edid() 175 if (edid[i] != edid_v1_header[i]) { in check_edid() 182 b = edid + EDID_STRUCT_DISPLAY; in check_edid() 189 b = edid + DETAILED_TIMING_DESCRIPTIONS_START; in check_edid() 205 printk("fbmon: The EDID Block of " in check_edid() [all …]
|
| /linux/drivers/media/v4l2-core/ |
| H A D | v4l2-dv-timings.c | 833 * 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/drivers/media/cec/usb/extron-da-hd-4k-plus/ |
| H A D | extron-da-hd-4k-plus.c | 48 "EDID Vendor String (3 uppercase characters)"); 253 const u8 *edid = port->edid; in extron_parse_edid() local 262 port->est_i = edid[0x23]; in extron_parse_edid() 263 port->est_ii = edid[0x24]; in extron_parse_edid() 267 const u8 *dtd = edid + 0x36 + i * 18; in extron_parse_edid() 293 edid += 128; in extron_parse_edid() 296 if (edid[0] != 0x02 || edid[1] != 0x03) in extron_parse_edid() 300 d = edid[2] & 0x7f; in extron_parse_edid() 309 u8 tag = edid[i] >> 5; in extron_parse_edid() 310 u8 len = edid[i] & 0x1f; in extron_parse_edid() [all …]
|
| /linux/drivers/video/fbdev/via/ |
| H A D | via_aux_edid.c | 6 * 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/nouveau/ |
| H A D | nouveau_connector.c | 139 /* 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/gpu/drm/gma500/ |
| H A D | cdv_intel_hdmi.c | 132 struct edid *edid = NULL; in cdv_hdmi_detect() local 135 edid = drm_get_edid(connector, connector->ddc); in cdv_hdmi_detect() 139 if (edid) { in cdv_hdmi_detect() 140 if (edid->input & DRM_EDID_INPUT_DIGITAL) { in cdv_hdmi_detect() 143 drm_detect_hdmi_monitor(edid); in cdv_hdmi_detect() 145 drm_detect_monitor_audio(edid); in cdv_hdmi_detect() 147 kfree(edid); in cdv_hdmi_detect() 213 struct edid *edid = NULL; in cdv_hdmi_get_modes() local 216 edid = drm_get_edid(connector, connector->ddc); in cdv_hdmi_get_modes() 217 if (edid) { in cdv_hdmi_get_modes() [all …]
|
| H A D | oaktrail_lvds.c | 300 struct edid *edid; in oaktrail_lvds_init() local 352 * 1) check for EDID on DDC in oaktrail_lvds_init() 360 edid = NULL; in oaktrail_lvds_init() 365 edid = drm_get_edid(connector, i2c_adap); in oaktrail_lvds_init() 367 if (edid == NULL && dev_priv->lpc_gpio_base) { in oaktrail_lvds_init() 371 edid = drm_get_edid(connector, i2c_adap); in oaktrail_lvds_init() 386 if (edid) { in oaktrail_lvds_init() 387 drm_connector_update_edid_property(connector, edid); in oaktrail_lvds_init() 388 drm_add_edid_modes(connector, edid); in oaktrail_lvds_init() 389 kfree(edid); in oaktrail_lvds_init() [all …]
|
| H A D | psb_intel_sdvo.c | 1232 static struct edid * 1240 static struct edid * 1254 struct edid *edid; in psb_intel_sdvo_hdmi_sink_detect() local 1256 edid = psb_intel_sdvo_get_edid(connector); in psb_intel_sdvo_hdmi_sink_detect() 1258 if (edid == NULL && psb_intel_sdvo_multifunc_encoder(psb_intel_sdvo)) { in psb_intel_sdvo_hdmi_sink_detect() 1263 * the EDID. It is used for SDVO SPD ROM. in psb_intel_sdvo_hdmi_sink_detect() 1267 edid = psb_intel_sdvo_get_edid(connector); in psb_intel_sdvo_hdmi_sink_detect() 1268 if (edid) in psb_intel_sdvo_hdmi_sink_detect() 1272 * If we found the EDID on the other bus, in psb_intel_sdvo_hdmi_sink_detect() 1275 if (edid == NULL) in psb_intel_sdvo_hdmi_sink_detect() [all …]
|
| /linux/drivers/gpu/drm/amd/display/amdgpu_dm/ |
| H A D | amdgpu_dm_helpers.c | 52 static u32 edid_extract_panel_id(struct edid *edid) in edid_extract_panel_id() argument 54 return (u32)edid->mfg_id[0] << 24 | in edid_extract_panel_id() 55 (u32)edid->mfg_id[1] << 16 | in edid_extract_panel_id() 56 (u32)EDID_PRODUCT_ID(edid); in edid_extract_panel_id() 59 static void apply_edid_quirks(struct drm_device *dev, struct edid *edid, struct dc_edid_caps *edid_… in apply_edid_quirks() argument 61 uint32_t panel_id = edid_extract_panel_id(edid); in apply_edid_quirks() 96 * dm_helpers_parse_edid_caps() - Parse edid caps 99 * @edid: [in] pointer to edid 100 * @edid_caps: [in] pointer to edid caps 106 const struct dc_edid *edid, in dm_helpers_parse_edid_caps() argument [all …]
|
| /linux/Documentation/admin-guide/ |
| H A D | edid.rst | 4 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/video/fbdev/nvidia/ |
| H A D | nv_of.c | 26 #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()
|
| H A D | nv_i2c.c | 26 #include "../edid.h" 155 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/include/media/ |
| H A D | cec-notifier.h | 16 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/platform/synopsys/hdmirx/ |
| H A D | Kconfig | 20 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/Documentation/fb/ |
| H A D | udlfb.rst | 22 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 D | i810-i2c.c | 20 #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()
|
| /linux/drivers/video/fbdev/ |
| H A D | udlfb.c | 28 #include "edid.h" 785 static int dlfb_get_edid(struct dlfb_data *dlfb, char *edid, int len) in dlfb_get_edid() argument 801 "Read EDID byte %d failed: %d\n", i, ret); in dlfb_get_edid() 805 edid[i] = rbuf[1]; in dlfb_get_edid() 824 void __user *edid = (void __user *)arg; in dlfb_ops_ioctl() local 825 if (copy_to_user(edid, dlfb->edid, dlfb->edid_size)) in dlfb_ops_ioctl() 962 kfree(dlfb->edid); in dlfb_ops_destroy() 1228 * 1) Get EDID from hw, or use sw default 1232 * Parses EDID into three places used by various parts of fbdev: 1234 * fb_info.monspecs is full parsed EDID info, including monspecs.modedb [all …]
|
| H A D | smscufx.c | 32 #include "edid.h" 102 u8 *edid; /* null until we read edid from hw or get from sysfs */ member 941 u8 __user *edid = (u8 __user *)arg; in ufx_ops_ioctl() local 942 if (copy_to_user(edid, dev->edid, dev->edid_size)) in ufx_ops_ioctl() 1354 /* A0h is std for any EDID, right shifted by one */ in ufx_i2c_configure() 1397 /* reads a 128-byte EDID block from the currently selected port and TAR */ 1398 static int ufx_read_edid(struct ufx_data *dev, u8 *edid, int edid_len) in ufx_read_edid() argument 1401 u32 *edid_u32 = (u32 *)edid; in ufx_read_edid() 1411 memset(edid, 0xff, EDID_LENGTH); in ufx_read_edid() 1413 /* Read the 128-byte EDID as 2 bursts of 64 bytes */ in ufx_read_edid() [all …]
|
| /linux/Documentation/devicetree/bindings/powerpc/fsl/ |
| H A D | diu.txt | 13 - edid : verbatim EDID data block describing attached display. 31 edid = [edid-data];
|
| /linux/Documentation/devicetree/bindings/display/ |
| H A D | sm501fb.txt | 16 - edid : verbatim EDID data block describing attached display. 31 edid = [edid-data];
|
| /linux/drivers/media/i2c/ |
| H A D | tda1997x.c | 271 /* EDID */ 273 u8 edid[256]; member 276 } edid; member 572 state->edid.present = 1; in tda1997x_delayed_work_enable_hpd() 1060 /* Power down EDID mode sequence */ in tda1997x_power_mode() 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() [all …]
|
| /linux/drivers/gpu/drm/amd/display/dc/link/ |
| H A D | link_detection.c | 870 * link_detect_evaluate_edid_header() - Evaluate if an EDID header is acceptable. 872 * Evaluates an 8-byte EDID header to check if it's good enough 874 * without reading the full EDID. 876 * @edid_header: The first 8 bytes of the EDID read from DDC. 895 * Detect whether a display is connected to DDC without reading full EDID. 896 * Reads only the EDID header (the first 8 bytes of EDID) from DDC and 899 * @link: DC link whose DDC/I2C is probed for the EDID header. 901 * Return: true if the EDID header was read and passes validation, 1167 DC_LOG_ERROR("EDID checksum invalid.\n"); in detect_link_and_local_sink() 1170 DC_LOG_ERROR("Partial EDID valid, abandon invalid blocks.\n"); in detect_link_and_local_sink() [all …]
|