snd_cs46xx_pokeBA0
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, (tmp & (~ACCTL_ESYN)) | ACCTL_VFRM );
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, tmp | ACCTL_ESYN | ACCTL_VFRM );
snd_cs46xx_pokeBA0(chip, BA0_ACCAD, reg);
snd_cs46xx_pokeBA0(chip, BA0_ACCDA, 0);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL,/* clear ACCTL_DCV */ ACCTL_CRW |
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, ACCTL_DCV | ACCTL_CRW |
snd_cs46xx_pokeBA0(chip, BA0_HICR, HICR_CHGM | HICR_IEV);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, ACCTL_DCV | ACCTL_TC |
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_MIDWP, c);
snd_cs46xx_pokeBA0(chip, BA0_HICR, HICR_CHGM | HICR_IEV);
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR,
snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR,
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR, val1 & ~EGPIODR_GPOE0); /* disable */
snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR, val2 & ~EGPIOPTR_GPPT0); /* disable */
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, MIDCR_MRST);
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_ACCAD , reg);
snd_cs46xx_pokeBA0(chip, BA0_ACCDA , val);
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, /* clear ACCTL_DCV */ ACCTL_VFRM |
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, ACCTL_DCV | ACCTL_VFRM |
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_MIDWP, byte);
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_MIDCR, chip->midcr);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, ACCTL_DCV | ACCTL_TC |
snd_cs46xx_pokeBA0(chip, BA0_JSPT, 0xFF); //outb(gameport->io, 0xFF);
snd_cs46xx_pokeBA0(chip, BA0_JSIO, 0xFF); // ?
snd_cs46xx_pokeBA0(chip, BA0_JSCTL, JSCTL_SP_MEDIUM_SLOW);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, 0);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, tmp);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, 0);
snd_cs46xx_pokeBA0(chip, BA0_SERMC1, 0);
snd_cs46xx_pokeBA0(chip, BA0_SERACC, SERACC_HSP | SERACC_CHIP_TYPE_2_0 |
snd_cs46xx_pokeBA0(chip, BA0_SERACC, SERACC_HSP | SERACC_CHIP_TYPE_1_03); /* 1.03 codec */
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, 0);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL2, 0);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, ACCTL_RSTN);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL2, ACCTL_RSTN);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, ACCTL_ESYN | ACCTL_RSTN);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL2, ACCTL_ESYN | ACCTL_RSTN);
snd_cs46xx_pokeBA0(chip, BA0_SERMC1, SERMC1_PTC_AC97);
snd_cs46xx_pokeBA0(chip, BA0_PLLCC, PLLCC_LPF_1050_2780_KHZ | PLLCC_CDR_73_104_MHZ);
snd_cs46xx_pokeBA0(chip, BA0_PLLM, 0x3a);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR2, CLKCR2_PDIVS_8);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, CLKCR1_PLLP);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, CLKCR1_PLLP | CLKCR1_SWCE);
snd_cs46xx_pokeBA0(chip, BA0_SERBCF, SERBCF_HBP);
snd_cs46xx_pokeBA0(chip, BA0_SERC1, SERC1_SO1F_AC97 | SERC1_SO1EN);
snd_cs46xx_pokeBA0(chip, BA0_SERC2, SERC2_SI1F_AC97 | SERC1_SO1EN);
snd_cs46xx_pokeBA0(chip, BA0_SERMC1, SERMC1_PTC_AC97 | SERMC1_MSPE);
snd_cs46xx_pokeBA0(chip, BA0_SERC7, SERC7_ASDI2EN);
snd_cs46xx_pokeBA0(chip, BA0_SERC3, 0);
snd_cs46xx_pokeBA0(chip, BA0_SERC4, 0);
snd_cs46xx_pokeBA0(chip, BA0_SERC5, 0);
snd_cs46xx_pokeBA0(chip, BA0_SERC6, 1);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL, ACCTL_VFRM | ACCTL_ESYN | ACCTL_RSTN);
snd_cs46xx_pokeBA0(chip, BA0_ACCTL2, ACCTL_VFRM | ACCTL_ESYN | ACCTL_RSTN);
snd_cs46xx_pokeBA0(chip, BA0_ACOSV, ACOSV_SLV3 | ACOSV_SLV4);
snd_cs46xx_pokeBA0(chip, BA0_HICR, HICR_IEV | HICR_CHGM);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, tmp | CLKCR1_SWCE);
snd_cs46xx_pokeBA0(chip, BA0_ACOSV, valid_slots);
snd_cs46xx_pokeBA0(chip, BA0_SERBWP, 0x1800);
snd_cs46xx_pokeBA0(chip, BA0_SERBAD, idx);
snd_cs46xx_pokeBA0(chip, BA0_SERBCM, SERBCM_WRC);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, tmp);
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR, EGPIODR_GPOE0);
snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR, EGPIODR_GPOE0);
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR,
snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR,
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR, val1 & ~EGPIODR_GPOE2); /* disable */
snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR, val2 & ~EGPIOPTR_GPPT2); /* disable */
snd_cs46xx_pokeBA0(chip, BA0_EGPIODR, EGPIODR_GPOE0);
snd_cs46xx_pokeBA0(chip, BA0_EGPIOPTR, EGPIODR_GPOE0);
snd_cs46xx_pokeBA0(chip, saved_regs[i], chip->saved_regs[i]);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, tmp | CLKCR1_SWCE);
snd_cs46xx_pokeBA0(chip, BA0_SERBWP, 0);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, tmp);
snd_cs46xx_pokeBA0(chip, BA0_SERBAD, idx);
snd_cs46xx_pokeBA0(chip, BA0_SERBCM, SERBCM_WRC);
snd_cs46xx_pokeBA0(chip, BA0_CLKCR1, tmp);
snd_cs46xx_pokeBA0(chip, BA0_ACOSV, valid_slots);
snd_cs46xx_pokeBA0(chip, BA0_ASER_MASTER, 0x1 );
snd_cs46xx_pokeBA0(chip, BA0_ASER_FADDR, 0);
snd_cs46xx_pokeBA0(chip, BA0_ASER_FADDR, ( 0x8000 | ((SP_SPDOUT_FIFO >> 4) << 4) ));