mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-23 09:57:08 +03:00
gpu: nvgpu: allocate from coherent pool
Maps memory coherently on devices that are connected to a coherent bus. (1) Add code to be able to get the platform device node. (2) Create a new flag to mark if the device is connected to a coherent bus (3) Map memory coherently on coherent devices. bug 2040331 Change-Id: Ide83a9261acdbbc6e9fef4fc5f38d6f9d0e5ab5b Signed-off-by: David Nieto <dmartineznie@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1633985 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
82f253b7c1
commit
6dde9e67d9
@@ -21,6 +21,8 @@
|
||||
#include <nvgpu/nvgpu_common.h>
|
||||
#include <nvgpu/kmem.h>
|
||||
#include <nvgpu/enabled.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/of_address.h>
|
||||
|
||||
#include "gk20a/gk20a.h"
|
||||
#include "clk/clk.h"
|
||||
@@ -525,6 +527,7 @@ static int nvgpu_pci_probe(struct pci_dev *pdev,
|
||||
struct gk20a *g;
|
||||
int err;
|
||||
char nodefmt[64];
|
||||
struct device_node *np;
|
||||
|
||||
/* make sure driver_data is a sane index */
|
||||
if (pent->driver_data >= sizeof(nvgpu_pci_device) /
|
||||
@@ -632,6 +635,11 @@ static int nvgpu_pci_probe(struct pci_dev *pdev,
|
||||
|
||||
g->mm.has_physical_mode = false;
|
||||
|
||||
np = nvgpu_get_node(g);
|
||||
|
||||
if (of_dma_is_coherent(np))
|
||||
__nvgpu_set_enabled(g, NVGPU_DMA_COHERENT, true);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user