Message ID | 20220211202728.6146-9-alyssa.rosenzweig@collabora.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/panfrost: Initial Valhall support | expand |
On 11/02/2022 20:27, alyssa.rosenzweig@collabora.com wrote: > From: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> > > 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. > > Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> > --- > drivers/gpu/drm/panfrost/panfrost_features.h | 12 ++++++++++++ > drivers/gpu/drm/panfrost/panfrost_gpu.c | 2 ++ > drivers/gpu/drm/panfrost/panfrost_issues.h | 5 +++++ > 3 files changed, 19 insertions(+) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h > index 1a8bdebc86a3..7ed0cd3ea2d4 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_features.h > +++ b/drivers/gpu/drm/panfrost/panfrost_features.h > @@ -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) > { > diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c > index 73e5774f01c1..08d657527099 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c > +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c > @@ -201,6 +201,8 @@ static const struct panfrost_model gpu_models[] = { > GPU_MODEL(g52, 0x7002), > GPU_MODEL(g31, 0x7003, > GPU_REV(g31, 1, 0)), > + > + GPU_MODEL(g57, 0x9001), > }; > > static void panfrost_gpu_init_features(struct panfrost_device *pfdev) > diff --git a/drivers/gpu/drm/panfrost/panfrost_issues.h b/drivers/gpu/drm/panfrost/panfrost_issues.h > index b8865fc9efce..1a0dc7f7f857 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_issues.h > +++ b/drivers/gpu/drm/panfrost/panfrost_issues.h > @@ -258,6 +258,11 @@ 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) | \ > + BIT_ULL(HW_ISSUE_TTRX_3485)) Do you know whether you have an r0p0 or an r0p1 Natt? Only the r0p0 has the 3485 issue, and we might be lucky and it's the r0p1 that's "in the wild". It would be good to annotate these lists with the hardware revisions when there is a difference. Steve > + > static inline bool panfrost_has_hw_issue(const struct panfrost_device *pfdev, > enum panfrost_hw_issue issue) > {
> > index b8865fc9efce..1a0dc7f7f857 100644 > > --- a/drivers/gpu/drm/panfrost/panfrost_issues.h > > +++ b/drivers/gpu/drm/panfrost/panfrost_issues.h > > @@ -258,6 +258,11 @@ 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) | \ > > + BIT_ULL(HW_ISSUE_TTRX_3485)) > > Do you know whether you have an r0p0 or an r0p1 Natt? Only the r0p0 has > the 3485 issue, and we might be lucky and it's the r0p1 that's "in the > wild". Sadly, I believe I have an r0p0. I don't know if future spins of the same SoC would be bumped up, but I'm skeptical. > It would be good to annotate these lists with the hardware revisions > when there is a difference. Sure.
diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h index 1a8bdebc86a3..7ed0cd3ea2d4 100644 --- a/drivers/gpu/drm/panfrost/panfrost_features.h +++ b/drivers/gpu/drm/panfrost/panfrost_features.h @@ -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) { diff --git a/drivers/gpu/drm/panfrost/panfrost_gpu.c b/drivers/gpu/drm/panfrost/panfrost_gpu.c index 73e5774f01c1..08d657527099 100644 --- a/drivers/gpu/drm/panfrost/panfrost_gpu.c +++ b/drivers/gpu/drm/panfrost/panfrost_gpu.c @@ -201,6 +201,8 @@ static const struct panfrost_model gpu_models[] = { GPU_MODEL(g52, 0x7002), GPU_MODEL(g31, 0x7003, GPU_REV(g31, 1, 0)), + + GPU_MODEL(g57, 0x9001), }; static void panfrost_gpu_init_features(struct panfrost_device *pfdev) diff --git a/drivers/gpu/drm/panfrost/panfrost_issues.h b/drivers/gpu/drm/panfrost/panfrost_issues.h index b8865fc9efce..1a0dc7f7f857 100644 --- a/drivers/gpu/drm/panfrost/panfrost_issues.h +++ b/drivers/gpu/drm/panfrost/panfrost_issues.h @@ -258,6 +258,11 @@ 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) | \ + BIT_ULL(HW_ISSUE_TTRX_3485)) + static inline bool panfrost_has_hw_issue(const struct panfrost_device *pfdev, enum panfrost_hw_issue issue) {