xref: /linux/drivers/gpu/drm/msm/adreno/a5xx_catalog.c (revision d30c1683aaecb93d2ab95685dc4300a33d3cea7a)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Copyright (C) 2013-2014 Red Hat
4  * Author: Rob Clark <robdclark@gmail.com>
5  *
6  * Copyright (c) 2014,2017 The Linux Foundation. All rights reserved.
7  */
8 
9 #include "adreno_gpu.h"
10 #include "a5xx_gpu.h"
11 
12 static const struct adreno_info a5xx_gpus[] = {
13 	{
14 		.chip_ids = ADRENO_CHIP_IDS(0x05000500),
15 		.family = ADRENO_5XX,
16 		.revn = 505,
17 		.fw = {
18 			[ADRENO_FW_PM4] = "a530_pm4.fw",
19 			[ADRENO_FW_PFP] = "a530_pfp.fw",
20 		},
21 		.gmem = (SZ_128K + SZ_8K),
22 		.inactive_period = DRM_MSM_INACTIVE_PERIOD,
23 		.quirks = ADRENO_QUIRK_TWO_PASS_USE_WFI |
24 			  ADRENO_QUIRK_LMLOADKILL_DISABLE,
25 		.funcs = &a5xx_gpu_funcs,
26 	}, {
27 		.chip_ids = ADRENO_CHIP_IDS(0x05000600),
28 		.family = ADRENO_5XX,
29 		.revn = 506,
30 		.fw = {
31 			[ADRENO_FW_PM4] = "a530_pm4.fw",
32 			[ADRENO_FW_PFP] = "a530_pfp.fw",
33 		},
34 		.gmem = (SZ_128K + SZ_8K),
35 		/*
36 		 * Increase inactive period to 250 to avoid bouncing
37 		 * the GDSC which appears to make it grumpy
38 		 */
39 		.inactive_period = 250,
40 		.quirks = ADRENO_QUIRK_TWO_PASS_USE_WFI |
41 			  ADRENO_QUIRK_LMLOADKILL_DISABLE,
42 		.funcs = &a5xx_gpu_funcs,
43 		.zapfw = "a506_zap.mdt",
44 	}, {
45 		.chip_ids = ADRENO_CHIP_IDS(0x05000800),
46 		.family = ADRENO_5XX,
47 		.revn = 508,
48 		.fw = {
49 			[ADRENO_FW_PM4] = "a530_pm4.fw",
50 			[ADRENO_FW_PFP] = "a530_pfp.fw",
51 		},
52 		.gmem = (SZ_128K + SZ_8K),
53 		/*
54 		 * Increase inactive period to 250 to avoid bouncing
55 		 * the GDSC which appears to make it grumpy
56 		 */
57 		.inactive_period = 250,
58 		.quirks = ADRENO_QUIRK_LMLOADKILL_DISABLE,
59 		.funcs = &a5xx_gpu_funcs,
60 		.zapfw = "a508_zap.mdt",
61 	}, {
62 		.chip_ids = ADRENO_CHIP_IDS(0x05000900),
63 		.family = ADRENO_5XX,
64 		.revn = 509,
65 		.fw = {
66 			[ADRENO_FW_PM4] = "a530_pm4.fw",
67 			[ADRENO_FW_PFP] = "a530_pfp.fw",
68 		},
69 		.gmem = (SZ_256K + SZ_16K),
70 		/*
71 		 * Increase inactive period to 250 to avoid bouncing
72 		 * the GDSC which appears to make it grumpy
73 		 */
74 		.inactive_period = 250,
75 		.quirks = ADRENO_QUIRK_LMLOADKILL_DISABLE,
76 		.funcs = &a5xx_gpu_funcs,
77 		/* Adreno 509 uses the same ZAP as 512 */
78 		.zapfw = "a512_zap.mdt",
79 	}, {
80 		.chip_ids = ADRENO_CHIP_IDS(0x05010000),
81 		.family = ADRENO_5XX,
82 		.revn = 510,
83 		.fw = {
84 			[ADRENO_FW_PM4] = "a530_pm4.fw",
85 			[ADRENO_FW_PFP] = "a530_pfp.fw",
86 		},
87 		.gmem = SZ_256K,
88 		/*
89 		 * Increase inactive period to 250 to avoid bouncing
90 		 * the GDSC which appears to make it grumpy
91 		 */
92 		.inactive_period = 250,
93 		.funcs = &a5xx_gpu_funcs,
94 	}, {
95 		.chip_ids = ADRENO_CHIP_IDS(0x05010200),
96 		.family = ADRENO_5XX,
97 		.revn = 512,
98 		.fw = {
99 			[ADRENO_FW_PM4] = "a530_pm4.fw",
100 			[ADRENO_FW_PFP] = "a530_pfp.fw",
101 		},
102 		.gmem = (SZ_256K + SZ_16K),
103 		/*
104 		 * Increase inactive period to 250 to avoid bouncing
105 		 * the GDSC which appears to make it grumpy
106 		 */
107 		.inactive_period = 250,
108 		.quirks = ADRENO_QUIRK_LMLOADKILL_DISABLE,
109 		.funcs = &a5xx_gpu_funcs,
110 		.zapfw = "a512_zap.mdt",
111 	}, {
112 		.chip_ids = ADRENO_CHIP_IDS(
113 			0x05030002,
114 			0x05030004
115 		),
116 		.family = ADRENO_5XX,
117 		.revn = 530,
118 		.fw = {
119 			[ADRENO_FW_PM4] = "a530_pm4.fw",
120 			[ADRENO_FW_PFP] = "a530_pfp.fw",
121 			[ADRENO_FW_GPMU] = "a530v3_gpmu.fw2",
122 		},
123 		.gmem = SZ_1M,
124 		/*
125 		 * Increase inactive period to 250 to avoid bouncing
126 		 * the GDSC which appears to make it grumpy
127 		 */
128 		.inactive_period = 250,
129 		.quirks = ADRENO_QUIRK_TWO_PASS_USE_WFI |
130 			ADRENO_QUIRK_FAULT_DETECT_MASK,
131 		.funcs = &a5xx_gpu_funcs,
132 		.zapfw = "a530_zap.mdt",
133 	}, {
134 		.chip_ids = ADRENO_CHIP_IDS(0x05040001),
135 		.family = ADRENO_5XX,
136 		.revn = 540,
137 		.fw = {
138 			[ADRENO_FW_PM4] = "a530_pm4.fw",
139 			[ADRENO_FW_PFP] = "a530_pfp.fw",
140 			[ADRENO_FW_GPMU] = "a540_gpmu.fw2",
141 		},
142 		.gmem = SZ_1M,
143 		/*
144 		 * Increase inactive period to 250 to avoid bouncing
145 		 * the GDSC which appears to make it grumpy
146 		 */
147 		.inactive_period = 250,
148 		.quirks = ADRENO_QUIRK_LMLOADKILL_DISABLE,
149 		.funcs = &a5xx_gpu_funcs,
150 		.zapfw = "a540_zap.mdt",
151 	}
152 };
153 DECLARE_ADRENO_GPULIST(a5xx);
154