Bug 8855 - neomagic driver produces out-of-range modes
Summary: neomagic driver produces out-of-range modes
Status: RESOLVED DUPLICATE of bug 7873
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/Neomagic (show other bugs)
Version: 7.1 (2006.05)
Hardware: x86 (IA32) Linux (All)
: high major
Assignee: Xorg Project Team
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-11-01 14:45 UTC by Nicolas Kh.
Modified: 2007-02-28 08:16 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description Nicolas Kh. 2006-11-01 14:45:27 UTC
Having upgraded from previous version (6.9), I get modes that my monitor can not
handle. Moreover, when killing the X server, the monitor is often coloured with
cyan, so nothing can be read, until the video card is reset.

I tried both with/without kernel framebuffer (vesafb and neofb), my kernel
version is 2.6.17-2-686.

Trying xorg VESA driver works, but gives a 60Hz refresh.

----- Here's what I have in my xorg.conf ----

Section "Device"
	Identifier	"NeoMagic"
	Driver		"neomagic"
EndSection

Section "Monitor"
	Identifier	"Vision Master 1451"
	Option		"DPMS"
	HorizSync	30 - 96
	VertRefresh	50 - 160
EndSection

Section "Screen"
	Identifier	"Default Screen"
	Device		"NeoMagic"
	Monitor		"Vision Master 1451"
	DefaultDepth	16
	SubSection "Display"
		Depth		16
		Modes	 	"1152x864" "1024x768" 
	EndSubSection
EndSection

---------------------------------------------

# hwinfo --gfxcard
20: PCI 100.0: 0300 VGA compatible controller (VGA)             
  [Created at pci.281]
  Unique ID: VCu0.5DbEs+7pdLA
  Parent ID: vSkL.+oqW+GBE7wA
  SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
  SysFS BusID: 0000:01:00.0
  Hardware Class: graphics card
  Model: "IBM ThinkPad 570"
  Vendor: pci 0x10c8 "Neomagic Corporation"
  Device: pci 0x0005 "MagicMedia 256AV"
  SubVendor: pci 0x1014 "IBM"
  SubDevice: pci 0x00dd "ThinkPad 570"
  Revision: 0x20
  Memory Range: 0xf5000000-0xf5ffffff (rw,prefetchable)
  Memory Range: 0xf4400000-0xf47fffff (rw,non-prefetchable)
  Memory Range: 0xf4200000-0xf42fffff (rw,non-prefetchable)
  IRQ: 11 (3888 events)
  I/O Ports: 0x3c0-0x3df (rw)
  Module Alias: "pci:v000010C8d00000005sv00001014sd000000DDbc03sc00i00"
  Driver Info #0:
    XFree86 v4 Server Module: neomagic
    Color Depths: 8, 16, 24
    Extensions: 
    Options: 
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #11 (PCI bridge)

# hwinfo --monitor
24: None 00.0: 10000 Monitor                                    
  [Created at monitor.93]
  Unique ID: rdCR.fnXGQbZSqOD
  Hardware Class: monitor
  Model: "IIYAMA LS902U"
  Vendor: IVM "IIYAMA"
  Device: eisa 0x1938 "LS902U"
  Resolution: 720x400@70Hz
  Resolution: 640x480@60Hz
  Resolution: 640x480@75Hz
  Resolution: 800x600@75Hz
  Resolution: 1024x768@75Hz
  Resolution: 1280x1024@75Hz
  Resolution: 640x480@85Hz
  Resolution: 800x600@85Hz
  Resolution: 1024x768@85Hz
  Resolution: 1280x960@85Hz
  Size: 360x270 mm
  Driver Info #0:
    Max. Resolution: 1280x1024
    Vert. Sync Range: 50-160 Hz
    Hor. Sync Range: 30-96 kHz
    Bandwidth: 94 MHz
  Config Status: cfg=new, avail=yes, need=no, active=unknown
Comment 1 Nicolas Kh. 2006-11-01 16:17:27 UTC
Actually, after analysing the logs, I see that before (xorg 7.0.0)
and now (xorg 7.1.1) the ModeLine used (for 1152x864x16) is the same:
Modeline "1152x864"  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync
Comment 2 Nicolas Kh. 2006-11-04 06:37:44 UTC
Replacing v1.1.1 neomagic driver with a v1.0.0.5 (recompiled with the rest of
7.1.1 xorg server) gives everything back. So, the problem is in the driver.
Some more precisions:

with v1.1.1, for the Modeline "1152x864"  108.00  1152 1216 1344 1600  864 865
868 900 +hsync +vsync
the freqs that the card tries to send to the monitor are:
hor: 94.2 KHz, ver: 116.8 Hz (which can not be displayed)

While v1.0.0.5 driver gives:
hor: 66.9 KHz, ver: 74.5 Hz (which is correct)
for the same Modeline
Comment 3 Daniel Stone 2007-02-27 01:34:16 UTC
Sorry about the phenomenal bug spam, guys.  Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Comment 4 Nicolas Kh. 2007-02-28 08:16:36 UTC
The same patch concerning the implicit declaration of abs() fixes the problem.
(More details here: http://bugs.freedesktop.org/show_bug.cgi?id=7873)

--- 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);


*** This bug has been marked as a duplicate of bug 7873 ***


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.