diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2015-11-11 20:18:52 -0500 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-12-21 16:42:30 -0500 |
commit | 16881da6c0b9db5fca95b96b0f02720e94c92629 (patch) | |
tree | e8d219593c42cbad730938bd66f4151c4aa1e695 | |
parent | 74c577b0313d4140ec8b61745c6ade3a4d735d33 (diff) |
drm/amdgpu: extract pcie helpers to common header
These will be used by multiple powerplay drivers and
other IP modules.
Reviewed-by: Jammy Zhou <Jammy.Zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/include/amd_pcie.h | 50 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/include/amd_pcie_helpers.h | 141 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | 1 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | 112 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | 24 |
6 files changed, 193 insertions, 137 deletions
diff --git a/drivers/gpu/drm/amd/include/amd_pcie.h b/drivers/gpu/drm/amd/include/amd_pcie.h new file mode 100644 index 000000000000..7c2a916c1e63 --- /dev/null +++ b/drivers/gpu/drm/amd/include/amd_pcie.h | |||
@@ -0,0 +1,50 @@ | |||
1 | /* | ||
2 | * Copyright 2015 Advanced Micro Devices, Inc. | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
5 | * copy of this software and associated documentation files (the "Software"), | ||
6 | * to deal in the Software without restriction, including without limitation | ||
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
8 | * and/or sell copies of the Software, and to permit persons to whom the | ||
9 | * Software is furnished to do so, subject to the following conditions: | ||
10 | * | ||
11 | * The above copyright notice and this permission notice shall be included in | ||
12 | * all copies or substantial portions of the Software. | ||
13 | * | ||
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
20 | * OTHER DEALINGS IN THE SOFTWARE. | ||
21 | */ | ||
22 | |||
23 | #ifndef __AMD_PCIE_H__ | ||
24 | #define __AMD_PCIE_H__ | ||
25 | |||
26 | /* Following flags shows PCIe link speed supported in driver which are decided by chipset and ASIC */ | ||
27 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN1 0x00010000 | ||
28 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2 0x00020000 | ||
29 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3 0x00040000 | ||
30 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_MASK 0xFFFF0000 | ||
31 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_SHIFT 16 | ||
32 | |||
33 | /* Following flags shows PCIe link speed supported by ASIC H/W.*/ | ||
34 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN1 0x00000001 | ||
35 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN2 0x00000002 | ||
36 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN3 0x00000004 | ||
37 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_MASK 0x0000FFFF | ||
38 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_SHIFT 0 | ||
39 | |||
40 | /* Following flags shows PCIe lane width switch supported in driver which are decided by chipset and ASIC */ | ||
41 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X1 0x00010000 | ||
42 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X2 0x00020000 | ||
43 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X4 0x00040000 | ||
44 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X8 0x00080000 | ||
45 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X12 0x00100000 | ||
46 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X16 0x00200000 | ||
47 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X32 0x00400000 | ||
48 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_SHIFT 16 | ||
49 | |||
50 | #endif | ||
diff --git a/drivers/gpu/drm/amd/include/amd_pcie_helpers.h b/drivers/gpu/drm/amd/include/amd_pcie_helpers.h new file mode 100644 index 000000000000..2cfdf054953b --- /dev/null +++ b/drivers/gpu/drm/amd/include/amd_pcie_helpers.h | |||
@@ -0,0 +1,141 @@ | |||
1 | /* | ||
2 | * Copyright 2015 Advanced Micro Devices, Inc. | ||
3 | * | ||
4 | * Permission is hereby granted, free of charge, to any person obtaining a | ||
5 | * copy of this software and associated documentation files (the "Software"), | ||
6 | * to deal in the Software without restriction, including without limitation | ||
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | ||
8 | * and/or sell copies of the Software, and to permit persons to whom the | ||
9 | * Software is furnished to do so, subject to the following conditions: | ||
10 | * | ||
11 | * The above copyright notice and this permission notice shall be included in | ||
12 | * all copies or substantial portions of the Software. | ||
13 | * | ||
14 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
15 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
16 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | ||
17 | * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR | ||
18 | * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, | ||
19 | * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR | ||
20 | * OTHER DEALINGS IN THE SOFTWARE. | ||
21 | */ | ||
22 | |||
23 | #ifndef __AMD_PCIE_HELPERS_H__ | ||
24 | #define __AMD_PCIE_HELPERS_H__ | ||
25 | |||
26 | #include "amd_pcie.h" | ||
27 | |||
28 | static inline bool is_pcie_gen3_supported(uint32_t pcie_link_speed_cap) | ||
29 | { | ||
30 | if (pcie_link_speed_cap & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) | ||
31 | return 1; | ||
32 | |||
33 | return 0; | ||
34 | } | ||
35 | |||
36 | static inline bool is_pcie_gen2_supported(uint32_t pcie_link_speed_cap) | ||
37 | { | ||
38 | if (pcie_link_speed_cap & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2) | ||
39 | return 1; | ||
40 | |||
41 | return 0; | ||
42 | } | ||
43 | |||
44 | /* Get the new PCIE speed given the ASIC PCIE Cap and the NewState's requested PCIE speed*/ | ||
45 | static inline uint16_t get_pcie_gen_support(uint32_t pcie_link_speed_cap, | ||
46 | uint16_t ns_pcie_gen) | ||
47 | { | ||
48 | uint32_t asic_pcie_link_speed_cap = (pcie_link_speed_cap & | ||
49 | CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_MASK); | ||
50 | uint32_t sys_pcie_link_speed_cap = (pcie_link_speed_cap & | ||
51 | CAIL_PCIE_LINK_SPEED_SUPPORT_MASK); | ||
52 | |||
53 | switch (asic_pcie_link_speed_cap) { | ||
54 | case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN1: | ||
55 | return PP_PCIEGen1; | ||
56 | |||
57 | case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN2: | ||
58 | return PP_PCIEGen2; | ||
59 | |||
60 | case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN3: | ||
61 | return PP_PCIEGen3; | ||
62 | |||
63 | default: | ||
64 | if (is_pcie_gen3_supported(sys_pcie_link_speed_cap) && | ||
65 | (ns_pcie_gen == PP_PCIEGen3)) { | ||
66 | return PP_PCIEGen3; | ||
67 | } else if (is_pcie_gen2_supported(sys_pcie_link_speed_cap) && | ||
68 | ((ns_pcie_gen == PP_PCIEGen3) || (ns_pcie_gen == PP_PCIEGen2))) { | ||
69 | return PP_PCIEGen2; | ||
70 | } | ||
71 | } | ||
72 | |||
73 | return PP_PCIEGen1; | ||
74 | } | ||
75 | |||
76 | static inline uint16_t get_pcie_lane_support(uint32_t pcie_lane_width_cap, | ||
77 | uint16_t ns_pcie_lanes) | ||
78 | { | ||
79 | int i, j; | ||
80 | uint16_t new_pcie_lanes = ns_pcie_lanes; | ||
81 | uint16_t pcie_lanes[7] = {1, 2, 4, 8, 12, 16, 32}; | ||
82 | |||
83 | switch (pcie_lane_width_cap) { | ||
84 | case 0: | ||
85 | printk(KERN_ERR "No valid PCIE lane width reported"); | ||
86 | break; | ||
87 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X1: | ||
88 | new_pcie_lanes = 1; | ||
89 | break; | ||
90 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X2: | ||
91 | new_pcie_lanes = 2; | ||
92 | break; | ||
93 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X4: | ||
94 | new_pcie_lanes = 4; | ||
95 | break; | ||
96 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X8: | ||
97 | new_pcie_lanes = 8; | ||
98 | break; | ||
99 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X12: | ||
100 | new_pcie_lanes = 12; | ||
101 | break; | ||
102 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X16: | ||
103 | new_pcie_lanes = 16; | ||
104 | break; | ||
105 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X32: | ||
106 | new_pcie_lanes = 32; | ||
107 | break; | ||
108 | default: | ||
109 | for (i = 0; i < 7; i++) { | ||
110 | if (ns_pcie_lanes == pcie_lanes[i]) { | ||
111 | if (pcie_lane_width_cap & (0x10000 << i)) { | ||
112 | break; | ||
113 | } else { | ||
114 | for (j = i - 1; j >= 0; j--) { | ||
115 | if (pcie_lane_width_cap & (0x10000 << j)) { | ||
116 | new_pcie_lanes = pcie_lanes[j]; | ||
117 | break; | ||
118 | } | ||
119 | } | ||
120 | |||
121 | if (j < 0) { | ||
122 | for (j = i + 1; j < 7; j++) { | ||
123 | if (pcie_lane_width_cap & (0x10000 << j)) { | ||
124 | new_pcie_lanes = pcie_lanes[j]; | ||
125 | break; | ||
126 | } | ||
127 | } | ||
128 | if (j > 7) | ||
129 | printk(KERN_ERR "Cannot find a valid PCIE lane width!"); | ||
130 | } | ||
131 | } | ||
132 | break; | ||
133 | } | ||
134 | } | ||
135 | break; | ||
136 | } | ||
137 | |||
138 | return new_pcie_lanes; | ||
139 | } | ||
140 | |||
141 | #endif | ||
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c index adcc2f097999..ccbdbef50e1d 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include "tonga_pptable.h" | 49 | #include "tonga_pptable.h" |
50 | #include "pp_debug.h" | 50 | #include "pp_debug.h" |
51 | #include "pp_acpi.h" | 51 | #include "pp_acpi.h" |
52 | #include "amd_pcie_helpers.h" | ||
52 | 53 | ||
53 | #define VOLTAGE_SCALE 4 | 54 | #define VOLTAGE_SCALE 4 |
54 | #define SMC_RAM_END 0x40000 | 55 | #define SMC_RAM_END 0x40000 |
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h index 38dbe498394b..22d985e2c63a 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/fiji_hwmgr.h | |||
@@ -339,8 +339,6 @@ enum Fiji_I2CLineID { | |||
339 | extern int tonga_initializa_dynamic_state_adjustment_rule_settings(struct pp_hwmgr *hwmgr); | 339 | extern int tonga_initializa_dynamic_state_adjustment_rule_settings(struct pp_hwmgr *hwmgr); |
340 | extern int tonga_hwmgr_backend_fini(struct pp_hwmgr *hwmgr); | 340 | extern int tonga_hwmgr_backend_fini(struct pp_hwmgr *hwmgr); |
341 | extern int tonga_get_mc_microcode_version (struct pp_hwmgr *hwmgr); | 341 | extern int tonga_get_mc_microcode_version (struct pp_hwmgr *hwmgr); |
342 | extern uint16_t get_pcie_gen_support(uint32_t pcie_link_speed_cap, uint16_t ns_pcie_gen); | ||
343 | extern uint16_t get_pcie_lane_support(uint32_t pcie_lane_width_cap, uint16_t ns_pcie_lanes); | ||
344 | 342 | ||
345 | #define PP_HOST_TO_SMC_UL(X) cpu_to_be32(X) | 343 | #define PP_HOST_TO_SMC_UL(X) cpu_to_be32(X) |
346 | #define PP_SMC_TO_HOST_UL(X) be32_to_cpu(X) | 344 | #define PP_SMC_TO_HOST_UL(X) be32_to_cpu(X) |
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c index a9cc7868ca14..9442313d7557 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.c | |||
@@ -53,6 +53,7 @@ | |||
53 | 53 | ||
54 | #include "cgs_linux.h" | 54 | #include "cgs_linux.h" |
55 | #include "eventmgr.h" | 55 | #include "eventmgr.h" |
56 | #include "amd_pcie_helpers.h" | ||
56 | 57 | ||
57 | #define MC_CG_ARB_FREQ_F0 0x0a | 58 | #define MC_CG_ARB_FREQ_F0 0x0a |
58 | #define MC_CG_ARB_FREQ_F1 0x0b | 59 | #define MC_CG_ARB_FREQ_F1 0x0b |
@@ -2651,117 +2652,6 @@ static void tonga_setup_pcie_table_entry( | |||
2651 | dpm_table->dpm_levels[index].enabled = 1; | 2652 | dpm_table->dpm_levels[index].enabled = 1; |
2652 | } | 2653 | } |
2653 | 2654 | ||
2654 | bool is_pcie_gen3_supported(uint32_t pcie_link_speed_cap) | ||
2655 | { | ||
2656 | if (pcie_link_speed_cap & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3) | ||
2657 | return 1; | ||
2658 | |||
2659 | return 0; | ||
2660 | } | ||
2661 | |||
2662 | bool is_pcie_gen2_supported(uint32_t pcie_link_speed_cap) | ||
2663 | { | ||
2664 | if (pcie_link_speed_cap & CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2) | ||
2665 | return 1; | ||
2666 | |||
2667 | return 0; | ||
2668 | } | ||
2669 | |||
2670 | /* Get the new PCIE speed given the ASIC PCIE Cap and the NewState's requested PCIE speed*/ | ||
2671 | uint16_t get_pcie_gen_support(uint32_t pcie_link_speed_cap, uint16_t ns_pcie_gen) | ||
2672 | { | ||
2673 | uint32_t asic_pcie_link_speed_cap = (pcie_link_speed_cap & | ||
2674 | CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_MASK); | ||
2675 | uint32_t sys_pcie_link_speed_cap = (pcie_link_speed_cap & | ||
2676 | CAIL_PCIE_LINK_SPEED_SUPPORT_MASK); | ||
2677 | |||
2678 | switch (asic_pcie_link_speed_cap) { | ||
2679 | case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN1: | ||
2680 | return PP_PCIEGen1; | ||
2681 | |||
2682 | case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN2: | ||
2683 | return PP_PCIEGen2; | ||
2684 | |||
2685 | case CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN3: | ||
2686 | return PP_PCIEGen3; | ||
2687 | |||
2688 | default: | ||
2689 | if (is_pcie_gen3_supported(sys_pcie_link_speed_cap) && | ||
2690 | (ns_pcie_gen == PP_PCIEGen3)) { | ||
2691 | return PP_PCIEGen3; | ||
2692 | } else if (is_pcie_gen2_supported(sys_pcie_link_speed_cap) && | ||
2693 | ((ns_pcie_gen == PP_PCIEGen3) || (ns_pcie_gen == PP_PCIEGen2))) { | ||
2694 | return PP_PCIEGen2; | ||
2695 | } | ||
2696 | } | ||
2697 | |||
2698 | return PP_PCIEGen1; | ||
2699 | } | ||
2700 | |||
2701 | uint16_t get_pcie_lane_support(uint32_t pcie_lane_width_cap, uint16_t ns_pcie_lanes) | ||
2702 | { | ||
2703 | int i, j; | ||
2704 | uint16_t new_pcie_lanes = ns_pcie_lanes; | ||
2705 | uint16_t pcie_lanes[7] = {1, 2, 4, 8, 12, 16, 32}; | ||
2706 | |||
2707 | switch (pcie_lane_width_cap) { | ||
2708 | case 0: | ||
2709 | printk(KERN_ERR "[ powerplay ] No valid PCIE lane width reported by CAIL!"); | ||
2710 | break; | ||
2711 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X1: | ||
2712 | new_pcie_lanes = 1; | ||
2713 | break; | ||
2714 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X2: | ||
2715 | new_pcie_lanes = 2; | ||
2716 | break; | ||
2717 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X4: | ||
2718 | new_pcie_lanes = 4; | ||
2719 | break; | ||
2720 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X8: | ||
2721 | new_pcie_lanes = 8; | ||
2722 | break; | ||
2723 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X12: | ||
2724 | new_pcie_lanes = 12; | ||
2725 | break; | ||
2726 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X16: | ||
2727 | new_pcie_lanes = 16; | ||
2728 | break; | ||
2729 | case CAIL_PCIE_LINK_WIDTH_SUPPORT_X32: | ||
2730 | new_pcie_lanes = 32; | ||
2731 | break; | ||
2732 | default: | ||
2733 | for (i = 0; i < 7; i++) { | ||
2734 | if (ns_pcie_lanes == pcie_lanes[i]) { | ||
2735 | if (pcie_lane_width_cap & (0x10000 << i)) { | ||
2736 | break; | ||
2737 | } else { | ||
2738 | for (j = i - 1; j >= 0; j--) { | ||
2739 | if (pcie_lane_width_cap & (0x10000 << j)) { | ||
2740 | new_pcie_lanes = pcie_lanes[j]; | ||
2741 | break; | ||
2742 | } | ||
2743 | } | ||
2744 | |||
2745 | if (j < 0) { | ||
2746 | for (j = i + 1; j < 7; j++) { | ||
2747 | if (pcie_lane_width_cap & (0x10000 << j)) { | ||
2748 | new_pcie_lanes = pcie_lanes[j]; | ||
2749 | break; | ||
2750 | } | ||
2751 | } | ||
2752 | if (j > 7) | ||
2753 | printk(KERN_ERR "[ powerplay ] Cannot find a valid PCIE lane width!"); | ||
2754 | } | ||
2755 | } | ||
2756 | break; | ||
2757 | } | ||
2758 | } | ||
2759 | break; | ||
2760 | } | ||
2761 | |||
2762 | return new_pcie_lanes; | ||
2763 | } | ||
2764 | |||
2765 | static int tonga_setup_default_pcie_tables(struct pp_hwmgr *hwmgr) | 2655 | static int tonga_setup_default_pcie_tables(struct pp_hwmgr *hwmgr) |
2766 | { | 2656 | { |
2767 | tonga_hwmgr *data = (tonga_hwmgr *)(hwmgr->backend); | 2657 | tonga_hwmgr *data = (tonga_hwmgr *)(hwmgr->backend); |
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h b/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h index 44b985a92bb4..49168d262ccc 100644 --- a/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/tonga_hwmgr.h | |||
@@ -386,30 +386,6 @@ typedef struct tonga_hwmgr tonga_hwmgr; | |||
386 | 386 | ||
387 | #define TONGA_UNUSED_GPIO_PIN 0x7F | 387 | #define TONGA_UNUSED_GPIO_PIN 0x7F |
388 | 388 | ||
389 | /* Following flags shows PCIe link speed supported in driver which are decided by chipset and ASIC */ | ||
390 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN1 0x00010000 | ||
391 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN2 0x00020000 | ||
392 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_GEN3 0x00040000 | ||
393 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_MASK 0xFFFF0000 | ||
394 | #define CAIL_PCIE_LINK_SPEED_SUPPORT_SHIFT 16 | ||
395 | |||
396 | /* Following flags shows PCIe link speed supported by ASIC H/W.*/ | ||
397 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN1 0x00000001 | ||
398 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN2 0x00000002 | ||
399 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_GEN3 0x00000004 | ||
400 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_MASK 0x0000FFFF | ||
401 | #define CAIL_ASIC_PCIE_LINK_SPEED_SUPPORT_SHIFT 0 | ||
402 | |||
403 | /* Following flags shows PCIe lane width switch supported in driver which are decided by chipset and ASIC */ | ||
404 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X1 0x00010000 | ||
405 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X2 0x00020000 | ||
406 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X4 0x00040000 | ||
407 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X8 0x00080000 | ||
408 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X12 0x00100000 | ||
409 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X16 0x00200000 | ||
410 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_X32 0x00400000 | ||
411 | #define CAIL_PCIE_LINK_WIDTH_SUPPORT_SHIFT 16 | ||
412 | |||
413 | #define PP_HOST_TO_SMC_UL(X) cpu_to_be32(X) | 389 | #define PP_HOST_TO_SMC_UL(X) cpu_to_be32(X) |
414 | #define PP_SMC_TO_HOST_UL(X) be32_to_cpu(X) | 390 | #define PP_SMC_TO_HOST_UL(X) be32_to_cpu(X) |
415 | 391 | ||