This source file includes following definitions.
- smu9_baco_get_capability
- smu9_baco_get_state
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 #include "amdgpu.h"
24 #include "soc15.h"
25 #include "soc15_hw_ip.h"
26 #include "vega10_ip_offset.h"
27 #include "soc15_common.h"
28 #include "vega10_inc.h"
29 #include "smu9_baco.h"
30
31 int smu9_baco_get_capability(struct pp_hwmgr *hwmgr, bool *cap)
32 {
33 struct amdgpu_device *adev = (struct amdgpu_device *)(hwmgr->adev);
34 uint32_t reg, data;
35
36 *cap = false;
37 if (!phm_cap_enabled(hwmgr->platform_descriptor.platformCaps, PHM_PlatformCaps_BACO))
38 return 0;
39
40 WREG32(0x12074, 0xFFF0003B);
41 data = RREG32(0x12075);
42
43 if (data == 0x1) {
44 reg = RREG32_SOC15(NBIF, 0, mmRCC_BIF_STRAP0);
45
46 if (reg & RCC_BIF_STRAP0__STRAP_PX_CAPABLE_MASK)
47 *cap = true;
48 }
49
50 return 0;
51 }
52
53 int smu9_baco_get_state(struct pp_hwmgr *hwmgr, enum BACO_STATE *state)
54 {
55 struct amdgpu_device *adev = (struct amdgpu_device *)(hwmgr->adev);
56 uint32_t reg;
57
58 reg = RREG32_SOC15(NBIF, 0, mmBACO_CNTL);
59
60 if (reg & BACO_CNTL__BACO_MODE_MASK)
61
62 *state = BACO_STATE_IN;
63 else
64 *state = BACO_STATE_OUT;
65 return 0;
66 }