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



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

On Oct 16, 2010, at 4:20 PM, Frank Wille wrote:

Michael wrote:

That looks right, my iBook uses the same:
interrupts    0000001e 00000001 00000001 00000000 00000002 00000000

Do you see irq 1 listed in vmstat -i when playing audio?

No time to check right now, I'll do it later on.

You may want to sprinkle some printf()s over arch/powerpc/pic/
pic_openpic.c and friends to verify that the right interrupts are
being enabled, aren't blocked elsewhere, are the right type ( as in
edge vs. level triggered ) etc.

Looks fine. Here is an interrupt list of my system:

irq1  edg  snapper0
irq2  edg  snapper0
irq22 edg  zsc0 ch0
irq23 edg  zsc0 ch1
irq24 lev  wdc0
irq29 lev  ochi1
irq39 lev  wdc1
irq40 lev  fwohci0
irq41 lev  gem0
irq47 lev  pmu0
irq52 lev  bwi0
irq53 lev  cbb0
irq61 edg  snapper0
irq63 lev  ochi2, ohci3, ehci0

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

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.

Looking at the OF tree I should use the "name" or "compatible"
property for
"audio-gpio" and "reg" for "AAPL,address". But the contents of "reg"
is not
the final address and has probably to be added to some base
address of
obio?

It /should/ be relative to obio/gpio although sometimes it's relative
to obio.

Ok. I modified snapper.c to find the gpios in my PowerBook as well. I also
added some code not to use gpios when they were not found. ;)

Now I can plug in a headphone and an interrupt is caused. This works fine.
But audio DMA still doesn't.

Try to force the DMA interrupts to be level triggered.

have fun
Michael

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)

iQEVAwUBTLpEYcpnzkX8Yg2nAQLHcwf+KujBrzqB0HJYM0RpnMrwpAFBC1GUwUwr
jIqILH8GPjg2qvvJrVR1ZkLrzUKC4kPVRyxSXe8iNycd+W3s6owyQg0Tu/+vVqXG
rV93W7IFR8bPegnciI9O2E09xyRfUEIKtIhESRHn2Pj8MtRS/lH9N2yFW5Dm2+Xc
N1DKoHlc7fgRbzHiZY2zSOS/qzE4xIbnD3U60l0/gRuLMHMeIveUoFTd7+sdmHvJ
UdfXjPh1LJqOhNIhOX3NqWhXVNNC4u7qCqTBtWA+htXumiMIt0wA2Dq4Ka+Przfe
tFhxKmiQGh6UxeL70HFILYOOy1diW5t5FG3+6fbZOnIDCnPaelh7yg==
=9w2X
-----END PGP SIGNATURE-----


Home | Main Index | Thread Index | Old Index