Thread (12 messages) flat view 12 messages, 2 authors, 22d ago

Re: drm/mgag200: Fix big-endian support

From: Christian Zigotzky <hidden>
Date: 2026-08-26 15:07:37

On 26/08/26 11:06, Thomas Zimmermann wrote:
 > Hi
 >
 > Am 02.08.26 um 20:06 schrieb Christian Zigotzky:
 >> Hello René,
 >>
 >> Many thanks for your patch. [1]
 >>
 >> I have bought the PCI graphics card Matrox G200 G2+/QUADP-PL/7 32MB 
with 4x DVI. It is an AGP card connected via PCI.
 >>
 >> We use the new DRM driver MGAG200 since the kernel 7.2.0-rc4 and the 
old DRM legacy driver for Matrox g200/g400 graphics cards since the 
stable long-term kernel 5.10.260.
 >>
 >> I tested it with the RC5 of kernel 7.2 in my PowerPC machine (e5500) 
today. Unfortunately, the DRM driver mgag200 can't read the PCI ROM. 
Maybe only an x86 ROM?
 >>
 >> xrandr detects the ports but reports that they are not connected, 
even though the cables are plugged in.
 >>
 >> I also tested it with the stable long-term kernel 5.10.261 with the 
old legacy DRM drivers for Matrox graphics cards.
 >> I installed the Xorg MGA server xf86-video-mga-2.0.0_3 for the old 
legacy DRM driver but unfortunately I get only a black screen.
 >>
 >> Is it possible to use this card with PPC Linux?
 >
 > Attached is the patch I promised.  Please apply it and test it on 
your machine. Does it make the card work?
 >
 > Best regards
 > Thomas

Hello Thomas,

Thank you for your patch. Unfortunately the card doesn't work with the 
patched kernel.

dmesg | grep -i mga

[    2.307195] [drm] Initialized mgag200 1.0.0 for 0001:05:00.0 on minor 1
[    2.308649] mgag200 0001:05:00.0: [drm] Cannot find any crtc or sizes
[    2.309551] mgag200 0001:05:04.0: Invalid PCI ROM header signature: 
expecting 0xaa55, got 0xffff
[    2.310305] [drm] Initialized mgag200 1.0.0 for 0001:05:04.0 on minor 2
[    2.312660] mgag200 0001:05:04.0: [drm] Cannot find any crtc or sizes
[    2.313177] mgag200 0001:05:00.0: [drm] Cannot find any crtc or sizes
[    2.313640] mgag200 0001:05:08.0: Invalid PCI ROM header signature: 
expecting 0xaa55, got 0xffff
[    2.314357] [drm] Initialized mgag200 1.0.0 for 0001:05:08.0 on minor 3
[    2.317630] mgag200 0001:05:08.0: [drm] Cannot find any crtc or sizes
[    2.318185] mgag200 0001:05:0c.0: Invalid PCI ROM header signature: 
expecting 0xaa55, got 0xffff
[    2.318840] mgag200 0001:05:04.0: [drm] Cannot find any crtc or sizes
[    2.319345] [drm] Initialized mgag200 1.0.0 for 0001:05:0c.0 on minor 4
[    2.321014] mgag200 0001:05:0c.0: [drm] Cannot find any crtc or sizes
[    2.322400] mgag200 0001:05:08.0: [drm] Cannot find any crtc or sizes
[    2.327215] mgag200 0001:05:0c.0: [drm] Cannot find any crtc or sizes

lspci -vvv

0001:05:00.0 VGA compatible controller: Matrox Electronics Systems Ltd. 
MGA G200 AGP (rev 03) (prog-if 00 [VGA controller])
     Subsystem: Matrox Electronics Systems Ltd. G200 Multi-Monitor
     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
     Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
     Latency: 128 (4000ns min, 8000ns max), Cache Line Size: 32 bytes
     Interrupt: pin A routed to IRQ 18
     Region 0: Memory at c20000000 (32-bit, prefetchable) [size=16M]
     Region 1: Memory at c21000000 (32-bit, non-prefetchable) [size=16K]
     Region 2: Memory at c21800000 (32-bit, non-prefetchable) [size=8M]
     Expansion ROM at c21010000 [disabled] [size=64K]
     Capabilities: [dc] Power Management version 1
         Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
         Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
     Capabilities: [f0] AGP version 1.0
         Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 
