Port-macppc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: snapper does not work on PowerBook5,6



Michael wrote:

> Umm, what does snapper's interrupts property look like on your  
> machine? The DMA and the status change interrupt are different types  
> on mine.

Yes, I think that's the same on all snapper machines:
0000001e 00000001 00000001 00000000 00000002 00000000

I wonder for what this irq 30 is needed? Plugging in headphones is detected
by an additional interrupt (irq 61 in my case).


>> Maybe there is no interrupt problem, but a DMA problem? I found the  
>> location
>> where the freeze happens: It is an infinite loop in dbdma_stop(),  
>> while
>> waiting for two status flags to indicate DMA is flushed and stopped.
>>
>> But since dbdma is also used for wdc0 I'm not sure what can be wrong  
>> here.
>
> This is getting weirder and weirder.

Are there any docs about using dbdma for audio? I admit that I don't even
understand yet how dbdma knows what to do with the data it is reading. :)

I just compared the source with OpenBSD. Seems they have already improved
dbdma.c to use bus_dma(9). And FreeBSD has a very clean reimplementation of
everything, but I saw no special handling for newer PowerBooks either.

BTW, there was already a posting more than 4 years ago, which describes
similar snapper problems on a PowerBook6,8:
http://mail-index.netbsd.org/port-macppc/2006/02/10/0001.html

He didn't hear sound either, but surprisingly he received a single irq1.


> Try to force the DMA interrupts to be level triggered.

This will give me infinite interrupts. More than I ever wanted. :)
No, I think level-triggered is correct.

-- 
Frank Wille



Home | Main Index | Thread Index | Old Index