On 2024/1/19 18:40, Huacai Chen wrote:
If there is no VRAM (it is true if there is a discreted card), we get
such an error and Xorg fails to start:
[ 136.401131] loongson 0000:00:06.1: [drm] *ERROR* Requesting(0MiB) failed
[ 137.444342] loongson 0000:00:06.1: [drm] *ERROR* Requesting(0MiB) failed
[ 138.871166] loongson 0000:00:06.1: [drm] *ERROR* Requesting(0MiB) failed
[ 140.444078] loongson 0000:00:06.1: [drm] *ERROR* Requesting(0MiB) failed
[ 142.403993] loongson 0000:00:06.1: [drm] *ERROR* Requesting(0MiB) failed
[ 143.970625] loongson 0000:00:06.1: [drm] *ERROR* Requesting(0MiB) failed
[ 145.862013] loongson 0000:00:06.1: [drm] *ERROR* Requesting(0MiB) failed
So in lsdc_get_dedicated_vram() we error out if no VRAM (or VRAM is less
than 1MB which is also an unusable case) detected.
Signed-off-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
---
drivers/gpu/drm/loongson/lsdc_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/loongson/lsdc_drv.c b/drivers/gpu/drm/loongson/lsdc_drv.c
index 89ccc0c43169..d8ff60b46abe 100644
--- a/drivers/gpu/drm/loongson/lsdc_drv.c
+++ b/drivers/gpu/drm/loongson/lsdc_drv.c
@@ -184,7 +184,7 @@ static int lsdc_get_dedicated_vram(struct lsdc_device *ldev,
drm_info(ddev, "Dedicated vram start: 0x%llx, size: %uMiB\n",
(u64)base, (u32)(size >> 20));
- return 0;
+ return (size > SZ_1M) ? 0 : -ENODEV;
I forget to tell you that you probably should return ENOSPC at here,
which stand for no space left on device, not the ENODEV.