xref: /haiku/headers/private/graphics/common/dp.h (revision 945566ff43583e4f8102b4440c88f53dae775cb4)
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