1352ff8bdSFrançois Tigeot /* 2352ff8bdSFrançois Tigeot * Copyright © 2014 Red Hat Inc. 3352ff8bdSFrançois Tigeot * 4352ff8bdSFrançois Tigeot * Permission is hereby granted, free of charge, to any person obtaining a 5352ff8bdSFrançois Tigeot * copy of this software and associated documentation files (the "Software"), 6352ff8bdSFrançois Tigeot * to deal in the Software without restriction, including without limitation 7352ff8bdSFrançois Tigeot * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8352ff8bdSFrançois Tigeot * and/or sell copies of the Software, and to permit persons to whom the 9352ff8bdSFrançois Tigeot * Software is furnished to do so, subject to the following conditions: 10352ff8bdSFrançois Tigeot * 11352ff8bdSFrançois Tigeot * The above copyright notice and this permission notice shall be included in 12352ff8bdSFrançois Tigeot * all copies or substantial portions of the Software. 13352ff8bdSFrançois Tigeot * 14352ff8bdSFrançois Tigeot * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15352ff8bdSFrançois Tigeot * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16352ff8bdSFrançois Tigeot * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17352ff8bdSFrançois Tigeot * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR 18352ff8bdSFrançois Tigeot * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19352ff8bdSFrançois Tigeot * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20352ff8bdSFrançois Tigeot * OTHER DEALINGS IN THE SOFTWARE. 21352ff8bdSFrançois Tigeot */ 22352ff8bdSFrançois Tigeot #ifndef DRM_DISPLAYID_H 23352ff8bdSFrançois Tigeot #define DRM_DISPLAYID_H 24352ff8bdSFrançois Tigeot 25352ff8bdSFrançois Tigeot #define DATA_BLOCK_PRODUCT_ID 0x00 26352ff8bdSFrançois Tigeot #define DATA_BLOCK_DISPLAY_PARAMETERS 0x01 27352ff8bdSFrançois Tigeot #define DATA_BLOCK_COLOR_CHARACTERISTICS 0x02 28352ff8bdSFrançois Tigeot #define DATA_BLOCK_TYPE_1_DETAILED_TIMING 0x03 29352ff8bdSFrançois Tigeot #define DATA_BLOCK_TYPE_2_DETAILED_TIMING 0x04 30352ff8bdSFrançois Tigeot #define DATA_BLOCK_TYPE_3_SHORT_TIMING 0x05 31352ff8bdSFrançois Tigeot #define DATA_BLOCK_TYPE_4_DMT_TIMING 0x06 32352ff8bdSFrançois Tigeot #define DATA_BLOCK_VESA_TIMING 0x07 33352ff8bdSFrançois Tigeot #define DATA_BLOCK_CEA_TIMING 0x08 34352ff8bdSFrançois Tigeot #define DATA_BLOCK_VIDEO_TIMING_RANGE 0x09 35352ff8bdSFrançois Tigeot #define DATA_BLOCK_PRODUCT_SERIAL_NUMBER 0x0a 36352ff8bdSFrançois Tigeot #define DATA_BLOCK_GP_ASCII_STRING 0x0b 37352ff8bdSFrançois Tigeot #define DATA_BLOCK_DISPLAY_DEVICE_DATA 0x0c 38352ff8bdSFrançois Tigeot #define DATA_BLOCK_INTERFACE_POWER_SEQUENCING 0x0d 39352ff8bdSFrançois Tigeot #define DATA_BLOCK_TRANSFER_CHARACTERISTICS 0x0e 40352ff8bdSFrançois Tigeot #define DATA_BLOCK_DISPLAY_INTERFACE 0x0f 41352ff8bdSFrançois Tigeot #define DATA_BLOCK_STEREO_DISPLAY_INTERFACE 0x10 42352ff8bdSFrançois Tigeot #define DATA_BLOCK_TILED_DISPLAY 0x12 43352ff8bdSFrançois Tigeot 44352ff8bdSFrançois Tigeot #define DATA_BLOCK_VENDOR_SPECIFIC 0x7f 45352ff8bdSFrançois Tigeot 46352ff8bdSFrançois Tigeot #define PRODUCT_TYPE_EXTENSION 0 47352ff8bdSFrançois Tigeot #define PRODUCT_TYPE_TEST 1 48352ff8bdSFrançois Tigeot #define PRODUCT_TYPE_PANEL 2 49352ff8bdSFrançois Tigeot #define PRODUCT_TYPE_MONITOR 3 50352ff8bdSFrançois Tigeot #define PRODUCT_TYPE_TV 4 51352ff8bdSFrançois Tigeot #define PRODUCT_TYPE_REPEATER 5 52352ff8bdSFrançois Tigeot #define PRODUCT_TYPE_DIRECT_DRIVE 6 53352ff8bdSFrançois Tigeot 54352ff8bdSFrançois Tigeot struct displayid_hdr { 55352ff8bdSFrançois Tigeot u8 rev; 56352ff8bdSFrançois Tigeot u8 bytes; 57352ff8bdSFrançois Tigeot u8 prod_id; 58352ff8bdSFrançois Tigeot u8 ext_count; 59352ff8bdSFrançois Tigeot } __packed; 60352ff8bdSFrançois Tigeot 61352ff8bdSFrançois Tigeot struct displayid_block { 62352ff8bdSFrançois Tigeot u8 tag; 63352ff8bdSFrançois Tigeot u8 rev; 64352ff8bdSFrançois Tigeot u8 num_bytes; 65352ff8bdSFrançois Tigeot } __packed; 66352ff8bdSFrançois Tigeot 67352ff8bdSFrançois Tigeot struct displayid_tiled_block { 68352ff8bdSFrançois Tigeot struct displayid_block base; 69352ff8bdSFrançois Tigeot u8 tile_cap; 70352ff8bdSFrançois Tigeot u8 topo[3]; 71352ff8bdSFrançois Tigeot u8 tile_size[4]; 72352ff8bdSFrançois Tigeot u8 tile_pixel_bezel[5]; 73352ff8bdSFrançois Tigeot u8 topology_id[8]; 74352ff8bdSFrançois Tigeot } __packed; 75352ff8bdSFrançois Tigeot 76*8621f407SFrançois Tigeot struct displayid_detailed_timings_1 { 77*8621f407SFrançois Tigeot u8 pixel_clock[3]; 78*8621f407SFrançois Tigeot u8 flags; 79*8621f407SFrançois Tigeot u8 hactive[2]; 80*8621f407SFrançois Tigeot u8 hblank[2]; 81*8621f407SFrançois Tigeot u8 hsync[2]; 82*8621f407SFrançois Tigeot u8 hsw[2]; 83*8621f407SFrançois Tigeot u8 vactive[2]; 84*8621f407SFrançois Tigeot u8 vblank[2]; 85*8621f407SFrançois Tigeot u8 vsync[2]; 86*8621f407SFrançois Tigeot u8 vsw[2]; 87*8621f407SFrançois Tigeot } __packed; 88*8621f407SFrançois Tigeot 89*8621f407SFrançois Tigeot struct displayid_detailed_timing_block { 90*8621f407SFrançois Tigeot struct displayid_block base; 91*8621f407SFrançois Tigeot struct displayid_detailed_timings_1 timings[0]; 92*8621f407SFrançois Tigeot }; 93352ff8bdSFrançois Tigeot #endif 94