@@ -487,14 +487,38 @@ typedef struct {
487
487
u8 padding [2 ];
488
488
} SetSysDataBlock ;
489
489
490
+ typedef struct {
491
+ u8 extension_tag ; ///< 2 = CEA EDID timing extension, 0x70 = DisplayID Extension Block, 0xF0 = EDID Extension Block Map
492
+ union {
493
+ struct {
494
+ u8 revision ;
495
+ u8 dtd_start ;
496
+ u8 native_dtd_count : 4 ;
497
+ u8 native_dtd_feature_bitmap : 4 ;
498
+ SetSysDataBlock data_block ;
499
+ SetSysModeLine extended_timing_descriptor [5 ];
500
+ u8 padding [5 ];
501
+ } NX_PACKED cea ; ///< CEA EDID timing extension
502
+ struct {
503
+ u8 data [0x7E ];
504
+ } display_id ; ///< [13.0.0+] DisplayID Extension Block
505
+ struct {
506
+ u8 second_block_extension_tag ;
507
+ u8 third_block_extension_tag ;
508
+ u8 padding [0x7C ];
509
+ } block_map ; ///< [13.0.0+] EDID Extension Block Map
510
+ } extension_block ;
511
+ u8 extended_checksum ; ///< Sum of 128 extended bytes should equal 0 mod 256.
512
+ } SetSysExtensionBlock ;
513
+
490
514
/// Edid
491
515
typedef struct {
492
516
u8 pattern [8 ]; ///< Fixed pattern 00 FF FF FF FF FF FF 00.
493
517
u16 pnp_id ; ///< Big-endian set of 3 5-bit values representing letters, 1 = A .. 26 = Z.
494
518
u16 product_code ;
495
519
u32 serial_number ;
496
520
u8 manufacture_week ;
497
- u8 manufacture_year ; ///< Real value is val - 10 .
521
+ u8 manufacture_year ; ///< Real year is 1990 + val .
498
522
u8 edid_version ;
499
523
u8 edid_revision ;
500
524
u8 video_input_parameters_bitmap ;
@@ -545,20 +569,12 @@ typedef struct {
545
569
u8 extended_timing_info ;
546
570
u8 padding [7 ];
547
571
} display_descriptor_range_limits ;
548
- u8 extension_count ; ///< Always 1.
572
+ u8 extension_count ;
549
573
u8 checksum ; ///< Sum of all 128 bytes should equal 0 mod 256.
550
574
///< Extended data.
551
- u8 extension_tag ; ///< Always 2 = CEA EDID timing extension.
552
- u8 revision ;
553
- u8 dtd_start ;
554
- u8 native_dtd_count : 4 ;
555
- u8 native_dtd_feature_bitmap : 4 ;
556
- SetSysDataBlock data_block ;
557
- SetSysModeLine extended_timing_descriptor [5 ];
558
- u8 padding [5 ];
559
- u8 extended_checksum ; ///< Sum of 128 extended bytes should equal 0 mod 256.
560
- u8 data2 [0x80 ]; ///< [13.0.0+]
561
- u8 data3 [0x80 ]; ///< [13.0.0+]
575
+ SetSysExtensionBlock data1 ;
576
+ SetSysExtensionBlock data2 ; ///< [13.0.0+]
577
+ SetSysExtensionBlock data3 ; ///< [13.0.0+]
562
578
} SetSysEdid ;
563
579
564
580
/// DataDeletionSettings
0 commit comments