BA0READ4
mem = BA0READ4(sc, CS4280_CLKCR1) | CLKCR1_SWCE;
while ((BA0READ4(sc, CS428X_ACSTS) & ACSTS_CRDY) == 0) {
while ((BA0READ4(sc, CS428X_ACISV) & (ACISV_ISV3 | ACISV_ISV4)) !=
mem = BA0READ4(sc, CS4280_MIDCR) & ~MIDCR_MASK;
DPRINTF(("midi reset: 0x%x\n", BA0READ4(sc, CS4280_MIDCR)));
mem = BA0READ4(sc, CS4280_CLKCR1);
while (BA0READ4(sc, CS4280_SERBST) & SERBST_WBSY) {
mem = BA0READ4(sc, CS4280_MIDCR) & ~MIDCR_MASK;
if (mem != BA0READ4(sc, CS4280_MIDCR)) {
DPRINTF(("midi_open: MIDCR=%d\n", BA0READ4(sc, CS4280_MIDCR)));
DPRINTF(("MIDCR=0x%x\n", BA0READ4(sc, CS4280_MIDCR)));
mem = BA0READ4(sc, CS4280_MIDCR);
if ((BA0READ4(sc, CS4280_MIDSR) & MIDSR_TBF) == 0) {
mem = BA0READ4(sc, CS4280_MIDWP) & ~MIDWP_MASK;
if (mem != BA0READ4(sc, CS4280_MIDWP)) {
mem, BA0READ4(sc, CS4280_MIDWP)));
intr = BA0READ4(sc, CS4280_HISR);
BA0READ4(sc, CS4280_MIDSR)));
((BA0READ4(sc, CS4280_MIDSR) & MIDSR_RBE) == 0)) {
data = BA0READ4(sc, CS4280_MIDRP) & MIDRP_MASK;
if ((BA0READ4(sc, CS4280_MIDSR) & MIDSR_TBF) == 0) {
((BA0READ4(sc, CS4280_MIDSR) & MIDSR_TBF) == 0)) {
while ((BA0READ4(sc, CS428X_ACISV) & (ACISV_ISV3 | ACISV_ISV4)) !=
mem = BA0READ4(sc, CS4281_SERMC);
BA0WRITE4(sc, CS4281_FCR0, (BA0READ4(sc, CS4281_FCR0) & ~FCRn_FEN));
BA0WRITE4(sc, CS4281_FCR1, (BA0READ4(sc, CS4281_FCR1) & ~FCRn_FEN));
BA0WRITE4(sc, CS4281_FCR2, (BA0READ4(sc, CS4281_FCR2) & ~FCRn_FEN));
BA0WRITE4(sc, CS4281_FCR3, (BA0READ4(sc, CS4281_FCR3) & ~FCRn_FEN));
BA0READ4(sc, CS4281_HIMR) & dat32);
intr = BA0READ4(sc, CS4281_HISR);
hdsr0 = BA0READ4(sc, CS4281_HDSR0); /* clear intr condition */
hdsr1 = BA0READ4(sc, CS4281_HDSR1); /* clear intr condition */
(int)BA0READ4(sc, CS4281_DCA0),
(int)BA0READ4(sc, CS4281_DCC0)));
DPRINTF((" CP DMA 0x%x(%d)", (int)BA0READ4(sc, CS4281_DCA1),
(int)BA0READ4(sc, CS4281_DCC1)));
BA0WRITE4(sc, CS4281_DCR0, BA0READ4(sc, CS4281_DCR0) | DCRn_MSK);
BA0WRITE4(sc, CS4281_DCR1, BA0READ4(sc, CS4281_DCR1) | DCRn_MSK);
BA0WRITE4(sc, CS4281_DCR0, BA0READ4(sc, CS4281_DCR0) | DCRn_MSK);
fmt = BA0READ4(sc, CS4281_DMR0) & ~DMRn_FMTMSK;
BA0WRITE4(sc, CS4281_DCR0, BA0READ4(sc, CS4281_DCR0) & ~DCRn_MSK);
DPRINTF(("HICR =0x%08x(expected 0x00000001)\n", BA0READ4(sc, CS4281_HICR)));
DPRINTF(("HIMR =0x%08x(expected 0x00f0fc3f)\n", BA0READ4(sc, CS4281_HIMR)));
DPRINTF(("DMR0 =0x%08x(expected 0x2???0018)\n", BA0READ4(sc, CS4281_DMR0)));
DPRINTF(("DCR0 =0x%08x(expected 0x00030000)\n", BA0READ4(sc, CS4281_DCR0)));
DPRINTF(("FCR0 =0x%08x(expected 0x81000f00)\n", BA0READ4(sc, CS4281_FCR0)));
BA0READ4(sc, CS4281_DACSR)));
DPRINTF(("SRCSA=0x%08x(expected 0x0b0a0100)\n", BA0READ4(sc, CS4281_SRCSA)));
BA0READ4(sc, CS4281_SSPM) & SSPM_PSRCEN));
BA0WRITE4(sc, CS4281_DCR1, BA0READ4(sc, CS4281_DCR1) | DCRn_MSK);
fmt = BA0READ4(sc, CS4281_DMR1) & ~DMRn_FMTMSK;
BA0WRITE4(sc, CS4281_DCR1, BA0READ4(sc, CS4281_DCR1) & ~DCRn_MSK);
DPRINTF(("HICR=0x%08x\n", BA0READ4(sc, CS4281_HICR)));
DPRINTF(("HIMR=0x%08x\n", BA0READ4(sc, CS4281_HIMR)));
DPRINTF(("DMR1=0x%08x\n", BA0READ4(sc, CS4281_DMR1)));
DPRINTF(("DCR1=0x%08x\n", BA0READ4(sc, CS4281_DCR1)));
sc->sc_suspend_state.cs4281.dcr0 = BA0READ4(sc, CS4281_DCR0);
sc->sc_suspend_state.cs4281.dmr0 = BA0READ4(sc, CS4281_DMR0);
sc->sc_suspend_state.cs4281.dbc0 = BA0READ4(sc, CS4281_DBC0);
sc->sc_suspend_state.cs4281.dba0 = BA0READ4(sc, CS4281_DBA0);
sc->sc_suspend_state.cs4281.dcr1 = BA0READ4(sc, CS4281_DCR1);
sc->sc_suspend_state.cs4281.dmr1 = BA0READ4(sc, CS4281_DMR1);
sc->sc_suspend_state.cs4281.dbc1 = BA0READ4(sc, CS4281_DBC1);
sc->sc_suspend_state.cs4281.dba1 = BA0READ4(sc, CS4281_DBA1);
BA0WRITE4(sc, CS4281_DCR0, BA0READ4(sc, CS4281_DCR0) | DCRn_MSK);
BA0WRITE4(sc, CS4281_DCR1, BA0READ4(sc, CS4281_DCR1) | DCRn_MSK);
while ((BA0READ4(sc, CS428X_ACSTS) & ACSTS_CRDY) == 0) {
while ((BA0READ4(sc, CS4281_ACSTS2) & ACSTS2_CRDY2) == 0) {
dat32 = BA0READ4(sc, CS428X_ACSTS) & ACSTS_CRDY;
dat32 = BA0READ4(sc, CS428X_ACISV) & (ACISV_ISV3 | ACISV_ISV4) ;
dat32 = BA0READ4(sc, CS4281_EPPMC);
while ((BA0READ4(sc, CS4281_CLKCR1) & (CLKCR1_DLLRDY | CLKCR1_CLKON))
while (!(BA0READ4(sc, CS4281_CLKCR1) & CLKCR1_DLLRDY)) {
while ((BA0READ4(sc, CS428X_ACSTS) & ACSTS_CRDY) == 0) {
while ((BA0READ4(sc, CS4281_ACSTS2) & ACSTS2_CRDY2) == 0) {
dat32 = BA0READ4(sc, CS428X_ACSTS) & ACSTS_CRDY;
dat32 = BA0READ4(sc, CS428X_ACISV) & (ACISV_ISV3 | ACISV_ISV4);
BA0READ4(sc, CS428X_ACSDA);
while ((BA0READ4(sc, CS428X_ACSTS) & ACSTS_VSTS) == 0) {
*ac97_data = BA0READ4(sc, CS428X_ACSDA);
while ((BA0READ4(sc, CS428X_ACCTL) & ACCTL_DCV)) {
BA0READ4(sc, CS428X_ACCTL));