Mesa (main): etnaviv: fill all minor GPU features from the kernel
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Apr 27 09:19:01 UTC 2022
Module: Mesa
Branch: main
Commit: 8c153bb0919bd217e53597daa0db5fc75c4a6172
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=8c153bb0919bd217e53597daa0db5fc75c4a6172
Author: Lucas Stach <l.stach at pengutronix.de>
Date: Wed Jan 20 12:58:53 2021 +0100
etnaviv: fill all minor GPU features from the kernel
The kernel exposes more minor GPU feature registers. Fill them
all into our internal feature struct.
Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
Reviewed-by: Philipp Zabel <p.zabel at pengutronix.de>
Reviewed-by: Christian Gmeiner <christian.gmeiner at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9255>
---
src/etnaviv/drm/etnaviv_drmif.h | 4 ++++
src/etnaviv/drm/etnaviv_gpu.c | 12 ++++++++++++
src/gallium/drivers/etnaviv/etnaviv_screen.c | 24 ++++++++++++++++++++++++
src/gallium/drivers/etnaviv/etnaviv_screen.h | 5 +++++
4 files changed, 45 insertions(+)
diff --git a/src/etnaviv/drm/etnaviv_drmif.h b/src/etnaviv/drm/etnaviv_drmif.h
index 1ad2a2e97fb..9b492455c3e 100644
--- a/src/etnaviv/drm/etnaviv_drmif.h
+++ b/src/etnaviv/drm/etnaviv_drmif.h
@@ -59,6 +59,10 @@ enum etna_param_id {
ETNA_GPU_FEATURES_6 = 0x9,
ETNA_GPU_FEATURES_7 = 0xa,
ETNA_GPU_FEATURES_8 = 0xb,
+ ETNA_GPU_FEATURES_9 = 0xc,
+ ETNA_GPU_FEATURES_10 = 0xd,
+ ETNA_GPU_FEATURES_11 = 0xe,
+ ETNA_GPU_FEATURES_12 = 0xf,
ETNA_GPU_STREAM_COUNT = 0x10,
ETNA_GPU_REGISTER_MAX = 0x11,
diff --git a/src/etnaviv/drm/etnaviv_gpu.c b/src/etnaviv/drm/etnaviv_gpu.c
index 52956c415b8..31b7a32de0b 100644
--- a/src/etnaviv/drm/etnaviv_gpu.c
+++ b/src/etnaviv/drm/etnaviv_gpu.c
@@ -118,6 +118,18 @@ int etna_gpu_get_param(struct etna_gpu *gpu, enum etna_param_id param,
case ETNA_GPU_FEATURES_8:
*value = get_param(dev, core, ETNAVIV_PARAM_GPU_FEATURES_8);
return 0;
+ case ETNA_GPU_FEATURES_9:
+ *value = get_param(dev, core, ETNAVIV_PARAM_GPU_FEATURES_9);
+ return 0;
+ case ETNA_GPU_FEATURES_10:
+ *value = get_param(dev, core, ETNAVIV_PARAM_GPU_FEATURES_10);
+ return 0;
+ case ETNA_GPU_FEATURES_11:
+ *value = get_param(dev, core, ETNAVIV_PARAM_GPU_FEATURES_11);
+ return 0;
+ case ETNA_GPU_FEATURES_12:
+ *value = get_param(dev, core, ETNAVIV_PARAM_GPU_FEATURES_12);
+ return 0;
case ETNA_GPU_STREAM_COUNT:
*value = get_param(dev, core, ETNA_GPU_STREAM_COUNT);
return 0;
diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c
index 759f65385c6..efe827d0d9a 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_screen.c
+++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c
@@ -1063,6 +1063,30 @@ etna_screen_create(struct etna_device *dev, struct etna_gpu *gpu,
}
screen->features[8] = val;
+ if (etna_gpu_get_param(screen->gpu, ETNA_GPU_FEATURES_9, &val)) {
+ DBG("could not get ETNA_GPU_FEATURES_9");
+ goto fail;
+ }
+ screen->features[9] = val;
+
+ if (etna_gpu_get_param(screen->gpu, ETNA_GPU_FEATURES_10, &val)) {
+ DBG("could not get ETNA_GPU_FEATURES_10");
+ goto fail;
+ }
+ screen->features[10] = val;
+
+ if (etna_gpu_get_param(screen->gpu, ETNA_GPU_FEATURES_11, &val)) {
+ DBG("could not get ETNA_GPU_FEATURES_11");
+ goto fail;
+ }
+ screen->features[11] = val;
+
+ if (etna_gpu_get_param(screen->gpu, ETNA_GPU_FEATURES_12, &val)) {
+ DBG("could not get ETNA_GPU_FEATURES_12");
+ goto fail;
+ }
+ screen->features[12] = val;
+
if (!etna_get_specs(screen))
goto fail;
diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.h b/src/gallium/drivers/etnaviv/etnaviv_screen.h
index eeac8b743ed..325af3d19a8 100644
--- a/src/gallium/drivers/etnaviv/etnaviv_screen.h
+++ b/src/gallium/drivers/etnaviv/etnaviv_screen.h
@@ -53,6 +53,11 @@ enum viv_features_word {
viv_chipMinorFeatures5 = 6,
viv_chipMinorFeatures6 = 7,
viv_chipMinorFeatures7 = 8,
+ viv_chipMinorFeatures8 = 9,
+ viv_chipMinorFeatures9 = 10,
+ viv_chipMinorFeatures10 = 11,
+ viv_chipMinorFeatures11 = 12,
+ viv_chipMinorFeatures12 = 13,
VIV_FEATURES_WORD_COUNT /* Must be last */
};
More information about the mesa-commit
mailing list