[PATCH] Fix ConnectorTable crash in radeon_output.c
Alex Deucher
alexdeucher at gmail.com
Fri Feb 24 06:43:08 PST 2012
On Fri, Feb 24, 2012 at 5:24 AM, Hans Verkuil <hverkuil at xs4all.nl> wrote:
> Hi Alex,
>
> A few weeks ago I spent some time trying to get my sam440ep PPC board to
> work with a recent kernel/debian distro. I discovered a bug causing it
> to crash. It's a regression of commit 82f12e5a40c1fbcb91910a0f8b725c34fff02aae
> from January 2009. Clearly, this board isn't used very often :-)
>
Well, most people use KMS nowadays and most boards without an x86
vbios (Mac and Sun cards mostly), already have connector tables. Good
catch on the patch.
> It would be nice if this patch is merged.
>
> I've also tried to get drm to work with this board, but unfortunately the colors
> have the wrong endianness and I don't really have any idea how to fix that (or
> even where to look for that matter). For the record, this board has a ATI Radeon
> Mobility M9.
>
> Regards,
>
> Hans
>
> Patch description:
>
> The sam440ep PPC board requires a ConnectorTable xorg.conf option, but putting
> in that option causes the radeon driver to crash. I finally traced it to a
> copy-and-paste bug in radeon_output.c as a result of a major rework in commit
> 82f12e5a40c1fbcb91910a0f8b725c34fff02aae.
What connectortable option did you have to use? We might as well try
and add option for it so future users won't have to manually figure it
out.
Thanks!
Alex
>
> The actual crash occurred in RADEONPrintPortMap().
>
> Signed-off-by: Hans Verkuil <hverkuil at xs4all.nl>
>
> diff --git a/src/radeon_output.c b/src/radeon_output.c
> index ccde346..5abd60e 100644
> --- a/src/radeon_output.c
> +++ b/src/radeon_output.c
> @@ -3002,9 +3002,9 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
> info->BiosConnector[i].devices |= ATOM_DEVICE_CRT2_SUPPORT;
> if (!radeon_add_encoder(pScrn,
> radeon_get_encoder_id_from_supported_device(pScrn,
> - ATOM_DEVICE_CRT1_SUPPORT,
> + ATOM_DEVICE_CRT2_SUPPORT,
> 2),
> - ATOM_DEVICE_CRT1_SUPPORT))
> + ATOM_DEVICE_CRT2_SUPPORT))
> return FALSE;
> info->BiosConnector[i].load_detection = FALSE;
> break;
More information about the xorg-driver-ati
mailing list