ICEMT1724
old_cmd = inb(ICEMT1724(ice, AC97_CMD));
outw(val, ICEMT1724(ice, SPDIF_CTRL));
outw(val, ICEMT1724(ice, SPDIF_CTRL));
nval = val = inw(ICEMT1724(ice, SPDIF_CTRL));
if ((inb(ICEMT1724(ice, AC97_CMD)) & bit) == 0)
if (inb(ICEMT1724(ice, BURST)) < val)
outb(val, ICEMT1724(ice, BURST));
outb(reg, ICEMT1724(ice, AC97_INDEX));
outw(val, ICEMT1724(ice, AC97_DATA));
outb(old_cmd | VT1724_AC97_WRITE, ICEMT1724(ice, AC97_CMD));
outb(inb(ICEMT1724(ice, AC97_CMD)) | 0x80, ICEMT1724(ice, AC97_CMD));
outb(inb(ICEMT1724(ice, AC97_CMD)) & ~0x80, ICEMT1724(ice, AC97_CMD));
(unsigned)inl(ICEMT1724(ice, ROUTE_PLAYBACK)));
outb(reg, ICEMT1724(ice, AC97_INDEX));
outb(old_cmd | VT1724_AC97_READ, ICEMT1724(ice, AC97_CMD));
return inw(ICEMT1724(ice, AC97_DATA));
val = inw(ICEMT1724(ice, SPDIF_CTRL));
old = inw(ICEMT1724(ice, SPDIF_CTRL));
oval = inb(ICEMT1724(ice, RATE));
outb(oval | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE));
i2s_oval = inb(ICEMT1724(ice, I2S_FORMAT));
outb(i2s_oval & ~VT1724_MT_I2S_MCLK_128X, ICEMT1724(ice, I2S_FORMAT));
val = inl(ICEMT1724(ice, ROUTE_PLAYBACK));
val = old_val = inl(ICEMT1724(ice, ROUTE_PLAYBACK));
outl(val, ICEMT1724(ice, ROUTE_PLAYBACK));
outb(idx, ICEMT1724(ice, MONITOR_PEAKINDEX));
inb(ICEMT1724(ice, MONITOR_PEAKDATA));
outb(VT1724_MULTI_FIFO_ERR, ICEMT1724(ice, DMA_INT_MASK));
outb(0xff, ICEMT1724(ice, DMA_INT_MASK));
ice->pm_saved_spdif_ctrl = inw(ICEMT1724(ice, SPDIF_CTRL));
ice->pm_saved_route = inl(ICEMT1724(ice, ROUTE_PLAYBACK));
outl(ice->pm_saved_route, ICEMT1724(ice, ROUTE_PLAYBACK));
unsigned char mtstat = inb(ICEMT1724(ice, IRQ));
outb(mtstat, ICEMT1724(ice, IRQ));
unsigned char fstat = inb(ICEMT1724(ice, DMA_FIFO_ERR));
outb(fstat, ICEMT1724(ice, DMA_FIFO_ERR));
outb(VT1724_MULTI_FIFO_ERR | inb(ICEMT1724(ice, DMA_INT_MASK)), ICEMT1724(ice, DMA_INT_MASK));
old = inb(ICEMT1724(ice, DMA_PAUSE));
outb(old, ICEMT1724(ice, DMA_PAUSE));
old = inb(ICEMT1724(ice, DMA_CONTROL));
outb(old, ICEMT1724(ice, DMA_CONTROL));
return stdclock_rate_list[inb(ICEMT1724(ice, RATE)) & 15];
outb(i, ICEMT1724(ice, RATE));
val = old = inb(ICEMT1724(ice, I2S_FORMAT));
outb(val, ICEMT1724(ice, I2S_FORMAT));
if ((inb(ICEMT1724(ice, DMA_CONTROL)) & DMA_STARTS) ||
(inb(ICEMT1724(ice, DMA_PAUSE)) & DMA_PAUSES)) {
outb(val, ICEMT1724(ice, BURST));
outl(substream->runtime->dma_addr, ICEMT1724(ice, PLAYBACK_ADDR));
outw(size, ICEMT1724(ice, PLAYBACK_SIZE));
outb(size >> 16, ICEMT1724(ice, PLAYBACK_SIZE) + 2);
outw(size, ICEMT1724(ice, PLAYBACK_COUNT));
outb(size >> 16, ICEMT1724(ice, PLAYBACK_COUNT) + 2);
if (!(inl(ICEMT1724(ice, DMA_CONTROL)) & VT1724_PDMA0_START))
ptr = inl(ICEMT1724(ice, PLAYBACK_ADDR));
ptr = inl(ICEMT1724(ice, PLAYBACK_SIZE)) & 0xffffff;
if (!(inl(ICEMT1724(ice, DMA_CONTROL)) & reg->start))
return (inb(ICEMT1724(ice, RATE)) & VT1724_SPDIF_MASTER) ? 1 : 0;
old = inb(ICEMT1724(ice, AC97_CMD));
outb(old | VT1724_AC97_COLD, ICEMT1724(ice, AC97_CMD));
outb(old & ~VT1724_AC97_COLD, ICEMT1724(ice, AC97_CMD));
val = inb(ICEMT1724(ice, RATE));
outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE));
outb(inb(ICEMT1724(ice, AC97_CMD)) | 0x80, ICEMT1724(ice, AC97_CMD));
outb(inb(ICEMT1724(ice, AC97_CMD)) & ~0x80, ICEMT1724(ice, AC97_CMD));
val = inb(ICEMT1724(ice, RATE));
outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE));
val = inb(ICEMT1724(ice, RATE));
outb(val | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE));
outb(inb(ICEMT1724(ice, AC97_CMD)) | 0x80, ICEMT1724(ice, AC97_CMD));
outb(inb(ICEMT1724(ice, AC97_CMD)) & ~0x80, ICEMT1724(ice, AC97_CMD));