ICEREG1724
cbit = inb(ICEREG1724(ice, SPDIF_CFG));
outb(disabled, ICEREG1724(ice, SPDIF_CFG));
outb(cbit, ICEREG1724(ice, SPDIF_CFG));
outl(data, ICEREG1724(ice, GPIO_DIRECTION));
inw(ICEREG1724(ice, GPIO_DIRECTION)); /* dummy read for pci-posting */
ucontrol->value.integer.value[0] = inb(ICEREG1724(ice, SPDIF_CFG)) &
old = val = inb(ICEREG1724(ice, SPDIF_CFG));
outb(val, ICEREG1724(ice, SPDIF_CFG));
return inl(ICEREG1724(ice, GPIO_DIRECTION));
outw(data, ICEREG1724(ice, GPIO_WRITE_MASK));
outb((data >> 16) & 0xff, ICEREG1724(ice, GPIO_WRITE_MASK_22));
inw(ICEREG1724(ice, GPIO_WRITE_MASK)); /* dummy read for pci-posting */
mask = (unsigned int)inb(ICEREG1724(ice, GPIO_WRITE_MASK_22));
mask = (mask << 16) | inw(ICEREG1724(ice, GPIO_WRITE_MASK));
outw(data, ICEREG1724(ice, GPIO_DATA));
outb(data >> 16, ICEREG1724(ice, GPIO_DATA_22));
inw(ICEREG1724(ice, GPIO_DATA)); /* dummy read for pci-posting */
data = (unsigned int)inb(ICEREG1724(ice, GPIO_DATA_22));
data = (data << 16) | inw(ICEREG1724(ice, GPIO_DATA));
while ((inb(ICEREG1724(ice, I2C_CTRL)) & VT1724_I2C_BUSY) && t--)
outb(addr, ICEREG1724(ice, I2C_BYTE_ADDR));
outb(dev & ~VT1724_I2C_WRITE, ICEREG1724(ice, I2C_DEV_ADDR));
val = inb(ICEREG1724(ice, I2C_DATA));
outb(addr, ICEREG1724(ice, I2C_BYTE_ADDR));
outb(data, ICEREG1724(ice, I2C_DATA));
outb(dev | VT1724_I2C_WRITE, ICEREG1724(ice, I2C_DEV_ADDR));
if ((inb(ICEREG1724(ice, I2C_CTRL)) & VT1724_I2C_EEPROM) != 0)
for (count = inb(ICEREG1724(ice, MPU_RXFIFO)); count > 0; --count)
inb(ICEREG1724(ice, MPU_DATA));
outb(VT1724_RESET , ICEREG1724(ice, CONTROL));
inb(ICEREG1724(ice, CONTROL)); /* pci posting flush */
outb(0, ICEREG1724(ice, CONTROL));
inb(ICEREG1724(ice, CONTROL)); /* pci posting flush */
outb(ice->eeprom.data[ICE_EEP2_SYSCONF], ICEREG1724(ice, SYS_CFG));
outb(ice->eeprom.data[ICE_EEP2_ACLINK], ICEREG1724(ice, AC97_CFG));
outb(ice->eeprom.data[ICE_EEP2_I2S], ICEREG1724(ice, I2S_FEATURES));
outb(ice->eeprom.data[ICE_EEP2_SPDIF], ICEREG1724(ice, SPDIF_CFG));
outb(0, ICEREG1724(ice, POWERDOWN));
outb(VT1724_IRQ_MPU_RX | VT1724_IRQ_MPU_TX , ICEREG1724(ice, IRQMASK));
outb(0xff, ICEREG1724(ice, IRQMASK));
count = 31 - inb(ICEREG1724(ice, MPU_TXFIFO));
outb(buffer[i], ICEREG1724(ice, MPU_DATA));
ICEREG1724(ice, MPU_FIFO_WM));
outb(0x1, ICEREG1724(ice, MPU_FIFO_WM));
outb(VT1724_MPU_UART, ICEREG1724(ice, MPU_CTRL));
count = inb(ICEREG1724(ice, MPU_RXFIFO));
ice->pm_saved_spdif_cfg = inb(ICEREG1724(ice, SPDIF_CFG));
buffer[i] = inb(ICEREG1724(ice, MPU_DATA));
outb(ice->pm_saved_spdif_cfg, ICEREG1724(ice, SPDIF_CFG));
u8 mask = inb(ICEREG1724(ice, IRQMASK));
outb(mask, ICEREG1724(ice, IRQMASK));
if (inb(ICEREG1724(ice, MPU_CTRL)) & VT1724_MPU_TX_EMPTY)
status = inb(ICEREG1724(ice, IRQSTAT));
status = inb(ICEREG1724(ice, IRQSTAT));
outb(status, ICEREG1724(ice, IRQSTAT));