TRID_REG
outb(0, TRID_REG(trident, LEGACY_DMAR15));
outb(0x54, TRID_REG(trident, LEGACY_DMAR11));
outl(voice->LBA, TRID_REG(trident, LEGACY_DMAR0));
outb((ESO_bytes & 0x00ff0000) >> 16, TRID_REG(trident, LEGACY_DMAR6));
outw((ESO_bytes & 0x0000ffff), TRID_REG(trident, LEGACY_DMAR4));
outw(val, TRID_REG(trident, T4D_SBDELTA_DELTA_R));
outl((val << 16) | val, TRID_REG(trident, T4D_SBBL_SBCL));
outl(data, TRID_REG(trident, DX_ACR1_AC97_R));
data = inl(TRID_REG(trident, DX_ACR1_AC97_R));
outl(data, TRID_REG(trident, treg));
outb(((voice->number & 0x3f) | 0x80), TRID_REG(trident, T4D_RCI + voice->foldback_chan));
data = inl(TRID_REG(trident, treg));
outl(data, TRID_REG(trident, SI_AC97_READ));
data = inl(TRID_REG(trident, SI_AC97_READ));
outw((RESO & 0xffff), TRID_REG(trident, NX_SPESO));
outb((RESO >> 16), TRID_REG(trident, NX_SPESO + 2));
outl((LBAO & 0xfffffffc), TRID_REG(trident, NX_SPLBA));
outw((voice->CSO & 0xffff), TRID_REG(trident, NX_SPCTRL_SPCSO));
outb((voice->CSO >> 16), TRID_REG(trident, NX_SPCTRL_SPCSO + 2));
outb(trident->spdif_pcm_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS));
outl(trident->spdif_pcm_bits, TRID_REG(trident, SI_SPDIF_CS));
temp = inl(TRID_REG(trident, T4D_LFO_GC_CIR));
outl(temp, TRID_REG(trident, T4D_LFO_GC_CIR));
temp = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL));
outl(temp, TRID_REG(trident, SI_SERIAL_INTF_CTRL));
val = inl(TRID_REG(trident, T4D_STIMER)) & 0x00ffffff;
outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS));
outb(val, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
outl(trident->spdif_pcm_bits, TRID_REG(trident, SI_SPDIF_CS));
val = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) | SPDIF_EN;
outl(val, TRID_REG(trident, SI_SERIAL_INTF_CTRL));
outl(what, TRID_REG(trident, T4D_STOP_B));
val = inl(TRID_REG(trident, T4D_AINTEN_B));
outl(val, TRID_REG(trident, T4D_AINTEN_B));
outl(what, TRID_REG(trident, T4D_START_B));
outb(trident->bDMAStart, TRID_REG(trident, T4D_SBCTRL_SBE2R_SBDD));
outb(0x00, TRID_REG(trident, T4D_SBCTRL_SBE2R_SBDD));
outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR));
cso = inw(TRID_REG(trident, CH_DX_CSO_ALPHA_FMS + 2));
cso = (unsigned int) inl(TRID_REG(trident, CH_NX_DELTA_CSO)) & 0x00ffffff;
result = inw(TRID_REG(trident, T4D_SBBL_SBCL));
result = inl(TRID_REG(trident, NX_SPCTRL_SPCSO)) & 0x00ffffff;
if ((inw(TRID_REG(trident, address)) & DX_AC97_BUSY_WRITE) == 0)
outb(trident->spdif_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
outl(trident->spdif_bits, TRID_REG(trident, NX_SPCSTATUS));
outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS));
temp = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL));
outl(temp, TRID_REG(trident, SI_SERIAL_INTF_CTRL));
if ((inw(TRID_REG(trident, address)) & NX_AC97_BUSY_WRITE) == 0)
outb(0x00, TRID_REG(trident, T4D_RCI + voice->foldback_chan));
if ((inw(TRID_REG(trident, address)) & (SI_AC97_BUSY_WRITE)) == 0)
outl(data, TRID_REG(trident, address));
if ((inb(TRID_REG(trident, NX_SPCTRL_SPCSO + 3)) & 0x10) == 0) {
outl(trident->spdif_bits, TRID_REG(trident, NX_SPCSTATUS));
outb(trident->spdif_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS));
temp = inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) & ~SPDIF_EN;
outl(temp, TRID_REG(trident, SI_SERIAL_INTF_CTRL));
val = inl(TRID_REG(trident, T4D_LFO_GC_CIR));
if ((inb(TRID_REG(trident, NX_SPCTRL_SPCSO + 3)) & 0x10) == 0)
outl(trident->spdif_bits, TRID_REG(trident, NX_SPCSTATUS));
outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS));
outl(val, TRID_REG(trident, T4D_LFO_GC_CIR));
outl(trident->spdif_pcm_bits, TRID_REG(trident, NX_SPCSTATUS));
outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS));
val = trident->ac97_ctrl = inl(TRID_REG(trident, NX_ACR0_AC97_COM_STAT));
val = trident->ac97_ctrl = inl(TRID_REG(trident, NX_ACR0_AC97_COM_STAT));
outl(trident->ac97_ctrl = val, TRID_REG(trident, NX_ACR0_AC97_COM_STAT));
outl(trident->musicvol_wavevol = val, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL));
tmp = inl(TRID_REG(trident, T4D_LFO_GC_CIR));
outl(tmp, TRID_REG(trident, T4D_LFO_GC_CIR));
outl(mask, TRID_REG(trident, reg));
(inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) & SI_AC97_PRIMARY_READY) != 0) {
outl(trident->musicvol_wavevol = 0x00000000, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL));
outl(trident->musicvol_wavevol = 0xffff0000, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL));
return inb(TRID_REG(chip, GAMEPORT_LEGACY));
outb(0xff, TRID_REG(chip, GAMEPORT_LEGACY));
*buttons = (~inb(TRID_REG(chip, GAMEPORT_LEGACY)) >> 4) & 0xf;
axes[i] = inw(TRID_REG(chip, GAMEPORT_AXES + i * 2));
outl(mask, TRID_REG(trident, reg));
outb(GAMEPORT_MODE_ADC, TRID_REG(chip, GAMEPORT_GCR));
outb(0, TRID_REG(chip, GAMEPORT_GCR));
outb(0x00, TRID_REG(trident, SI_AC97_GPIO));
outl(i, TRID_REG(trident, SI_SERIAL_INTF_CTRL));
outl(i, TRID_REG(trident, SI_SERIAL_INTF_CTRL));
if ((inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) & SI_AC97_PRIMARY_READY) != 0)
inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)));
if ((inl(TRID_REG(trident, SI_SERIAL_INTF_CTRL)) & SI_AC97_SECONDARY_READY) != 0)
outl(BANK_B_EN, TRID_REG(trident, T4D_LFO_GC_CIR));
outl(0xffffffff, TRID_REG(trident, T4D_STOP_A));
outl(0xffffffff, TRID_REG(trident, T4D_STOP_B));
outl(0, TRID_REG(trident, T4D_AINTEN_A));
outl(0, TRID_REG(trident, T4D_AINTEN_B));
outl(0x00000001, TRID_REG(trident, DX_ACR2_AC97_COM_STAT));
outl(0x00000000, TRID_REG(trident, DX_ACR2_AC97_COM_STAT));
outl(trident->ac97_ctrl, TRID_REG(trident, DX_ACR2_AC97_COM_STAT));
if ((inl(TRID_REG(trident, DX_ACR2_AC97_COM_STAT)) & 0x0010) != 0)
outl(0x00000001, TRID_REG(trident, NX_ACR0_AC97_COM_STAT));
outl(0x00000000, TRID_REG(trident, NX_ACR0_AC97_COM_STAT));
if ((inl(TRID_REG(trident, NX_ACR0_AC97_COM_STAT)) & 0x0008) != 0)
inl(TRID_REG(trident, NX_ACR0_AC97_COM_STAT)));
outl(trident->ac97_ctrl, TRID_REG(trident, NX_ACR0_AC97_COM_STAT));
outl(NX_SB_IRQ_DISABLE, TRID_REG(trident, T4D_MISCINT));
outl(i, TRID_REG(trident, NX_TLBC));
outl(0, TRID_REG(trident, NX_TLBC));
outl(trident->spdif_bits, TRID_REG(trident, NX_SPCSTATUS));
outb(trident->spdif_ctrl, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
outl(trident->spdif_bits, TRID_REG(trident, SI_SPDIF_CS));
trident->midi_port = TRID_REG(trident, T4D_MPU401_BASE);
outb(0x00, TRID_REG(trident, NX_SPCTRL_SPCSO + 3));
outl(0, TRID_REG(trident, SI_SERIAL_INTF_CTRL));
outl(0, TRID_REG(trident, NX_TLBC));
audio_int = inl(TRID_REG(trident, T4D_MISCINT));
stimer = inl(TRID_REG(trident, T4D_STIMER)) & 0x00ffffff;
chn_int = inl(TRID_REG(trident, T4D_AINT_A));
outl(chn_int, TRID_REG(trident, T4D_AINT_A)); /* ack */
chn_int = inl(TRID_REG(trident, T4D_AINT_B));
outl(mask, TRID_REG(trident, T4D_STOP_B));
tmp = inw(TRID_REG(trident, T4D_SBBL_SBCL));
tmp = inl(TRID_REG(trident, NX_SPCTRL_SPCSO)) & 0x00ffffff;
outl(chn_int, TRID_REG(trident, T4D_AINT_B)); /* ack */
inb(TRID_REG(trident, T4D_MPUR0));
outl(mask[0], TRID_REG(trident, T4D_STOP_A));
val = inl(TRID_REG(trident, T4D_AINTEN_A));
outl(val & ~mask[0], TRID_REG(trident, T4D_AINTEN_A));
outl(mask[1], TRID_REG(trident, T4D_STOP_B));
val = inl(TRID_REG(trident, T4D_AINTEN_B));
outl(val & ~mask[1], TRID_REG(trident, T4D_AINTEN_B));
outl(trident->musicvol_wavevol, TRID_REG(trident, T4D_MUSICVOL_WAVEVOL));
outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR));
outl(regs[0], TRID_REG(trident, CH_START + 0));
outl(regs[1], TRID_REG(trident, CH_START + 4));
outl(regs[2], TRID_REG(trident, CH_START + 8));
outl(regs[3], TRID_REG(trident, CH_START + 12));
outl(regs[4], TRID_REG(trident, CH_START + 16));
regs[0], inl(TRID_REG(trident, CH_START + 0)));
regs[1], inl(TRID_REG(trident, CH_START + 4)));
regs[2], inl(TRID_REG(trident, CH_START + 8)));
regs[3], inl(TRID_REG(trident, CH_START + 12)));
regs[4], inl(TRID_REG(trident, CH_START + 16)));
outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR));
outw(voice->CSO, TRID_REG(trident, CH_DX_CSO_ALPHA_FMS) + 2);
(voice->CSO & 0x00ffffff), TRID_REG(trident, CH_NX_DELTA_CSO));
outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR));
outw(voice->ESO, TRID_REG(trident, CH_DX_ESO_DELTA) + 2);
TRID_REG(trident, CH_NX_DELTA_ESO));
outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR));
outb(voice->Vol >> 2, TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC + 2));
TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC));
outb(voice, TRID_REG(trident, T4D_LFO_GC_CIR));
val = inl(TRID_REG(trident, CH_LBA));
outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR));
TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC + 3));
val = inl(TRID_REG(trident, CH_GVSEL_PAN_VOL_CTRL_EC));
outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR));
TRID_REG(trident, trident->device == TRIDENT_DEVICE_ID_NX ?
outb(voice->number, TRID_REG(trident, T4D_LFO_GC_CIR));
TRID_REG(trident, trident->device == TRIDENT_DEVICE_ID_NX ?
val = inl(TRID_REG(trident, CH_DX_CSO_ALPHA_FMS));
val = inl(TRID_REG(trident, CH_DX_ESO_DELTA));
val = inl(TRID_REG(trident, CH_DX_FMC_RVOL_CVOL));
val = inl(TRID_REG(trident, CH_NX_DELTA_CSO));
val = inl(TRID_REG(trident, CH_NX_DELTA_ESO));
val = inl(TRID_REG(trident, CH_NX_ALPHA_FMS_FMC_RVOL_CVOL));