diff options
Diffstat (limited to 'src/radeon_probe.h')
-rw-r--r-- | src/radeon_probe.h | 81 |
1 files changed, 48 insertions, 33 deletions
diff --git a/src/radeon_probe.h b/src/radeon_probe.h index 66ece941..d01fd8b1 100644 --- a/src/radeon_probe.h +++ b/src/radeon_probe.h @@ -36,6 +36,7 @@ #ifndef _RADEON_PROBE_H_ #define _RADEON_PROBE_H_ 1 +#include <stdint.h> #include "xf86str.h" #include "xf86DDC.h" #include "randrstr.h" @@ -54,54 +55,39 @@ typedef enum { - DDC_NONE_DETECTED, - DDC_MONID, - DDC_DVI, - DDC_VGA, - DDC_CRT2, - DDC_LCD, - DDC_GPIO, -} RADEONDDCType; - -typedef enum -{ MT_UNKNOWN = -1, MT_NONE = 0, MT_CRT = 1, MT_LCD = 2, MT_DFP = 3, MT_CTV = 4, - MT_STV = 5 + MT_STV = 5, + MT_CV = 6, + MT_HDMI = 7, + MT_DP = 8 } RADEONMonitorType; typedef enum { CONNECTOR_NONE, - CONNECTOR_PROPRIETARY, - CONNECTOR_CRT, + CONNECTOR_VGA, CONNECTOR_DVI_I, CONNECTOR_DVI_D, - CONNECTOR_CTV, + CONNECTOR_DVI_A, CONNECTOR_STV, + CONNECTOR_CTV, + CONNECTOR_LVDS, + CONNECTOR_DIGITAL, + CONNECTOR_SCART, + CONNECTOR_HDMI_TYPE_A, + CONNECTOR_HDMI_TYPE_B, + CONNECTOR_DIN, + CONNECTOR_DISPLAY_PORT, CONNECTOR_UNSUPPORTED } RADEONConnectorType; typedef enum { - CONNECTOR_NONE_ATOM, - CONNECTOR_VGA_ATOM, - CONNECTOR_DVI_I_ATOM, - CONNECTOR_DVI_D_ATOM, - CONNECTOR_DVI_A_ATOM, - CONNECTOR_STV_ATOM, - CONNECTOR_CTV_ATOM, - CONNECTOR_LVDS_ATOM, - CONNECTOR_DIGITAL_ATOM, - CONNECTOR_UNSUPPORTED_ATOM -} RADEONConnectorTypeATOM; - -typedef enum -{ DAC_UNKNOWN = -1, DAC_PRIMARY = 0, DAC_TVDAC = 1, @@ -140,12 +126,23 @@ typedef enum { OUTPUT_NONE, OUTPUT_VGA, - OUTPUT_DVI, + OUTPUT_DVI_I, + OUTPUT_DVI_D, + OUTPUT_DVI_A, OUTPUT_LVDS, OUTPUT_STV, OUTPUT_CTV, + OUTPUT_CV, + OUTPUT_HDMI, + OUTPUT_DP } RADEONOutputType; +#define OUTPUT_IS_DVI ((radeon_output->type == OUTPUT_DVI_D || \ + radeon_output->type == OUTPUT_DVI_I || \ + radeon_output->type == OUTPUT_DVI_A)) +#define OUTPUT_IS_TV ((radeon_output->type == OUTPUT_STV || \ + radeon_output->type == OUTPUT_CTV)) + /* standards */ typedef enum { @@ -155,6 +152,8 @@ typedef enum TV_STD_PAL_60 = 8, TV_STD_NTSC_J = 16, TV_STD_SCART_PAL = 32, + TV_STD_SECAM = 64, + TV_STD_PAL_CN = 128, } TVStd; typedef struct _RADEONCrtcPrivateRec { @@ -168,21 +167,33 @@ typedef struct _RADEONCrtcPrivateRec { int binding; /* Lookup table values to be set when the CRTC is enabled */ CARD8 lut_r[256], lut_g[256], lut_b[256]; + + uint32_t crtc_offset; + int h_total, h_blank, h_sync_wid, h_sync_pol; + int v_total, v_blank, v_sync_wid, v_sync_pol; + int fb_format, fb_length; + int fb_pitch, fb_width, fb_height; + INT16 cursor_x; + INT16 cursor_y; + unsigned long cursor_offset; } RADEONCrtcPrivateRec, *RADEONCrtcPrivatePtr; typedef struct { - RADEONDDCType DDCType; + CARD32 ddc_line; RADEONDacType DACType; RADEONTmdsType TMDSType; RADEONConnectorType ConnectorType; Bool valid; + int output_id; + int devices; + int hpd_mask; } RADEONBIOSConnector; typedef struct _RADEONOutputPrivateRec { int num; RADEONOutputType type; void *dev_priv; - RADEONDDCType DDCType; + CARD32 ddc_line; RADEONDacType DACType; RADEONDviType DVIType; RADEONTmdsType TMDSType; @@ -221,10 +232,14 @@ typedef struct _RADEONOutputPrivateRec { int SupportedTVStds; Bool tv_on; int load_detection; + + char *name; + int output_id; + int devices; } RADEONOutputPrivateRec, *RADEONOutputPrivatePtr; #define RADEON_MAX_CRTC 2 -#define RADEON_MAX_BIOS_CONNECTOR 8 +#define RADEON_MAX_BIOS_CONNECTOR 16 typedef struct { |