Leif Delgass wrote:

>On Sat, 4 May 2002, Jos� Fonseca wrote:
>
>>On 2002.05.04 11:35 Peter Andersson wrote:
>>
>>>Jos� Fonseca wrote:
>>>
>>>>...
>>>>
>>>>Peter, this is a regression. There may be two causes for this:
>>>>
>>>>a) The use of readl/writel somehow poses even further problems.
>>>>
>>>>b) Recent changes on the CVS broke PowerPC. It may be just the 
>>>>wait_for_{idle,fifo} already failed before, but it passed unoticed 
>>>>before the recentely added checks.
>>>>
>>>>The only way to figure this out is to reverse the use of the 
>>>>readl/writel macros and see if this changes anything. So Peter, in 
>>>>mach64_drv.h, instead of:
>>>>
>>>> #define MACH64_READ(reg)       readl(MACH64_ADDR(reg))
>>>> #define MACH64_WRITE(reg,val)  writel((val), MACH64_ADDR(reg))
>>>>
>>>>put back:
>>>>
>>>> #define MACH64_DEREF(reg)      *(volatile u32 *)MACH64_ADDR(reg)
>>>> #define MACH64_READ(reg)       le32_to_cpu(MACH64_DEREF(reg))
>>>> #define MACH64_WRITE(reg,val)  do { MACH64_DEREF(reg) = 
>>>>cpu_to_le32(val); } while (0)
>>>>
>>>>(note that each definition takes a whole line, just in case it gets 
>>>>broken by the mailer)
>>>>
>>>>and check both with MACH64_USE_DMA set to 1 and 0.
>>>>
>>>I have tried these changes and it didn�t work with either MACH64_USE_DMA 
>>>set to 1 or 0, i still get "Error flushing vertex buffer: return = -16".
>>>
>>>Peter
>>>
>>Thanks. This means that the problem was the recent CVS changes. As said 
>>before, this timeout could be there before, but just now (that a check was 
>>added) it manifested. I'll look into the changes and see what can be going 
>>wrong.
>>
>>Jos� Fonseca
>>
>
>Actually, if I remember correctly, Peter only had MMIO working before by 
>changing wait_for_fifo to wait_for_idle, so it's only a regression if that 
>doesn't work.
>
>Peter can you change mach64_state.c, line 538 from
>
>if ( mach64_do_wait_for_fifo( dev_priv, 16 ) < 0 )
>
>to 
>
>if ( mach64_do_wait_for_idle( dev_priv ) < 0 )
>
>and set MACH64_USE_DMA to 0.
>
>As far as DMA goes however, that was working before (just slowly), right?  
>So we do have a regression there.
>
It works! It�s significantly slower than before but it works, although 
it feels alot faster than when i tried these changes before.
I have tried this without the changes (listed below) suggested by Jos�.

> The only way to figure this out is to reverse the use of the 
> readl/writel macros and see if this changes anything. So Peter, in 
> mach64_drv.h, instead of:
>
> #define MACH64_READ(reg)       readl(MACH64_ADDR(reg))
> #define MACH64_WRITE(reg,val)  writel((val), MACH64_ADDR(reg))
>
> put back:
>
> #define MACH64_DEREF(reg)      *(volatile u32 *)MACH64_ADDR(reg)
> #define MACH64_READ(reg)       le32_to_cpu(MACH64_DEREF(reg))
> #define MACH64_WRITE(reg,val)  do { MACH64_DEREF(reg) = 
> cpu_to_le32(val); } while (0)

Peter





_______________________________________________________________

Have big pipes? SourceForge.net is looking for download mirrors. We supply
the hardware. You get the recognition. Email Us: [EMAIL PROTECTED]
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to