Intel® ICH5 AC ’97 Controller Theory of Operation
R
AC ’97 Programmer’s Reference Manual 35
3.6.3.2 Determining the Presence of a Modem Function
In the case of an AMC configuration, only the primary codec ready bit will be indicated. In order
to determine proper power down configuration, the audio driver needs to determine the presence
of modem functionality in the codec. The audio driver could check the Extended Modem ID
register at:
Extended Modem ID: I/O Address: MMBAR + 3Ch
The content of this register will be FFh if no modem function is present.
3.6.4 Resume Context Recovery
When the system is placed in a powerdown state (S3 or greater) power is removed from the ICH5
AC ’97 controller. In this state DMA registers lose information regarding current position and
pointer values. The device driver must be able to save the context of all DMA engines before
acknowledging a D3 state. Device drivers must assume that D3 state request precedes a total
system powerdown causing context for the DMA engines to be lost. Upon system power resume,
the device driver must restore the DMA engine registers to the values saved prior to the suspend
event.
3.6.5 Aggressive Power Management
As indicated in previous sections it is possible to go into a more aggressive power savings mode
by carefully synchronizing audio and modem driver interactions over the AC-link. This aggressive
power savings is usually found in mobile environments where battery power is critical.
Driver synchronization is required in a dual codec configuration where the audio driver could
cause a link down power condition by setting the PR4 and PR5 bits in the audio codec register.
When PR4 and PR5 are set, the AC-link base clock BIT_CLK is stopped. If this action occurs
while the modem codec is still in operating mode, it will cause malfunctions and possibly a system
hang.
To avoid this and similar situations, the audio and modem driver could follow a protocol using the
provided audio and modem D3 state bit semaphores, AD3 for audio and MD3 for modem. These
bits are located at:
Codec Write Semaphore Registers:
NABMAR +30h Audio I/O Space and MBAR + 40h Modem I/O Space
bit 16 for Audio (AD3)
bit 17 for Modem (MD3)
ICH5 AC ’97 drivers should set the appropriate bit after setting the codec in a D3 state. The audio
codec could use this semaphore to determine if the modem codec is already in a D3 state and shut
down the link by also asserting PR4 and PR5 in the power management register in the audio
function/codec. The following sections review in detail the sequence of events for drivers/codec
entering a D3 state and a resume to D0.