mgag200 broken on kernel-6.0-rc3 on DELL/T620

Wang Yugui wangyugui at e16-tech.com
Wed Sep 14 14:58:11 UTC 2022


Hi,

> (cc: Jocelyn)
> 
> Hi
> 
> Am 14.09.22 um 10:29 schrieb Wang Yugui:
> > Hi,
> >
> >
> >> Hi
> >>
> >> Am 13.09.22 um 17:15 schrieb Wang Yugui:
> >> [...]
> >>>>>
> >>>>> so I tried to revert patch of mgag200 driver in batch of 2 or 3, the I
> >>>>> noticed the patch 'Subject: drm/mgag200: Remove special case for G200SE
> >>>>> with <2 MiB' and then tried this dirty fix.
> >>>>
> >>>> Oh, great work! Thank you. From looking at the screenshot that you provided, it seems as if the 24-bit mode setting is broken. I'm not sure why the G200SE workaround applies to a G200ER, but we'll see.
> >>>
> >>> I tested 'preferred_depth = 32' too. it works on T630 too.
> >>>
> >>> so both 16 and 32 work, but 24 failed on DELL/T630.
> >>
> >> I tried on my test machine with a 5.19 kernel and found that 32-bit and 24-bit pixels work, but 16-bit looks incorrect.
> >>
> >> What are the results if you boot your kernel 5.19.3 with the parameter video=1024x768-24? This should enable 24-bit pixels.
> >>
> >> How does video=1024x768-16 look with the 5.19 kernel?
> >
> > test result here
> > kernel 5.19.3 & video=1024x768-24
> > 	dell/T620/centos-8.5	broken
> > 	dell/T630/centos-7.9	broken
> 
> I assume that Centos 7 and 8 have fairly old kernels? So it's been a long-standing bug.

We install kernel 5.19.3/5.15.67 into Centos 7 and 8.
default it work well.  broken just when 'video=1024x768-24', so it may
not a long-standing bug.

> 24-bit works on my G200HE and G200 test machines. Maybe the G200ER has a bug.
> 
> When I try 16-bit depth, the display works, but is way too dark. No fiddling with the LUT tables fixes this. It's 90s hardware, so it should support 16-bit framebuffers well, but there's no obvious bug to be seen.
> 
> I guess, we could remove 16 and 24 bit support for now if nothing else helps.


maybe better if we revert 73f54d5d9682 (drm/mgag200: Remove special case
for G200SE with <2 MiB)

because there is no test result on device G200_SE

static unsigned int mgag200_preferred_depth(struct mga_device *mdev)
{
       if (IS_G200_SE(mdev) && mdev->vram_fb_available < (2048*1024))
               return 16;
       else
               return 32;
}

Best Regards
Wang Yugui (wangyugui at e16-tech.com)
2022/09/14



More information about the dri-devel mailing list