Lines Matching defs:edid

33 #include <video/edid.h>
36 #include "../edid.h"
145 static int check_edid(unsigned char *edid)
147 unsigned char *block = edid + ID_MANUFACTURER_NAME, manufacturer[4];
170 if (edid[i] != edid_v1_header[i]) {
177 b = edid + EDID_STRUCT_DISPLAY;
184 b = edid + DETAILED_TIMING_DESCRIPTIONS_START;
207 static void fix_edid(unsigned char *edid, int fix)
215 memcpy(edid, edid_v1_header, 8);
219 b = edid + EDID_STRUCT_DISPLAY;
221 edid[127] += 0x80;
225 b = edid + DETAILED_TIMING_DESCRIPTIONS_START;
249 csum += edid[i];
251 edid[127] = 256 - csum;
256 static int edid_checksum(unsigned char *edid)
259 int i, err = 0, fix = check_edid(edid);
262 fix_edid(edid, fix);
265 csum += edid[i];
266 all_null |= edid[i];
277 static int edid_check_header(unsigned char *edid)
279 int i, err = 1, fix = check_edid(edid);
282 fix_edid(edid, fix);
285 if (edid[i] != edid_v1_header[i])
606 * @edid: EDID data
616 static struct fb_videomode *fb_create_modedb(unsigned char *edid, int *dbsize,
628 if (edid == NULL || !edid_checksum(edid) ||
629 !edid_check_header(edid)) {
634 ver = edid[EDID_STRUCT_VERSION];
635 rev = edid[EDID_STRUCT_REVISION];
640 block = edid + DETAILED_TIMING_DESCRIPTIONS_START;
653 block = edid + ESTABLISHED_TIMING_1;
657 block = edid + STD_TIMING_DESCRIPTIONS_START;
661 block = edid + DETAILED_TIMING_DESCRIPTIONS_START;
695 static int fb_get_monitor_limits(unsigned char *edid, struct fb_monspecs *specs)
700 block = edid + DETAILED_TIMING_DESCRIPTIONS_START;
724 modes = fb_create_modedb(edid, &num_modes, specs);
776 static void get_monspecs(unsigned char *edid, struct fb_monspecs *specs)
780 block = edid + EDID_STRUCT_DISPLAY;
782 fb_get_monitor_limits(edid, specs);
894 int fb_parse_edid(unsigned char *edid, struct fb_var_screeninfo *var)
899 if (edid == NULL || var == NULL)
902 if (!(edid_checksum(edid)))
905 if (!(edid_check_header(edid)))
908 block = edid + DETAILED_TIMING_DESCRIPTIONS_START;
937 void fb_edid_to_monspecs(unsigned char *edid, struct fb_monspecs *specs)
942 if (edid == NULL)
945 if (!(edid_checksum(edid)))
948 if (!(edid_check_header(edid)))
953 specs->version = edid[EDID_STRUCT_VERSION];
954 specs->revision = edid[EDID_STRUCT_REVISION];
962 parse_vendor_block(edid + ID_MANUFACTURER_NAME, specs);
964 block = edid + DETAILED_TIMING_DESCRIPTIONS_START;
979 get_monspecs(edid, specs);
981 specs->modedb = fb_create_modedb(edid, &specs->modedb_len, specs);
1405 int fb_parse_edid(unsigned char *edid, struct fb_var_screeninfo *var)
1409 void fb_edid_to_monspecs(unsigned char *edid, struct fb_monspecs *specs)
1496 unsigned char *edid = NULL;
1505 edid = edid_info.dummy;
1507 return edid;