void vSetHdmiIecI2s(u8 bIn) { u8 bData; MT8193_AUDIO_FUNC(); if(bIn == SV_SPDIF) { bData=bReadByteHdmiGRL(GRL_CFG1); if((bData&CFG1_SPDIF)==0) { bData |= CFG1_SPDIF; vWriteByteHdmiGRL(GRL_CFG1, bData); } } else { bData=bReadByteHdmiGRL(GRL_CFG1); if(bData&CFG1_SPDIF) { bData &= ~CFG1_SPDIF; vWriteByteHdmiGRL(GRL_CFG1, bData); } bData=bReadByteHdmiGRL(GRL_CFG1); } }
void vSetHDMIAudioIn(void) { u8 bData2; MT8193_AUDIO_FUNC(); bData2 = vCheckPcmBitSize(0); vSetChannelSwap(LFE_CC_SWAP); vEnableIecTxRaw(); vSetHdmiI2SDataFmt(I2S_16BIT); if (bData2 == PCM_24BIT) vAOUT_BNUM_SEL(AOUT_24BIT); else vAOUT_BNUM_SEL(AOUT_16BIT); vSetHdmiHighBitrate(FALSE); vDSTNormalDouble(FALSE); vEnableDSTConfig(FALSE); vDisableDsdConfig(); vSetHdmiI2SChNum(2, 0); vSetHdmiIecI2s(SV_I2S); }
void vHDMIAVMute(void) { MT8193_AUDIO_FUNC(); vBlackHDMIOnly(); MuteHDMIAudio(); }
void vSetHdmiHighBitrate(u8 fgHighBitRate) { u8 bData; MT8193_AUDIO_FUNC(); if(fgHighBitRate ==TRUE) { bData=bReadByteHdmiGRL(GRL_AOUT_BNUM_SEL); bData |= HIGH_BIT_RATE_PACKET_ALIGN; vWriteByteHdmiGRL(GRL_AOUT_BNUM_SEL, bData); udelay(100);//1ms bData=bReadByteHdmiGRL(GRL_AUDIO_CFG); bData |= HIGH_BIT_RATE; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); } else { bData=bReadByteHdmiGRL(GRL_AOUT_BNUM_SEL); bData &= ~HIGH_BIT_RATE_PACKET_ALIGN; vWriteByteHdmiGRL(GRL_AOUT_BNUM_SEL, bData); bData=bReadByteHdmiGRL(GRL_AUDIO_CFG); bData &= ~HIGH_BIT_RATE; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); } }
void MuteHDMIAudio(void) { u8 bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData |= AUDIO_ZERO; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); }
void vHDMIAVUnMute(void) { MT8193_AUDIO_FUNC(); if (_bflagvideomute == FALSE) vUnBlackHDMIOnly(); if (_bflagaudiomute == FALSE) UnMuteHDMIAudio(); }
void vEnableIecTxRaw(void) { u8 bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_MIX_CTRL); bData |= MIX_CTRL_FLAT; vWriteByteHdmiGRL(GRL_MIX_CTRL, bData); }
void vEnableNCTSAutoWrite(void) { u8 bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_DIVN); bData |= NCTS_WRI_ANYTIME; /* enabel N-CTS can be written in any time */ vWriteByteHdmiGRL(GRL_DIVN, bData); }
void vDisableDsdConfig(void) { u8 bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData &= ~SACD_SEL; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); }
void UnMuteHDMIAudio(void) { BYTE bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData &= ~AUDIO_ZERO; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); }
void vSetHdmiI2SChNum(u8 bChNum, u8 bChMapping) { u8 bData, bData1, bData2, bData3; MT8193_AUDIO_FUNC(); if (bChNum == 2) /* I2S 2ch */ { bData = 0x04; /* 2ch data */ bData1 = 0x50; /* data0 */ } else if ((bChNum == 3) || (bChNum == 4)) /* I2S 2ch */ { if ((bChNum == 4) && (bChMapping == 0x08)) { bData = 0x14; /* 4ch data */ } else { bData = 0x0c; /* 4ch data */ } bData1 = 0x50; /* data0 */ } else if ((bChNum == 6) || (bChNum == 5)) /* I2S 5.1ch */ { if ((bChNum == 6) && (bChMapping == 0x0E)) { bData = 0x3C; /* 6.0 ch data */ bData1 = 0x50; /* data0 */ } else { bData = 0x1C; /* 5.1ch data, 5/0ch */ bData1 = 0x50; /* data0 */ } } else if (bChNum == 8) /* I2S 5.1ch */ { bData = 0x3C; /* 7.1ch data */ bData1 = 0x50; /* data0 */ } else if (bChNum == 7) /* I2S 6.1ch */ { bData = 0x3C; /* 6.1ch data */ bData1 = 0x50; /* data0 */ } else { bData = 0x04; /* 2ch data */ bData1 = 0x50; /* data0 */ } bData2 = 0xc6; bData3 = 0xfa; vWriteByteHdmiGRL(GRL_CH_SW0, bData1); vWriteByteHdmiGRL(GRL_CH_SW1, bData2); vWriteByteHdmiGRL(GRL_CH_SW2, bData3); vWriteByteHdmiGRL(GRL_I2S_UV, bData); /* vDisableDsdConfig(); */ }
void vAudioPacketOff(u8 bOn) { u8 bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_SHIFT_R2); if (bOn) bData |= 0x40; else bData &= ~0x40; vWriteByteHdmiGRL(GRL_SHIFT_R2, bData); }
void vHwNCTSOnOff(u8 bHwNctsOn) { u8 bData; MT8193_AUDIO_FUNC(); bData=bReadByteHdmiGRL(GRL_CTS_CTRL); if(bHwNctsOn == TRUE) bData &= ~CTS_CTRL_SOFT; else bData |= CTS_CTRL_SOFT; vWriteByteHdmiGRL(GRL_CTS_CTRL, bData); }
void vHalHDMI_NCTS(u8 bAudioFreq, u8 bPix, u8 bDeepMode) { u8 bTemp, bData, bData1[NCTS_BYTES]; u32 u4Temp, u4NTemp=0; MT8193_AUDIO_FUNC(); MT8193_AUDIO_LOG("bAudioFreq=%d, bPix=%d, bDeepMode=%d\n", bAudioFreq, bPix, bDeepMode); bData=0; vWriteByteHdmiGRL(GRL_NCTS, bData);//YT suggest 3 dummy N-CTS vWriteByteHdmiGRL(GRL_NCTS, bData); vWriteByteHdmiGRL(GRL_NCTS, bData); for(bTemp=0; bTemp<NCTS_BYTES; bTemp++) { bData1[bTemp] = 0; } if(bDeepMode == HDMI_NO_DEEP_COLOR) { for(bTemp=0; bTemp<NCTS_BYTES; bTemp++) { if((bAudioFreq < 7) && (bPix < 9)) bData1[bTemp]= HDMI_NCTS[bAudioFreq][bPix][bTemp]; } u4NTemp = (bData1[4]<<16)|(bData1[5]<<8)|(bData1[6]);//N u4Temp = (bData1[0]<<24)|(bData1[1]<<16)|(bData1[2]<<8)|(bData1[3]);//CTS } else { for(bTemp=0; bTemp<NCTS_BYTES; bTemp++) { if((bAudioFreq < 7) && (bPix < 9)) bData1[bTemp] = HDMI_NCTS[bAudioFreq][bPix][bTemp]; } u4NTemp = (bData1[4]<<16)|(bData1[5]<<8)|(bData1[6]);//N u4Temp = (bData1[0]<<24)|(bData1[1]<<16)|(bData1[2]<<8)|(bData1[3]); if(bDeepMode == HDMI_DEEP_COLOR_10_BIT) { u4Temp = (u4Temp >> 2)*5;// (*5/4) } else if(bDeepMode == HDMI_DEEP_COLOR_12_BIT)
void vHwNCTSOnOff(u8 bHwNctsOn) { u8 bData; MT8193_AUDIO_FUNC(); if(i4SharedInfo(SI_EDID_VSDB_EXIST) == FALSE) return; bData=bReadByteHdmiGRL(GRL_CTS_CTRL); if(bHwNctsOn == TRUE) bData &= ~CTS_CTRL_SOFT; else bData |= CTS_CTRL_SOFT; vWriteByteHdmiGRL(GRL_CTS_CTRL, bData); }
void vEnableDSTConfig(u8 fgEnable) { u8 bData; MT8193_AUDIO_FUNC(); if (fgEnable) { bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData |= SACD_DST; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); } else { bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData &= ~SACD_DST; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); } }
void vDSTNormalDouble(u8 fgEnable) { u8 bData; MT8193_AUDIO_FUNC(); if (fgEnable) { bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData |= DST_NORMAL_DOUBLE; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); } else { bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData &= ~DST_NORMAL_DOUBLE; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); } }
void vSetHdmiI2SDataFmt(u8 bFmt) { u8 bData; MT8193_AUDIO_FUNC(); bData=bReadByteHdmiGRL(GRL_CFG0); bData &=~0x33; switch(bFmt) { case RJT_24BIT: bData |= (CFG0_I2S_MODE_RTJ|CFG0_I2S_MODE_24Bit); break; case RJT_16BIT: bData |= (CFG0_I2S_MODE_RTJ|CFG0_I2S_MODE_16Bit); break; case LJT_24BIT: bData |= (CFG0_I2S_MODE_LTJ|CFG0_I2S_MODE_24Bit); break; case LJT_16BIT: bData |= (CFG0_I2S_MODE_LTJ|CFG0_I2S_MODE_16Bit); break; case I2S_24BIT: bData |= (CFG0_I2S_MODE_I2S|CFG0_I2S_MODE_24Bit); break; case I2S_16BIT: bData |= (CFG0_I2S_MODE_I2S|CFG0_I2S_MODE_16Bit); break; } vWriteByteHdmiGRL(GRL_CFG0, bData); }
void vAOUT_BNUM_SEL(BYTE bBitNum) { MT8193_AUDIO_FUNC(); vWriteByteHdmiGRL(GRL_AOUT_BNUM_SEL, bBitNum); }
void vSetChannelSwap(u8 u1SwapBit) { MT8193_AUDIO_FUNC(); vWriteHdmiGRLMsk(GRL_CH_SWAP, u1SwapBit, 0xff); }
void vHDMIAVUnMute(void) { MT8193_AUDIO_FUNC(); vUnBlackHDMIOnly(); UnMuteHDMIAudio(); }
void vSetHdmiI2SChNum(u8 bChNum, u8 bChMapping) { u8 bData, bData1, bData2, bData3; MT8193_AUDIO_FUNC(); if(bChNum==2)//I2S 2ch { bData = 0x04;//2ch data bData1 = 0x50;//data0 } else if((bChNum==3)||(bChNum==4))//I2S 2ch { if((bChNum==4)&&(bChMapping == 0x08)) { bData = 0x14;//4ch data } else { bData = 0x0c;//4ch data } bData1 = 0x50;//data0 } else if((bChNum == 6)||(bChNum == 5))//I2S 5.1ch { if((bChNum==6)&&(bChMapping == 0x0E)) { bData = 0x3C;//6.0 ch data bData1 = 0x50;//data0 } else { bData = 0x1C;//5.1ch data, 5/0ch bData1 = 0x50;//data0 } } else if(bChNum == 8)//I2S 5.1ch { bData = 0x3C;//7.1ch data bData1 = 0x50;//data0 } else if(bChNum == 7)//I2S 6.1ch { bData = 0x3C;//6.1ch data bData1 = 0x50;//data0 } else { bData = 0x04;//2ch data bData1 = 0x50;//data0 } bData2=0xc6; bData3=0xfa; vWriteByteHdmiGRL(GRL_CH_SW0, bData1); vWriteByteHdmiGRL(GRL_CH_SW1, bData2); vWriteByteHdmiGRL(GRL_CH_SW2, bData3); vWriteByteHdmiGRL(GRL_I2S_UV, bData); //vDisableDsdConfig(); }