drm/loongson: Error out if no VRAM detected

yetist yetist at gmail.com
Sat Jan 20 16:07:58 UTC 2024


Without this patch, my server cannot start the DM. It is a Loongson 
3C5000L server, with both a Loongson display controller and an ASPEED 
graphics card.

   $ lspci |grep VGA
   0000:00:06.1 VGA Compatible Controller: Loongson Technology LLC DC 
(Display Controller) (rev 01)
   0000:03:00.0 VGA-compatible controller: ASPEED Technology, Inc. 
ASPEED Graphics Family (revision 41)

When not working, there is the following information in dmesg:

   loongson 0000:00:06.1: [drm] Private vram start: 0xe00472a6000, size: 
0MiB
   Loongson 0000:00:06.1: [drm] *Error* Request (0MiB) failed


Anyway, this patch works fine with my server now, thank you.

Tested-by: Xiaotian Wu <wuxiaotian at loongson.cn>


在 2024/1/20 00:18, Sui JIngfeng 写道:
> 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.
>
> [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.
>
>
>> [  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'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 at loongson.cn>
>> ---
>>   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 *
>



More information about the dri-devel mailing list