| /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/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/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/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() 373 edid = drm_get_edid(connector, i2c_adap); in oaktrail_lvds_init() 388 if (edid) { in oaktrail_lvds_init() 389 drm_connector_update_edid_property(connector, edid); in oaktrail_lvds_init() 390 drm_add_edid_modes(connector, edid); in oaktrail_lvds_init() 391 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/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/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/amd/display/amdgpu_dm/ |
| H A D | amdgpu_dm_helpers.c | 91 static u32 edid_extract_panel_id(struct edid *edid) in edid_extract_panel_id() argument 93 return (u32)edid->mfg_id[0] << 24 | in edid_extract_panel_id() 94 (u32)edid->mfg_id[1] << 16 | in edid_extract_panel_id() 95 (u32)EDID_PRODUCT_ID(edid); in edid_extract_panel_id() 98 static void apply_edid_quirks(struct drm_device *dev, struct edid *edid, struct dc_edid_caps *edid_… in apply_edid_quirks() argument 100 uint32_t panel_id = edid_extract_panel_id(edid); in apply_edid_quirks() 135 * dm_helpers_parse_edid_caps() - Parse edid caps 138 * @edid: [in] pointer to edid 139 * @edid_caps: [in] pointer to edid caps 145 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/gpu/drm/ |
| 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/gpu/drm/amd/amdgpu/ |
| H A D | amdgpu_connectors.c | 261 if (amdgpu_connector->edid) in amdgpu_connector_get_edid() 271 amdgpu_connector->edid = drm_edid_read_ddc(connector, in amdgpu_connector_get_edid() 280 amdgpu_connector->edid = drm_edid_read_ddc(connector, in amdgpu_connector_get_edid() 283 amdgpu_connector->edid = drm_edid_read_ddc(connector, in amdgpu_connector_get_edid() 286 amdgpu_connector->edid = drm_edid_read_ddc(connector, in amdgpu_connector_get_edid() 290 if (!amdgpu_connector->edid) { in amdgpu_connector_get_edid() 291 /* some laptops provide a hardcoded edid in rom for LCDs */ in amdgpu_connector_get_edid() 294 amdgpu_connector->edid = amdgpu_connector_get_hardcoded_edid(adev); in amdgpu_connector_get_edid() 295 drm_edid_connector_update(connector, amdgpu_connector->edid); in amdgpu_connector_get_edid() 305 if (amdgpu_connector->edid) { in amdgpu_connector_ddc_get_modes() [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/video/fbdev/ |
| 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/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/firmware/efi/libstub/ |
| H A D | gop.c | 15 #include <video/edid.h> 417 static void setup_edid_info(struct edid_info *edid, u32 gop_size_of_edid, u8 *gop_edid) in setup_edid_info() argument 420 memset(edid->dummy, 0, sizeof(edid->dummy)); in setup_edid_info() 422 memcpy(edid->dummy, gop_edid, min(gop_size_of_edid, sizeof(edid->dummy))); in setup_edid_info() 481 efi_status_t efi_setup_graphics(struct screen_info *si, struct edid_info *edid) in efi_setup_graphics() argument 506 /* Display EDID for primary GOP */ in efi_setup_graphics() 507 if (edid) { in efi_setup_graphics() 517 gop_edid = efi_table_attr(active_edid, edid); in efi_setup_graphics() 524 gop_edid = efi_table_attr(discovered_edid, edid); in efi_setup_graphics() 528 setup_edid_info(edid, gop_size_of_edid, gop_edid); in efi_setup_graphics()
|
| /linux/drivers/video/fbdev/aty/ |
| H A D | radeon_i2c.c | 16 #include "../edid.h" 144 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()
|