hc
2023-12-06 08f87f769b595151be1afeff53e144f543faa614
kernel/drivers/gpu/arm/bifrost/mali_kbase_hw.c
....@@ -1,7 +1,7 @@
11 // SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
22 /*
33 *
4
- * (C) COPYRIGHT 2012-2021 ARM Limited. All rights reserved.
4
+ * (C) COPYRIGHT 2012-2023 ARM Limited. All rights reserved.
55 *
66 * This program is free software and is provided to you under the terms of the
77 * GNU General Public License version 2 as published by the Free Software
....@@ -68,9 +68,6 @@
6868 case GPU_ID2_PRODUCT_TBAX:
6969 features = base_hw_features_tBAx;
7070 break;
71
- case GPU_ID2_PRODUCT_TDUX:
72
- features = base_hw_features_tDUx;
73
- break;
7471 case GPU_ID2_PRODUCT_TODX:
7572 case GPU_ID2_PRODUCT_LODX:
7673 features = base_hw_features_tODx;
....@@ -80,6 +77,14 @@
8077 break;
8178 case GPU_ID2_PRODUCT_TVAX:
8279 features = base_hw_features_tVAx;
80
+ break;
81
+ case GPU_ID2_PRODUCT_TTUX:
82
+ case GPU_ID2_PRODUCT_LTUX:
83
+ features = base_hw_features_tTUx;
84
+ break;
85
+ case GPU_ID2_PRODUCT_TTIX:
86
+ case GPU_ID2_PRODUCT_LTIX:
87
+ features = base_hw_features_tTIx;
8388 break;
8489 default:
8590 features = base_hw_features_generic;
....@@ -133,8 +138,7 @@
133138
134139 static const struct base_hw_product base_hw_products[] = {
135140 { GPU_ID2_PRODUCT_TMIX,
136
- { { GPU_ID2_VERSION_MAKE(0, 0, 1),
137
- base_hw_issues_tMIx_r0p0_05dev0 },
141
+ { { GPU_ID2_VERSION_MAKE(0, 0, 1), base_hw_issues_tMIx_r0p0_05dev0 },
138142 { GPU_ID2_VERSION_MAKE(0, 0, 2), base_hw_issues_tMIx_r0p0 },
139143 { GPU_ID2_VERSION_MAKE(0, 1, 0), base_hw_issues_tMIx_r0p1 },
140144 { U32_MAX /* sentinel value */, NULL } } },
....@@ -204,10 +208,6 @@
204208 { GPU_ID2_VERSION_MAKE(0, 0, 2), base_hw_issues_tBAx_r0p0 },
205209 { U32_MAX, NULL } } },
206210
207
- { GPU_ID2_PRODUCT_TDUX,
208
- { { GPU_ID2_VERSION_MAKE(0, 0, 0), base_hw_issues_tDUx_r0p0 },
209
- { U32_MAX, NULL } } },
210
-
211211 { GPU_ID2_PRODUCT_TODX,
212212 { { GPU_ID2_VERSION_MAKE(0, 0, 0), base_hw_issues_tODx_r0p0 },
213213 { GPU_ID2_VERSION_MAKE(0, 0, 4), base_hw_issues_tODx_r0p0 },
....@@ -225,6 +225,32 @@
225225 { GPU_ID2_PRODUCT_TVAX,
226226 { { GPU_ID2_VERSION_MAKE(0, 0, 0), base_hw_issues_tVAx_r0p0 },
227227 { U32_MAX, NULL } } },
228
+
229
+ { GPU_ID2_PRODUCT_TTUX,
230
+ { { GPU_ID2_VERSION_MAKE(0, 0, 0), base_hw_issues_tTUx_r0p0 },
231
+ { GPU_ID2_VERSION_MAKE(0, 1, 0), base_hw_issues_tTUx_r0p1 },
232
+ { GPU_ID2_VERSION_MAKE(1, 0, 0), base_hw_issues_tTUx_r1p0 },
233
+ { GPU_ID2_VERSION_MAKE(1, 1, 0), base_hw_issues_tTUx_r1p1 },
234
+ { GPU_ID2_VERSION_MAKE(1, 2, 0), base_hw_issues_tTUx_r1p2 },
235
+ { GPU_ID2_VERSION_MAKE(1, 3, 0), base_hw_issues_tTUx_r1p3 },
236
+ { U32_MAX, NULL } } },
237
+
238
+ { GPU_ID2_PRODUCT_LTUX,
239
+ { { GPU_ID2_VERSION_MAKE(0, 0, 0), base_hw_issues_tTUx_r0p0 },
240
+ { GPU_ID2_VERSION_MAKE(1, 0, 0), base_hw_issues_tTUx_r1p0 },
241
+ { GPU_ID2_VERSION_MAKE(1, 1, 0), base_hw_issues_tTUx_r1p1 },
242
+ { GPU_ID2_VERSION_MAKE(1, 2, 0), base_hw_issues_tTUx_r1p2 },
243
+ { GPU_ID2_VERSION_MAKE(1, 3, 0), base_hw_issues_tTUx_r1p3 },
244
+ { U32_MAX, NULL } } },
245
+
246
+ { GPU_ID2_PRODUCT_TTIX,
247
+ { { GPU_ID2_VERSION_MAKE(0, 0, 0), base_hw_issues_tTIx_r0p0 },
248
+ { U32_MAX, NULL } } },
249
+
250
+ { GPU_ID2_PRODUCT_LTIX,
251
+ { { GPU_ID2_VERSION_MAKE(0, 0, 0), base_hw_issues_tTIx_r0p0 },
252
+ { U32_MAX, NULL } } },
253
+
228254 };
229255
230256 u32 gpu_id = kbdev->gpu_props.props.raw_props.gpu_id;
....@@ -279,25 +305,20 @@
279305 */
280306 issues = fallback_issues;
281307
282
-#if MALI_CUSTOMER_RELEASE
283
- dev_warn(kbdev->dev,
284
- "GPU hardware issue table may need updating:\n"
285
-#else
286
- dev_info(kbdev->dev,
287
-#endif
288
- "r%dp%d status %d is unknown; treating as r%dp%d status %d",
289
- (gpu_id & GPU_ID2_VERSION_MAJOR) >>
290
- GPU_ID2_VERSION_MAJOR_SHIFT,
291
- (gpu_id & GPU_ID2_VERSION_MINOR) >>
292
- GPU_ID2_VERSION_MINOR_SHIFT,
293
- (gpu_id & GPU_ID2_VERSION_STATUS) >>
294
- GPU_ID2_VERSION_STATUS_SHIFT,
295
- (fallback_version & GPU_ID2_VERSION_MAJOR) >>
296
- GPU_ID2_VERSION_MAJOR_SHIFT,
297
- (fallback_version & GPU_ID2_VERSION_MINOR) >>
298
- GPU_ID2_VERSION_MINOR_SHIFT,
299
- (fallback_version & GPU_ID2_VERSION_STATUS) >>
300
- GPU_ID2_VERSION_STATUS_SHIFT);
308
+ dev_notice(kbdev->dev, "r%dp%d status %d not found in HW issues table;\n",
309
+ (gpu_id & GPU_ID2_VERSION_MAJOR) >> GPU_ID2_VERSION_MAJOR_SHIFT,
310
+ (gpu_id & GPU_ID2_VERSION_MINOR) >> GPU_ID2_VERSION_MINOR_SHIFT,
311
+ (gpu_id & GPU_ID2_VERSION_STATUS) >>
312
+ GPU_ID2_VERSION_STATUS_SHIFT);
313
+ dev_notice(kbdev->dev, "falling back to closest match: r%dp%d status %d\n",
314
+ (fallback_version & GPU_ID2_VERSION_MAJOR) >>
315
+ GPU_ID2_VERSION_MAJOR_SHIFT,
316
+ (fallback_version & GPU_ID2_VERSION_MINOR) >>
317
+ GPU_ID2_VERSION_MINOR_SHIFT,
318
+ (fallback_version & GPU_ID2_VERSION_STATUS) >>
319
+ GPU_ID2_VERSION_STATUS_SHIFT);
320
+ dev_notice(kbdev->dev,
321
+ "Execution proceeding normally with fallback match\n");
301322
302323 gpu_id &= ~GPU_ID2_VERSION;
303324 gpu_id |= fallback_version;
....@@ -323,7 +344,7 @@
323344 issues = kbase_hw_get_issues_for_new_id(kbdev);
324345 if (issues == NULL) {
325346 dev_err(kbdev->dev,
326
- "Unknown GPU ID %x", gpu_id);
347
+ "HW product - Unknown GPU ID %x", gpu_id);
327348 return -EINVAL;
328349 }
329350
....@@ -367,9 +388,6 @@
367388 case GPU_ID2_PRODUCT_TBAX:
368389 issues = base_hw_issues_model_tBAx;
369390 break;
370
- case GPU_ID2_PRODUCT_TDUX:
371
- issues = base_hw_issues_model_tDUx;
372
- break;
373391 case GPU_ID2_PRODUCT_TODX:
374392 case GPU_ID2_PRODUCT_LODX:
375393 issues = base_hw_issues_model_tODx;
....@@ -380,9 +398,17 @@
380398 case GPU_ID2_PRODUCT_TVAX:
381399 issues = base_hw_issues_model_tVAx;
382400 break;
401
+ case GPU_ID2_PRODUCT_TTUX:
402
+ case GPU_ID2_PRODUCT_LTUX:
403
+ issues = base_hw_issues_model_tTUx;
404
+ break;
405
+ case GPU_ID2_PRODUCT_TTIX:
406
+ case GPU_ID2_PRODUCT_LTIX:
407
+ issues = base_hw_issues_model_tTIx;
408
+ break;
383409 default:
384410 dev_err(kbdev->dev,
385
- "Unknown GPU ID %x", gpu_id);
411
+ "HW issues - Unknown GPU ID %x", gpu_id);
386412 return -EINVAL;
387413 }
388414 }