Lines Matching +full:product +full:- +full:name
3 /*-
17 * 3. The name of Itronix Inc. may not be used to endorse
71 const char *name; member
76 uint16_t product; member
77 const char *name; member
91 return edid_vendors[n].name; in edid_findvendor()
97 edid_findproduct(const char *vendor, uint16_t product) in edid_findproduct() argument
103 if (edid_products[n].product == product && in edid_findproduct()
105 return edid_products[n].name; in edid_findproduct()
151 printf("Vendor: [%s] %s\n", edid->edid_vendor, edid->edid_vendorname); in edid_print()
152 printf("Product: [%04X] %s\n", edid->edid_product, in edid_print()
153 edid->edid_productname); in edid_print()
154 printf("Serial number: %s\n", edid->edid_serial); in edid_print()
156 edid->edid_year, edid->edid_week); in edid_print()
157 printf("EDID Version %d.%d\n", edid->edid_version, in edid_print()
158 edid->edid_revision); in edid_print()
159 printf("EDID Comment: %s\n", edid->edid_comment); in edid_print()
161 printf("Video Input: %x\n", edid->edid_video_input); in edid_print()
162 if (edid->edid_video_input & EDID_VIDEO_INPUT_DIGITAL) { in edid_print()
164 if (edid->edid_video_input & EDID_VIDEO_INPUT_DFP1_COMPAT) in edid_print()
169 switch (EDID_VIDEO_INPUT_LEVEL(edid->edid_video_input)) { in edid_print()
171 printf("\t-0.7, 0.3V\n"); in edid_print()
174 printf("\t-0.714, 0.286V\n"); in edid_print()
177 printf("\t-1.0, 0.4V\n"); in edid_print()
180 printf("\t-0.7, 0.0V\n"); in edid_print()
183 if (edid->edid_video_input & EDID_VIDEO_INPUT_BLANK_TO_BLACK) in edid_print()
184 printf("\tBlank-to-black setup\n"); in edid_print()
185 if (edid->edid_video_input & EDID_VIDEO_INPUT_SEPARATE_SYNCS) in edid_print()
187 if (edid->edid_video_input & EDID_VIDEO_INPUT_COMPOSITE_SYNC) in edid_print()
189 if (edid->edid_video_input & EDID_VIDEO_INPUT_SYNC_ON_GRN) in edid_print()
191 if (edid->edid_video_input & EDID_VIDEO_INPUT_SERRATION) in edid_print()
196 edid->edid_gamma / 100, edid->edid_gamma % 100); in edid_print()
199 edid->edid_max_hsize, edid->edid_max_vsize); in edid_print()
201 printf("Features: %x\n", edid->edid_features); in edid_print()
202 if (edid->edid_features & EDID_FEATURES_STANDBY) in edid_print()
204 if (edid->edid_features & EDID_FEATURES_SUSPEND) in edid_print()
206 if (edid->edid_features & EDID_FEATURES_ACTIVE_OFF) in edid_print()
207 printf("\tDPMS active-off\n"); in edid_print()
208 switch (EDID_FEATURES_DISP_TYPE(edid->edid_features)) { in edid_print()
222 if (edid->edid_features & EDID_FEATURES_STD_COLOR) in edid_print()
224 if (edid->edid_features & EDID_FEATURES_PREFERRED_TIMING) in edid_print()
226 if (edid->edid_features & EDID_FEATURES_DEFAULT_GTF) in edid_print()
230 printf("\tRed X: 0.%03d\n", edid->edid_chroma.ec_redx); in edid_print()
231 printf("\tRed Y: 0.%03d\n", edid->edid_chroma.ec_redy); in edid_print()
232 printf("\tGrn X: 0.%03d\n", edid->edid_chroma.ec_greenx); in edid_print()
233 printf("\tGrn Y: 0.%03d\n", edid->edid_chroma.ec_greeny); in edid_print()
234 printf("\tBlu X: 0.%03d\n", edid->edid_chroma.ec_bluex); in edid_print()
235 printf("\tBlu Y: 0.%03d\n", edid->edid_chroma.ec_bluey); in edid_print()
236 printf("\tWht X: 0.%03d\n", edid->edid_chroma.ec_whitex); in edid_print()
237 printf("\tWht Y: 0.%03d\n", edid->edid_chroma.ec_whitey); in edid_print()
239 if (edid->edid_have_range) { in edid_print()
241 printf("\tHorizontal: %d - %d kHz\n", in edid_print()
242 edid->edid_range.er_min_hfreq, in edid_print()
243 edid->edid_range.er_max_hfreq); in edid_print()
244 printf("\tVertical: %d - %d Hz\n", in edid_print()
245 edid->edid_range.er_min_vfreq, in edid_print()
246 edid->edid_range.er_max_vfreq); in edid_print()
248 edid->edid_range.er_max_clock); in edid_print()
249 if (edid->edid_range.er_have_gtf2) { in edid_print()
251 edid->edid_range.er_gtf2_hfreq); in edid_print()
252 printf("\tGTF2 C: %d\n", edid->edid_range.er_gtf2_c); in edid_print()
253 printf("\tGTF2 M: %d\n", edid->edid_range.er_gtf2_m); in edid_print()
254 printf("\tGTF2 J: %d\n", edid->edid_range.er_gtf2_j); in edid_print()
255 printf("\tGTF2 K: %d\n", edid->edid_range.er_gtf2_k); in edid_print()
259 for (i = 0; i < edid->edid_nmodes; i++) { in edid_print()
261 edid->edid_modes[i].hdisplay, in edid_print()
262 edid->edid_modes[i].vdisplay, in edid_print()
263 DIVIDE(DIVIDE(edid->edid_modes[i].dot_clock * 1000, in edid_print()
264 edid->edid_modes[i].htotal), edid->edid_modes[i].vtotal)); in edid_print()
266 edid->edid_modes[i].dot_clock, in edid_print()
267 edid->edid_modes[i].hsync_start, in edid_print()
268 edid->edid_modes[i].hsync_end, in edid_print()
269 edid->edid_modes[i].htotal, in edid_print()
270 edid->edid_modes[i].vsync_start, in edid_print()
271 edid->edid_modes[i].vsync_end, in edid_print()
272 edid->edid_modes[i].vtotal); in edid_print()
274 edid->edid_modes[i].flags & VID_PHSYNC ? "+" : "", in edid_print()
275 edid->edid_modes[i].flags & VID_NHSYNC ? "-" : "", in edid_print()
276 edid->edid_modes[i].flags & VID_PVSYNC ? "+" : "", in edid_print()
277 edid->edid_modes[i].flags & VID_NVSYNC ? "-" : ""); in edid_print()
279 if (edid->edid_preferred_mode) in edid_print()
281 edid->edid_preferred_mode->hdisplay, in edid_print()
282 edid->edid_preferred_mode->vdisplay, in edid_print()
283 DIVIDE(DIVIDE(edid->edid_preferred_mode->dot_clock * 1000, in edid_print()
284 edid->edid_preferred_mode->htotal), in edid_print()
285 edid->edid_preferred_mode->vtotal)); in edid_print()
287 printf("Number of extension blocks: %d\n", edid->edid_ext_block_count); in edid_print()
291 edid_mode_lookup_list(const char *name) in edid_mode_lookup_list() argument
296 if (strcmp(name, videomode_list[i].name) == 0) in edid_mode_lookup_list()
306 refresh = DIVIDE(DIVIDE(mode->dot_clock * 1000, in edid_search_mode()
307 mode->htotal), mode->vtotal); in edid_search_mode()
308 for (i = 0; i < edid->edid_nmodes; i++) { in edid_search_mode()
309 if (mode->hdisplay == edid->edid_modes[i].hdisplay && in edid_search_mode()
310 mode->vdisplay == edid->edid_modes[i].vdisplay && in edid_search_mode()
312 edid->edid_modes[i].dot_clock * 1000, in edid_search_mode()
313 edid->edid_modes[i].htotal), edid->edid_modes[i].vtotal)) { in edid_search_mode()
314 return &edid->edid_modes[i]; in edid_search_mode()
325 char name[80]; in edid_std_timing() local
351 snprintf(name, sizeof(name), "%dx%dx%d", x, y, f); in edid_std_timing()
352 if ((lookup = edid_mode_lookup_list(name)) != NULL) { in edid_std_timing()
379 vmp->dot_clock = EDID_DET_TIMING_DOT_CLOCK(data) / 1000; in edid_det_timing()
393 vmp->hdisplay = hactive; in edid_det_timing()
394 vmp->htotal = hactive + hblank; in edid_det_timing()
395 vmp->hsync_start = hactive + hsyncoff; in edid_det_timing()
396 vmp->hsync_end = vmp->hsync_start + hsyncwid; in edid_det_timing()
398 vmp->vdisplay = vactive; in edid_det_timing()
399 vmp->vtotal = vactive + vblank; in edid_det_timing()
400 vmp->vsync_start = vactive + vsyncoff; in edid_det_timing()
401 vmp->vsync_end = vmp->vsync_start + vsyncwid; in edid_det_timing()
403 vmp->flags = 0; in edid_det_timing()
406 vmp->flags |= VID_INTERLACE; in edid_det_timing()
408 vmp->flags |= VID_PHSYNC; in edid_det_timing()
410 vmp->flags |= VID_NHSYNC; in edid_det_timing()
413 vmp->flags |= VID_PVSYNC; in edid_det_timing()
415 vmp->flags |= VID_NVSYNC; in edid_det_timing()
433 if (edid->edid_preferred_mode == NULL) in edid_block()
434 edid->edid_preferred_mode = exist_mode; in edid_block()
436 edid->edid_modes[edid->edid_nmodes] = mode; in edid_block()
437 if (edid->edid_preferred_mode == NULL) in edid_block()
438 edid->edid_preferred_mode = in edid_block()
439 &edid->edid_modes[edid->edid_nmodes]; in edid_block()
440 edid->edid_nmodes++; in edid_block()
447 memcpy(edid->edid_serial, data + EDID_DESC_ASCII_DATA_OFFSET, in edid_block()
449 edid->edid_serial[sizeof(edid->edid_serial) - 1] = 0; in edid_block()
453 memcpy(edid->edid_comment, data + EDID_DESC_ASCII_DATA_OFFSET, in edid_block()
455 edid->edid_comment[sizeof(edid->edid_comment) - 1] = 0; in edid_block()
459 edid->edid_have_range = 1; in edid_block()
460 edid->edid_range.er_min_vfreq = EDID_DESC_RANGE_MIN_VFREQ(data); in edid_block()
461 edid->edid_range.er_max_vfreq = EDID_DESC_RANGE_MAX_VFREQ(data); in edid_block()
462 edid->edid_range.er_min_hfreq = EDID_DESC_RANGE_MIN_HFREQ(data); in edid_block()
463 edid->edid_range.er_max_hfreq = EDID_DESC_RANGE_MAX_HFREQ(data); in edid_block()
464 edid->edid_range.er_max_clock = EDID_DESC_RANGE_MAX_CLOCK(data); in edid_block()
467 edid->edid_range.er_have_gtf2 = 1; in edid_block()
468 edid->edid_range.er_gtf2_hfreq = in edid_block()
470 edid->edid_range.er_gtf2_c = EDID_DESC_RANGE_GTF2_C(data); in edid_block()
471 edid->edid_range.er_gtf2_m = EDID_DESC_RANGE_GTF2_M(data); in edid_block()
472 edid->edid_range.er_gtf2_j = EDID_DESC_RANGE_GTF2_J(data); in edid_block()
473 edid->edid_range.er_gtf2_k = EDID_DESC_RANGE_GTF2_K(data); in edid_block()
477 /* copy the product name into place */ in edid_block()
478 memcpy(edid->edid_productname, in edid_block()
490 edid->edid_modes[edid->edid_nmodes] = in edid_block()
492 edid->edid_nmodes++; in edid_block()
514 const char *name; in edid_parse() local
519 return -1; in edid_parse()
521 /* get product identification */ in edid_parse()
523 edid->edid_vendor[0] = EDID_MANFID_0(manfid); in edid_parse()
524 edid->edid_vendor[1] = EDID_MANFID_1(manfid); in edid_parse()
525 edid->edid_vendor[2] = EDID_MANFID_2(manfid); in edid_parse()
526 edid->edid_vendor[3] = 0; /* null terminate for convenience */ in edid_parse()
528 edid->edid_product = data[EDID_OFFSET_PRODUCT_ID] + in edid_parse()
531 name = edid_findvendor(edid->edid_vendor); in edid_parse()
532 if (name != NULL) in edid_parse()
533 strlcpy(edid->edid_vendorname, name, in edid_parse()
534 sizeof(edid->edid_vendorname)); in edid_parse()
536 edid->edid_vendorname[0] = '\0'; in edid_parse()
538 name = edid_findproduct(edid->edid_vendor, edid->edid_product); in edid_parse()
539 if (name != NULL) in edid_parse()
540 strlcpy(edid->edid_productname, name, in edid_parse()
541 sizeof(edid->edid_productname)); in edid_parse()
543 edid->edid_productname[0] = '\0'; in edid_parse()
545 snprintf(edid->edid_serial, sizeof(edid->edid_serial), "%08x", in edid_parse()
548 edid->edid_week = EDID_WEEK(data); in edid_parse()
549 edid->edid_year = EDID_YEAR(data); in edid_parse()
552 edid->edid_version = EDID_VERSION(data); in edid_parse()
553 edid->edid_revision = EDID_REVISION(data); in edid_parse()
555 edid->edid_video_input = EDID_VIDEO_INPUT(data); in edid_parse()
556 edid->edid_max_hsize = EDID_MAX_HSIZE(data); in edid_parse()
557 edid->edid_max_vsize = EDID_MAX_VSIZE(data); in edid_parse()
559 edid->edid_gamma = EDID_GAMMA(data); in edid_parse()
560 edid->edid_features = EDID_FEATURES(data); in edid_parse()
562 edid->edid_chroma.ec_redx = EDID_CHROMA_REDX(data); in edid_parse()
563 edid->edid_chroma.ec_redy = EDID_CHROMA_REDX(data); in edid_parse()
564 edid->edid_chroma.ec_greenx = EDID_CHROMA_GREENX(data); in edid_parse()
565 edid->edid_chroma.ec_greeny = EDID_CHROMA_GREENY(data); in edid_parse()
566 edid->edid_chroma.ec_bluex = EDID_CHROMA_BLUEX(data); in edid_parse()
567 edid->edid_chroma.ec_bluey = EDID_CHROMA_BLUEY(data); in edid_parse()
568 edid->edid_chroma.ec_whitex = EDID_CHROMA_WHITEX(data); in edid_parse()
569 edid->edid_chroma.ec_whitey = EDID_CHROMA_WHITEY(data); in edid_parse()
571 edid->edid_ext_block_count = EDID_EXT_BLOCK_COUNT(data); in edid_parse()
574 edid->edid_nmodes = 0; in edid_parse()
575 edid->edid_preferred_mode = NULL; in edid_parse()
578 for (i = 15; i >= 0; i--) { in edid_parse()
582 edid->edid_modes[edid->edid_nmodes] = *vmp; in edid_parse()
583 edid->edid_nmodes++; in edid_parse()
601 edid->edid_modes[edid->edid_nmodes] = mode; in edid_parse()
602 edid->edid_nmodes++; in edid_parse()
613 edid_strchomp(edid->edid_vendorname); in edid_parse()
614 edid_strchomp(edid->edid_productname); in edid_parse()
615 edid_strchomp(edid->edid_serial); in edid_parse()
616 edid_strchomp(edid->edid_comment); in edid_parse()
626 for (i = 0; i < edid->edid_nmodes; i++) in edid_parse()
627 if (edid->edid_modes[i].dot_clock > max_dotclock) in edid_parse()
628 max_dotclock = edid->edid_modes[i].dot_clock; in edid_parse()
635 if (edid->edid_have_range) { in edid_parse()
636 if (mhz > edid->edid_range.er_max_clock) in edid_parse()
637 edid->edid_range.er_max_clock = mhz; in edid_parse()
639 edid->edid_range.er_max_clock = mhz; in edid_parse()