Dear Thomas,
Thank you for your reply.
Am 16.12.22 um 13:27 schrieb Thomas Zimmermann:
Am 15.12.22 um 17:39 schrieb Paul Menzel:
[…]
Between Linux 5.10.103 and 5.10.110/5.15.77, matrixfb fails to load.
Off-topic, but related. matroxfb is obsolete and there's a maintained
DRM replacement (mgag200) for this hardware.
I also remembered something like this in the back of my head. Though I
thought about using simpledrm (`DRM_SIMPLEDRM`), we do not build though.
Is there anything missing from mgag200 that prevents you from switching?
No, it looks like the matroxfb modules take precedence over the mgag200
module:
$ grep -e FB_MATROX -e MGAG /boot/config-5.15.77.mx64.440
CONFIG_DRM_MGAG200=m
CONFIG_FB_MATROX=m
CONFIG_FB_MATROX_MILLENIUM=y
CONFIG_FB_MATROX_MYSTIQUE=y
CONFIG_FB_MATROX_G=y
CONFIG_FB_MATROX_I2C=m
# CONFIG_FB_MATROX_MAVEN is not set
$ lsmod | grep matrox
matroxfb_base 28672 0
matroxfb_g450 16384 1 matroxfb_base
matroxfb_Ti3026 16384 1 matroxfb_base
matroxfb_accel 16384 1 matroxfb_base
matroxfb_DAC1064 20480 1 matroxfb_base
g450_pll 16384 2 matroxfb_g450,matroxfb_DAC1064
matroxfb_misc 20480 5
g450_pll,matroxfb_Ti3026,matroxfb_base,matroxfb_g450,matroxfb_DAC1064
Kind regards,
Paul
PS: Output of `modinfo`:
```
$ modinfo matroxfb_base
filename:
/lib/modules/5.15.77.mx64.440/kernel/drivers/video/fbdev/matrox/matroxfb_base.ko
license: GPL
description: Accelerated FBDev driver for Matrox
Millennium/Mystique/G100/G200/G400/G450/G550
author: (c) 1998-2002 Petr Vandrovec <vandrove@xxxxxxxxxx>
alias: pci:v0000102Bd00002527sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000525sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000521sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000532sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000520sv*sd*bc*sc*i*
alias: pci:v0000102Bd00001001sv*sd*bc*sc*i*
alias: pci:v0000102Bd00001000sv*sd*bc*sc*i*
alias: pci:v0000102Bd0000051Asv*sd*bc*sc*i*
alias: pci:v0000102Bd0000051Fsv*sd*bc*sc*i*
alias: pci:v0000102Bd0000051Bsv*sd*bc*sc*i*
alias: pci:v0000102Bd00000519sv*sd*bc*sc*i*
depends:
matroxfb_g450,matroxfb_misc,matroxfb_DAC1064,matroxfb_Ti3026,matroxfb_accel
retpoline: Y
intree: Y
name: matroxfb_base
vermagic: 5.15.77.mx64.440 SMP mod_unload modversions
parm: mem:Size of available memory in MB, KB or B
(2,4,8,12,16MB, default=autodetect) (int)
parm: disabled:Disabled (0 or 1=disabled) (default=0) (int)
parm: noaccel:Do not use accelerating engine (0 or 1=disabled)
(default=0) (int)
parm: nopan:Disable pan on startup (0 or 1=disabled)
(default=0) (int)
parm: no_pci_retry:PCI retries enabled (0 or 1=disabled)
(default=0) (int)
parm: novga:VGA I/O (0x3C0-0x3DF) disabled (0 or 1=disabled)
(default=0) (int)
parm: nobios:Disables ROM BIOS (0 or 1=disabled) (default=do
not change BIOS state) (int)
parm: noinit:Disables W/SG/SD-RAM and bus interface
initialization (0 or 1=do not initialize) (default=0) (int)
parm: memtype:Memory type for G200/G400 (see
Documentation/fb/matroxfb.rst for explanation) (default=3 for G200, 0
for G400) (int)
parm: mtrr:This speeds up video memory accesses (0=disabled or
1) (default=1) (int)
parm: sgram:Indicates that G100/G200/G400 has SGRAM memory
(0=SDRAM, 1=SGRAM) (default=0) (int)
parm: inv24:Inverts clock polarity for 24bpp and loop
frequency > 100MHz (default=do not invert polarity) (int)
parm: inverse:Inverse (0 or 1) (default=0) (int)
parm: dev:Multihead support, attach to device ID (0..N)
(default=all working) (int)
parm: vesa:Startup videomode (0x000-0x1FF) (default=0x101) (int)
parm: xres:Horizontal resolution (px), overrides xres from
vesa (default=vesa) (int)
parm: yres:Vertical resolution (scans), overrides yres from
vesa (default=vesa) (int)
parm: upper:Upper blank space (scans), overrides upper from
vesa (default=vesa) (int)
parm: lower:Lower blank space (scans), overrides lower from
vesa (default=vesa) (int)
parm: vslen:Vertical sync length (scans), overrides lower from
vesa (default=vesa) (int)
parm: left:Left blank space (px), overrides left from vesa
(default=vesa) (int)
parm: right:Right blank space (px), overrides right from vesa
(default=vesa) (int)
parm: hslen:Horizontal sync length (px), overrides hslen from
vesa (default=vesa) (int)
parm: pixclock:Pixelclock (ns), overrides pixclock from vesa
(default=vesa) (int)
parm: sync:Sync polarity, overrides sync from vesa
(default=vesa) (int)
parm: depth:Color depth (0=text,8,15,16,24,32) (default=vesa)
(int)
parm: maxclk:Startup maximal clock, 0-999MHz, 1000-999999kHz,
1000000-INF Hz (int)
parm: fh:Startup horizontal frequency, 0-999kHz, 1000-INF Hz (int)
parm: fv:Startup vertical frequency, 0-INF Hz
You should specify
"fv:max_monitor_vsync,fh:max_monitor_hsync,maxclk:max_monitor_dotclock"
(int)
parm: grayscale:Sets display into grayscale. Works perfectly
with paletized videomode (4, 8bpp), some limitations apply to 16, 24 and
32bpp videomodes (default=nograyscale) (int)
parm: cross4MB:Specifies that 4MB boundary can be in middle of
line. (default=autodetected) (int)
parm: dfp:Specifies whether to use digital flat panel
interface of G200/G400 (0 or 1) (default=0) (int)
parm: dfp_type:Specifies DFP interface type (0 to 255)
(default=read from hardware) (int)
parm: outputs:Specifies which CRTC is mapped to which output
(string of up to three letters, consisting of 0 (disabled), 1 (CRTC1), 2
(CRTC2)) (default=111 for Gx50, 101 for G200/G400 with DFP, and 100 for
all other devices) (string)
```
```
$ modinfo mgag200
filename:
/lib/modules/5.15.77.mx64.440/kernel/drivers/gpu/drm/mgag200/mgag200.ko
license: GPL
description: MGA G200 SE
author: Matthew Garrett
alias: pci:v0000102Bd00000538sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000536sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000534sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000533sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000532sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000530sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000524sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000522sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000521sv*sd*bc*sc*i*
alias: pci:v0000102Bd00000520sv*sd*bc*sc*i*
depends: drm,drm_kms_helper,i2c-algo-bit
retpoline: Y
intree: Y
name: mgag200
vermagic: 5.15.77.mx64.440 SMP mod_unload modversions
parm: modeset:Disable/Enable modesetting (int)
```