VIADEV_REG
VIADEV_REG(viadev, OFS_PLAYBACK_VOLUME_L));
VIADEV_REG(viadev, OFS_PLAYBACK_VOLUME_R));
VIADEV_REG(viadev, OFFSET_STOP_IDX));
outb(fmt, VIADEV_REG(viadev, OFS_MULTPLAY_FORMAT));
outl(0xff000000 | slots, VIADEV_REG(viadev, OFFSET_STOP_IDX));
outb(VIA_REG_CAPTURE_FIFO_ENABLE, VIADEV_REG(viadev, OFS_CAPTURE_FIFO));
VIADEV_REG(viadev, OFFSET_STOP_IDX));
VIADEV_REG(viadev, OFFSET_CONTROL));
inb(VIADEV_REG(viadev, OFFSET_CONTROL));
outb(0x00, VIADEV_REG(viadev, OFFSET_CONTROL));
outb(0x03, VIADEV_REG(viadev, OFFSET_STATUS));
outb(0x00, VIADEV_REG(viadev, OFFSET_TYPE)); /* for via686 */
unsigned char c_status = inb(VIADEV_REG(viadev, OFFSET_STATUS));
outb(c_status, VIADEV_REG(viadev, OFFSET_STATUS)); /* ack */
outb(c_status, VIADEV_REG(viadev, OFFSET_STATUS)); /* ack */
outb(val, VIADEV_REG(viadev, OFFSET_CONTROL));
if (!(inb(VIADEV_REG(viadev, OFFSET_STATUS)) & VIA_REG_STAT_ACTIVE))
count = inl(VIADEV_REG(viadev, OFFSET_CURR_COUNT)) & 0xffffff;
ptr = inl(VIADEV_REG(viadev, OFFSET_CURR_PTR));
count = inl(VIADEV_REG(viadev, OFFSET_CURR_COUNT));
status = inb(VIADEV_REG(viadev, OFFSET_STATUS));
outl((u32)viadev->table.addr, VIADEV_REG(viadev, OFFSET_TABLE_PTR));
VIA_REG_TYPE_INT_FLAG, VIADEV_REG(viadev, OFFSET_TYPE));
VIADEV_REG(viadev, OFFSET_CONTROL));
inb(VIADEV_REG(viadev, OFFSET_CONTROL));
outb(0x00, VIADEV_REG(viadev, OFFSET_CONTROL));
outb(0x03, VIADEV_REG(viadev, OFFSET_STATUS));
outb(0x00, VIADEV_REG(viadev, OFFSET_TYPE)); /* for via686 */
unsigned char c_status = inb(VIADEV_REG(viadev, OFFSET_STATUS));
outb(c_status, VIADEV_REG(viadev, OFFSET_STATUS)); /* ack */
outb(val, VIADEV_REG(viadev, OFFSET_CONTROL));
if (!(inb(VIADEV_REG(viadev, OFFSET_STATUS)) & VIA_REG_STAT_ACTIVE))
count = inl(VIADEV_REG(viadev, OFFSET_CURR_COUNT)) & 0xffffff;
ptr = inl(VIADEV_REG(viadev, OFFSET_CURR_PTR));
outl((u32)viadev->table.addr, VIADEV_REG(viadev, OFFSET_TABLE_PTR));
VIADEV_REG(viadev, OFFSET_TYPE));