A_IOCFG
emu->saved_a_iocfg = inw(emu->port + A_IOCFG);
outw(emu->saved_a_iocfg, emu->port + A_IOCFG);
tmp = inw(emu->port + A_IOCFG) & ~0x8; /* Clear bit 3 */
outw(tmp, emu->port + A_IOCFG);
outw(0x76, emu->port + A_IOCFG); /* Windows uses 0x3f76 */
tmp = inw(emu->port + A_IOCFG);
outw(tmp | 0x4, emu->port + A_IOCFG); /* Set bit 2 for mic input */
tmp = inw(emu->port + A_IOCFG);
u16 reg = inw(emu->port + A_IOCFG);
outw(reg | A_IOCFG_GPOUT2, emu->port + A_IOCFG);
outw(reg | A_IOCFG_GPOUT1 | A_IOCFG_GPOUT2, emu->port + A_IOCFG);
outw(reg, emu->port + A_IOCFG);
u16 reg = inw(emu->port + A_IOCFG);
outw(reg | A_IOCFG_GPOUT0, emu->port + A_IOCFG);
outw(inw(emu->port + A_IOCFG) & ~0x44, emu->port + A_IOCFG);
outw(inw(emu->port + A_IOCFG) | 0x0040, emu->port + A_IOCFG);
outw(inw(emu->port + A_IOCFG) | 0x0060, emu->port + A_IOCFG);
outw(inw(emu->port + A_IOCFG) | 0x0080, emu->port + A_IOCFG);
gpio = inw(emu->port + A_IOCFG);
outw(gpio | 0x4, emu->port + A_IOCFG);
outw(gpio & ~0x4, emu->port + A_IOCFG);
ucontrol->value.integer.value[0] = inw(emu->port + A_IOCFG) & A_IOCFG_GPOUT0 ? 1 : 0;
reg = inw(emu->port + A_IOCFG);
outw(reg | val, emu->port + A_IOCFG);