Bug 7873

Summary: version 1.1.1 of the Neomagic driver no longer drives external monitor properly on NM2360 laptop
Product: xorg Reporter: Orion Poplawski <orion>
Component: Driver/NeomagicAssignee: Xorg Project Team <xorg-team>
Status: RESOLVED INVALID QA Contact: Xorg Project Team <xorg-team>
Severity: major    
Priority: medium CC: jeremyhu, nikolaikin
Version: 7.1 (2006.05)Keywords: regression
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard: 2011BRB_Reviewed
i915 platform: i915 features:
Attachments:
Description Flags
X log in 1024x768 mode
none
X log in 1280x1024 (default) mode none

Description Orion Poplawski 2006-08-14 12:53:32 UTC
Display was working fine with FC5 (Xorg 7.0.0, neomagic 1.0.0.5).  Now with
FC6T2 (Xorg 7.1.1, neomagic 1.1.1), it doesn't.

With a stripped down config:

# XFree86 4 configuration created by pyxf86config

Section "ServerLayout"
        Identifier     "Default Layout"
        Screen      0  "Screen0" 0 0
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel" "pc105"
        Option      "XkbLayout" "us"
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "neomagic"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Videocard0"
        DefaultDepth     24
EndSection

It tries to drive the monitor in 1280x1024 mode, but the screen is garbled. 
I've had problems trying to drive in 1280x1024 before, so I cut back to
1024x768.  In this mode, the monitor claims the signal is has is 113.6kHz v
140.4Hz and can't display it.

With the vesa driver I get a working 1024x768 display with the above config.
Comment 1 Orion Poplawski 2006-08-14 12:55:14 UTC
Created attachment 6546 [details]
X log in 1024x768 mode
Comment 2 Orion Poplawski 2006-08-14 12:56:02 UTC
Created attachment 6547 [details]
X log in 1280x1024 (default) mode
Comment 3 Erik Andren 2006-08-15 01:27:24 UTC
Please use git bisect to try to find out the commit that broke your system. 
Comment 4 Orion Poplawski 2006-08-15 11:31:37 UTC
What git tag corresponds to 1.0.0.5?
Comment 5 Orion Poplawski 2006-08-15 13:58:17 UTC
This is the one that does it:

a68ca4369e55634c8122e5d14dcec4d9a05b14ad is first bad commit
commit a68ca4369e55634c8122e5d14dcec4d9a05b14ad
Author: Adam Jackson <ajax@nwnk.net>
Date:   Fri Apr 7 19:24:45 2006 +0000

    Unlibcwrap. Bump server version requirement. Bump to 1.1.0.

:100644 100644 bcb1d76b13f0b2ead2e0e941340af6bac0d39b3c
71b7c034d71b083e6400aad6d0a2e5c23d2cbe59 M       ChangeLog
:100644 100644 c912da008b2fc9c6a8ce411f3e23d85a27d69c8e
747595566830926afd345193df5596fc2de62c00 M       configure.ac
:040000 040000 44e9f7587fd1cb9732d5134c7320a4ff6181227f
367db591ec0da573cdea89925d0e4fab570982d7 M       src

which is weird, as all it really seems to do is remove the xf86_ansic.h include.

I don't see anything different between the X server logs for the two versions
other than:

<       compiled for 7.1.1, module version = 1.1.0
---
>       compiled for 7.1.1, module version = 1.0.0


Okay, compiling with -Wall gave me:

 gcc -DHAVE_CONFIG_H -I. -I. -I.. -DXFree86Server -DIN_MODULE -DXFree86Module
-DXFree86LOADER -I/usr/include/xorg -g -O2 -Wall -MT neo_driver.lo -MD -MP -MF
.deps/neo_driver.Tpo -c neo_driver.c  -fPIC -DPIC -o .libs/neo_driver.o
neo_driver.c: In function 'neoCalcVCLK':
neo_driver.c:3003: warning: implicit declaration of function 'abs'

This patch fixes the warning:

--- a/src/neo_driver.c
+++ b/src/neo_driver.c
@@ -118,6 +118,9 @@ #define _XF86DGA_SERVER_
 #include <X11/extensions/xf86dgastr.h>
 #endif

+/* For abs() */
+#include <stdlib.h>
+
 /* Mandatory functions */
 static const OptionInfoRec *   NEOAvailableOptions(int chipid, int busid);
 static void     NEOIdentify(int flags);

and indeed fixes the problem.
Comment 6 Daniel Stone 2007-02-27 01:33:11 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 7 Nicolas Kh. 2007-02-28 08:16:36 UTC
*** Bug 8855 has been marked as a duplicate of this bug. ***
Comment 8 Orion Poplawski 2007-07-27 09:45:30 UTC
Now with Fedora 7, xorg-x11-server 1.3.0.0-9.fc7 and neomagic 1.1.1 I get no display at all and the following error:

(EE) NEOMAGIC(0): Only 640x480,
     800x600,
 and 1024x768 panels are currently supported
(II) UnloadModule: "neomagic"
(II) UnloadModule: "vgahw"
(II) Unloading /usr/lib/xorg/modules//libvgahw.so
(EE) Screen(s) found, but none have a usable configuration.

Have we completely lost support for external displays?

Applying my patch makes no difference now.
Comment 9 Jeremy Huddleston Sequoia 2011-10-11 10:47:08 UTC
Is this still an issue with the latest driver (1.2.5 or git)?
Comment 10 Orion Poplawski 2011-10-11 10:50:14 UTC
I don't have this hardware anymore so I can't comment.  Closing out.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.