Subversion Repositories Kolibri OS

Rev

Rev 1321 | Rev 1430 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1321 Rev 1403
Line 4688... Line 4688...
4688
	UCHAR ucSizeOfPowerModeEntry;
4688
	UCHAR ucSizeOfPowerModeEntry;
4689
	UCHAR ucNumOfPowerModeEntries;
4689
	UCHAR ucNumOfPowerModeEntries;
4690
	ATOM_POWERMODE_INFO_V3 asPowerPlayInfo[ATOM_MAX_NUMBEROF_POWER_BLOCK];
4690
	ATOM_POWERMODE_INFO_V3 asPowerPlayInfo[ATOM_MAX_NUMBEROF_POWER_BLOCK];
4691
} ATOM_POWERPLAY_INFO_V3;
4691
} ATOM_POWERPLAY_INFO_V3;
Line -... Line 4692...
-
 
4692
 
-
 
4693
/* New PPlib */
-
 
4694
/**************************************************************************/
-
 
4695
typedef struct _ATOM_PPLIB_THERMALCONTROLLER
-
 
4696
 
-
 
4697
{
-
 
4698
    UCHAR ucType;           // one of ATOM_PP_THERMALCONTROLLER_*
-
 
4699
    UCHAR ucI2cLine;        // as interpreted by DAL I2C
-
 
4700
    UCHAR ucI2cAddress;
-
 
4701
    UCHAR ucFanParameters;  // Fan Control Parameters.
-
 
4702
    UCHAR ucFanMinRPM;      // Fan Minimum RPM (hundreds) -- for display purposes only.
-
 
4703
    UCHAR ucFanMaxRPM;      // Fan Maximum RPM (hundreds) -- for display purposes only.
-
 
4704
    UCHAR ucReserved;       // ----
-
 
4705
    UCHAR ucFlags;          // to be defined
-
 
4706
} ATOM_PPLIB_THERMALCONTROLLER;
-
 
4707
 
-
 
4708
#define ATOM_PP_FANPARAMETERS_TACHOMETER_PULSES_PER_REVOLUTION_MASK 0x0f
-
 
4709
#define ATOM_PP_FANPARAMETERS_NOFAN                                 0x80    // No fan is connected to this controller.
-
 
4710
 
-
 
4711
#define ATOM_PP_THERMALCONTROLLER_NONE      0
-
 
4712
#define ATOM_PP_THERMALCONTROLLER_LM63      1  // Not used by PPLib
-
 
4713
#define ATOM_PP_THERMALCONTROLLER_ADM1032   2  // Not used by PPLib
-
 
4714
#define ATOM_PP_THERMALCONTROLLER_ADM1030   3  // Not used by PPLib
-
 
4715
#define ATOM_PP_THERMALCONTROLLER_MUA6649   4  // Not used by PPLib
-
 
4716
#define ATOM_PP_THERMALCONTROLLER_LM64      5
-
 
4717
#define ATOM_PP_THERMALCONTROLLER_F75375    6  // Not used by PPLib
-
 
4718
#define ATOM_PP_THERMALCONTROLLER_RV6xx     7
-
 
4719
#define ATOM_PP_THERMALCONTROLLER_RV770     8
-
 
4720
#define ATOM_PP_THERMALCONTROLLER_ADT7473   9
-
 
4721
 
-
 
4722
typedef struct _ATOM_PPLIB_STATE
-
 
4723
{
-
 
4724
    UCHAR ucNonClockStateIndex;
-
 
4725
    UCHAR ucClockStateIndices[1]; // variable-sized
-
 
4726
} ATOM_PPLIB_STATE;
-
 
4727
 
-
 
4728
//// ATOM_PPLIB_POWERPLAYTABLE::ulPlatformCaps
-
 
4729
#define ATOM_PP_PLATFORM_CAP_BACKBIAS 1
-
 
4730
#define ATOM_PP_PLATFORM_CAP_POWERPLAY 2
-
 
4731
#define ATOM_PP_PLATFORM_CAP_SBIOSPOWERSOURCE 4
-
 
4732
#define ATOM_PP_PLATFORM_CAP_ASPM_L0s 8
-
 
