From d4623da9a35ee48c8e69bc1487b5fc60280173b3 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Fri, 16 Feb 2024 15:39:25 -0600 Subject: [PATCH] nouveau/winsys: Getch the BAR size from the kernel Part-of: --- src/nouveau/headers/nv_device_info.h | 1 + src/nouveau/winsys/nouveau_device.c | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/src/nouveau/headers/nv_device_info.h b/src/nouveau/headers/nv_device_info.h index d3c9fa07982..96843fcd709 100644 --- a/src/nouveau/headers/nv_device_info.h +++ b/src/nouveau/headers/nv_device_info.h @@ -43,6 +43,7 @@ struct nv_device_info { uint16_t cls_compute; uint64_t vram_size_B; + uint64_t bar_size_B; }; #endif /* NV_DEVINFO_H */ diff --git a/src/nouveau/winsys/nouveau_device.c b/src/nouveau/winsys/nouveau_device.c index 9f58a1c5ff9..97177090aee 100644 --- a/src/nouveau/winsys/nouveau_device.c +++ b/src/nouveau/winsys/nouveau_device.c @@ -317,6 +317,10 @@ nouveau_ws_device_new(drmDevicePtr drm_device) else device->local_mem_domain = NOUVEAU_GEM_DOMAIN_VRAM; + if (drm_device->bustype == DRM_BUS_PCI && + !nouveau_ws_param(fd, NOUVEAU_GETPARAM_VRAM_BAR_SIZE, &value)) + device->info.bar_size_B = value; + if (nouveau_ws_param(fd, NOUVEAU_GETPARAM_GRAPH_UNITS, &value)) goto out_err;