xref: /haiku/src/add-ons/accelerants/radeon_hd/encoder.h (revision 25a087bc7c890146d6677bc2d97981b1470086cf)
17c91a33cSAlexander von Gluck IV /*
27c91a33cSAlexander von Gluck IV  * Copyright 2006-2011, Haiku, Inc. All Rights Reserved.
37c91a33cSAlexander von Gluck IV  * Distributed under the terms of the MIT License.
47c91a33cSAlexander von Gluck IV  *
57c91a33cSAlexander von Gluck IV  * Authors:
67c91a33cSAlexander von Gluck IV  *      Alexander von Gluck, kallisti5@unixzen.com
77c91a33cSAlexander von Gluck IV  */
87c91a33cSAlexander von Gluck IV #ifndef RADEON_HD_ENCODER_H
97c91a33cSAlexander von Gluck IV #define RADEON_HD_ENCODER_H
107c91a33cSAlexander von Gluck IV 
117c91a33cSAlexander von Gluck IV 
1261cf7133SAlexander von Gluck IV #include <SupportDefs.h>
1361cf7133SAlexander von Gluck IV 
147dd18210SAlexander von Gluck IV void encoder_init();
1561cf7133SAlexander von Gluck IV 
166b120e4cSAlexander von Gluck IV void encoder_assign_crtc(uint8 crtcID);
17c8677fb1SAlexander von Gluck IV uint32 encoder_pick_dig(uint32 connectorIndex);
186b120e4cSAlexander von Gluck IV 
1907a90a63SAlexander von Gluck IV void encoder_apply_quirks(uint8 crtcID);
205e87e395SAlexander von Gluck IV void encoder_mode_set(uint8 crtcID);
217a13bce5SAlexander von Gluck IV status_t encoder_analog_setup(uint32 connectorIndex,
227a13bce5SAlexander von Gluck IV 	uint32 pixelClock, int command);
237a13bce5SAlexander von Gluck IV status_t encoder_digital_setup(uint32 connectorIndex,
247a13bce5SAlexander von Gluck IV 	uint32 pixelClock, int command);
257a13bce5SAlexander von Gluck IV status_t encoder_dig_setup(uint32 connectorIndex,
267a13bce5SAlexander von Gluck IV 	uint32 pixelClock, int command);
2719574417SAlexander von Gluck IV status_t encoder_external_setup(uint32 connectorIndex, int command);
287a13bce5SAlexander von Gluck IV status_t encoder_tv_setup(uint32 connectorIndex,
297a13bce5SAlexander von Gluck IV 	uint32 pixelClock, int command);
307a13bce5SAlexander von Gluck IV 
317a13bce5SAlexander von Gluck IV bool encoder_analog_load_detect(uint32 connectorIndex);
32119cd5e1SAlexander von Gluck IV bool encoder_dac_load_detect(uint32 connectorIndex);
33119cd5e1SAlexander von Gluck IV bool encoder_dig_load_detect(uint32 connectorIndex);
34b54c8119SAlexander von Gluck IV void encoder_output_lock(bool lock);
358ff2ca22SAlexander von Gluck IV status_t transmitter_dig_setup(uint32 connectorIndex, uint32 pixelClock,
368ff2ca22SAlexander von Gluck IV 	uint8 laneNumber, uint8 laneSet, int command);
376b0b621bSAlexander von Gluck IV void encoder_crtc_scratch(uint8 crtcID);
386b0b621bSAlexander von Gluck IV void encoder_dpms_scratch(uint8 crtcID, bool power);
3945e71a9eSAlexander von Gluck IV void encoder_dpms_set(uint8 crtcID, int mode);
4045e71a9eSAlexander von Gluck IV void encoder_dpms_set_dig(uint8 crtcID, int mode);
41e766693eSAlexander von Gluck IV void encoder_dpms_set_dvo(uint8 crtcID, int mode);
4294e5ca7eSAlexander von Gluck IV 
43bdd19893SAlexander von Gluck IV const char* encoder_name_lookup(uint32 encoderID);
44*9c2d51d6SAlexander von Gluck IV uint32 encoder_object_lookup(uint32 connectorFlags, uint8 dacID);
455a2c3572SAlexander von Gluck IV uint32 encoder_type_lookup(uint32 encoderID, uint32 connectorFlags);
46dad34be3SAlexander von Gluck IV bool encoder_is_external(uint32 encoderID);
47dad34be3SAlexander von Gluck IV bool encoder_is_dp_bridge(uint32 encoderID);
487c91a33cSAlexander von Gluck IV 
497c91a33cSAlexander von Gluck IV 
507c91a33cSAlexander von Gluck IV #endif /* RADEON_HD_ENCODER_H */
51