[PATCH 2/2] drm/radeon/kms/blit: workaround for a possible hardware bug

Ilija Hadzic ihadzic at research.bell-labs.com
Wed Feb 1 11:07:56 PST 2012

On Wed, 1 Feb 2012, Michel [ISO-8859-1] Dänzer wrote:

> On Mit, 2012-02-01 at 11:42 -0500, Ilija Hadzic wrote:
>> If a blit copy operation specifies a rectangle whose one dimension
>> is 16384 (max allowed by these chips), the chip will silently
>> drop all commands.
> What exactly does 'silently drop all commands' mean?

It means that when I look at the transactions on the bus (using the PCIe 
analyzer instrument), I see that the GPU pulls the stuff from the ring 
(read transactions come from GPU and completions come from the host), but 
I see no posted writes in the upstream that correspond to GPU writing to 
host memory.

> Did you notice the following in i2f():
>                fraction = (input & 0x3fff) << 10; /* cheat and only
>                                                      handle numbers below 2^^15 */
> I suspect that should say 2^14, as 16384 == 0x4000, which results in 0
> for the above assignment.

Thanks for pointing this out. This could be the possible root cause. I'll 
see if i2f can be easily extended to support up to 2^15 range (I am not 
good at doing floating point representation in my head, so I need to write 
out things on paper to make sure, first). If yes, I'll fix i2f. If not, 
the existing patch will still be the reasonable fix.

-- Ilija

More information about the dri-devel mailing list