Age | Commit message (Collapse) | Author |
|
`MGAGRestore` allocated `ModeInfo` without initializing its memory and then
passes it into `MGAEnableSecondOutPut` via `MGAEnableSecondOutPut(pScrn, &ModeInfo);`.
`MGAEnableSecondOutPut` then reads the unitialized memory in the line
`if ( !(pModeInfo->flSignalMode & POS_HSYNC) )`.
This patch just zeroes the memory to prevent those branches to be randomly
taken.
Signed-off-by: Raphael Isemann <teemperor@gmail.com>
|
|
Found by using:
codespell --builtin clear,rare,usage,informal,code,names
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Apparently, commit 94bbeb132c7eda912d1b402a1a91ca7cbbf5e6a1
missed removing a few more files related to old Matrox HAL.
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Fixes misaligned address crash when EXA is enabled on Solaris SPARC
(Oracle Bug id 22993744)
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Fixes a warning from clang and looks like it was a real bug.
Signed-off-by: Matthieu Herrb <matthieu@herrb.eu>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
|
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
|
Care had to be taken to properly handle XAA usage situation
Signed-off-by: Kevin Brace <kevinbrace@gmx.com>
|
|
The memcpy specification doesn't specify how the destination is written -
and on glibc 2.19 memcpy is doing some bytewise writes with the rep stosb
instruction. These bytewise writes confuse the hardware (because it
expects 32-bit writes) and result in image corruption.
This patch replaces memcpy with explicit writes, so that the sequential
write order and 32-bit write size is guaranteed. We use the "volatile"
attribute to make sure that compiler optimizations won't cause write
reordering. When reading the memory, we use a structure with "packed"
attribute to avoid unaligned traps on RISC machines.
Tested-by: Kevin Brace <kevinbrace@gmx.com>
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
|
Fix typo in MGADRIMoveBuffersXAA().
Signed-off-by: Nicolas Kaiser <nikai@nikai.net>
Reviewed-by: Cyril Brulebois <kibi@debian.org>
|
|
If the Xserver doesn't support XAA, we must turn EXA on by default -
otherwise we end up with no acceleration at all.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
|
Fix warnings in the MGA driver. There's no functional change.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
|
Fix missing entry in structure definition.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
|
Fix a typo that causes dynamic symbol lookup failure and xserver crash.
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Mikulas Patocka <mikulas@twibright.com>
|
|
The function was an empty since 2008 at least. Remove it alongside the
unused GLX visuals code.
With this all the GL/GLX dependencies in the driver are gone.
Cc: Mathieu Larouche <mathieu.larouche@matrox.com>
Cc: Dave Airlie <airlied@redhat.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
---
There's a GLX reference in mga_ucode.h - a file which was seemingly
never used since day 1. I'm not going to bother with that, since I've
taken enough of a diversion already ;-)
|
|
- Changed the HiPri value for G200e4 to always be 0.
- Added Bandwith limitation to block resolution above 1920x1200x60Hz
- (V2): Pulled out ulMemoryBandwidth of condition so it's always initialized
as reviewed by : Stefan Dirsch <sndirsch@suse.de>
Reviewed-by: Samer El-Haj-Mahmoud <smahmoud@lenovo.com>
|
|
- Added support for the new deviceID for G200eH3
- Added PLL algorithm for the G200eH3
- Removed the bandwidth limitation for the G200eH3
Signed-off-by: Mathieu Larouche <mathieu.larouche@matrox.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
|
|
- Added PLL algorithm for a new rev of G200e
- Removed the bandwidth limitation for the new G200e
Fixes : https://bugs.freedesktop.org/show_bug.cgi?id=92540
Change from V1 :
- Make sure we don't cause issue on previous chips. (Dave Airlie review)
Signed-off-by: Mathieu Larouche <mathieu.larouche@matrox.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
- Added support for the new deviceID for G200eW3
- Added PLL algorithm for the G200eW3
- Added some initialization code for G200eW3
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=92541
Signed-off-by: Mathieu Larouche <mathieu.larouche@matrox.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
Fixes
passing argument 2 of 'pci_device_cfg_read_u32' from incompatible pointer type
pciaccess.h:153:5: note: expected '__uint32_t *' but argument is of type 'CARD32 *'
Signed-off-by: Thomas Klausner <wiz@NetBSD.org>
Reviewed-by: Connor Behan <connor.behan@gmail.com>
|
|
A driver like this that tries to composite a lot will definitely need to
avoid crashing for solid pictures.
Signed-off-by: Connor Behan <connor.behan@gmail.com>
|
|
This hook was broken and did the same thing as a software fallback.
Signed-off-by: Connor Behan <connor.behan@gmail.com>
|
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
Dead conditional ever since m12n, must not be needed.
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
Oh, I had a typo in that patch - so please commit this to fix it.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
I've had a Xserver lockup in the mga driver, examining it with gdb showed
this obviously broken loop:
count = INREG(MGAREG_VCOUNT) + 2;
while(INREG(MGAREG_VCOUNT) < count);
It reads the line counter and waits until the counter advances by two. The
cause of the lockup is this - if the kernel reschedules the Xorg process
and lets it run in such a moment when INREG(MGAREG_VCOUNT) returns the
maximum (or maximum minus 1) line count, the loop never exits.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
On my Matrox G550 most videomodes in Xorg didn't work. I found out that it
works if Xorg pixel clock is similar to the pixel clock set on framebuffer
console.
Further analysis showed that the Linux framebuffer driver sets the pan_ctl
register (the register 0xa2) according to the pixel clock, the Xorg driver
doesn't set it.
I copied the code to set the pan_ctl register from the Linux kernel to the
Xorg driver, and most videomodes in Xorg work.
The pan_ctl register is required for both analog and digital output.
The pan_ctl register is saved and restored, this is required so that we
restore text-mode screen or Linux framebuffer correctly.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
XAA->USE_XAA add USE_XAA.
Tested-by: Avengence on #xorg-devel
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Previously contained MGA HAL code, was left an empty shell by the
removal of USEMGAHAL in commit 94bbeb132c7eda.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
|
|
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
|
|
Disable HW cursor by default on G200 server chips as these chips a
re often used with a remote graphics link which cannot display
the HW cursor.
This can be overridden by a config option.
Most desktops today use ARGB cursors anyhow which are not
supported by this driver anyhow. Thus the performance penalty
should be irrelevant.
Signed-off-by: Egbert Eich <eich@freedesktop.org>
|
|
With the previous structure it wasn't immediately clear when SecondCrtc
and HWCursor were set to which value. Make the code more readable.
Signed-off-by: Egbert Eich <eich@freedesktop.org>
|
|
https://launchpad.net/bugs/1180986
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Reviewed-by: Robert Jacobs <robert.n.jacobs@gmail.com>
Tested-by: Robert Jacobs <robert.n.jacobs@gmail.com>
|
|
This patch has been used in Debian, Ubuntu and Gentoo for years.
https://bugs.freedesktop.org/show_bug.cgi?id=18472
https://launchpad.net/bugs/292214
https://bugs.gentoo.org/show_bug.cgi?id=265100
Signed-off-by: Andy MacLean <andy-ub1@themacleans.org.uk>
Reviewed-by: Cyril Brulebois <kibi@debian.org>
Reviewed-by: Robert Jacobs <robert.n.jacobs@gmail.com>
Tested-by: Robert Jacobs <robert.n.jacobs@gmail.com>
|
|
Linear Expansion doesn't work on BE as the bit order in
a word is reversed. ScreenToScreenColorExpansion allows
to adjust the bit order in a byte, still the bytes have
the wrong order.
Reviewed-by: <wharms@bfs.de>
Signed-off-by: Egbert Eich <eich@freedesktop.org>
|
|
Otherwise we might catch devices handled by matroxfb, not the mgag200
kms driver.
Debian bug#697532
Reported-by: olafBuddenhagen@gmx.net
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
|
we need to at least setup the memory manager bits so dri1 clients
get a backbuffer. this at least gets gears working again without XAA.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
If we aren't using XAA just add stub storm init/sync functions.
This lets the driver load yay.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|
Fix mga build after XAA removal.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
Only used to store arguments to pass as printf %s strings to xf86DrvMsg
Fixes gcc warnings:
mga_driver.c: In function 'MGAdoDDC':
mga_driver.c:1338:7: warning: assignment discards qualifiers from pointer target type
mga_driver.c:1343:11: warning: assignment discards qualifiers from pointer target type
mga_driver.c:1351:8: warning: assignment discards qualifiers from pointer target type
mga_driver.c:1359:8: warning: assignment discards qualifiers from pointer target type
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
|
|
Silences deprecation warnings from xf86PciInfo.h in current Xorg servers
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
|
|
this should only pick up KMS drivers and not old drm drivers.
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
|
XF86DRI is defined by xorg-server.h, so --disable-dri in the driver
itself does exactly nothing other than not fill in the CFLAGS
and thus stop the driver from compiling.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
|
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
|
If it couldn't allocate memory, don't attempt to write a bunch of values
to the NULL pointer before returning it, but just pass the NULL along
right away.
Resolves parfait warnings of the form:
Error: Null pointer dereference (CWE 476)
Write to null pointer 'adapt'
at line 322 of src/mga_video.c in function 'MGASetupImageVideoTexture'.
Function 'MGAAllocAdaptor' may return constant 'NULL' at line 237, called at line 320.
Null pointer introduced at line 237 in function 'MGAAllocAdaptor'.
repeated for every line writing to the adapt pointer in each function.
[ This bug was found by the Parfait 0.4.2 bug checking tool.
For more information see http://labs.oracle.com/projects/parfait/ ]
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mark Kettenis <kettenis@openbsd.org>
|