4733
#define ATOM_PP_PLATFORM_CAP_ASPM_L1 16
-
 
4734
#define ATOM_PP_PLATFORM_CAP_HARDWAREDC 32
-
 
4735
#define ATOM_PP_PLATFORM_CAP_GEMINIPRIMARY 64
-
 
4736
#define ATOM_PP_PLATFORM_CAP_STEPVDDC 128
-
 
4737
#define ATOM_PP_PLATFORM_CAP_VOLTAGECONTROL 256
-
 
4738
#define ATOM_PP_PLATFORM_CAP_SIDEPORTCONTROL 512
-
 
4739
#define ATOM_PP_PLATFORM_CAP_TURNOFFPLL_ASPML1 1024
-
 
4740
#define ATOM_PP_PLATFORM_CAP_HTLINKCONTROL 2048
-
 
4741
 
-
 
4742
typedef struct _ATOM_PPLIB_POWERPLAYTABLE
-
 
4743
{
-
 
4744
      ATOM_COMMON_TABLE_HEADER sHeader;
-
 
4745
 
-
 
4746
      UCHAR ucDataRevision;
-
 
4747
 
-
 
4748
      UCHAR ucNumStates;
-
 
4749
      UCHAR ucStateEntrySize;
-
 
4750
      UCHAR ucClockInfoSize;
-
 
4751
      UCHAR ucNonClockSize;
-
 
4752
 
-
 
4753
      // offset from start of this table to array of ucNumStates ATOM_PPLIB_STATE structures
-
 
4754
      USHORT usStateArrayOffset;
-
 
4755
 
-
 
4756
      // offset from start of this table to array of ASIC-specific structures,
-
 
4757
      // currently ATOM_PPLIB_CLOCK_INFO.
-
 
4758
      USHORT usClockInfoArrayOffset;
-
 
4759
 
-
 
4760
      // offset from start of this table to array of ATOM_PPLIB_NONCLOCK_INFO
-
 
4761
      USHORT usNonClockInfoArrayOffset;
-
 
4762
 
-
 
4763
      USHORT usBackbiasTime;    // in microseconds
-
 
4764
      USHORT usVoltageTime;     // in microseconds
-
 
4765
      USHORT usTableSize;       //the size of this structure, or the extended structure
-
 
4766
 
-
 
4767
      ULONG ulPlatformCaps;            // See ATOM_PPLIB_CAPS_*
-
 
4768
 
-
 
4769
      ATOM_PPLIB_THERMALCONTROLLER    sThermalController;
-
 
4770
 
-
 
4771
      USHORT usBootClockInfoOffset;
-
 
4772
      USHORT usBootNonClockInfoOffset;
-
 
4773
 
-
 
4774
} ATOM_PPLIB_POWERPLAYTABLE;
-
 
4775
 
-
 
4776
//// ATOM_PPLIB_NONCLOCK_INFO::usClassification
-
 
4777
#define ATOM_PPLIB_CLASSIFICATION_UI_MASK          0x0007
-
 
4778
#define ATOM_PPLIB_CLASSIFICATION_UI_SHIFT         0
-
 
4779
#define ATOM_PPLIB_CLASSIFICATION_UI_NONE          0
-
 
4780
#define ATOM_PPLIB_CLASSIFICATION_UI_BATTERY       1
-
 
4781
#define ATOM_PPLIB_CLASSIFICATION_UI_BALANCED      3
-
 
4782
#define ATOM_PPLIB_CLASSIFICATION_UI_PERFORMANCE   5
-
 
4783
// 2, 4, 6, 7 are reserved
-
 
4784
 
-
 
4785
#define ATOM_PPLIB_CLASSIFICATION_BOOT                   0x0008
-
 
4786
#define ATOM_PPLIB_CLASSIFICATION_THERMAL                0x0010
-
 
4787
#define ATOM_PPLIB_CLASSIFICATION_LIMITEDPOWERSOURCE     0x0020
-
 
4788
#define ATOM_PPLIB_CLASSIFICATION_REST                   0x0040
-
 
4789
#define ATOM_PPLIB_CLASSIFICATION_FORCED                 0x0080
-
 
