[PATCH] Fix ConnectorTable crash in radeon_output.c

Hans Verkuil hverkuil at xs4all.nl
Tue Apr 3 05:44:43 PDT 2012


On Tuesday, April 03, 2012 14:40:02 Alex Deucher wrote:
> 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.

You'll have to wait a few weeks until I have access to the hardware again.

Once I have the information I'll mail you again.

Regards,

	Hans

> 
> 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