void AC97_write_codec(unsigned char ucReg, unsigned short usData) { g_pAC97Reg->AC_CODEC_CMD = CMD_WRITE | CMD_ADDRESS(ucReg) | CMD_DATA(usData); DelayLoop(CMD_DELAY); g_pAC97Reg->AC_CODEC_CMD |= CMD_READ; //To receive SLOTREQ bits when VRA is '1' DelayLoop(CMD_DELAY); }
unsigned short AC97_read_codec(unsigned char ucReg) { unsigned short usVal; // Read Dummy usVal = STATUS_DATA(g_pAC97Reg->AC_CODEC_STAT); DelayLoop(CMD_DELAY); g_pAC97Reg->AC_CODEC_CMD = CMD_READ | CMD_ADDRESS(ucReg) | CMD_DATA(0x0); DelayLoop(CMD_DELAY); // Read Value usVal = STATUS_DATA(g_pAC97Reg->AC_CODEC_STAT); DelayLoop(CMD_DELAY); g_pAC97Reg->AC_CODEC_CMD |= CMD_READ; //To receive SLOTREQ bits when VRA is '1' DelayLoop(CMD_DELAY); return usVal; }
void device::data_talk(int secondary_address) { DMSG("> iec_data_talk"); secondary_command( CMD_DATA(secondary_address), true ); DMSG("< iec_data_talk"); }
void device::data_listen(int secondary_address) { DMSG("> iec_data_listen"); secondary_command( CMD_DATA(secondary_address), false ); DMSG("< iec_data_listen"); }