Re: matroxfb: cannot determine memory size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/19/22 12:58, Paul Menzel wrote:

Dear Helge,


Am 16.12.22 um 22:21 schrieb Helge Deller:
* Paul Menzel <pmenzel@xxxxxxxxxxxxx>:
[Cc: +regressions@, +stable@]

#regzbot ^introduced: 62d89a7d49afe46e6b9bbe9e23b004ad848dbde4

Am 16.12.22 um 00:02 schrieb Helge Deller:
On 12/15/22 17:39, Paul Menzel wrote:

Between Linux 5.10.103 and 5.10.110/5.15.77, matrixfb fails to load.

[…]

### 5.15.77

      [    0.000000] Linux version 5.15.77.mx64.440 (root@xxxxxxxxxxxxxxxxxxxxxxxxx) (gcc (GCC) 10.4.0, GNU ld (GNU Binutils) 2.37) #1 SMP Tue Nov 8 15:42:33 CET 2022
      [    0.000000] Command line: root=LABEL=root ro crashkernel=64G-:256M console=ttyS0,115200n8 console=tty0 init=/bin/systemd audit=0 random.trust_cpu=on systemd.unified_cgroup_hierarchy
      […]
      [    0.000000] DMI: Dell Inc. PowerEdge R715/0G2DP3, BIOS 1.5.2 04/19/2011
      […]
      [    9.436420] matroxfb: Matrox MGA-G200eW (PCI) detected
      [    9.444502] matroxfb: cannot determine memory size
      [    9.449316] matroxfb: probe of 0000:0a:03.0 failed with error -1

We see it on several systems:

      $ lspci -nn -s 0a:03.0 # Dell PowerEdge R715
      0a:03.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a)

      $ lspci -nn -s 09:03.0 # Dell PowerEdge R910
      09:03.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a)

Also Dell PowerEdge R815.

[…]

I tested Linus’ master with commit 84e57d292203 (Merge tag
'exfat-for-6.2-rc1' of
git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat) and the
error is still there. Reverting commit fixes the issue.

Tested on:

     DMI: Dell Inc. PowerEdge R910/0KYD3D, BIOS 2.10.0 08/29/2013

Current master:

     [   36.221595] matroxfb 0000:09:03.0: vgaarb: deactivate vga console
     [   36.228355] Console: switching to colour dummy device 80x25
     [   36.234069] matroxfb: Matrox MGA-G200eW (PCI) detected
     [   36.239316] PInS memtype = 7
     [   36.242198] matroxfb: cannot determine memory size
     [   36.242209] matroxfb: probe of 0000:09:03.0 failed with error -1

After reverting 62d89a7d49af (video: fbdev: matroxfb: set maxvram of
vbG200eW to the same as vbG200 to avoid black screen):

     [   38.140763] matroxfb 0000:09:03.0: vgaarb: deactivate vga console
     [   38.148057] Console: switching to colour dummy device 80x25
     [   38.153789] matroxfb: Matrox MGA-G200eW (PCI) detected
     [   38.159042] PInS memtype = 7
     [   38.161953] matroxfb: 640x480x8bpp (virtual: 640x13107)
     [   38.167175] matroxfb: framebuffer at 0xC5000000, mapped to 0x000000006f41c38c, size 8388608

The master commit 62d89a7d49a was added to v5.18-rc1, and was also
backported to the Linux 5.15 series in 5.15.33.

Good.

Could you test if the patch below works for you as well (on top of
git master) ? I believe the commit f8bf19f7f311 (video: fbdev:
matroxfb: set maxvram of vbG200eW to the same as vbG200 to avoid
black screen) changed the wrong value...

diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
index 0d3cee7ae726..5192c7ac459a 100644
--- a/drivers/video/fbdev/matrox/matroxfb_base.c
+++ b/drivers/video/fbdev/matrox/matroxfb_base.c
@@ -1378,8 +1378,8 @@ static struct video_board vbG200 = {
      .lowlevel = &matrox_G100
  };
  static struct video_board vbG200eW = {
-    .maxvram = 0x100000,
-    .maxdisplayable = 0x800000,
+    .maxvram = 0x800000,
+    .maxdisplayable = 0x100000,
      .accelID = FB_ACCEL_MATROX_MGAG200,
      .lowlevel = &matrox_G100
  };

Thank you. That worked.

     $ dmesg | grep -e matroxfb -e "Linux version" -e "DMI:"
     [    0.000000] Linux version 6.1.0.mx64.440-13147-gfa99506bedb1 (pmenzel@xxxxxxxxxxxxxxxxxxxxxxx) (gcc (GCC) 11.1.0, GNU ld (GNU Binutils) 2.37) #1 SMP PREEMPT_DYNAMIC Mon Dec 19 12:13:21 CET 2022
     [    0.000000] DMI: Dell Inc. PowerEdge R815/04Y8PT, BIOS 3.4.0 03/23/2018
     [   29.033666] matroxfb 0000:0a:03.0: vgaarb: deactivate vga console
     [   29.046608] matroxfb: Matrox MGA-G200eW (PCI) detected
     [   29.054769] matroxfb: 640x480x8bpp (virtual: 640x1638)
     [   29.059901] matroxfb: framebuffer at 0xE4000000, mapped to 0x00000000d36c9776, size 8388608
     [   34.917829] matroxfb: Pixel PLL not locked after 5 secs
     $ lspci -nn -s 0a:03.0
     0a:03.0 VGA compatible controller [0300]: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 [102b:0532] (rev 0a)

If it works, can you send a patch?

Will do.

Great.

If you have some explanation though, I could add to the commit message, that’d be great.

Look at the comment in the code, a few lines further down, for the vbG400 card:

/* from doc it looks like that accelerator can draw only to low 16MB :-( Direct accesses & displaying are OK for
   whole 32MB */
static struct video_board vbG400 = {
        .maxvram = 0x2000000,
        .maxdisplayable = 0x1000000,

it makes sense to have maxdisplayable smaller than maxvram.
But Z Liu made maxvram lower than maxdisplayable.

Helge




[Index of Archives]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Tourism]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux