/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 of a video receiver/transmitter 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 block [all...] |
/linux/drivers/media/i2c/adv748x/ |
H A D | adv748x-hdmi.c | 460 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 in adv748x_hdmi_get_edid() 510 adv748x_hdmi_set_edid(struct v4l2_subdev * sd,struct v4l2_edid * edid) adv748x_hdmi_set_edid() argument [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*/ 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 *edi argument 1618 edid_extension_block_count(const struct edid * edid) edid_extension_block_count() argument 1623 edid_block_count(const struct edid * edid) edid_block_count() argument 1633 edid_size(const struct edid * edid) edid_size() argument 1638 edid_block_data(const struct edid * edid,int index) edid_block_data() argument 1645 edid_extension_block_data(const struct edid * edid,int index) edid_extension_block_data() argument 1704 drm_edid_legacy_init(struct drm_edid * drm_edid,const struct edid * edid) drm_edid_legacy_init() argument 1769 edid_header_fix(void * edid) edid_header_fix() argument 1784 const struct edid *edid = _edid; drm_edid_header_is_valid() local 1829 edid_block_is_zero(const void * edid) edid_block_is_zero() argument 2039 drm_edid_is_valid(struct edid * edid) drm_edid_is_valid() argument 2087 edid_filter_invalid_blocks(struct edid * edid,size_t * alloc_size) edid_filter_invalid_blocks() argument 2192 connector_bad_edid(struct drm_connector * connector,const struct edid * edid,int num_blocks) connector_bad_edid() argument 2254 drm_edid_override_set(struct drm_connector * connector,const void * edid,size_t size) drm_edid_override_set() argument 2370 struct edid *edid, *new; _drm_do_get_edid() local 2496 _drm_edid_alloc(const void * edid,size_t size) _drm_edid_alloc() argument 2526 drm_edid_alloc(const void * edid,size_t size) drm_edid_alloc() argument 2604 struct edid *edid; drm_get_edid() local 2646 struct edid *edid; drm_edid_read_custom() local 2797 const struct edid *edid = drm_edid->edid; drm_edid_get_panel_id() local 2884 struct edid *edid; drm_get_edid_switcheroo() local 2932 drm_edid_duplicate(const struct edid * edid) drm_edid_duplicate() argument 3280 const struct edid *edid = drm_edid->edid; standard_timing_level() local 3606 mode_in_hsync_range(const struct drm_display_mode * mode,const struct edid * edid,const u8 * t) mode_in_hsync_range() argument 3623 mode_in_vsync_range(const struct drm_display_mode * mode,const struct edid * edid,const u8 * t) mode_in_vsync_range() argument 3639 range_pixel_clock(const struct edid * edid,const u8 * t) range_pixel_clock() argument 3657 const struct edid *edid = drm_edid->edid; mode_in_range() local 3929 const struct edid *edid = drm_edid->edid; add_established_modes() local 5246 edid_hfeeodb_extension_block_count(const struct edid * edid) edid_hfeeodb_extension_block_count() argument 5606 drm_edid_get_monitor_name(const struct edid * edid,char * name,int bufsize) drm_edid_get_monitor_name() argument 5791 drm_edid_to_sad(const struct edid * edid,struct cea_sad ** sads) drm_edid_to_sad() argument 5837 drm_edid_to_speaker_allocation(const struct edid * edid,u8 ** sadb) drm_edid_to_speaker_allocation() argument 5920 drm_detect_hdmi_monitor(const struct edid * edid) drm_detect_hdmi_monitor() argument 5982 drm_detect_monitor_audio(const struct edid * edid) drm_detect_monitor_audio() argument 6476 const struct edid *edid = closure->drm_edid->edid; get_monitor_range() local 6675 const struct edid *edid; update_display_info() local 7036 const void *edid; drm_edid_connector_property_show() local 7136 drm_connector_update_edid_property(struct drm_connector * connector,const struct edid * edid) drm_connector_update_edid_property() argument 7157 drm_add_edid_modes(struct drm_connector * connector,struct edid * edid) drm_add_edid_modes() argument [all...] |
H A D | drm_panel_backlight_quirks.c | 48 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 D | psb_intel_modes.c | 19 * 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 D | cdv_intel_hdmi.c | 131 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 in cdv_hdmi_get_modes() local [all...] |
/linux/Documentation/devicetree/bindings/media/i2c/ |
H A D | adi,adv7604.yaml | 36 - 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, hdm [all...] |
H A D | adi,adv748x.yaml | 38 - 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, repeate [all...] |
/linux/drivers/gpu/drm/i915/gvt/ |
H A D | edid.c | 57 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 in edid_get_byte() 572 struct intel_vgpu_i2c_edid *edid = &vgpu->display.i2c_edid; intel_vgpu_init_i2c_edid() local [all...] |
/linux/drivers/video/fbdev/core/ |
H A D | fbmon.c | 8 * 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 in check_edid() 209 fix_edid(unsigned char * edid,int fix) fix_edid() argument 258 edid_checksum(unsigned char * edid) edid_checksum() argument 279 edid_check_header(unsigned char * edid) edid_check_header() argument 618 fb_create_modedb(unsigned char * edid,int * dbsize,const struct fb_monspecs * specs) fb_create_modedb() argument 697 fb_get_monitor_limits(unsigned char * edid,struct fb_monspecs * specs) fb_get_monitor_limits() argument 778 get_monspecs(unsigned char * edid,struct fb_monspecs * specs) get_monspecs() argument 896 fb_parse_edid(unsigned char * edid,struct fb_var_screeninfo * var) fb_parse_edid() argument 939 fb_edid_to_monspecs(unsigned char * edid,struct fb_monspecs * specs) fb_edid_to_monspecs() argument 1407 fb_parse_edid(unsigned char * edid,struct fb_var_screeninfo * var) fb_parse_edid() argument 1411 fb_edid_to_monspecs(unsigned char * edid,struct fb_monspecs * specs) fb_edid_to_monspecs() argument 1497 unsigned char *edid = NULL; fb_firmware_edid() local [all...] |
H A D | fb_ddc.c | 2 * 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 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/bridge/ |
H A D | nxp-ptn3460.c | 93 /* 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\ in ptn3460_edid_read() [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 block 1029 v4l2_num_edid_blocks(const u8 * edid,unsigned int max_blocks) v4l2_num_edid_blocks() argument 1067 v4l2_get_edid_phys_addr(const u8 * edid,unsigned int size,unsigned int * offset) v4l2_get_edid_phys_addr() argument 1092 v4l2_set_edid_phys_addr(u8 * edid,unsigned int size,u16 phys_addr) v4l2_set_edid_phys_addr() 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/media/i2c/ |
H A D | adv7511-v4l2.c | 71 /* 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() 1183 adv7511_get_edid(struct v4l2_subdev * sd,struct v4l2_edid * edid) adv7511_get_edid() argument 1784 struct adv7511_state_edid *edid = &state->edid; adv7511_init_setup() local [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 689 struct edid *edid = NULL; nouveau_connector_detect_lvds() local [all...] |
/linux/drivers/media/cec/usb/extron-da-hd-4k-plus/ |
H A D | extron-da-hd-4k-plus.c | 47 "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[ in extron_parse_edid() 340 get_edid_tag_location(const u8 * edid,unsigned int size,u8 want_tag,u8 ext_tag) get_edid_tag_location() argument 377 extron_edid_crc(u8 * edid) extron_edid_crc() argument 444 extron_write_edid(struct extron_port * port,const u8 * edid,unsigned int blocks) extron_write_edid() argument 1256 extron_g_edid(struct file * file,void * _fh,struct v4l2_edid * edid) extron_g_edid() argument 1283 extron_s_edid(struct file * file,void * _fh,struct v4l2_edid * edid) extron_s_edid() argument [all...] |
/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()
|
/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/test-drivers/vivid/ |
H A D | vivid-vid-common.c | 1077 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 in vidioc_g_edid() [all...] |
/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/drivers/gpu/drm/tests/ |
H A D | drm_kunit_edid.h | 7 * 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 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 [all...] |
/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()
|