FS#32604 - [xf86-video-neomagic] driver no longer works after the last update (version 1.2.7)

Attached to Project: Arch Linux
Opened by Alexandre Bolelli Soares (Semeion) - Sunday, 11 November 2012, 16:39 GMT
Last edited by Andreas Radke (AndyRTR) - Friday, 28 December 2012, 18:54 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan de Groot (JGC)
Andreas Radke (AndyRTR)
Architecture i686
Severity Critical
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description: The xf86-video-neomagic driver no longer works after the last update (version 1.2.7).

Crashes the pc, stands on a black screen.

The xf86-video-vesa is working fine!

Additional info:
* package version(s)
xf86-video-neomagic 1.2.7-3
* config and/or log files etc.
I'm using the same default configuration for over 1 year on my Thinkpad 600x. The problem only began this latest version of driver.
Steps to reproduce:

Crashes immediately after startx, xinit, etc.
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Friday, 28 December 2012, 18:54 GMT
Reason for closing:  Fixed
Comment by Andreas Radke (AndyRTR) - Monday, 12 November 2012, 16:42 GMT
Report it uptream!
Comment by Alexandre Bolelli Soares (Semeion) - Monday, 12 November 2012, 17:55 GMT Comment by Jan de Groot (JGC) - Wednesday, 28 November 2012, 16:57 GMT
An error log would be nice. Upstream can't help you without logs, probably they don't even have hardware to test with, so you're the test person for them.
Comment by Marc D. Williams (marcdw) - Thursday, 29 November 2012, 21:02 GMT
There aren't really any errors as X thinks things went okay. In my case, however, I found out what the problem is.
At line 1086 of neo_driver.c the driver looks for xaa (which doesn't exist in the latest xorg) and failing that it falls back
to shadowFB (libshadow). This is where the black screen and dead keyboard comes in. Apparently some of the old machines and/or graphics
system can't handle it.

My first test was to comment out the whole section, as below:

=== CODE ===
/*
if (!xf86LoadSubModule(pScrn, "xaa")) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Falling back to shadow\n");
nPtr->shadowFB = 1;
}
*/
=== END CODE ===

After that my neomagic driver worked just fine, as it did before the xorg update.
Keeping that section uncommented but changing shadowFB = 1 to 0 also works.
Leaving it untouched but trying to use "Option ShadowFB False/0/off" in a config file doesn't work.

Arch Linux
Xorg 1.13.0-4 (neomagic 1.2.7-3)
Panasonic CF-27 Toughbook, Pentium 2, 300MHz, 320M RAM


Comment by Jan de Groot (JGC) - Friday, 30 November 2012, 10:11 GMT
Instead of patching the driver to no longer load shadowFB, could you scroll down a few lines from the code you commented and make it load "shadowfb" instead of "shadow"?
(neo_driver.c, line 1093)
Comment by Marc D. Williams (marcdw) - Saturday, 01 December 2012, 00:34 GMT
Okay, I made the change in which it now loads libshadowfb instead of libshadow. Still I get the black screen and no keyboard.
Find attached my Xorg log file in case you see something I'm missing. Other than the EE/error about xaa everything seems okay.
Not sure though.
Comment by Alexandre Bolelli Soares (Semeion) - Friday, 21 December 2012, 17:24 GMT
I solved the problem, i did a rollback to xorg-server-1.12.4, xorg-server-common-1.12.4, xf86-input-evdev-2.7.2 and xf86-video-neomagic-1.2.6.

If you do get a patch please post here!
Comment by Marc D. Williams (marcdw) - Friday, 28 December 2012, 05:05 GMT
I was wary of rolling back as I wasn't sure if I'd break something.
Anyhind, a one line change to neo_driver.c in the source was all that was needed to get the driver
working again.
See attached the patch (shadowfb.patch) and an updated PKGBUILD (don't know if I should have compressed them
first).

Marc
Comment by Andreas Radke (AndyRTR) - Friday, 28 December 2012, 18:53 GMT
Patch applied for now though is probably not a valid fix but a workaround. CC'ed to the upstream report.

Loading...