Bug#572311: No display output from Radeon RV610 on Alpha

Alex Deucher alexdeucher at gmail.com
Tue Mar 9 11:44:52 PST 2010


On Tue, Mar 9, 2010 at 2:35 PM, Michael Cree <mcree at orcon.net.nz> wrote:
> On 10/03/10 05:17, Matt Turner wrote:
>>
>> On Mon, Mar 8, 2010 at 6:30 PM, Michael Cree<mcree at orcon.net.nz>  wrote:
>>>
>>> On 9/03/2010, at 5:41 AM, Alex Deucher wrote:
>>>>
>>>> On Sun, Mar 7, 2010 at 3:47 AM, Michael Cree<mcree at orcon.net.nz>  wrote:
>>>>>
>>>>> Thanks, that hint was helpful.  I have drummed up a patch (attached)
>>>>> that
>>>>> replaces some use of the UINT16LE_TO_CPU(), etc., macros with generic
>>>>> interfaces from the Xserver's compiler.h header file.  Now works
>>>>> correctly
>>>>> on RV610 video card on an Alpha XP1000.  Have also verified that the
>>>>> driver
>>>>> still works on an RV710 card on AMD64 architecture.
>>>>>
>>>>> The patch applies cleanly against the 6.12.5 branch and also upstream
>>>>> git
>>>>> master.
>>>>>
>>>>> Alex: may I presume that you will handle getting it upstream for review
>>>>> and
>>>>> hopefully acceptance into the fdo git master.
>>>>
>>>> I'll take a look at it.  My only concern would be making sure these
>>>> changes don't break big endian which is the reason the macros were
>>>> added in the first place.
>>>
>>> It should work, but worth running a check.  My understanding is that the
>>> ldw_u(), etc., macros/functions in compiler.h are supposed to handle all
>>> architectural issues, including endianess, alignment, and certain
>>> hardware
>>> limitations on byte/word access.
>>
>> I'm not sure they cover endianness. I cleaned them up last
>> summer--there are no #ifdef BIGENDIANs in there.
>
> Bother, it looks like you are right.  On re-looking at compiler.h I now see
> that there is only one definition of them and it doesn't appear to address
> endianess.  Double bother!
>

Can you add the alignment stuff to the ATOM_BSWAP16/32 functions in
radeon_atombios.c?
e.g.,
return ldw_u(bswap_16(x));
etc.

Alex

> So what do you recommend we use to access the AtomBios that will handle both
> endianess and alignment issues?  The alignment issue on Alpha only occurs
> when one can't use BWX instructions which is the case for Debian as it is
> compiled for generic Alpha architecture.
>
> Could we use the MMIO_IN/OUT routines and pass the address as the base and a
> zero offset?
>
> Cheers
> Michael.
>





More information about the xorg-driver-ati mailing list