From c2290843dfc6fa51e605249cde9607515b9c26e3 Mon Sep 17 00:00:00 2001 From: Philipp Zabel Date: Tue, 23 Apr 2024 15:23:59 +0200 Subject: [PATCH] etnaviv: Add nn_core_version field to etna_specs Use the NN_XYDP0 and NN_VIP7 feature flags to determine the NN core version [1] and store it in etna_specs. [1] https://github.com/nxp-imx/linux-imx/blob/lf-6.1.36-2.1.0/drivers/mxc/gpu-viv/hal/kernel/arch/gc_hal_kernel_hardware_func.c#L5464-L5465 Signed-off-by: Philipp Zabel Reviewed-by: Christian Gmeiner Part-of: --- src/gallium/drivers/etnaviv/etnaviv_internal.h | 2 ++ src/gallium/drivers/etnaviv/etnaviv_screen.c | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/src/gallium/drivers/etnaviv/etnaviv_internal.h b/src/gallium/drivers/etnaviv/etnaviv_internal.h index 8ef921cca0f..f5d71a6c81b 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_internal.h +++ b/src/gallium/drivers/etnaviv/etnaviv_internal.h @@ -145,6 +145,8 @@ struct etna_specs { unsigned num_constants; /* number of NN cores */ unsigned nn_core_count; + /* architecture version of NN cores */ + unsigned nn_core_version; /* number of MAD units per NN core */ unsigned nn_mad_per_core; /* number of TP cores */ diff --git a/src/gallium/drivers/etnaviv/etnaviv_screen.c b/src/gallium/drivers/etnaviv/etnaviv_screen.c index 98dfb37aeec..499e3adce83 100644 --- a/src/gallium/drivers/etnaviv/etnaviv_screen.c +++ b/src/gallium/drivers/etnaviv/etnaviv_screen.c @@ -859,6 +859,13 @@ etna_get_specs(struct etna_screen *screen) screen->specs.on_chip_sram_size = info->npu.on_chip_sram_size; screen->specs.axi_sram_size = info->npu.axi_sram_size; screen->specs.nn_zrl_bits = info->npu.nn_zrl_bits; + + if (etna_core_has_feature(info, ETNA_FEATURE_NN_XYDP0)) + screen->specs.nn_core_version = 8; + else if (etna_core_has_feature(info, ETNA_FEATURE_VIP_V7)) + screen->specs.nn_core_version = 7; + else + screen->specs.nn_core_version = 6; } /* Figure out gross GPU architecture. See rnndb/common.xml for a specific