John Watlington wrote:

You forgot to throw in the part where this signal crosses between +3.3V logic and +5V logic, nixing a few of the proposed designs... The biggest headache is that EAPD really should be inverted, from a hardware point of view, but changing a ten year old standard seems like tilting at windmills.

I was under the impression that Arnold and I agreed the best fix was to move the amp shutdown signal to the EC (and eliminate pullup R335). No additional components required, and the driver doesn't require
modification.

This is a plausible approach, for sure. The implications, just to get it all out on the table, are:

a) While the AC97 driver doesn't need to change, we essentially need another driver, unless we have the EC do the magic behind the scenes.

b) If the EC does the magic, it can power-off the amp at suspend/resume boundaries; we lose the flexibility of turning the amp off when audio is inactive. I don't know how much power that saves in practice.

c) The EC will have to time the amp power-up so it happens after the supplies have settled.

d) According to my experiments, even when the power is stable, bringing the amp out of shutdown results in a little pop. Not nearly as loud as before, but still audible, and likely to be annoying if it happens periodically as a result of micro-sleeps.

e) Plus the fact that the EC code development continues to be a sore spot....

  There are alternative solutions, but most seem to cost one EC output...

Comments ?  Alternative suggestions ?
wad

On Mar 16, 2007, at 4:37 PM, Mitch Bradley wrote:

Here is the train of thought that led me to the inverted EAPD conclusion:

(Assume for the sake of discussion that we want to use EAPD, not an external GPIO)

a) There is a period of time after power up when EAPD is going to be at the logic low level, because that is the hardware default value, and it takes absolute minimum 8 mS (longer than the pop time) for me to get the CPU into a state where it could even think about talking to the CODEC.

b) To eliminate the pop, the amplifier shutdown pin must be in the shutdown state while power is stabilizing. That is the opposite state from the EAPD default.

c) Therefore, in order to eliminate the pop yet preserve the normal sense of EAPD, it would be necessary to have an additional control to force the amp shutdown state despite the fact that EAPD is telling the amp to be on. And that control would then have to be turned off after the software is certain that the EAPD pin has been driven to the power-down state. Which might require more driver complexity than inverting.


Jim Gettys wrote:
Let's see if Jaya Kumar has a heart attack ;-).

He can tell us if we're on thin ice, or whether there is infrastructure
in the audio subsystem that will avoid any heartburn.

Jaya?  This is best from a hardware standpoint.

                                     - Jim


On Fri, 2007-03-16 at 09:46 -1000, Mitch Bradley wrote:

I have a simple hardware fix for the popping sound that happens on power up, suspend, and resume. The net component impact is the removal of one transistor. I have tested this fix and it works.

Details are in  http://dev.laptop.org/ticket/977#comment:5

There is a software impact. With this change, in order to get sound out, it is necessary to assert the EAPD pin on the CODEC. That pin, deasserted by default, is nominally used to turn off the amp when asserted. With the change, asserting that pin turns the amp on, not off. Hardware engineers from Quanta and Analog Devices considered, without success, several other hardware changes to eliminate that pop. It boils down to the fact that we have either invert the sense of that pin, or switch the amp control to an entirely separate GPIO pin on another device (which are in short supply).

To assert that pin, write 0x8000 to codec register 0x26.
_______________________________________________
Devel mailing list
[email protected]
http://mailman.laptop.org/mailman/listinfo/devel


_______________________________________________
Devel mailing list
[email protected]
http://mailman.laptop.org/mailman/listinfo/devel

Reply via email to