1b01aed83SAlexander von Gluck IV /* 2b01aed83SAlexander von Gluck IV * Copyright 2011-2015, Haiku, Inc. All Rights Reserved. 3b01aed83SAlexander von Gluck IV * Distributed under the terms of the MIT License. 4b01aed83SAlexander von Gluck IV * 5b01aed83SAlexander von Gluck IV * Authors: 6b01aed83SAlexander von Gluck IV * Michael Lotz, mmlr@mlotz.ch 7b01aed83SAlexander von Gluck IV * Alexander von Gluck IV, kallisti5@unixzen.com 8b01aed83SAlexander von Gluck IV */ 9b01aed83SAlexander von Gluck IV #ifndef INTEL_PIPE_H 10b01aed83SAlexander von Gluck IV #define INTEL_PIPE_H 11b01aed83SAlexander von Gluck IV 12b01aed83SAlexander von Gluck IV 13b01aed83SAlexander von Gluck IV #include <edid.h> 14b01aed83SAlexander von Gluck IV 15b01aed83SAlexander von Gluck IV #include "intel_extreme.h" 16b01aed83SAlexander von Gluck IV 17b01aed83SAlexander von Gluck IV #include "pll.h" 18b01aed83SAlexander von Gluck IV #include "FlexibleDisplayInterface.h" 1916ea5aacSRudolf Cornelissen #include "PanelFitter.h" 20b01aed83SAlexander von Gluck IV 21b01aed83SAlexander von Gluck IV 22b01aed83SAlexander von Gluck IV #define MAX_PIPES 2 23b01aed83SAlexander von Gluck IV 24b01aed83SAlexander von Gluck IV 25b01aed83SAlexander von Gluck IV void program_pipe_color_modes(uint32 colorMode); 26b01aed83SAlexander von Gluck IV 27b01aed83SAlexander von Gluck IV //class FDILink; 28b01aed83SAlexander von Gluck IV //class PanelFitter; 29b01aed83SAlexander von Gluck IV 30b01aed83SAlexander von Gluck IV class Pipe { 31b01aed83SAlexander von Gluck IV public: 32b01aed83SAlexander von Gluck IV Pipe(pipe_index pipeIndex); 33b01aed83SAlexander von Gluck IV ~Pipe(); 34b01aed83SAlexander von Gluck IV 35b01aed83SAlexander von Gluck IV pipe_index Index() 36b01aed83SAlexander von Gluck IV { return fPipeIndex; } 37b01aed83SAlexander von Gluck IV 38b01aed83SAlexander von Gluck IV bool IsEnabled(); 39b979c66cSAlexander von Gluck IV void Enable(bool enable); 40b01aed83SAlexander von Gluck IV void Disable(); 41b01aed83SAlexander von Gluck IV 42c9c61669SAlexander von Gluck IV void Configure(display_mode* mode); 43*b3bafaf6SRudolf Cornelissen void ConfigureScalePos(display_mode* mode); 44abcbfac6SAdrien Destugues void ConfigureTimings(display_mode* mode, 45abcbfac6SAdrien Destugues bool hardware = true); 46b979c66cSAlexander von Gluck IV void ConfigureClocks( 47b01aed83SAlexander von Gluck IV const pll_divisors& divisors, 48b01aed83SAlexander von Gluck IV uint32 pixelClock, 49b01aed83SAlexander von Gluck IV uint32 extraFlags); 50b01aed83SAlexander von Gluck IV 51b01aed83SAlexander von Gluck IV // access to the various parts of the pipe 52b01aed83SAlexander von Gluck IV ::FDILink* FDI() 53b01aed83SAlexander von Gluck IV { return fFDILink; } 5416ea5aacSRudolf Cornelissen ::PanelFitter* PFT() 5516ea5aacSRudolf Cornelissen { return fPanelFitter; } 56b01aed83SAlexander von Gluck IV 57b01aed83SAlexander von Gluck IV private: 58b979c66cSAlexander von Gluck IV void _ConfigureTranscoder(display_mode* mode); 59d35a52e8SAlexander von Gluck IV 60d35a52e8SAlexander von Gluck IV bool fHasTranscoder; 61b01aed83SAlexander von Gluck IV 62b01aed83SAlexander von Gluck IV FDILink* fFDILink; 6316ea5aacSRudolf Cornelissen PanelFitter* fPanelFitter; 64b01aed83SAlexander von Gluck IV 65b01aed83SAlexander von Gluck IV pipe_index fPipeIndex; 66b01aed83SAlexander von Gluck IV 67d35a52e8SAlexander von Gluck IV addr_t fPipeOffset; 68d35a52e8SAlexander von Gluck IV addr_t fPlaneOffset; 69b01aed83SAlexander von Gluck IV }; 70b01aed83SAlexander von Gluck IV 71b01aed83SAlexander von Gluck IV 72b01aed83SAlexander von Gluck IV #endif // INTEL_PIPE_H 73