diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/atombios.h')
-rw-r--r-- | drivers/gpu/drm/radeon/atombios.h | 76 |
1 files changed, 74 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/atombios.h b/drivers/gpu/drm/radeon/atombios.h index 6732b5dd8ff4..26986c8e1f45 100644 --- a/drivers/gpu/drm/radeon/atombios.h +++ b/drivers/gpu/drm/radeon/atombios.h | |||
@@ -5742,6 +5742,9 @@ typedef struct _ATOM_PPLIB_THERMALCONTROLLER | |||
5742 | #define ATOM_PP_THERMALCONTROLLER_RV6xx 7 | 5742 | #define ATOM_PP_THERMALCONTROLLER_RV6xx 7 |
5743 | #define ATOM_PP_THERMALCONTROLLER_RV770 8 | 5743 | #define ATOM_PP_THERMALCONTROLLER_RV770 8 |
5744 | #define ATOM_PP_THERMALCONTROLLER_ADT7473 9 | 5744 | #define ATOM_PP_THERMALCONTROLLER_ADT7473 9 |
5745 | #define ATOM_PP_THERMALCONTROLLER_EXTERNAL_GPIO 11 | ||
5746 | #define ATOM_PP_THERMALCONTROLLER_EVERGREEN 12 | ||
5747 | #define ATOM_PP_THERMALCONTROLLER_ADT7473_WITH_INTERNAL 0x89 // ADT7473 Fan Control + Internal Thermal Controller | ||
5745 | 5748 | ||
5746 | typedef struct _ATOM_PPLIB_STATE | 5749 | typedef struct _ATOM_PPLIB_STATE |
5747 | { | 5750 | { |
@@ -5749,6 +5752,26 @@ typedef struct _ATOM_PPLIB_STATE | |||
5749 | UCHAR ucClockStateIndices[1]; // variable-sized | 5752 | UCHAR ucClockStateIndices[1]; // variable-sized |
5750 | } ATOM_PPLIB_STATE; | 5753 | } ATOM_PPLIB_STATE; |
5751 | 5754 | ||
5755 | typedef struct _ATOM_PPLIB_FANTABLE | ||
5756 | { | ||
5757 | UCHAR ucFanTableFormat; // Change this if the table format changes or version changes so that the other fields are not the same. | ||
5758 | UCHAR ucTHyst; // Temperature hysteresis. Integer. | ||
5759 | USHORT usTMin; // The temperature, in 0.01 centigrades, below which we just run at a minimal PWM. | ||
5760 | USHORT usTMed; // The middle temperature where we change slopes. | ||
5761 | USHORT usTHigh; // The high point above TMed for adjusting the second slope. | ||
5762 | USHORT usPWMMin; // The minimum PWM value in percent (0.01% increments). | ||
5763 | USHORT usPWMMed; // The PWM value (in percent) at TMed. | ||
5764 | USHORT usPWMHigh; // The PWM value at THigh. | ||
5765 | } ATOM_PPLIB_FANTABLE; | ||
5766 | |||
5767 | typedef struct _ATOM_PPLIB_EXTENDEDHEADER | ||
5768 | { | ||
5769 | USHORT usSize; | ||
5770 | ULONG ulMaxEngineClock; // For Overdrive. | ||
5771 | ULONG ulMaxMemoryClock; // For Overdrive. | ||
5772 | // Add extra system parameters here, always adjust size to include all fields. | ||
5773 | } ATOM_PPLIB_EXTENDEDHEADER; | ||
5774 | |||
5752 | //// ATOM_PPLIB_POWERPLAYTABLE::ulPlatformCaps | 5775 | //// ATOM_PPLIB_POWERPLAYTABLE::ulPlatformCaps |
5753 | #define ATOM_PP_PLATFORM_CAP_BACKBIAS 1 | 5776 | #define ATOM_PP_PLATFORM_CAP_BACKBIAS 1 |
5754 | #define ATOM_PP_PLATFORM_CAP_POWERPLAY 2 | 5777 | #define ATOM_PP_PLATFORM_CAP_POWERPLAY 2 |
@@ -5762,6 +5785,12 @@ typedef struct _ATOM_PPLIB_STATE | |||
5762 | #define ATOM_PP_PLATFORM_CAP_SIDEPORTCONTROL 512 | 5785 | #define ATOM_PP_PLATFORM_CAP_SIDEPORTCONTROL 512 |
5763 | #define ATOM_PP_PLATFORM_CAP_TURNOFFPLL_ASPML1 1024 | 5786 | #define ATOM_PP_PLATFORM_CAP_TURNOFFPLL_ASPML1 1024 |
5764 | #define ATOM_PP_PLATFORM_CAP_HTLINKCONTROL 2048 | 5787 | #define ATOM_PP_PLATFORM_CAP_HTLINKCONTROL 2048 |
5788 | #define ATOM_PP_PLATFORM_CAP_MVDDCONTROL 4096 | ||
5789 | #define ATOM_PP_PLATFORM_CAP_GOTO_BOOT_ON_ALERT 0x2000 // Go to boot state on alerts, e.g. on an AC->DC transition. | ||
5790 | #define ATOM_PP_PLATFORM_CAP_DONT_WAIT_FOR_VBLANK_ON_ALERT 0x4000 // Do NOT wait for VBLANK during an alert (e.g. AC->DC transition). | ||
5791 | #define ATOM_PP_PLATFORM_CAP_VDDCI_CONTROL 0x8000 // Does the driver control VDDCI independently from VDDC. | ||
5792 | #define ATOM_PP_PLATFORM_CAP_REGULATOR_HOT 0x00010000 // Enable the 'regulator hot' feature. | ||
5793 | #define ATOM_PP_PLATFORM_CAP_BACO 0x00020000 // Does the driver supports BACO state. | ||
5765 | 5794 | ||
5766 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE | 5795 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE |
5767 | { | 5796 | { |
@@ -5797,6 +5826,21 @@ typedef struct _ATOM_PPLIB_POWERPLAYTABLE | |||
5797 | 5826 | ||
5798 | } ATOM_PPLIB_POWERPLAYTABLE; | 5827 | } ATOM_PPLIB_POWERPLAYTABLE; |
5799 | 5828 | ||
5829 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE2 | ||
5830 | { | ||
5831 | ATOM_PPLIB_POWERPLAYTABLE basicTable; | ||
5832 | UCHAR ucNumCustomThermalPolicy; | ||
5833 | USHORT usCustomThermalPolicyArrayOffset; | ||
5834 | }ATOM_PPLIB_POWERPLAYTABLE2, *LPATOM_PPLIB_POWERPLAYTABLE2; | ||
5835 | |||
5836 | typedef struct _ATOM_PPLIB_POWERPLAYTABLE3 | ||
5837 | { | ||
5838 | ATOM_PPLIB_POWERPLAYTABLE2 basicTable2; | ||
5839 | USHORT usFormatID; // To be used ONLY by PPGen. | ||
5840 | USHORT usFanTableOffset; | ||
5841 | USHORT usExtendendedHeaderOffset; | ||
5842 | } ATOM_PPLIB_POWERPLAYTABLE3, *LPATOM_PPLIB_POWERPLAYTABLE3; | ||
5843 | |||
5800 | //// ATOM_PPLIB_NONCLOCK_INFO::usClassification | 5844 | //// ATOM_PPLIB_NONCLOCK_INFO::usClassification |
5801 | #define ATOM_PPLIB_CLASSIFICATION_UI_MASK 0x0007 | 5845 | #define ATOM_PPLIB_CLASSIFICATION_UI_MASK 0x0007 |
5802 | #define ATOM_PPLIB_CLASSIFICATION_UI_SHIFT 0 | 5846 | #define ATOM_PPLIB_CLASSIFICATION_UI_SHIFT 0 |
@@ -5816,7 +5860,9 @@ typedef struct _ATOM_PPLIB_POWERPLAYTABLE | |||
5816 | #define ATOM_PPLIB_CLASSIFICATION_UVDSTATE 0x0400 | 5860 | #define ATOM_PPLIB_CLASSIFICATION_UVDSTATE 0x0400 |
5817 | #define ATOM_PPLIB_CLASSIFICATION_3DLOW 0x0800 | 5861 | #define ATOM_PPLIB_CLASSIFICATION_3DLOW 0x0800 |
5818 | #define ATOM_PPLIB_CLASSIFICATION_ACPI 0x1000 | 5862 | #define ATOM_PPLIB_CLASSIFICATION_ACPI 0x1000 |
5819 | // remaining 3 bits are reserved | 5863 | #define ATOM_PPLIB_CLASSIFICATION_HD2STATE 0x2000 |
5864 | #define ATOM_PPLIB_CLASSIFICATION_HDSTATE 0x4000 | ||
5865 | #define ATOM_PPLIB_CLASSIFICATION_SDSTATE 0x8000 | ||
5820 | 5866 | ||
5821 | //// ATOM_PPLIB_NONCLOCK_INFO::ulCapsAndSettings | 5867 | //// ATOM_PPLIB_NONCLOCK_INFO::ulCapsAndSettings |
5822 | #define ATOM_PPLIB_SINGLE_DISPLAY_ONLY 0x00000001 | 5868 | #define ATOM_PPLIB_SINGLE_DISPLAY_ONLY 0x00000001 |
@@ -5840,9 +5886,15 @@ typedef struct _ATOM_PPLIB_POWERPLAYTABLE | |||
5840 | 5886 | ||
5841 | #define ATOM_PPLIB_SOFTWARE_DISABLE_LOADBALANCING 0x00001000 | 5887 | #define ATOM_PPLIB_SOFTWARE_DISABLE_LOADBALANCING 0x00001000 |
5842 | #define ATOM_PPLIB_SOFTWARE_ENABLE_SLEEP_FOR_TIMESTAMPS 0x00002000 | 5888 | #define ATOM_PPLIB_SOFTWARE_ENABLE_SLEEP_FOR_TIMESTAMPS 0x00002000 |
5889 | #define ATOM_PPLIB_DISALLOW_ON_DC 0x00004000 | ||
5843 | #define ATOM_PPLIB_ENABLE_VARIBRIGHT 0x00008000 | 5890 | #define ATOM_PPLIB_ENABLE_VARIBRIGHT 0x00008000 |
5844 | 5891 | ||
5845 | #define ATOM_PPLIB_DISALLOW_ON_DC 0x00004000 | 5892 | //memory related flags |
5893 | #define ATOM_PPLIB_SWSTATE_MEMORY_DLL_OFF 0x000010000 | ||
5894 | |||
5895 | //M3 Arb //2bits, current 3 sets of parameters in total | ||
5896 | #define ATOM_PPLIB_M3ARB_MASK 0x00060000 | ||
5897 | #define ATOM_PPLIB_M3ARB_SHIFT 17 | ||
5846 | 5898 | ||
5847 | // Contained in an array starting at the offset | 5899 | // Contained in an array starting at the offset |
5848 | // in ATOM_PPLIB_POWERPLAYTABLE::usNonClockInfoArrayOffset. | 5900 | // in ATOM_PPLIB_POWERPLAYTABLE::usNonClockInfoArrayOffset. |
@@ -5860,6 +5912,9 @@ typedef struct _ATOM_PPLIB_NONCLOCK_INFO | |||
5860 | // Contained in an array starting at the offset | 5912 | // Contained in an array starting at the offset |
5861 | // in ATOM_PPLIB_POWERPLAYTABLE::usClockInfoArrayOffset. | 5913 | // in ATOM_PPLIB_POWERPLAYTABLE::usClockInfoArrayOffset. |
5862 | // referenced from ATOM_PPLIB_STATE::ucClockStateIndices | 5914 | // referenced from ATOM_PPLIB_STATE::ucClockStateIndices |
5915 | #define ATOM_PPLIB_NONCLOCKINFO_VER1 12 | ||
5916 | #define ATOM_PPLIB_NONCLOCKINFO_VER2 24 | ||
5917 | |||
5863 | typedef struct _ATOM_PPLIB_R600_CLOCK_INFO | 5918 | typedef struct _ATOM_PPLIB_R600_CLOCK_INFO |
5864 | { | 5919 | { |
5865 | USHORT usEngineClockLow; | 5920 | USHORT usEngineClockLow; |
@@ -5882,6 +5937,23 @@ typedef struct _ATOM_PPLIB_R600_CLOCK_INFO | |||
5882 | #define ATOM_PPLIB_R600_FLAGS_BACKBIASENABLE 4 | 5937 | #define ATOM_PPLIB_R600_FLAGS_BACKBIASENABLE 4 |
5883 | #define ATOM_PPLIB_R600_FLAGS_MEMORY_ODT_OFF 8 | 5938 | #define ATOM_PPLIB_R600_FLAGS_MEMORY_ODT_OFF 8 |
5884 | #define ATOM_PPLIB_R600_FLAGS_MEMORY_DLL_OFF 16 | 5939 | #define ATOM_PPLIB_R600_FLAGS_MEMORY_DLL_OFF 16 |
5940 | #define ATOM_PPLIB_R600_FLAGS_LOWPOWER 32 // On the RV770 use 'low power' setting (sequencer S0). | ||
5941 | |||
5942 | typedef struct _ATOM_PPLIB_EVERGREEN_CLOCK_INFO | ||
5943 | { | ||
5944 | USHORT usEngineClockLow; | ||
5945 | UCHAR ucEngineClockHigh; | ||
5946 | |||
5947 | USHORT usMemoryClockLow; | ||
5948 | UCHAR ucMemoryClockHigh; | ||
5949 | |||
5950 | USHORT usVDDC; | ||
5951 | USHORT usVDDCI; | ||
5952 | USHORT usUnused; | ||
5953 | |||
5954 | ULONG ulFlags; // ATOM_PPLIB_R600_FLAGS_* | ||
5955 | |||
5956 | } ATOM_PPLIB_EVERGREEN_CLOCK_INFO; | ||
5885 | 5957 | ||
5886 | typedef struct _ATOM_PPLIB_RS780_CLOCK_INFO | 5958 | typedef struct _ATOM_PPLIB_RS780_CLOCK_INFO |
5887 | 5959 | ||