A new audio playback architecture may be used, which allows the use of
much larger buffering than that used by a typical audio subsystem in a
computing system to improve power efficiency of the system and at the
same time allows to maintain the quality (e.g., fidelity and
responsiveness) of the audio playback. The audio controller in the new
architecture may be made to report back to the host system a more
accurate indication of which audio frame is being set to the audio codec
than a currently available audio controller does. Additionally, the
controller is capable of re-fetching previously buffered (but not yet
transmitted) data. Furthermore, the controller may dynamically adjust the
size of its local buffer.