[PATCH] Fix ConnectorTable crash in radeon_output.c

Alex Deucher alexdeucher at gmail.com
Tue Apr 3 05:40:02 PDT 2012


On Tue, Apr 3, 2012 at 8:39 AM, Alex Deucher <alexdeucher at gmail.com> wrote:
> On Fri, Mar 30, 2012 at 1:38 PM, Hans Verkuil <hverkuil at xs4all.nl> wrote:
>> Hi Alex,
>>
>> Sorry for the delay, but Real Life intervened and I didn't have access to the
>> hardware for over a month.
>>
>> On Friday, February 24, 2012 15:43:08 Alex Deucher wrote:
>>> 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.
>>
>> Here it is:
>>
>> Option          "ConnectorTable"        "100,2,1,2,96,1,0,1"
>>
>
> Thanks.  Does this card also have an s-video or composite tv-out
> connector?  Also what are the pci subsystem ids so I can hopefully
> match up the connector table automatically.

And the pci device ids of course.

Alex

>
> Alex
>
>> Regards,
>>
>>        Hans
>>
>>>
>>> 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