diff --git a/drivers/platform/tegra/nvadsp/adsp_shared_struct.h b/drivers/platform/tegra/nvadsp/adsp_shared_struct.h index 95e43494..5859a04d 100644 --- a/drivers/platform/tegra/nvadsp/adsp_shared_struct.h +++ b/drivers/platform/tegra/nvadsp/adsp_shared_struct.h @@ -46,6 +46,7 @@ struct adsp_shared_app { int32_t dram_data_ptr; int32_t shared_data_ptr; int32_t shared_wc_data_ptr; + char version[16]; } __packed; /* ADSP app loader message queue */ diff --git a/drivers/platform/tegra/nvadsp/app.c b/drivers/platform/tegra/nvadsp/app.c index 4b1acb1c..6268ce79 100644 --- a/drivers/platform/tegra/nvadsp/app.c +++ b/drivers/platform/tegra/nvadsp/app.c @@ -132,6 +132,16 @@ static int size_app_file_node(struct seq_file *s, void *data) return 0; } +static int version_app_file_node(struct seq_file *s, void *data) +{ + struct nvadsp_app_service *ser = s->private; + struct adsp_module *mod = ser->mod; + + seq_printf(s, "%s\n", strcmp(mod->version, "") ? mod->version : "unavailable"); + + return 0; +} + static int dram_app_file_node(struct seq_file *s, void *data) { const struct app_mem_size *mem_size = s->private; @@ -215,6 +225,7 @@ ADSP_APP_FILE_OPERATION(dump_binary_in_words); ADSP_APP_FILE_OPERATION(host_load_addr); ADSP_APP_FILE_OPERATION(adsp_load_addr); ADSP_APP_FILE_OPERATION(size); +ADSP_APP_FILE_OPERATION(version); ADSP_APP_FILE_OPERATION(dram); ADSP_APP_FILE_OPERATION(dram_shared); @@ -243,6 +254,7 @@ static int create_adsp_app_debugfs(struct nvadsp_app_service *ser) ADSP_APP_CREATE_FILE(host_load_addr, ser, root); ADSP_APP_CREATE_FILE(adsp_load_addr, ser, root); ADSP_APP_CREATE_FILE(size, ser, root); + ADSP_APP_CREATE_FILE(version, ser, root); ADSP_APP_CREATE_FOLDER(instance_mem_sizes, root); ADSP_APP_CREATE_FILE(dram, mem_size, instance_mem_sizes); ADSP_APP_CREATE_FILE(dram_shared, mem_size, instance_mem_sizes); diff --git a/drivers/platform/tegra/nvadsp/app_loader_linker.c b/drivers/platform/tegra/nvadsp/app_loader_linker.c index 396a3563..3e64bdd9 100644 --- a/drivers/platform/tegra/nvadsp/app_loader_linker.c +++ b/drivers/platform/tegra/nvadsp/app_loader_linker.c @@ -844,6 +844,7 @@ struct adsp_module *load_adsp_static_module(const char *appname, mod->adsp_module_ptr = shared_app->mod_ptr; mod->dynamic = false; + memcpy(mod->version, shared_app->version, sizeof(shared_app->version)); return mod; } diff --git a/drivers/platform/tegra/nvadsp/os.h b/drivers/platform/tegra/nvadsp/os.h index 1878955a..624b94c9 100644 --- a/drivers/platform/tegra/nvadsp/os.h +++ b/drivers/platform/tegra/nvadsp/os.h @@ -104,6 +104,7 @@ struct adsp_module { size_t size; const struct app_mem_size mem_size; bool dynamic; + char version[16]; }; struct app_load_stats {