4790
#define ATOM_PPLIB_CLASSIFICATION_3DPERFORMANCE          0x0100
-
 
4791
#define ATOM_PPLIB_CLASSIFICATION_OVERDRIVETEMPLATE      0x0200
-
 
4792
#define ATOM_PPLIB_CLASSIFICATION_UVDSTATE               0x0400
-
 
4793
#define ATOM_PPLIB_CLASSIFICATION_3DLOW                  0x0800
-
 
4794
#define ATOM_PPLIB_CLASSIFICATION_ACPI                   0x1000
-
 
4795
// remaining 3 bits are reserved
-
 
4796
 
-
 
4797
//// ATOM_PPLIB_NONCLOCK_INFO::ulCapsAndSettings
-
 
4798
#define ATOM_PPLIB_SINGLE_DISPLAY_ONLY           0x00000001
-
 
4799
#define ATOM_PPLIB_SUPPORTS_VIDEO_PLAYBACK         0x00000002
-
 
4800
 
-
 
4801
// 0 is 2.5Gb/s, 1 is 5Gb/s
-
 
4802
#define ATOM_PPLIB_PCIE_LINK_SPEED_MASK            0x00000004
-
 
4803
#define ATOM_PPLIB_PCIE_LINK_SPEED_SHIFT           2
-
 
4804
 
-
 
4805
// lanes - 1: 1, 2, 4, 8, 12, 16 permitted by PCIE spec
-
 
4806
#define ATOM_PPLIB_PCIE_LINK_WIDTH_MASK            0x000000F8
-
 
4807
#define ATOM_PPLIB_PCIE_LINK_WIDTH_SHIFT           3
-
 
4808
 
-
 
4809
// lookup into reduced refresh-rate table
-
 
4810
#define ATOM_PPLIB_LIMITED_REFRESHRATE_VALUE_MASK  0x00000F00
-
 
4811
#define ATOM_PPLIB_LIMITED_REFRESHRATE_VALUE_SHIFT 8
-
 
4812
 
-
 
4813
#define ATOM_PPLIB_LIMITED_REFRESHRATE_UNLIMITED    0
-
 
4814
#define ATOM_PPLIB_LIMITED_REFRESHRATE_50HZ         1
-
 
4815
// 2-15 TBD as needed.
-
 
4816
 
-
 
4817
#define ATOM_PPLIB_SOFTWARE_DISABLE_LOADBALANCING        0x00001000
-
 
4818
#define ATOM_PPLIB_SOFTWARE_ENABLE_SLEEP_FOR_TIMESTAMPS  0x00002000
-
 
4819
#define ATOM_PPLIB_ENABLE_VARIBRIGHT                     0x00008000
-
 
4820
 
-
 
4821
#define ATOM_PPLIB_DISALLOW_ON_DC                       0x00004000
-
 
4822
 
-
 
4823
// Contained in an array starting at the offset
-
 
4824
// in ATOM_PPLIB_POWERPLAYTABLE::usNonClockInfoArrayOffset.
-
 
4825
// referenced from ATOM_PPLIB_STATE_INFO::ucNonClockStateIndex
-
 
4826
typedef struct _ATOM_PPLIB_NONCLOCK_INFO
-
 
4827
{
-
 
4828
      USHORT usClassification;
-
 
4829
      UCHAR  ucMinTemperature;
-
 
4830
      UCHAR  ucMaxTemperature;
-
 
4831
      ULONG  ulCapsAndSettings;
-
 
4832
      UCHAR  ucRequiredPower;
-
 
4833
      UCHAR  ucUnused1[3];
-
 
4834
} ATOM_PPLIB_NONCLOCK_INFO;
-
 
4835
 
-
 
4836
// Contained in an array starting at the offset
-
 
4837
// in ATOM_PPLIB_POWERPLAYTABLE::usClockInfoArrayOffset.
-
 
4838
// referenced from ATOM_PPLIB_STATE::ucClockStateIndices
-
 
4839
typedef struct _ATOM_PPLIB_R600_CLOCK_INFO
-
 
