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 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 vEnableNotice(u8 bOn) { u8 bData; MT8193_VIDEO_FUNC(); if (bOn == TRUE) { bData = bReadByteHdmiGRL(GRL_CFG2); bData |= 0x40; /* temp. solve 720p issue. to avoid audio packet jitter problem */ vWriteByteHdmiGRL(GRL_CFG2, bData); } else { bData = bReadByteHdmiGRL(GRL_CFG2); bData &= ~0x40; vWriteByteHdmiGRL(GRL_CFG2, bData); } }
void vEnableHdmiMode(u8 bOn) { u8 bData; MT8193_DRV_FUNC(); if (bOn == TRUE) { bData = bReadByteHdmiGRL(GRL_CFG1); bData &= ~CFG1_DVI; /* enable HDMI mode */ vWriteByteHdmiGRL(GRL_CFG1, bData); } else { bData = bReadByteHdmiGRL(GRL_CFG1); bData |= CFG1_DVI; /* disable HDMI mode */ vWriteByteHdmiGRL(GRL_CFG1, bData); } }
void vMiAnUpdateOrFix(u8 bUpdate) { u8 bTemp; MT8193_HDCP_FUNC(); if (bUpdate == TRUE) { bTemp = bReadByteHdmiGRL(GRL_CFG1); bTemp |= CFG1_HDCP_DEBUG; vWriteByteHdmiGRL(GRL_CFG1, bTemp); } else { bTemp = bReadByteHdmiGRL(GRL_CFG1); bTemp &= ~CFG1_HDCP_DEBUG; vWriteByteHdmiGRL(GRL_CFG1, bTemp); } }
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 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 bReadDataHdmiGRL(u8 bAddr, u8 bCount, u8 *bVal) { u8 i; MT8193_HDCP_FUNC(); for (i = 0; i < bCount; i++) *(bVal + i) = bReadByteHdmiGRL(bAddr + i * 4); }
u8 fgIsISRC2Enable(void) { if (bReadByteHdmiGRL(GRL_ACP_ISRC_CTRL) & ISRC2_EN) return TRUE; else return FALSE; }
void vHalHDCPReset(void) { u8 bTemp; MT8193_HDCP_FUNC(); if (fgHostKey()) { bTemp = HDCP_CTL_CP_RSTB | HDCP_CTL_HOST_KEY; } else { bTemp = HDCP_CTL_CP_RSTB; } vWriteByteHdmiGRL(GRL_HDCP_CTL, bTemp); for(bTemp=0; bTemp<5; bTemp++) { udelay(255); } bTemp=bReadByteHdmiGRL(GRL_HDCP_CTL); bTemp &= (~HDCP_CTL_CP_RSTB); vWriteByteHdmiGRL(GRL_HDCP_CTL, bTemp); vSetCTL0BeZero(FALSE); }
void vTxSignalOnOff(u8 bOn) { u8 bData1; MT8193_PLL_FUNC(); bData1 = bReadByteHdmiGRL(GRL_INT) & INT_MDI; if (bOn) { vWriteHdmiSYSMsk(HDMI_SYS_AMPCTRL, 0, RG_SET_DTXST); /* the 5ms delay time after pll setting , resolve CTS 7-6 can't find trigger and result fail */ mdelay(5); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL6, 0, ABIST_MODE_SET_MSK); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL6, 0, ABIST_MODE_EN | ABIST_LV_EN); udelay(20); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL2, 0, POW_HDMITX | POW_PLL_L); udelay(20); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL2, POW_HDMITX, POW_HDMITX | POW_PLL_L); udelay(20); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL2, POW_HDMITX | POW_PLL_L, POW_HDMITX | POW_PLL_L); } else { vWriteHdmiSYSMsk(HDMI_SYS_AMPCTRL, 0, RG_SET_DTXST); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL1, 0, RG_ENCKST); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL6, ABIST_MODE_SET, ABIST_MODE_SET_MSK); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL6, ABIST_MODE_EN | ABIST_LV_EN, ABIST_MODE_EN | ABIST_LV_EN); vWriteHdmiSYSMsk(HDMI_SYS_PLLCTRL7, 0, TX_DRV_ENABLE_MSK); } if ((bData1 != INT_MDI)) bClearGRLInt(INT_MDI); }
void MuteHDMIAudio(void) { u8 bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData |= AUDIO_ZERO; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); }
void vEnableIecTxRaw(void) { u8 bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_MIX_CTRL); bData |= MIX_CTRL_FLAT; vWriteByteHdmiGRL(GRL_MIX_CTRL, bData); }
u8 bReadHdmiIntMask(void) { u8 bMask; MT8193_HDCP_FUNC(); bMask = bReadByteHdmiGRL(GRL_INT_MASK); return bMask; }
u8 bReadHDCPStatus(void) { u8 bTemp; MT8193_HDCP_FUNC(); bTemp = bReadByteHdmiGRL(GRL_HDCP_STA); return bTemp; }
void vEnableHashHardwrae(void) { u8 bData; MT8193_HDCP_FUNC(); bData = bReadByteHdmiGRL(GRL_HDCP_CTL); bData |= HDCP_CTL_SHA_EN; vWriteByteHdmiGRL(GRL_HDCP_CTL, bData); }
void vSetCTL0BeZero(u8 fgBeZero) { u8 bTemp; MT8193_VIDEO_FUNC(); if (fgBeZero == TRUE) { bTemp = bReadByteHdmiGRL(GRL_CFG1); bTemp |= (1 << 4); vWriteByteHdmiGRL(GRL_CFG1, bTemp); } else { bTemp = bReadByteHdmiGRL(GRL_CFG1); bTemp &= ~(1 << 4); vWriteByteHdmiGRL(GRL_CFG1, bTemp); } }
void vStopAn(void) { u8 bTemp; MT8193_HDCP_FUNC(); bTemp = bReadByteHdmiGRL(GRL_HDCP_CTL); bTemp |= HDCP_CTL_AN_STOP; vWriteByteHdmiGRL(GRL_HDCP_CTL, bTemp); }
void vEnableEncrpt(void) { u8 bTemp; MT8193_HDCP_FUNC(); bTemp = bReadByteHdmiGRL(GRL_HDCP_CTL); bTemp |= HDCP_CTL_ENC_EN; vWriteByteHdmiGRL(GRL_HDCP_CTL, bTemp); }
void vDisableDsdConfig(void) { u8 bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData &= ~SACD_SEL; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); }
u8 bReadGRLInt(void) { u8 bStatus; MT8193_DRV_FUNC(); bStatus = bReadByteHdmiGRL(GRL_INT); return bStatus; }
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); }
u8 fgHostKey(void) { u8 bTemp; MT8193_HDCP_FUNC(); bTemp = bReadByteHdmiGRL(GRL_HDCP_CTL); vWriteByteHdmiGRL(GRL_HDCP_CTL, bTemp | HDCP_CTL_HOST_KEY); return TRUE; }
void UnMuteHDMIAudio(void) { BYTE bData; MT8193_AUDIO_FUNC(); bData = bReadByteHdmiGRL(GRL_AUDIO_CFG); bData &= ~AUDIO_ZERO; vWriteByteHdmiGRL(GRL_AUDIO_CFG, bData); }
u8 vIsDviMode(void) { u8 bData; bData = bReadByteHdmiGRL(GRL_CFG1); if (bData & CFG1_DVI) return TRUE; else return FALSE; }
void vReadAksvFromReg(BYTE *PrBuff) { u8 bTemp, i; MT8193_HDCP_FUNC(); for (i = 0; i < 5; i++) /* AKSV count 5 bytes */ { bTemp = bReadByteHdmiGRL(GRL_RD_AKSV0 + i * 4); *(PrBuff + i) = bTemp; } }
void vEnableAuthHardware(void) { u8 bTemp; MT8193_HDCP_FUNC(); bTemp = bReadByteHdmiGRL(GRL_HDCP_CTL); bTemp |= HDCP_CTL_AUTHEN_EN; vWriteByteHdmiGRL(GRL_HDCP_CTL, bTemp); }
u8 bCheckStatus(u8 bMode) { u8 bStatus = 0; MT8193_PLUG_FUNC(); bStatus = bReadByteHdmiGRL(GRL_STATUS); if ((bStatus & bMode) == bMode) { return TRUE; } else { return FALSE; } }
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); }
u8 bCheckHDCPStatus(u8 bMode) { u8 bStatus = 0; MT8193_HDCP_FUNC(); bStatus = bReadByteHdmiGRL(GRL_HDCP_STA); bStatus &= bMode; if (bStatus) { vWriteByteHdmiGRL(GRL_HDCP_STA, bMode); return TRUE; } else { return FALSE; } }