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