xf86-video-ati 6.14.0
Warren Block
wblock at wonkity.com
Sat Feb 5 19:59:33 UTC 2011
On Fri, 4 Feb 2011, Warren Block wrote:
> 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.
Alex Deucher has quickly fixed this:
http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/commit/?id=84450ea9221f32296c1f786a6aa126a08bb9756f
Attached are patches for the port to duplicate that change.
-------------- next part --------------
--- src/radeon_output.c.orig 2011-02-01 17:01:22.000000000 -0700
+++ src/radeon_output.c 2011-02-05 12:22:53.000000000 -0700
@@ -120,6 +120,8 @@
radeon_bios_output_crtc(xf86OutputPtr output);
static void
radeon_bios_output_lock(xf86OutputPtr output, Bool lock);
+extern void
+atombios_pick_dig_encoder(xf86OutputPtr output);
void RADEONPrintPortMap(ScrnInfoPtr pScrn)
{
@@ -731,6 +733,8 @@
}
radeon_bios_output_lock(output, TRUE);
+ if (IS_AVIVO_VARIANT)
+ atombios_pick_dig_encoder(output);
radeon_dpms(output, DPMSModeOff);
radeon_crtc_dpms(output->crtc, DPMSModeOff);
-------------- next part --------------
--- src/atombios_output.c.orig 2011-01-27 10:05:58.000000000 -0700
+++ src/atombios_output.c 2011-02-05 12:20:30.000000000 -0700
@@ -172,7 +172,6 @@
#define DP_SET_POWER_D3 0x2
static void do_displayport_link_train(xf86OutputPtr output);
-static void atombios_pick_dig_encoder(xf86OutputPtr output);
static int
atombios_output_dac_setup(xf86OutputPtr output, int action)
@@ -1469,7 +1468,6 @@
if (radeon_encoder == NULL)
return;
- atombios_pick_dig_encoder(output);
switch (radeon_encoder->encoder_id) {
case ENCODER_OBJECT_ID_INTERNAL_TMDS1:
@@ -1781,7 +1779,7 @@
}
}
-static void
+void
atombios_pick_dig_encoder(xf86OutputPtr output)
{
xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(output->scrn);
@@ -1878,7 +1876,6 @@
return;
radeon_output->pixel_clock = adjusted_mode->Clock;
- atombios_pick_dig_encoder(output);
atombios_output_overscan_setup(output, mode, adjusted_mode);
atombios_output_scaler_setup(output);
atombios_set_output_crtc_source(output);
More information about the freebsd-x11
mailing list