int8 tunerbb_drv_lg2102_get_ber(struct broadcast_tdmb_sig_info *dmb_bb_info) { LGD_UINT8 nRet; if(g_ch_setting_done != LGD_SUCCESS) { dmb_bb_info->cir = 0; dmb_bb_info->msc_ber = 20000; return LGD_SUCCESS; } nRet = INTERFACE_STATUS_CHECK(TDMB_RFBB_DEV_ADDR); if(nRet == LGD_SUCCESS) { dmb_bb_info->sync_lock = 1; dmb_bb_info->cir = 1; dmb_bb_info->dab_ok = 1; dmb_bb_info->sch_ber = 1; dmb_bb_info->afc_ok = 1; // msc_ber : BER viterbi Befor(VB BER) 10-5 dmb_bb_info->msc_ber = INTERFACE_GET_CER(TDMB_RFBB_DEV_ADDR) * 10; if(( LG2102_DMB == serviceType) || (LG2102_VISUAL == serviceType)) { // va_ber : BER viterbi after (VA BER) 10-5 dmb_bb_info->va_ber = INTERFACE_GET_PREBER(TDMB_RFBB_DEV_ADDR); //printk("[LGD] ^___^ va_ber = (%d)\n", dmb_bb_info->va_ber); dmb_bb_info->tp_lock = (nRet==LGD_SUCCESS)?TRUE:FALSE; //printk("[LGD]^__^ tp_lock = (%d)=\n", dmb_bb_info->tp_lock); } //dmb_bb_info->tp_err_cnt = INTERFACE_GET_POSTBER(TDMB_RFBB_DEV_ADDR); /* GET_POSTERBER is tp error rate : LG2102 */ dmb_bb_info->tp_err_cnt = (uint32)INTERFACE_GET_TPERRCNT(TDMB_RFBB_DEV_ADDR); } else { dmb_bb_info->sync_lock = 0; dmb_bb_info->dab_ok = 0; dmb_bb_info->sch_ber = 0; dmb_bb_info->afc_ok = 0; dmb_bb_info->msc_ber = 20000; dmb_bb_info->va_ber = 20000; dmb_bb_info->tp_lock = 0; dmb_bb_info->tp_err_cnt = 255; } return LGD_SUCCESS; }
static void print_msc_ber_scan(boolean bnormal) { /* For Debugging */ /* ---------------------------------------*/ unsigned short msc_ber; msc_ber = INTERFACE_GET_CER(TDMB_RFBB_DEV_ADDR);; if(bnormal) { printk("[LGD] ^___^ Channel Search msc_ber = (%d)", msc_ber); } else { printk("[LGD] ^___^ Channel Search but get FIC Data msc_ber = (%d)", msc_ber); } }
int8 tunerbb_drv_t39fx_get_msc_ber(uint32 *msc_ber) { *msc_ber = INTERFACE_GET_CER(TDMB_RFBB_DEV_ADDR) * 10; return INC_SUCCESS; }
int8 tunerbb_drv_lg2102_get_msc_ber(uint32 *msc_ber) { *msc_ber = INTERFACE_GET_CER(TDMB_RFBB_DEV_ADDR) * 10; return 1; }