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

Michael Cree mcree at orcon.net.nz
Tue Mar 9 11:35:56 PST 2010


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!

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