Hi, Jingfeng, On Sat, Jan 20, 2024 at 12:19 AM Sui JIngfeng <sui.jingfeng@xxxxxxxxx> wrote: > > Hi, > > Thanks a lot for contribution. > > On 2024/1/19 18:40, Huacai Chen wrote: > > If there is no VRAM (it is true if there is a discreted card), > > > Why the dedicated VRAM is gone whenthere is a discrete card? > > As far as I know, this is only possible on Loongson 3C5000 + aspeed BMC > server hardware platform where the dedicated VRAM chip of Loongson > Graphics is NOT soldered on the motherboard. Probably for cost reason, > but then, the platform BIOS(either UEFI or PMON) should turn off the > Loongson integrated graphics. > > Because without dedicated VRAM, this driver can not work correctly. Or carve out > part of system RAM as VRAM, and write the base address and size to the BAR 2 of > the GPU PCI device. > This is NOT true for Loongson 3A5000/3A6000 desktop hardware, because I have do > a lot test on various platform[1] before this driver was merged. It never happens > on a sane hardware configuration. Please update the commit message and limit the > scope. I will update in V2. > > [1] https://github.com/loongson-gfx/loongson_boards > > > we get > > such an error and Xorg fails to start: > > > Yeah, If there is no dedicated VRAM, the driver can't allocate memory for framebuffer. > But this is probably more about the hardware configuration issue, not a driver issue. I agree, but it seems we need a workaround in the driver because there are already many machines with ill firmware. > > > > [ 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. > > > This is not expected, if you want this driver be there and run normally. > You should guarantee that there have at least 64MiB dedicated VRAM. I think this depends on the resolution, I choose 1MB here only because the driver's debug info prints 0MB if VRAM is less than 1MB. Huacai > > I'm OK if this patch is strongly requested, but this is a kind of error handling. > Please give more details about the hardware in using and explain why there is no > dedicated VRAM available for your hardware. > > > > 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; > > } > > > > static struct lsdc_device *