[X700] Really bad sync on HP NW8240

Bug #20283 reported by Martijn vdS on 2005-08-23
22
Affects Status Importance Assigned to Milestone
xserver-xorg-driver-ati
Fix Released
Medium
xserver-xorg-video-ati (Ubuntu)
Medium
Unassigned

Bug Description

I have a HP NW8240 laptop, 1920x1200 screen, with a ATI X700 graphics chip.

The "ati" driver doesn't seem to know how to talk to this chip (PCI-E ATi FireGL
V5000, PCI ID 1002:5653) correctly, so the screen is refreshing weirdly and
blinking (like a CRT with bad sync sometimes does, but less overlapping garbage).

Manually setting xorg.conf to use the "fglrx" driver (no other changes) makes X
work OK, though there's no direct rendering.

Daniel Stone (daniels) wrote :

hrm. does XORG_SYNC_RANGES=yes sudo dpkg-reconfigure -phigh xserver-xorg, fix
anything?

Martijn vdS (martijn) wrote :

Doesn't resolve the problem. Attaching Xorg.0.log for non-working system.

Martijn vdS (martijn) wrote :

Created an attachment (id=3587)
Xorg.0.log for badly out-of-sync ATi

Martijn vdS (martijn) wrote :

Oh the resolution (1920x1200) is not autodetected, but it _is_ listed in the
logfile (LVDS resolution)..

Martijn vdS (martijn) wrote :

Created an attachment (id=3588)
Xorg.0.log for a nice-looking fglrx

Martijn vdS (martijn) wrote :

Created an attachment (id=4597)
Xorg.conf (almost identical in broken and working situations)

change "fglrx" to "ati" for brokenness

Martijn vdS (martijn) wrote :

Still the same in latest dapper.

Martijn vdS (martijn) wrote :

Created an attachment (id=5652)
Register dump with the 'ati' driver

Martijn vdS (martijn) wrote :

Created an attachment (id=5653)
Same registers, fglrx driver

Daniel Stone (daniels) wrote :

do any of the following help?
Option "MonitorLayout" "LVDS,NONE"
Option "MonitorLayout" "NONE,LVDS"
Option "MonitorLayout" "LVDS,LVDS"
in the Device section

Martijn vdS (martijn) wrote :

Option "MonitorLayout" "LVDS"

is needed to get any image at all on current ATi (so the dump was made with that).

The other two I haven't tried -- will do tomorrow morning.

Martijn vdS (martijn) on 2006-02-02
Changed in xserver-xorg-driver-ati:
assignee: daniels → ubuntu-x-swat
Martijn vdS (martijn) wrote :

Switching between from the 'fglrx' driver to the 'ati' driver crashes the machine. After reboot it works again (using the new driver).

Martijn vdS (martijn) wrote :

OK, that last comment is not _always_ valid. But sometimes this combination crashes.

X log with Options "MonitorLayout" "LVDS,LVDS"

X log with Options "MonitorLayout" "NONE,LVDS"

I will test setting some radeon registers manually (using a hacked radeontool) somewhere in the coming week.

Martijn, any luck with this (updated drivers as well if applicable). Thanks.

Changed in xserver-xorg-driver-ati:
status: Unconfirmed → Needs Info
Martijn vdS (martijn) wrote :

Latest driver didn't fix this. Still need to hack radeontool.

Martijn vdS (martijn) wrote :

By popular demand, lspci output:

0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE) (prog-if 00 [VGA])
        Subsystem: Hewlett-Packard Company: Unknown device 0940
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 0, Cache Line Size: 0x10 (64 bytes)
        Interrupt: pin A routed to IRQ 169
        Region 0: Memory at c0000000 (32-bit, prefetchable) [size=128M]
        Region 1: I/O ports at 2000 [size=256]
        Region 2: Memory at c8800000 (32-bit, non-prefetchable) [size=64K]
        Expansion ROM at c8820000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [58] #10 [0001]
        Capabilities: [80] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
                Address: 0000000000000000 Data: 0000

Martijn vdS (martijn) wrote :

A video (theora) of the effect:

http://foodfight.org/zut/ati-breakage.ogg

Martijn vdS (martijn) wrote :

Changing resolutions also doesn't work. The distortion stays exactly the same.

Luka Renko (lure) wrote :

I have the same type of notebook (HP nw8240) with ATI FireGL V5000 and do not have sync problems (only issue that LCD is not enabled without MonitorLayout hint in xorg.conf - see bug 29357).

Do you have the latest BIOS installed?
There were some fixes for Video BIOS last year:
http://h18007.www1.hp.com/support/files/hpcpqnk/us/revision/9005.html