4840
{
-
 
4841
      USHORT usEngineClockLow;
-
 
4842
      UCHAR ucEngineClockHigh;
-
 
4843
 
-
 
4844
      USHORT usMemoryClockLow;
-
 
4845
      UCHAR ucMemoryClockHigh;
-
 
4846
 
-
 
4847
      USHORT usVDDC;
-
 
4848
      USHORT usUnused1;
-
 
4849
      USHORT usUnused2;
-
 
4850
 
-
 
4851
      ULONG ulFlags; // ATOM_PPLIB_R600_FLAGS_*
-
 
4852
 
-
 
4853
} ATOM_PPLIB_R600_CLOCK_INFO;
-
 
4854
 
-
 
4855
// ulFlags in ATOM_PPLIB_R600_CLOCK_INFO
-
 
4856
#define ATOM_PPLIB_R600_FLAGS_PCIEGEN2          1
-
 
4857
#define ATOM_PPLIB_R600_FLAGS_UVDSAFE           2
-
 
4858
#define ATOM_PPLIB_R600_FLAGS_BACKBIASENABLE    4
-
 
4859
#define ATOM_PPLIB_R600_FLAGS_MEMORY_ODT_OFF    8
-
 
4860
#define ATOM_PPLIB_R600_FLAGS_MEMORY_DLL_OFF    16
-
 
4861
 
-
 
4862
typedef struct _ATOM_PPLIB_RS780_CLOCK_INFO
-
 
4863
 
-
 
4864
{
-
 
4865
      USHORT usLowEngineClockLow;         // Low Engine clock in MHz (the same way as on the R600).
-
 
4866
      UCHAR  ucLowEngineClockHigh;
-
 
4867
      USHORT usHighEngineClockLow;        // High Engine clock in MHz.
-
 
4868
      UCHAR  ucHighEngineClockHigh;
-
 
4869
      USHORT usMemoryClockLow;            // For now one of the ATOM_PPLIB_RS780_SPMCLK_XXXX constants.
-
 
4870
      UCHAR  ucMemoryClockHigh;           // Currentyl unused.
-
 
4871
      UCHAR  ucPadding;                   // For proper alignment and size.
-
 
4872
      USHORT usVDDC;                      // For the 780, use: None, Low, High, Variable
-
 
4873
      UCHAR  ucMaxHTLinkWidth;            // From SBIOS - {2, 4, 8, 16}
-
 
4874
      UCHAR  ucMinHTLinkWidth;            // From SBIOS - {2, 4, 8, 16}. Effective only if CDLW enabled. Minimum down stream width could be bigger as display BW requriement.
-
 
4875
      USHORT usHTLinkFreq;                // See definition ATOM_PPLIB_RS780_HTLINKFREQ_xxx or in MHz(>=200).
-
 
4876
      ULONG  ulFlags;
-
 
4877
} ATOM_PPLIB_RS780_CLOCK_INFO;
-
 
4878
 
-
 
4879
#define ATOM_PPLIB_RS780_VOLTAGE_NONE       0
-
 
4880
#define ATOM_PPLIB_RS780_VOLTAGE_LOW        1
-
 
4881
#define ATOM_PPLIB_RS780_VOLTAGE_HIGH       2
-
 
4882
#define ATOM_PPLIB_RS780_VOLTAGE_VARIABLE   3
-
 
4883
 
-
 
4884
#define ATOM_PPLIB_RS780_SPMCLK_NONE        0   // We cannot change the side port memory clock, leave it as it is.
-
 
4885
#define ATOM_PPLIB_RS780_SPMCLK_LOW         1
-
 
4886
#define ATOM_PPLIB_RS780_SPMCLK_HIGH        2
-
 
4887
 
-
 
4888
#define ATOM_PPLIB_RS780_HTLINKFREQ_NONE       0
-
 
4889
#define ATOM_PPLIB_RS780_HTLINKFREQ_LOW        1
-
 
4890
#define ATOM_PPLIB_RS780_HTLINKFREQ_HIGH       2
4692
 
4891
 
Line 4693... Line 4892...
4693
/**************************************************************************/
4892
/**************************************************************************/
4694
 
4893
 
4695
/*  Following definitions are for compatiblity issue in different SW components. */
4894
/*  Following definitions are for compatiblity issue in different SW components. */