64bit- FW- AGP3- Rate=x1,x2
         Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- 
Rate=<none>
     Kernel driver in use: mgag200

0001:05:04.0 Display controller: Matrox Electronics Systems Ltd. MGA 
G200 AGP (rev 03)
     Subsystem: Matrox Electronics Systems Ltd. G200 Multi-Monitor
     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
     Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
     Latency: 128 (4000ns min, 8000ns max), Cache Line Size: 32 bytes
     Interrupt: pin A routed to IRQ 18
     Region 0: Memory at c22000000 (32-bit, prefetchable) [size=16M]
     Region 1: Memory at c23000000 (32-bit, non-prefetchable) [size=16K]
     Region 2: Memory at c23800000 (32-bit, non-prefetchable) [size=8M]
     Expansion ROM at c21020000 [disabled] [size=64K]
     Capabilities: [dc] Power Management version 1
         Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
         Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
     Capabilities: [f0] AGP version 1.0
         Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 
64bit- FW- AGP3- Rate=x1,x2
         Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- 
Rate=<none>
     Kernel driver in use: mgag200

0001:05:08.0 Display controller: Matrox Electronics Systems Ltd. MGA 
G200 AGP (rev 03)
     Subsystem: Matrox Electronics Systems Ltd. G200 Multi-Monitor
     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
     Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
     Latency: 128 (4000ns min, 8000ns max), Cache Line Size: 32 bytes
     Interrupt: pin A routed to IRQ 18
     Region 0: Memory at c24000000 (32-bit, prefetchable) [size=16M]
     Region 1: Memory at c25000000 (32-bit, non-prefetchable) [size=16K]
     Region 2: Memory at c25800000 (32-bit, non-prefetchable) [size=8M]
     Expansion ROM at c21030000 [disabled] [size=64K]
     Capabilities: [dc] Power Management version 1
         Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
         Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
     Capabilities: [f0] AGP version 1.0
         Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 
64bit- FW- AGP3- Rate=x1,x2
         Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- 
Rate=<none>
     Kernel driver in use: mgag200

0001:05:0c.0 Display controller: Matrox Electronics Systems Ltd. MGA 
G200 AGP (rev 03)
     Subsystem: Matrox Electronics Systems Ltd. G200 Multi-Monitor
     Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
     Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
     Latency: 128 (4000ns min, 8000ns max), Cache Line Size: 32 bytes
     Interrupt: pin A routed to IRQ 18
     Region 0: Memory at c26000000 (32-bit, prefetchable) [size=16M]
     Region 1: Memory at c27000000 (32-bit, non-prefetchable) [size=16K]
     Region 2: Memory at c27800000 (32-bit, non-prefetchable) [size=8M]
     Expansion ROM at c21040000 [disabled] [size=64K]
     Capabilities: [dc] Power Management version 1
         Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
         Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
     Capabilities: [f0] AGP version 1.0
         Status: RQ=32 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 
64bit- FW- AGP3- Rate=x1,x2
         Command: RQ=1 ArqSz=0 Cal=0 SBA- AGP- GART64- 64bit- FW- 
Rate=<none>
     Kernel driver in use: mgag200

xrandr

VGA-4-4 disconnected (normal left inverted right x axis y axis)
VGA-3-3 disconnected (normal left inverted right x axis y axis)
VGA-2-2 disconnected (normal left inverted right x axis y axis)
VGA-1-1 disconnected (normal left inverted right x axis y axis)

lspci -nnk | grep VGA

0001:05:00.0 VGA compatible controller [0300]: Matrox Electronics 
Systems Ltd. MGA G200 AGP [102b:0521] (rev 03)

Thanks,
Christian

-- 
Sent with BrassMonkey 34.3.2.1 
(https://github.com/chzigotzky/Web-Browsers-and-Suites-for-Linux-PPC/releases/tag/BrassMonkey_34.3.2.1)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help