Martijn vdS (martijn) wrote :

I'm currently running BIOS version:

 Version: 68DTV Ver. F.0F

(from dmidecode)

Martijn vdS (martijn) wrote :

xserver-xorg-driver-ati 6.5.7.3-0ubuntu5 doesn't fix the problem

Martijn vdS (martijn) wrote :

The problem doesn't go away when I set all registers to the values fglrx puts into them. It even gets worse halfway through, where the display fills with only vertical lines (black/white on the left 3/4, black/blue on the right quarter of the screen)

Martijn vdS (martijn) wrote :

Still a problem in 6.6.1 in edgy (along with the "X breaks complately if I don't add a MontorLayout option"-bug)

Ever since I got my laptop, X (or rather, the 'ati' driver) has been behaving
weirdly on it. The screen seems to 'wobble' and miss output lines.

Everything works fine using the proprietarty ATI drievr (fglrx).

I've already extensively probed for the cause of the problem, but had no luck.
The results are on:
https://launchpad.net/distros/ubuntu/+source/xserver-xorg-video-ati/+bug/20283

A video of the breakage: http://foodfight.org/zut/ati-breakage.ogg

Changed in xserver-xorg-driver-ati:
status: Unknown → Confirmed

Please specify more information. Try attaching your xorg.conf and Xorg.0.log
files. Also, any other relevant information would be useful - Linux
distribution, installation method, compiler version (if you compiled from source)...

All the information you requested is already on the launchpad.net link (Xorg log
files, radeon register dumps, config files, everything).

I used the Ubuntu versions of X. I've had this bug for over a year now.

Latest versions I've had the problem with:

- Xorg 7.1.1
- 'ati' driver 6.6.2. both with and without the patch from #5473

All compiled on the latest Ubuntu (Edgy):
gcc version 4.1.2 20060903 (prerelease) (Ubuntu 4.1.1-13ubuntu1)

Created an attachment (id=6834)
Xorg.0.log for X 6.8.2 + ati experiencing this

Created an attachment (id=6835)
Same log, but using fglrx (which does not experience the bug)

Created an attachment (id=6836)
Register dump (made with radeontool) of broken situation

Created an attachment (id=6837)
Register dump (made with radeontool) of working situation (fglrx driver)

Created an attachment (id=6838)
Xorg.conf (broken edition; working only replaces ati with fglrx)

Created an attachment (id=6839)
Xorg.log using current 'ati' driver (broken/wobbly)

Created an attachment (id=6840)
Xorg.log using current 'fglrx' driver (working)

