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

Hash: SHA1


On Oct 13, 2010, at 3:52 PM, Frank Wille wrote:

Michael wrote:

Here the whole system freezes (interrupt storm?) when I send a
bigger file to /dev/audio. With very short
files nothing will happen at all.

This is weird.

I correct myself: the freeze happens always, also with small files.

Got any dmesg output?

codec at ki2c0 address 0x6a not configured

This is the culprit. Apparently Apple renamed the node for the audio codec again or did something else to it that keeps the deq 'driver' from attaching, which leads to this:

snapper0: software codec

I distinctly remember seeing a reference to a TAS3004 in your OF tree.
Getting deq to attach to it will likely fix the audio problem.

Apple seems to reorganize its device tree with
every model no matter if the actual hardware changed or not. Snapper
needs the deq driver to attach in order to find the codec which should
live on iic at ki2c at obio.

Seems this codec was not found. The OF structure on my PowerBook looks like

ff98be28:       /i2c@18000
ff98ca00:         /i2c-bus@0
ff98cbc8:           /codec@6a


So there are two problem in deq.c:
1. The node is called "codec" instead of "deq".
2. There is no "i2c-address" property.

Then it should use the reg value instead - 0x6a looks right to me.

I hacked that in to make deq attach:
snapper0 at obio0 offset 0x0: irq 30,1,2
pmu0 at obio0 offset 0x16000 irq 47:  rev. 12
pmu0: initializing IIC bus
pmu0: initializing RTC
pmu0: pmu not configured
pmu0: power-mgt not configured
smartbat0 at pmu0 addr 0: smart battery
flags: 5 AC present
ki2c0 at obio0
iic0 at ki2c0: I2C bus
deq0 at ki2c0 Apple Digital Equalizer, addr 0x6a
wdc0 at obio0 offset 0x20000 irq 24, level triggered: DMA transfer
atabus0 at wdc0 channel 0
snapper0: codec: TAS3004
audio0 at snapper0: full duplex, playback, capture

But still no difference. The system freezes when writing to /dev/ audio. :(

Damn, there goes that theory.
The weird thing is that the DMA machinery didn't really change at all from the first PCI Macs all the way up to the last G5s - I have no idea what could cause this. Now it's probably time to sprinkle printfs and see where exactly the hangup happens. Umm, reminds me - do you get interrupts from snapper? It should list three - one of input, one for output and one for status changes ( like (un)plugging headphones, errors etc. )

have fun

Version: GnuPG v1.4.7 (Darwin)


Home | Main Index | Thread Index | Old Index