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" 19b01aed83SAlexander von Gluck IV 20b01aed83SAlexander von Gluck IV 21b01aed83SAlexander von Gluck IV #define MAX_PIPES 2 22b01aed83SAlexander von Gluck IV 23b01aed83SAlexander von Gluck IV 24b01aed83SAlexander von Gluck IV void program_pipe_color_modes(uint32 colorMode); 25b01aed83SAlexander von Gluck IV 26b01aed83SAlexander von Gluck IV //class FDILink; 27b01aed83SAlexander von Gluck IV //class PanelFitter; 28b01aed83SAlexander von Gluck IV 29b01aed83SAlexander von Gluck IV class Pipe { 30b01aed83SAlexander von Gluck IV public: 31b01aed83SAlexander von Gluck IV Pipe(pipe_index pipeIndex); 32b01aed83SAlexander von Gluck IV ~Pipe(); 33b01aed83SAlexander von Gluck IV 34b01aed83SAlexander von Gluck IV pipe_index Index() 35b01aed83SAlexander von Gluck IV { return fPipeIndex; } 36b01aed83SAlexander von Gluck IV 37b01aed83SAlexander von Gluck IV bool IsEnabled(); 38*d35a52e8SAlexander von Gluck IV void Enable(display_mode* mode); 39b01aed83SAlexander von Gluck IV void Disable(); 40b01aed83SAlexander von Gluck IV 41b01aed83SAlexander von Gluck IV void ConfigureTimings( 42b01aed83SAlexander von Gluck IV const pll_divisors& divisors, 43b01aed83SAlexander von Gluck IV uint32 pixelClock, 44b01aed83SAlexander von Gluck IV uint32 extraFlags); 45b01aed83SAlexander von Gluck IV 46b01aed83SAlexander von Gluck IV // access to the various parts of the pipe 47b01aed83SAlexander von Gluck IV ::FDILink* FDI() 48b01aed83SAlexander von Gluck IV { return fFDILink; } 49b01aed83SAlexander von Gluck IV // ::PanelFitter* PanelFitter() 50b01aed83SAlexander von Gluck IV // { return fPanelFitter; } 51b01aed83SAlexander von Gluck IV 52b01aed83SAlexander von Gluck IV private: 53b01aed83SAlexander von Gluck IV void _Enable(bool enable); 54*d35a52e8SAlexander von Gluck IV void _EnableTranscoder(display_mode* mode); 55*d35a52e8SAlexander von Gluck IV 56*d35a52e8SAlexander von Gluck IV bool fHasTranscoder; 57b01aed83SAlexander von Gluck IV 58b01aed83SAlexander von Gluck IV FDILink* fFDILink; 59b01aed83SAlexander von Gluck IV // PanelFitter* fPanelFitter; 60b01aed83SAlexander von Gluck IV 61b01aed83SAlexander von Gluck IV pipe_index fPipeIndex; 62b01aed83SAlexander von Gluck IV 63*d35a52e8SAlexander von Gluck IV addr_t fPipeOffset; 64*d35a52e8SAlexander von Gluck IV addr_t fPlaneOffset; 65b01aed83SAlexander von Gluck IV }; 66b01aed83SAlexander von Gluck IV 67b01aed83SAlexander von Gluck IV 68b01aed83SAlexander von Gluck IV #endif // INTEL_PIPE_H 69