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