The 'current ati' is actually 6.6.1 + the first patch from #5473
(https://bugs.freedesktop.org/attachment.cgi?id=5950)

Changed in xserver-xorg-driver-ati:
status: Confirmed → Needs Info

Can you send me a copy of your BIOS from that card?

we appear to have trouble processing the BIOS in your card in the same way as
fglrx does...

if you have a newish kernel you can probably just go
cd /sys/bus/pci/devices/<device:id>/
echo 1 > rom
cat rom > /tmp/fglrom

and mail it to me <email address hidden>

Still a problem in current feisty.

still a problem in Feisty Herd 4

same flickering problem still in Feisty Herd 5.

Martijn vdS (martijn) on 2007-03-08
description: updated
Thomas Hotz (thotz) on 2007-03-16
Changed in xserver-xorg-video-ati:
status: Needs Info → Confirmed

I have the same laptop than Martijn (HP nw8240) and the same bug and effects.
Tested today on version 6.6.3 and today git.

Notice that it's not a simple mobility x700 but a firegl mobility v5000 based on the same core.

fglrx works very well.

With Ubuntu 7.04 Live-CD, it fails completely for me. The screen generates bizarre effects (sort of like a b/w screensaver with fading effects) and you do not see the desktop. My system reports "ATI Technologies Inc Radeon Mobility X700 (PCIE)".

Both drivers "ati" and "radeon" have the above symptoms. "vesa" just fails with an error message telling that no matching mode can be found. There is no way for me to get any desktop screen up on this laptop.

According to:

http://h10010.www1.hp.com/wwpc/aa/en/sm/WF06a/7498257-7498765-7498765-7498765-12434670-12115736.html

and

http://avkrok.net/nw8240/

The graphic card is indeed a ATI Mobility FireGL V5000 with discrete PCI Express, as reported by Samuel Bernard previously.

Kyle Olivo (kyleolivo1) wrote :

Similar problem with ATI Mobility 9600 Pro on Dell Inspiron 8600 (WXGA display) using kernel 2.6.20-15-generic (feisty fawn). Garbage is limited to center of screen. Again, "fglrx" driver works but "ati" displays flickering.

AlexGenaud (alexgenaud) wrote :

Similar (or same) bug as I reported yesterday (sorry). The problem I had was a completely blank screen on installation of 7.04 on an HP/Compaq nw8240. X Server could not find any screens. Fixed with a few lines in /etc/X11/xorg.conf. I have no flickering.

https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/110543

Solved by adding Device/Driver="ati", setting HorizSync, VertRefresh, and DisplaySize to Monitor, and adding "1920x1200" to each of the Screen/Display/Mode lines:

Section "Device"
 Identifier "ATI Technologies Inc Radeon Mobility X700 (PCIE)"
 Driver "ati"
 BusID "PCI:1:0:0"
EndSection

Section "Monitor"
 Identifier "Generic Monitor"
 Option "DPMS"
 HorizSync 28-96
 VertRefresh 43-60
 DisplaySize 330 210
EndSection

Luka Renko (lure) wrote :

Previous report is actually duplicate of bug 90571 and therefore different than this report.

Martijn vdS (martijn) wrote :

I just built + installed the ati driver from current git (i.e. with the above patch), and it doesn't work.

Created an attachment (id=10150)
The requested BIOS of my broken ATI

Created an attachment (id=10151)
The video bios of a laptop with the same card, but working video

Too bad there doesn't seem to be a way to upgrade the video bios -- the HP website doesn't list any video bioses, just system bioses.

Created an attachment (id=10409)
radeondump-dump, using fglrx driver

Created an attachment (id=10410)
radeondump dump, made using the radeon driver, after using fglrx

Created an attachment (id=10411)
radeondump, using the radeon driver, cold boot

For some reason, running the "radeondump" utility, fixes the problem instantly. The screen stopps wobbling around and becomes usable.

Created an attachment (id=10412)
radeondump dump, after first radeondump fixed things

Created an attachment (id=10417)
radeontool regmatch \* output, after fixing using radeondump

I've run radeondump with breakpoints now, to see when it happens.

The function radeon_in_pll in radeontool.c in the radeondump source does the magic. Specifically, this call does:

radeon_set(radeon, RADEON_CLOCK_CNTL_INDEX, offset & 0x3f);

I've tried the three errata bits (CHIP_ERRATA_R300_CG, CHIP_ERRATA_R300_CG, CHIP_ERRATA_R300_CG), both alone and in all possible combinations, and none of them resolve the problem.

Breakpoint 1, radeon_in_pll (radeon=0xbff1b600, offset=0) at radeontool.c:215
215 radeon_set(radeon, RADEON_CLOCK_CNTL_INDEX, offset & 0x3f);
(gdb) s
radeon_set (radeon=0xbff1b600, offset=8, value=0) at radeontool.c:142
142 if (radeon->mmio_mem == NULL) {
(gdb) s
153 *(unsigned int * volatile)(radeon->mmio_mem + offset) = value;
(gdb) s
155 }

(In reply to comment #26)
> I've tried the three errata bits (CHIP_ERRATA_R300_CG, CHIP_ERRATA_R300_CG,
> CHIP_ERRATA_R300_CG), both alone and in all possible combinations, and none of
> them resolve the problem.
>

I mean CHIP_ERRATA_R300_CG, CHIP_ERRATA_PLL_DUMMYREADS and CHIP_ERRATA_PLL_DELAY, of course

try adding:

INPLL(pScrn, 0x00);

to the end of RADEONRestorePLLRegisters() and RADEONRestorePLL2Registers() in radeon_driver.c and let me know if that helps.

(In reply to comment #30)
> No difference
>

how about adding:

usleep(5000);
INPLL(pScrn, RADEON_VCLK_ECP_CNTL);

to the end of RADEONRestorePLLRegisters() and

usleep(5000);
INPLL(pScrn, RADEON_PIXCLKS_CNTL);

to the end of RADEONRestorePLL2Registers()

That doesn't fix it either..

Several options to try:

See if you can isolate what PLL radeondump is reading that fixes things. It starts out by looping through the PLL index starting from 0x00 (line 139 of radeon_dump.c). Maybe step through it and see which PLL reg fixes it.

Can you test the randr-1.2 branch of the radeon driver and see if it works better for you?

The very first radeon_in_pll call fixes it.

I'll try the randr-1.2 branch

Switching to randr-1.2 doesn't fix the problem either.

try adding:

usleep(5000);
INPLL(pScrn, 0x00);

to the end of RADEONModeInit() before the return (ati master branch), both with and without the usleep().

Still no lock (maybe the usleep has to be even longer?)

Does switching modes after starting X fix it? If you switch modes after running radeondump, do you have to run radeondump again to fix the problem?

On every mode switch (like some games do), the breakage re-appears.
Switching back to text mode doesn't break -- text mode looks normal.
Mode-switching before running radeondump doesn't help.
Running radeondump always fixes it.

try increasing the delay or try adding:

usleep(5000);
INPLL(pScrn, 0x00);

right before the returns in RADEONScreenInit() and RADEONSwitchMode() and RADEONEnterVT().

one more thing to try. loop through the whole set of PLLs at the end of RADEONModeInit(), e.g.:

usleep(10000);
for (i = 0x00; i < 0x3F; i += 4)
    INPLL(pScrn, i);

(In reply to comment #41)
> try increasing the delay or try adding:
>
> usleep(5000);
> INPLL(pScrn, 0x00);
>
> right before the returns in RADEONScreenInit() and RADEONSwitchMode() and
> RADEONEnterVT().

I've added this, it didn't work, with delays from 5000-50000 in 5000 increments.

(In reply to comment #42)
> one more thing to try. loop through the whole set of PLLs at the end of
> RADEONModeInit(), e.g.:
>
> usleep(10000);
> for (i = 0x00; i < 0x3F; i += 4)
> INPLL(pScrn, i);
>

This doesn't do it either.

Bryce Harrington (bryce) on 2007-08-08
Changed in xserver-xorg-video-ati:
status: Confirmed → In Progress

I think we should punt this to using randr 1.2 driver and we can attempt to fix it in master, it's not showing up as an easy fix for 6.7.

Timo Aaltonen (tjaalton) wrote :

Martin: have you tried gutsy, which has a new driver (6.7.193 now)?

Changed in xserver-xorg-video-ati:
assignee: ubuntu-x-swat → nobody
status: In Progress → Incomplete
Martijn vdS (martijn) wrote :

Yes, no change.

I still need to run "radeondump" every time I start X or change modes (see the upstream bug report for details)

Beta 1 Gutsy still has the same flickering. I can't find any setting on the start-up CD that works ok to be able to do a fresh install.. anyone succeeded with this?

Martijn vdS (martijn) wrote :

Yes, please read the upstream bug report (linked at the top), it contains a workaround.

Any update on this? Apparently it's still an issue with the latest ati.

(In reply to comment #46)
> Any update on this? Apparently it's still an issue with the latest ati.
>

It's hard to sort out this kind of problem unless you have hardware that exhibits it. When we add full atom support to the radeon driver that might fix the issue, but I don't really have an ETA on when that will happen.

Timo Aaltonen (tjaalton) on 2007-10-09
Changed in xserver-xorg-video-ati:
status: Incomplete → Confirmed
westbywest (westbywest) wrote :

I just made a fresh install of Gusty (v7.10) to a nw8240 laptop. The GUI started by the Live CD had the wobbly windows distortion mentioned above, but the text was still readable enough to complete installation.

Taking a cue from this thread in Ubuntu Forums...
http://ubuntuforums.org/showthread.php?t=421797

I installed package xorg-driver-fglrx, ran the command "sudo aticonfig --initial" and restarted the X server. (aticonfig overwrites the xorg.conf file to its own liking.)

The display came up fine at 1920x1200 resolution on the LCD. No need to manually tweak xorg.conf. I also appear able to switch screen resolutions just fine in System -> Preferences -> Screen Resolution.

Since I just installed Ubuntu, I'm unable yet to tell whether direct rendering (or for that matter any HW acceleration) works with this setup.

Created an attachment (id=13100)
possible fix

I think I may have found the fix. Looks like newer cards may prefer using a full 32 bit R/W for RADEON_CLOCK_CNTL_INDEX.

(In reply to comment #48)
> Created an attachment (id=13100) [details]
> possible fix
>
> I think I may have found the fix. Looks like newer cards may prefer using a
> full 32 bit R/W for RADEON_CLOCK_CNTL_INDEX.

I LOVE YOU!!

(it works :))

fixed:
a84d446fd301d456bcea8f7abdc52e5a30776412

Changed in xserver-xorg-driver-ati:
status: Incomplete → Fix Released
Martijn vdS (martijn) wrote :

A fix is available upstream. Could this please be put into hardy? :)

westbywest (westbywest) wrote :
Download full text (3.6 KiB)

@Martjin va de Streek

I had to revert to the open source "ati" driver since the proprietary "fglrx" drivers, even the latest ones <a href="http://ati.amd.com/support/drivers/linux/previous/linux-rf-cat712.html">Catalyst v7.12</a> and <A href="http://ati.amd.com/support/drivers/linux/previous/linux-r-cat711.html">v7.11</a>, appear to kill suspend and resume on my nw8240. (I'm also using a tuxonice-patched kernel, which may be exacerbating things.)

I am unable to resolve the problem with screen flicker, despite adding the "MonitorLayout" option and adding, Option "DPMS," HorizSync, VertRefresh, DisplaySize to xorg.conf. The flicker, oddly enough, does go away when I suspend to RAM and come back, a detail I've not seen mentioned anywhere else.

Could you be more specific about the fix you are using (i.e. which upstream bug report)? There seem to be several relevant bug reports, i.e. <a href="https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/29357/">#29357</a>, <a href="https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/22985">#22985</a>, and <A href="https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/39762">#39762</a>. Is it a matter of adding the correct options to xorg.conf, or must one use a patched xserver-xorg-video-ati package?

Could you also forward your current xorg.conf if you are using the "ati" driver? My lspci output differs slightly from yours, and I so I am curious if there are different flavors of the X700 chipset out there.

My specs:
HP NW8240 Laptop
ATI Technologies Inc Radeon Mobility X700 (PCIE)
Ubuntu v7.10
linux-image v2.6.22-14-pentm+suspend2 (tuxonice patch, compiled for Pentium M)
xserver-xorg-video-ati v6.7.195-1ubuntu2
xserver-xorg v7.2-5ubuntu13

lspci:
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility X700 (PCIE) (prog-if 00 [VGA])
        Subsystem: Hewlett-Packard Company HP Compaq NW8240 Mobile Workstation
        Flags: bus master, fast devsel, latency 0, IRQ 16
        Memory at c0000000 (32-bit, prefetchable) [size=128M]
        I/O ports at 2000 [size=256]
        Memory at c8800000 (32-bit, non-prefetchable) [size=64K]
        [virtual] Expansion ROM at c8820000 [disabled] [size=128K]
        Capabilities: [50] Power Management version 2
        Capabilities: [58] Express Endpoint IRQ 0
        Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-

xorg.conf:
...
Section "Device"
        Identifier "ATI Technologies Inc Radeon Mobility X700 (PCIE)"
        Driver "ati"
        BusID "PCI:1:0:0"
        Option "MonitorLayout" "LVDS,NONE" #this option suggested in https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/29357/
EndSection
...
Section "Monitor"
        Identifier "Generic Monitor"
        Option "DPMS"
        HorizSync 28-96 #option added as per suggestion at https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/20283
        VertRefresh 43-60 #option added as per suggestion at https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/20283
        DisplaySize 330 210 #option added as per suggestion at https://bugs.launchp...

Read more...

westbywest (westbywest) wrote :

Forgot to add BIOS version reported by dmidecode: 68DTV Ver. F.16

On Thu, 27 Dec 2007, westbywest wrote:

> I am unable to resolve the problem with screen flicker, despite adding
> the "MonitorLayout" option and adding, Option "DPMS," HorizSync,
> VertRefresh, DisplaySize to xorg.conf. The flicker, oddly enough, does
> go away when I suspend to RAM and come back, a detail I've not seen
> mentioned anywhere else.

The upstream bug is linked from the Launchpad bug (look at the top of
the page).

Martijn
--
Sorry isn't an excuse when you do something stupid on purpose.

Tormod Volden (tormodvolden) wrote :

Does the test packages from https://wiki.ubuntu.com/XorgOnTheEdge work fine?

westbywest (westbywest) wrote :

Yes, the package xserver-xorg-video-ati version 6.7.197-1ubuntu1~tormod appears to fix my problem with LCD refresh sync.

Apologies for posting a comment to this bug report before trying it out.

Martijn vdS (martijn) wrote :

Those packages fix it for me too.

Changed in xserver-xorg-video-ati:
status: Confirmed → Fix Committed
Tormod Volden (tormodvolden) wrote :

xserver-xorg-video-ati 1:6.7.197-1 is now in Hardy and should include the fix for this bug. Please update if you are running Hardy. This version will also be included in Hardy Alpha 3, which is scheduled for release next week. If you want to test this version (or newer) in Gutsy, try the test packages from https://wiki.ubuntu.com/XorgOnTheEdge

If you find that this bug is not fixed with the new version in Hardy, please reopen the bug report.

Changed in xserver-xorg-video-ati:
status: Fix Committed → Fix Released
Changed in xserver-xorg-driver-ati:
importance: Unknown → Medium
Changed in xserver-xorg-driver-ati:
importance: Medium → Unknown
Changed in xserver-xorg-driver-ati:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.