xf86-video-ati 6.14.0
Warren Block
wblock at wonkity.com
Sat Feb 5 00:47:36 UTC 2011
A quick update of the 6.13.2 port to build the just-released 6.14.0 ati
video driver had problems with a Radeon 4650 with VGA, DVI, and HDMI
ports.
X starts, goes to a black screen... and that's it. The machine is still
alive, but video is not working until a reset. The X log says:
...
(II) RADEON(0): Acceleration enabled
(**) RADEON(0): DPMS enabled
(==) RADEON(0): Silken mouse enabled
(II) RADEON(0): Set up textured video
Output CRT2 disable success
Segmentation fault: 11 at address 0x168
Fatal server error:
Caught signal 11 (Segmentation fault: 11). Server aborting
This happens on line 1840 of atombios_output.c, inside
atombios_pick_dig_encoder. The first two outputs are fine, but
output->crtc is null for the HDMI output.
This happens due to output->crtc being null for the HDMI connector on
line 1840 of atombios_output.c. The other two outputs are set first,
without problems.
A quick hack to check for a null crtc pointer lets X start and work,
although of course the HDMI output is probably not functional. Again,
this is a quick hack that doesn't fail but doesn't fix the problem of
the crtc being null. No idea why that's not set correctly, or whether
it's the fault of FreeBSD, which is why I'm posting this here rather
than on the x.org bugzilla. If anyone can help confirm or fix this, I
can post a bug report in the appropriate place.
--- src/atombios_output.c.orig 2011-01-27 10:05:58.000000000 -0700
+++ src/atombios_output.c 2011-02-04 17:41:32.000000000 -0700
@@ -1836,8 +1836,12 @@
}
if (IS_DCE32_VARIANT) {
- RADEONCrtcPrivatePtr radeon_crtc = output->crtc->driver_private;
- radeon_output->dig_encoder = radeon_crtc->crtc_id;
+ if (output->crtc) {
+ RADEONCrtcPrivatePtr radeon_crtc = output->crtc->driver_private;
+ radeon_output->dig_encoder = radeon_crtc->crtc_id;
+ } else {
+ ErrorF("WB: crtc for %s output is null!\n", output->name);
+ }
return;
}
More information about the freebsd-x11
mailing list