1 /* 2 * Copyright 2012 Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Alexander von Gluck, kallisti5@unixzen.com 7 */ 8 #ifndef _DP_H 9 #define _DP_H 10 11 12 #include <Accelerant.h> 13 #include "dp_raw.h" 14 #include <GraphicsDefs.h> 15 #include <OS.h> 16 17 18 typedef struct { 19 // Required configuration 20 bool valid; // Is valid DP information 21 uint32 auxPin; // Normally GPIO pin on GPU 22 23 uint8 config[DP_DPCD_SIZE]; // DP Configuration Data 24 int laneCount; 25 26 uint32 linkRate; // DP Link Speed 162000, 270000, 540000 27 28 // Internal State information 29 uint8 linkStatus[DP_LINK_STATUS_SIZE]; 30 31 uint8 trainingAttempts; 32 uint8 trainingSet[4]; 33 int trainingReadInterval; 34 35 } dp_info; 36 37 typedef struct { 38 uint16 address; 39 uint8 request; 40 uint8 reply; 41 void* buffer; 42 size_t size; 43 } dp_aux_msg; 44 45 uint32 dp_encode_link_rate(uint32 linkRate); 46 uint32 dp_decode_link_rate(uint32 rawLinkRate); 47 48 uint32 dp_get_lane_count_max(dp_info* dpInfo); 49 uint32 dp_get_link_rate_max(dp_info* dpInfo); 50 51 uint32 dp_get_pixel_clock_max(int linkRate, int laneCount, int bpp); 52 53 54 #endif /* _DP_H */ 55