From 9fc2b0b4873556909e5514a0136f372e7ece67c8 Mon Sep 17 00:00:00 2001 From: Ashish Mhetre Date: Fri, 12 Apr 2024 05:42:57 +0000 Subject: [PATCH] video: tegra: nvmap: Set NUMA ID for device - Set NUMA ID for carveout devices using set_dev_node() - Export device for VPR on socket-1 Bug 4390638 Change-Id: I37ade16b690995b70d3c924965596cfc8094447e Signed-off-by: Ashish Mhetre Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3115088 Reviewed-by: Terje Bergstrom GVS: Gerrit_Virtual_Submit Reviewed-by: Ketan Patil Reviewed-by: Sachin Nikam --- drivers/video/tegra/nvmap/include/linux/nvmap_exports.h | 3 ++- drivers/video/tegra/nvmap/nvmap_heap.c | 1 + drivers/video/tegra/nvmap/nvmap_init.c | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/video/tegra/nvmap/include/linux/nvmap_exports.h b/drivers/video/tegra/nvmap/include/linux/nvmap_exports.h index 0d10e50b..d1b72fd9 100644 --- a/drivers/video/tegra/nvmap/include/linux/nvmap_exports.h +++ b/drivers/video/tegra/nvmap/include/linux/nvmap_exports.h @@ -1,6 +1,6 @@ /* SPDX-License-Identifier: GPL-2.0-only */ /* - * Copyright (c) 2021-2023, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2021-2024, NVIDIA CORPORATION. All rights reserved. */ #ifndef __NVMAP_EXPORTS_H #define __NVMAP_EXPORTS_H @@ -11,4 +11,5 @@ void *nvmap_dma_alloc_attrs(struct device *dev, size_t size, void nvmap_dma_free_attrs(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_handle, unsigned long attrs); extern struct device tegra_vpr_dev; +extern struct device tegra_vpr_dev1; #endif /* __NVMAP_EXPORTS_H */ diff --git a/drivers/video/tegra/nvmap/nvmap_heap.c b/drivers/video/tegra/nvmap/nvmap_heap.c index d2515eb0..438ab1db 100644 --- a/drivers/video/tegra/nvmap/nvmap_heap.c +++ b/drivers/video/tegra/nvmap/nvmap_heap.c @@ -399,6 +399,7 @@ struct nvmap_heap *nvmap_heap_create(struct device *parent, } dev_set_name(h->dma_dev, "%s", co->name); + set_dev_node(co->dma_dev, co->numa_node_id); dma_set_coherent_mask(h->dma_dev, DMA_BIT_MASK(64)); h->name = co->name; h->arg = arg; diff --git a/drivers/video/tegra/nvmap/nvmap_init.c b/drivers/video/tegra/nvmap/nvmap_init.c index 0e6333f6..f21e0b5a 100644 --- a/drivers/video/tegra/nvmap/nvmap_init.c +++ b/drivers/video/tegra/nvmap/nvmap_init.c @@ -38,6 +38,7 @@ struct device __weak tegra_generic_dev; struct device __weak tegra_vpr_dev; EXPORT_SYMBOL(tegra_vpr_dev); struct device tegra_vpr1_dev; +EXPORT_SYMBOL(tegra_vpr1_dev); struct device __weak tegra_generic_cma_dev; struct device __weak tegra_vpr_cma_dev; @@ -740,6 +741,8 @@ static int __init nvmap_co_device_init(struct reserved_mem *rmem, } else { co->init_done = true; } + if (co->init_done) + set_dev_node(co->dma_dev, co->numa_node_id); return err; }