]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/panfrost: Add Mali-G57 "Natt" support
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Wed, 25 May 2022 14:57:53 +0000 (10:57 -0400)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Thu, 26 May 2022 13:53:38 +0000 (09:53 -0400)
Add the features, issues, and GPU ID for Mali-G57, a first-generation
Valhall GPU. Other first- and second-generation Valhall GPUs should be
similar.

v2: Split out issue list for r0p0 from newer Natt GPUs, as TTRX_3485 was
fixed in r0p1. Unfortunately, MT8192 has a r0p0, so we do need to handle
TTRX_3485.

Reviewed-by: Steven Price <steven.price@arm.com>
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220525145754.25866-9-alyssa.rosenzweig@collabora.com
drivers/gpu/drm/panfrost/panfrost_features.h
drivers/gpu/drm/panfrost/panfrost_gpu.c
drivers/gpu/drm/panfrost/panfrost_issues.h

index 1a8bdebc86a3e4ef3ddd353f9c0d099d7426fd72..7ed0cd3ea2d4cd2797f144acc1fe38c33aaf1c5c 100644 (file)
@@ -106,6 +106,18 @@ enum panfrost_hw_feature {
        BIT_ULL(HW_FEATURE_TLS_HASHING) | \
        BIT_ULL(HW_FEATURE_3BIT_EXT_RW_L2_MMU_CONFIG))
 
+#define hw_features_g57 (\
+       BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
+       BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
+       BIT_ULL(HW_FEATURE_XAFFINITY) | \
+       BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
+       BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
+       BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
+       BIT_ULL(HW_FEATURE_COHERENCY_REG) | \
+       BIT_ULL(HW_FEATURE_AARCH64_MMU) | \
+       BIT_ULL(HW_FEATURE_IDVS_GROUP_SIZE) | \
+       BIT_ULL(HW_FEATURE_CLEAN_ONLY_SAFE))
+
 static inline bool panfrost_has_hw_feature(struct panfrost_device *pfdev,
                                           enum panfrost_hw_feature feat)
 {
index e1a6e763d0dc879c2b163c4377cfbe5f473047bb..6452e4e900dd78f0d44807609707a8222c05ea07 100644 (file)
@@ -201,6 +201,9 @@ static const struct panfrost_model gpu_models[] = {
        GPU_MODEL(g52, 0x7002),
        GPU_MODEL(g31, 0x7003,
                GPU_REV(g31, 1, 0)),
+
+       GPU_MODEL(g57, 0x9001,
+               GPU_REV(g57, 0, 0)),
 };
 
 static void panfrost_gpu_init_features(struct panfrost_device *pfdev)
index 4d41e0a13867af5693f8ca7f5baef5c9d78bb0b2..eb60cb83667a6ee31adbf44df2b6db5e59f1513a 100644 (file)
@@ -258,6 +258,13 @@ enum panfrost_hw_issue {
 
 #define hw_issues_g76 0
 
+#define hw_issues_g57 (\
+       BIT_ULL(HW_ISSUE_TTRX_2968_TTRX_3162) | \
+       BIT_ULL(HW_ISSUE_TTRX_3076))
+
+#define hw_issues_g57_r0p0 (\
+       BIT_ULL(HW_ISSUE_TTRX_3485))
+
 static inline bool panfrost_has_hw_issue(const struct panfrost_device *pfdev,
                                         enum panfrost_hw_issue issue)
 {