Lines Matching full:edid
32 #include "edid.h"
102 u8 *edid; /* null until we read edid from hw or get from sysfs */ member
942 u8 __user *edid = (u8 __user *)arg; in ufx_ops_ioctl() local
943 if (copy_to_user(edid, dev->edid, dev->edid_size)) in ufx_ops_ioctl()
1350 /* A0h is std for any EDID, right shifted by one */ in ufx_i2c_configure()
1393 /* reads a 128-byte EDID block from the currently selected port and TAR */
1394 static int ufx_read_edid(struct ufx_data *dev, u8 *edid, int edid_len) in ufx_read_edid() argument
1397 u32 *edid_u32 = (u32 *)edid; in ufx_read_edid()
1407 memset(edid, 0xff, EDID_LENGTH); in ufx_read_edid()
1409 /* Read the 128-byte EDID as 2 bursts of 64 bytes */ in ufx_read_edid()
1431 if (edid[i] != 0xFF) { in ufx_read_edid()
1432 pr_debug("edid data read successfully"); in ufx_read_edid()
1437 pr_warn("edid data contains all 0xff"); in ufx_read_edid()
1445 * Parses EDID into three places used by various parts of fbdev:
1447 * fb_info.monspecs is full parsed EDID info, including monspecs.modedb
1450 * If EDID is not readable/valid, then modelist is all VESA modes,
1457 u8 *edid; in ufx_setup_modes() local
1463 edid = kmalloc(EDID_LENGTH, GFP_KERNEL); in ufx_setup_modes()
1464 if (!edid) { in ufx_setup_modes()
1472 /* Try to (re)read EDID from hardware first in ufx_setup_modes()
1473 * EDID data may return, but not parse as valid in ufx_setup_modes()
1476 i = ufx_read_edid(dev, edid, EDID_LENGTH); in ufx_setup_modes()
1479 fb_edid_to_monspecs(edid, &info->monspecs); in ufx_setup_modes()
1482 dev->edid = edid; in ufx_setup_modes()
1488 /* If that fails, use a previously returned EDID if available */ in ufx_setup_modes()
1490 pr_err("Unable to get valid EDID from device/display\n"); in ufx_setup_modes()
1492 if (dev->edid) { in ufx_setup_modes()
1493 fb_edid_to_monspecs(dev->edid, &info->monspecs); in ufx_setup_modes()
1495 pr_err("Using previously queried EDID\n"); in ufx_setup_modes()
1499 /* If that fails, use the default EDID we were handed */ in ufx_setup_modes()
1504 memcpy(edid, default_edid, default_edid_size); in ufx_setup_modes()
1505 dev->edid = edid; in ufx_setup_modes()
1507 pr_err("Using default/backup EDID\n"); in ufx_setup_modes()
1533 * Since we don't have EDID, there may be modes that in ufx_setup_modes()
1545 * (since they are most common case without EDID) in ufx_setup_modes()
1571 if (edid && (dev->edid != edid)) in ufx_setup_modes()
1572 kfree(edid); in ufx_setup_modes()