ES1688P
inb(ES1688P(chip, ENABLE1)); /* ENABLE1 */
inb(ES1688P(chip, ENABLE1)); /* ENABLE1 */
inb(ES1688P(chip, ENABLE1)); /* ENABLE1 */
inb(ES1688P(chip, ENABLE2)); /* ENABLE2 */
inb(ES1688P(chip, ENABLE1)); /* ENABLE1 */
inb(ES1688P(chip, ENABLE2)); /* ENABLE2 */
inb(ES1688P(chip, ENABLE1)); /* ENABLE1 */
inb(ES1688P(chip, ENABLE1)); /* ENABLE1 */
inb(ES1688P(chip, ENABLE2)); /* ENABLE2 */
inb(ES1688P(chip, ENABLE1)); /* ENABLE1 */
inb(ES1688P(chip, ENABLE0)); /* ENABLE0 */
chip->port, inb(ES1688P(chip, READ)));
if (inb(ES1688P(chip, DATA_AVAIL)) & 0x80) {
major = inb(ES1688P(chip, READ));
minor = inb(ES1688P(chip, READ));
if ((inb(ES1688P(chip, STATUS)) & 0x80) == 0) {
outb(val, ES1688P(chip, COMMAND));
if (inb(ES1688P(chip, DATA_AVAIL)) & 0x80)
return inb(ES1688P(chip, READ));
ES1688P(chip, DATA_AVAIL), inb(ES1688P(chip, DATA_AVAIL)));
inb(ES1688P(chip, DATA_AVAIL)); /* ack interrupt */
outb(reg, ES1688P(chip, MIXER_ADDR));
outb(data, ES1688P(chip, MIXER_DATA));
outb(reg, ES1688P(chip, MIXER_ADDR));
result = inb(ES1688P(chip, MIXER_DATA));
outb(3, ES1688P(chip, RESET)); /* valid only for ESS chips, SB -> 1 */
outb(0, ES1688P(chip, RESET));
for (i = 0; i < 1000 && !(inb(ES1688P(chip, DATA_AVAIL)) & 0x80); i++);
if (inb(ES1688P(chip, READ)) != 0xaa) {
outb(gus->gf1.port & 0x040 ? 2 : 0, ES1688P(es1688, INIT1));
outb(gus->gf1.port & 0x020 ? 2 : 0, ES1688P(es1688, INIT1));
outb(gus->gf1.port & 0x010 ? 3 : 1, ES1688P(es1688, INIT1));