mirror of
https://github.com/hardkernel/kernel_common_drivers.git
synced 2026-06-25 12:03:48 +09:00
dtv_demod: delsys code isolation (V3.5.022) [1/1]
PD#SWPL-142882 Problem: delsys code isolation Solution: add macro to control Verify: verified by T5M Change-Id: I9f087ba44cb13d2ae0c4ffd16a302ac0929a0165 Signed-off-by: min.yang <min.yang@amlogic.com>
This commit is contained in:
@@ -47,17 +47,26 @@ $(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/demod_dbg.o
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/aml_demod.o
|
||||
|
||||
ifneq ($(findstring AML_DEMOD_SUPPORT_DVBS, $(ccflags-y)),)
|
||||
ccflags-y += -DAML_DVBS_SUPPORT_GPIO_LNBC
|
||||
ifneq ($(CONFIG_AMLOGIC_ZAPPER_CUT), y)
|
||||
cflags-y += -DAML_DVBS_SUPPORT_I2C_LNBC
|
||||
endif
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/dvbs/dvbs.o
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/dvbs/dvbs_frontend.o
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/dvbs/dvbs_diseqc.o
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/dvbs/dvbs_singlecable.o
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/lnb_controller/gpio/gpio_lnbc.o
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/lnb_controller/wt20_1811/wt20_1811.o
|
||||
ccflags-y += -I$(srctree)/$(COMMON_DRIVERS_DIR)/drivers/media/dtv_demod/dvbs
|
||||
ccflags-y += -I$(srctree)/$(COMMON_DRIVERS_DIR)/drivers/media/dtv_demod/lnb_controller
|
||||
ifneq ($(findstring DAML_DVBS_SUPPORT_GPIO_LNBC, $(ccflags-y)),)
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/lnb_controller/gpio/gpio_lnbc.o
|
||||
ccflags-y += -I$(srctree)/$(COMMON_DRIVERS_DIR)/drivers/media/dtv_demod/lnb_controller/wt20_1811
|
||||
ccflags-y += -I$(srctree)/$(COMMON_DRIVERS_DIR)/drivers/media/dtv_demod/lnb_controller/gpio
|
||||
endif
|
||||
ifneq ($(findstring DAML_DVBS_SUPPORT_I2C_LNBC, $(ccflags-y)),)
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/lnb_controller/wt20_1811/wt20_1811.o
|
||||
ccflags-y += -I$(srctree)/$(COMMON_DRIVERS_DIR)/drivers/media/dtv_demod/lnb_controller/wt20_1811
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(findstring AML_DEMOD_SUPPORT_ISDBT, $(ccflags-y)),)
|
||||
$(MEDIA_MODULE_NAME)-$(CONFIG_AMLOGIC_DTV_DEMOD) += dtv_demod/isdbt/isdbt_func.o
|
||||
|
||||
@@ -163,55 +163,6 @@ int convert_snr(int in_snr)
|
||||
return out_snr;
|
||||
}
|
||||
|
||||
//static void dtvdemod_do_8vsb_rst(void)
|
||||
//{
|
||||
//union atsc_cntl_reg_0x20 val;
|
||||
|
||||
//val.bits = atsc_read_reg_v4(ATSC_CNTR_REG_0X20);
|
||||
//val.b.cpu_rst = 1;
|
||||
//atsc_write_reg_v4(ATSC_CNTR_REG_0X20, val.bits);
|
||||
//val.b.cpu_rst = 0;
|
||||
//atsc_write_reg_v4(ATSC_CNTR_REG_0X20, val.bits);
|
||||
//}
|
||||
|
||||
//static int amdemod_check_8vsb_rst(struct aml_dtvdemod *demod)
|
||||
//{
|
||||
//int ret = 0;
|
||||
|
||||
/* for tl1/tm2, first time of pwr on,
|
||||
* reset after signal locked
|
||||
* for lock event, 0x79 is safe for reset
|
||||
*/
|
||||
//if (demod->atsc_rst_done == 0) {
|
||||
//if (demod->atsc_rst_needed) {
|
||||
//dtvdemod_do_8vsb_rst();
|
||||
//demod->atsc_rst_done = 1;
|
||||
//ret = 0;
|
||||
//PR_ATSC("reset done\n");
|
||||
//}
|
||||
|
||||
//if (atsc_read_reg_v4(ATSC_CNTR_REG_0X2E) >= 0x79) {
|
||||
//demod->atsc_rst_needed = 1;
|
||||
//ret = 0;
|
||||
//PR_ATSC("need reset\n");
|
||||
//} else {
|
||||
//demod->atsc_rst_wait_cnt++;
|
||||
//PR_ATSC("wait cnt: %d\n",
|
||||
//demod->atsc_rst_wait_cnt);
|
||||
//}
|
||||
|
||||
//if (demod->atsc_rst_wait_cnt >= 3 &&
|
||||
//(atsc_read_reg_v4(ATSC_CNTR_REG_0X2E) >= 0x76)) {
|
||||
//demod->atsc_rst_done = 1;
|
||||
//ret = 1;
|
||||
//}
|
||||
//} else if (atsc_read_reg_v4(ATSC_CNTR_REG_0X2E) >= 0x76) {
|
||||
//ret = 1;
|
||||
//}
|
||||
|
||||
//return ret;
|
||||
//}
|
||||
|
||||
unsigned int demod_is_t5d_cpu(struct amldtvdemod_device_s *devp)
|
||||
{
|
||||
enum dtv_demod_hw_ver_e hw_ver = devp->data->hw_ver;
|
||||
@@ -792,6 +743,7 @@ static void delsys_exit(struct aml_dtvdemod *demod, unsigned int ldelsys,
|
||||
#endif
|
||||
} else if ((is_meson_t5w_cpu() || is_meson_t3_cpu() ||
|
||||
demod_is_t5d_cpu(devp)) && ldelsys == SYS_DVBT2) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
demod_top_write_reg(DEMOD_TOP_CFG_REG_4, 0x182);
|
||||
dvbt_t2_wr_byte_bits(0x09, 1, 4, 1);
|
||||
demod_top_write_reg(DEMOD_TOP_CFG_REG_4, 0x97);
|
||||
@@ -806,8 +758,10 @@ static void delsys_exit(struct aml_dtvdemod *demod, unsigned int ldelsys,
|
||||
|
||||
if (is_meson_t5w_cpu())
|
||||
t5w_write_ambus_reg(0x3c4e, 0x1, 23, 1);
|
||||
#endif
|
||||
} else if ((is_meson_t5w_cpu() || is_meson_t3_cpu() ||
|
||||
demod_is_t5d_cpu(devp)) && ldelsys == SYS_ISDBT) {
|
||||
#ifdef AML_DEMOD_SUPPORT_ISDBT
|
||||
dvbt_isdbt_wr_reg((0x2 << 2), 0x111021b);
|
||||
dvbt_isdbt_wr_reg((0x2 << 2), 0x011021b);
|
||||
dvbt_isdbt_wr_reg((0x2 << 2), 0x011001b);
|
||||
@@ -817,6 +771,7 @@ static void delsys_exit(struct aml_dtvdemod *demod, unsigned int ldelsys,
|
||||
|
||||
if (is_meson_t5w_cpu())
|
||||
t5w_write_ambus_reg(0x3c4e, 0x1, 23, 1);
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2940,7 +2895,6 @@ static int aml_dtvdm_get_property(struct dvb_frontend *fe,
|
||||
struct isdbt_tmcc_info tmcc_info;
|
||||
#endif
|
||||
s16 strength = 0;
|
||||
int ret = 0;
|
||||
|
||||
mutex_lock(&devp->lock);
|
||||
|
||||
@@ -3119,30 +3073,30 @@ static int aml_dtvdm_get_property(struct dvb_frontend *fe,
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
case SYS_DVBS:
|
||||
case SYS_DVBS2:
|
||||
ret = dtvdemod_dvbs_read_signal_strength(fe, &strength);
|
||||
dtvdemod_dvbs_read_signal_strength(fe, &strength);
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBC
|
||||
case SYS_DVBC_ANNEX_A:
|
||||
case SYS_DVBC_ANNEX_C:
|
||||
ret = gxtv_demod_dvbc_read_signal_strength(fe, &strength);
|
||||
gxtv_demod_dvbc_read_signal_strength(fe, &strength);
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
case SYS_DVBT:
|
||||
case SYS_DVBT2:
|
||||
ret = gxtv_demod_dvbt_read_signal_strength(fe, &strength);
|
||||
gxtv_demod_dvbt_read_signal_strength(fe, &strength);
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_ISDBT
|
||||
case SYS_ISDBT:
|
||||
ret = gxtv_demod_isdbt_read_signal_strength(fe, &strength);
|
||||
gxtv_demod_isdbt_read_signal_strength(fe, &strength);
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_ATSC
|
||||
case SYS_ATSC:
|
||||
case SYS_ATSCMH:
|
||||
ret = gxtv_demod_atsc_read_signal_strength(fe, &strength);
|
||||
gxtv_demod_atsc_read_signal_strength(fe, &strength);
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_J83B
|
||||
@@ -3152,7 +3106,7 @@ static int aml_dtvdm_get_property(struct dvb_frontend *fe,
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DTMB
|
||||
case SYS_DTMB:
|
||||
ret = gxtv_demod_dtmb_read_signal_strength(fe, &strength);
|
||||
gxtv_demod_dtmb_read_signal_strength(fe, &strength);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
@@ -3248,10 +3202,20 @@ struct dvb_frontend *aml_dtvdm_attach(const struct demod_config *config)
|
||||
|
||||
demod->id = devp->index;
|
||||
demod->act_dtmb = false;
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_ATSC || defined AML_DEMOD_SUPPORT_J83B
|
||||
demod->timeout_atsc_ms = TIMEOUT_ATSC;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
demod->timeout_dvbt_ms = TIMEOUT_DVBT;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
demod->timeout_dvbs_ms = TIMEOUT_DVBS;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBC
|
||||
demod->timeout_dvbc_ms = TIMEOUT_DVBC;
|
||||
#endif
|
||||
|
||||
demod->timeout_ddr_leave = TIMEOUT_DDR_LEAVE;
|
||||
demod->last_qam_mode = QAM_MODE_NUM;
|
||||
demod->last_lock = -1;
|
||||
|
||||
@@ -28,7 +28,9 @@
|
||||
static unsigned int dtmb_mode;
|
||||
#endif
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_ATSC || defined AML_DEMOD_SUPPORT_J83B
|
||||
static unsigned int atsc_mode_para;
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_ISDBT
|
||||
#include "isdbt_func.h"
|
||||
@@ -146,7 +148,10 @@ static void seq_dump_regs(struct seq_file *seq)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
struct aml_dtvdemod *demod = NULL;
|
||||
unsigned int reg_start, polling_en = 1;
|
||||
unsigned int reg_start;
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
unsigned int polling_en = 1;
|
||||
#endif
|
||||
|
||||
if (cpu_after_eq(MESON_CPU_MAJOR_ID_TL1)) {
|
||||
seq_puts(seq, "demod top start\n");
|
||||
@@ -180,6 +185,7 @@ static void seq_dump_regs(struct seq_file *seq)
|
||||
}
|
||||
break;
|
||||
#endif
|
||||
#if defined AML_DEMOD_SUPPORT_DVBC || defined AML_DEMOD_SUPPORT_J83B
|
||||
case SYS_DVBC_ANNEX_A:
|
||||
case SYS_DVBC_ANNEX_C:
|
||||
case SYS_DVBC_ANNEX_B:
|
||||
@@ -190,7 +196,8 @@ static void seq_dump_regs(struct seq_file *seq)
|
||||
reg_start, qam_read_reg(demod, reg_start));
|
||||
}
|
||||
break;
|
||||
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
case SYS_DVBT:
|
||||
case SYS_DVBT2:
|
||||
polling_en = devp->demod_thread;
|
||||
@@ -217,6 +224,7 @@ static void seq_dump_regs(struct seq_file *seq)
|
||||
|
||||
devp->demod_thread = polling_en;
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DTMB
|
||||
case SYS_DTMB:
|
||||
for (reg_start = 0x0; reg_start <= 0xff; reg_start++)
|
||||
@@ -224,11 +232,13 @@ static void seq_dump_regs(struct seq_file *seq)
|
||||
reg_start, dtmb_read_reg(reg_start));
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_ISDBT
|
||||
case SYS_ISDBT:
|
||||
for (reg_start = 0x0; reg_start <= 0xff; reg_start++)
|
||||
seq_printf(seq, "[0x%x] = 0x%x\n",
|
||||
reg_start, dvbt_isdbt_rd_reg_new(reg_start));
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
case SYS_DVBS:
|
||||
case SYS_DVBS2:
|
||||
@@ -259,7 +269,9 @@ static void seq_dump_status(struct seq_file *seq)
|
||||
#endif
|
||||
int strength = 0;
|
||||
char chip_name[30];
|
||||
#if defined AML_DEMOD_SUPPORT_DVBC || defined AML_DEMOD_SUPPORT_J83B
|
||||
struct aml_demod_sts demod_sts;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
unsigned int polling_en = 1;
|
||||
#endif
|
||||
@@ -1013,20 +1025,23 @@ static void info_show(void)
|
||||
struct aml_dtvdemod *demod = NULL;
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
unsigned int debug_mode = aml_demod_debug;
|
||||
int fw_ver = 0;
|
||||
#endif
|
||||
char chip_name[30];
|
||||
#if defined AML_DEMOD_SUPPORT_DVBC || defined AML_DEMOD_SUPPORT_J83B
|
||||
struct aml_demod_sts demod_sts;
|
||||
int fw_ver = 0;
|
||||
#endif
|
||||
|
||||
PR_INFO("DTV DEMOD state:\n");
|
||||
PR_INFO("demod_thread: %d.\n", devp->demod_thread);
|
||||
get_chip_name(devp, chip_name);
|
||||
PR_INFO("hw version chip: %d, %s.\n", devp->data->hw_ver, chip_name);
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
if (cpu_after_eq(MESON_CPU_MAJOR_ID_T3))
|
||||
fw_ver = dvbt_t2_rdb(0x48);
|
||||
PR_INFO("version: %s-%s, T2 FW ver: V%d.%s.\n", AMLDTVDEMOD_VER,
|
||||
DTVDEMOD_VER, fw_ver, AMLDTVDEMOD_T2_FW_VER);
|
||||
|
||||
#endif
|
||||
dbg_ic_cfg_addr(devp);
|
||||
|
||||
PR_INFO("agc_pin_direction: %d.\n", devp->agc_direction);
|
||||
@@ -1088,8 +1103,6 @@ static void info_show(void)
|
||||
|
||||
ser = atsc_read_ser();
|
||||
PR_INFO("ser: %d.\n", ser);
|
||||
|
||||
PR_INFO("atsc rst done: %d.\n", demod->atsc_rst_done);
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
@@ -1128,9 +1141,12 @@ static void info_show(void)
|
||||
|
||||
static void dump_regs(struct aml_dtvdemod *demod)
|
||||
{
|
||||
unsigned int reg_start, polling_en = 1;
|
||||
enum fe_delivery_system delsys = demod->last_delsys;
|
||||
unsigned int reg_start;
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
struct amldtvdemod_device_s *devp = (struct amldtvdemod_device_s *)demod->priv;
|
||||
unsigned int polling_en = 1;
|
||||
#endif
|
||||
|
||||
if (cpu_after_eq(MESON_CPU_MAJOR_ID_TL1)) {
|
||||
pr_info("demod top start\n");
|
||||
@@ -1159,6 +1175,7 @@ static void dump_regs(struct aml_dtvdemod *demod)
|
||||
pr_info("atsc end\n");
|
||||
break;
|
||||
#endif
|
||||
#if defined AML_DEMOD_SUPPORT_DVBC || defined AML_DEMOD_SUPPORT_J83B
|
||||
case SYS_DVBC_ANNEX_A:
|
||||
case SYS_DVBC_ANNEX_C:
|
||||
case SYS_DVBC_ANNEX_B:
|
||||
@@ -1170,7 +1187,8 @@ static void dump_regs(struct aml_dtvdemod *demod)
|
||||
}
|
||||
pr_info("dvbc/j83b end\n");
|
||||
break;
|
||||
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
case SYS_DVBT:
|
||||
case SYS_DVBT2:
|
||||
pr_info("dvbt/t2 start\n");
|
||||
@@ -1199,6 +1217,7 @@ static void dump_regs(struct aml_dtvdemod *demod)
|
||||
}
|
||||
pr_info("dvbt/t2 end\n");
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DTMB
|
||||
case SYS_DTMB:
|
||||
pr_info("dtmb start\n");
|
||||
@@ -1208,6 +1227,7 @@ static void dump_regs(struct aml_dtvdemod *demod)
|
||||
pr_info("dtmb end\n");
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_ISDBT
|
||||
case SYS_ISDBT:
|
||||
pr_info("isdbt start\n");
|
||||
for (reg_start = 0x0; reg_start <= 0xff; reg_start++)
|
||||
@@ -1215,6 +1235,7 @@ static void dump_regs(struct aml_dtvdemod *demod)
|
||||
|
||||
pr_info("isdbt end\n");
|
||||
break;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
case SYS_DVBS:
|
||||
case SYS_DVBS2:
|
||||
@@ -1242,7 +1263,9 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
unsigned int capture_start = 0;
|
||||
unsigned int val = 0;
|
||||
unsigned int addr = 0;
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
unsigned int i;
|
||||
#endif
|
||||
static struct dvb_frontend *fe;
|
||||
struct demod_config config;
|
||||
struct dtv_property tvp;
|
||||
@@ -1379,11 +1402,15 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
demod->timeout_dvbt_ms = val;
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "timeout_dvbs")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
if (parm[1] && (kstrtouint(parm[1], 10, &val)) == 0)
|
||||
demod->timeout_dvbs_ms = val;
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "timeout_dvbc")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBC
|
||||
if (parm[1] && (kstrtouint(parm[1], 10, &val)) == 0)
|
||||
demod->timeout_dvbc_ms = val;
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "dump_reg")) {
|
||||
dump_regs(demod);
|
||||
} else if (!strcmp(parm[0], "get_plp")) {
|
||||
@@ -1438,6 +1465,7 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
if (parm[1] && (kstrtoint(parm[1], 10, &demod->dvbc_sel)) == 0)
|
||||
;
|
||||
} else if (!strcmp(parm[0], "dvbsw")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &addr)) == 0) {
|
||||
if (parm[2] && (kstrtouint(parm[2], 16, &val)) == 0) {
|
||||
dvbs_wr_byte(addr, val);
|
||||
@@ -1457,7 +1485,9 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
i, dvbs_rd_byte(i));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "dvbtr")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &addr)) == 0) {
|
||||
val = dvbt_t2_rdb(addr);
|
||||
PR_INFO("dvdt rd addr:0x%x, val:0x%x\n", addr, val);
|
||||
@@ -1469,6 +1499,7 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
PR_INFO("dvbt wr addr:0x%x, val:0x%x\n", addr, val);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "topr")) {
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &addr)) == 0) {
|
||||
val = demod_top_read_reg(addr);
|
||||
@@ -1499,9 +1530,7 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
val = atsc_read_reg_v4(addr);
|
||||
PR_INFO("atsc rd addr:0x%x, val:0x%x\n", addr, val);
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "atscw")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_ATSC
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &addr)) == 0) {
|
||||
if (parm[2] && (kstrtouint(parm[2], 16, &val)) == 0) {
|
||||
atsc_write_reg_v4(addr, val);
|
||||
@@ -1510,6 +1539,7 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "dvbcr")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBC
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &addr)) == 0) {
|
||||
val = qam_read_reg(demod, addr);
|
||||
PR_INFO("dvbc rd addr:0x%x, val:0x%x\n", addr, val);
|
||||
@@ -1521,15 +1551,14 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
PR_INFO("dvbc wr addr:0x%x, val:0x%x\n", addr, val);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "dtmbr")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DTMB
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &addr)) == 0) {
|
||||
val = dtmb_read_reg(addr);
|
||||
PR_INFO("dtmb rd addr:0x%x, val:0x%x\n", addr, val);
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "dtmbw")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DTMB
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &addr)) == 0) {
|
||||
if (parm[2] && (kstrtouint(parm[2], 16, &val)) == 0) {
|
||||
dtmb_write_reg(addr, val);
|
||||
@@ -1538,6 +1567,7 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "isdbtr")) {
|
||||
#ifdef AML_DEMOD_SUPPORT_ISDBT
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &addr)) == 0) {
|
||||
val = dvbt_isdbt_rd_reg_new(addr);
|
||||
PR_INFO("isdbt rd addr:0x%x, val:0x%x\n", addr, val);
|
||||
@@ -1549,6 +1579,7 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
PR_INFO("isdbt wr addr:0x%x, val:0x%x\n", addr, val);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
} else if (!strcmp(parm[0], "demod_thread")) {
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &val)) == 0)
|
||||
devp->demod_thread = val;
|
||||
@@ -1565,6 +1596,7 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
PR_INFO("set atsc cr val to 0x%x\n", devp->atsc_cr_step_size_dbg);
|
||||
} else if (!strcmp(parm[0], "ci_mode")) {
|
||||
if (demod->demod_status.delsys == SYS_DVBC_ANNEX_A) {
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBC
|
||||
if (parm[1] && (kstrtouint(parm[1], 16, &val)) == 0) {
|
||||
if (val == 0) {
|
||||
qam_write_bits(demod, 0x11, 0x90, 24, 8);
|
||||
@@ -1575,6 +1607,7 @@ static ssize_t attr_store(struct class *cls, struct class_attribute *attr,
|
||||
}
|
||||
PR_INFO("ic card set mode to %d\n", val);
|
||||
}
|
||||
#endif
|
||||
} else {
|
||||
PR_INFO("not dvbc mode,nothing to do\n");
|
||||
}
|
||||
@@ -1701,6 +1734,7 @@ static ssize_t dtmb_para_store(struct class *cls, struct class_attribute *attr,
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_ATSC || defined AML_DEMOD_SUPPORT_J83B
|
||||
static ssize_t atsc_para_show(struct class *cls,
|
||||
struct class_attribute *attr, char *buf)
|
||||
{
|
||||
@@ -1708,8 +1742,10 @@ static ssize_t atsc_para_show(struct class *cls,
|
||||
int snr, lock_status;
|
||||
unsigned int ck;
|
||||
#endif
|
||||
#if defined AML_DEMOD_SUPPORT_ATSC || defined AML_DEMOD_SUPPORT_J83B
|
||||
unsigned int ser;
|
||||
int strength = 0;
|
||||
#endif
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
struct aml_dtvdemod *demod = NULL, *tmp = NULL;
|
||||
|
||||
@@ -1788,6 +1824,7 @@ static ssize_t atsc_para_store(struct class *cls, struct class_attribute *attr,
|
||||
|
||||
return count;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
static ssize_t diseq_cmd_store(struct class *cla, struct class_attribute *attr,
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -6,8 +6,7 @@
|
||||
#ifndef __DVBS_FUNC_H__
|
||||
#define __DVBS_FUNC_H__
|
||||
#include <media/dvb_frontend.h>
|
||||
#define ALIGN_24 16777216
|
||||
#define SR_LOW_THRD 11000000
|
||||
|
||||
|
||||
#define BLIND_SEARCH_AGC2BANDWIDTH_40 (40)
|
||||
#define BLIND_SEARCH_AGC2BANDWIDTH_60 (60)
|
||||
@@ -19,10 +18,11 @@
|
||||
|
||||
#define CNR_HIGH 0xcae
|
||||
#define CNR_LOW 0xcad
|
||||
#define AUTOSR_REG 0x922
|
||||
#define AUTOSR_OFF 0xcc
|
||||
|
||||
#define AUTOSR_ON 0xdc
|
||||
|
||||
extern unsigned int diseqc_out_invert;
|
||||
|
||||
enum diseq_irq_flag {
|
||||
DISEQ_IRQGAPBURST = 0x01,
|
||||
DISEQ_IRQFIFO64B = 0x02,
|
||||
@@ -109,13 +109,12 @@ struct fft_total_result {
|
||||
|
||||
#define DVBS_REG_DISIRQCFG 0x300
|
||||
#define DVBS_REG_DISIRQSTAT 0x301
|
||||
#define DVBS_REG_DISTXCFG 0x302
|
||||
|
||||
#define DVBS_REG_DISTXSTATUS 0x303
|
||||
#define DVBS_REG_DISTXBYTES 0x304
|
||||
#define DVBS_REG_DISTXFIFO 0x305
|
||||
#define DVBS_REG_DISTXF22 0x306
|
||||
#define DVBS_REG_DISTXWAIT 0x307
|
||||
#define DVBS_REG_DISTIMEOCFG 0x308
|
||||
#define DVBS_REG_DISTIMEOUT 0x309
|
||||
#define DVBS_REG_DISRXCFG 0x30A
|
||||
#define DVBS_REG_DISRXSTAT1 0x30B
|
||||
@@ -141,8 +140,6 @@ struct fft_total_result {
|
||||
|
||||
#define DVBS_REG_DSQADCINCFG 0x121
|
||||
|
||||
#define DSTATUS 0x934
|
||||
|
||||
/* carrier offset */
|
||||
#define CFR12 0x9cf
|
||||
#define CFR11 0x9d0
|
||||
|
||||
@@ -25,8 +25,12 @@
|
||||
#include "demod_func.h"
|
||||
#include "dvbs.h"
|
||||
#include "dvbs_diseqc.h"
|
||||
#ifdef AML_DVBS_SUPPORT_GPIO_LNBC
|
||||
#include "gpio_lnbc.h"
|
||||
#endif
|
||||
#ifdef AML_DVBS_SUPPORT_I2C_LNBC
|
||||
#include "wt20_1811.h"
|
||||
#endif
|
||||
#ifdef DISEQC_SAR_ADC_RX
|
||||
#include "meson_saradc.h"
|
||||
#endif
|
||||
@@ -581,11 +585,15 @@ void aml_diseqc_attach(struct device *dev, struct dvb_frontend *fe)
|
||||
{
|
||||
struct aml_dtvdemod *demod = (struct aml_dtvdemod *)fe->demodulator_priv;
|
||||
struct amldtvdemod_device_s *devp = (struct amldtvdemod_device_s *)demod->priv;
|
||||
#ifdef AML_DVBS_SUPPORT_GPIO_LNBC
|
||||
struct gpio_desc *gpio_en = NULL, *gpio_sel = NULL;
|
||||
#endif
|
||||
#ifdef AML_DVBS_SUPPORT_I2C_LNBC
|
||||
struct device_node *node = NULL;
|
||||
struct i2c_adapter *i2c_adap = NULL;
|
||||
unsigned char i2c_addr = 0;
|
||||
u32 value = 0;
|
||||
#endif
|
||||
int ret = 0;
|
||||
struct aml_diseqc *diseqc = &devp->diseqc;
|
||||
|
||||
@@ -619,6 +627,7 @@ void aml_diseqc_attach(struct device *dev, struct dvb_frontend *fe)
|
||||
}
|
||||
|
||||
if (!strcmp(diseqc->name, "wt20_1811")) {
|
||||
#ifdef AML_DVBS_SUPPORT_I2C_LNBC
|
||||
node = of_parse_phandle(dev->of_node, "lnbc_i2c_adap", 0);
|
||||
if (!IS_ERR_OR_NULL(node)) {
|
||||
i2c_adap = of_find_i2c_adapter_by_node(node);
|
||||
@@ -640,7 +649,9 @@ void aml_diseqc_attach(struct device *dev, struct dvb_frontend *fe)
|
||||
|
||||
if (diseqc->lnbc.init)
|
||||
diseqc->lnbc.init(&diseqc->lnbc);
|
||||
#endif
|
||||
} else {
|
||||
#ifdef AML_DVBS_SUPPORT_GPIO_LNBC
|
||||
gpio_en = devm_gpiod_get(dev, "lnb_en", GPIOD_OUT_LOW);
|
||||
if (IS_ERR_OR_NULL(gpio_en)) {
|
||||
gpio_en = NULL;
|
||||
@@ -657,6 +668,7 @@ void aml_diseqc_attach(struct device *dev, struct dvb_frontend *fe)
|
||||
|
||||
if (diseqc->lnbc.init)
|
||||
diseqc->lnbc.init(&diseqc->lnbc);
|
||||
#endif
|
||||
}
|
||||
|
||||
dvbs2_diseqc_init();
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/*
|
||||
* Copyright (c) 2021 Amlogic, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_ISDBT || defined AML_DEMOD_SUPPORT_DVBT
|
||||
void program_acf(int acf1[20], int acf2[33])
|
||||
{
|
||||
int i;
|
||||
@@ -398,3 +398,5 @@ void ini_acf_iireq_src_207m_5m(void)
|
||||
|
||||
program_acf(acf1, acf2);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
@@ -146,6 +146,7 @@
|
||||
/* V3.5.019 fix dvbt lock failed in weak signal */
|
||||
/* V3.5.020 fix pm runtime error */
|
||||
/* V3.5.021 optimize the ddr size of cma(max 40M reduced to 16M) */
|
||||
/* V3.5.022 delsys code isolation */
|
||||
/****************************************************/
|
||||
/****************************************************************/
|
||||
/* AMLDTVDEMOD_VER Description: */
|
||||
@@ -163,27 +164,47 @@
|
||||
/****************************************************************/
|
||||
#define KERNEL_4_9_EN 1
|
||||
#define AMLDTVDEMOD_VER "V3.5.21"
|
||||
#define DTVDEMOD_VER "2023/11/14: optimize the ddr size of cma(max 40M reduced to 16M)"
|
||||
#define DTVDEMOD_VER "2023/11/15: delsys code isolation"
|
||||
#define AMLDTVDEMOD_T2_FW_VER "20231019_141000"
|
||||
#define DEMOD_DEVICE_NAME "dtvdemod"
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_ATSC || defined AML_DEMOD_SUPPORT_J83B
|
||||
#define THRD_TUNER_STRENGTH_ATSC (-87)
|
||||
#define THRD_TUNER_STRENGTH_J83 (-76)
|
||||
/* tested on BTC, sensitivity of demod is -100dBm */
|
||||
#define THRD_TUNER_STRENGTH_DVBT (-101)
|
||||
#define THRD_TUNER_STRENGTH_DVBS (-79)
|
||||
#define THRD_TUNER_STRENGTH_DTMB (-100)
|
||||
#define THRD_TUNER_STRENGTH_DVBC (-87)
|
||||
#define THRD_TUNER_STRENGTH_ISDBT (-90)
|
||||
|
||||
#define TIMEOUT_ATSC 3000
|
||||
#define TIMEOUT_ATSC_STD 1500
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_J83B
|
||||
#define THRD_TUNER_STRENGTH_J83 (-76)
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
/* tested on BTC, sensitivity of demod is -100dBm */
|
||||
#define THRD_TUNER_STRENGTH_DVBT (-101)
|
||||
#define TIMEOUT_DVBT 3000
|
||||
#define TIMEOUT_DVBS 2000
|
||||
#define TIMEOUT_DVBC 3000
|
||||
#define TIMEOUT_DVBT2 5000
|
||||
#define TIMEOUT_DDR_LEAVE 50
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
#define THRD_TUNER_STRENGTH_DVBS (-79)
|
||||
#define TIMEOUT_DVBS 2000
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_DTMB
|
||||
#define THRD_TUNER_STRENGTH_DTMB (-100)
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBC
|
||||
#define THRD_TUNER_STRENGTH_DVBC (-87)
|
||||
#define TIMEOUT_DVBC 3000
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_ISDBT
|
||||
#define THRD_TUNER_STRENGTH_ISDBT (-90)
|
||||
#define TIMEOUT_ISDBT 3000
|
||||
#endif
|
||||
|
||||
#define TIMEOUT_DDR_LEAVE 50
|
||||
|
||||
enum qam_md_e {
|
||||
QAM_MODE_16,
|
||||
@@ -363,12 +384,6 @@ struct aml_dtvdemod {
|
||||
|
||||
struct dvb_frontend frontend;
|
||||
|
||||
/* only for tm2,first time of pwr on,reset after signal locked begin */
|
||||
unsigned int atsc_rst_needed;
|
||||
unsigned int atsc_rst_done;
|
||||
unsigned int atsc_rst_wait_cnt;
|
||||
/* only for tm2,first time of pwr on,reset after signal locked end */
|
||||
|
||||
unsigned int symbol_rate_manu;
|
||||
unsigned int sr_val_hw;
|
||||
unsigned int sr_val_hw_stable;
|
||||
@@ -382,12 +397,18 @@ struct aml_dtvdemod {
|
||||
enum fe_modulation atsc_mode;
|
||||
struct aml_demod_para para_demod;
|
||||
unsigned int timeout_atsc_ms;
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
unsigned int timeout_dvbt_ms;
|
||||
#endif
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBS
|
||||
unsigned int timeout_dvbs_ms;
|
||||
#endif
|
||||
unsigned int time_start;
|
||||
unsigned int time_passed;
|
||||
enum fe_status last_status;
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBC
|
||||
unsigned int timeout_dvbc_ms;
|
||||
#endif
|
||||
int autoflags;
|
||||
int auto_flags_trig;
|
||||
unsigned int p1_peak;
|
||||
@@ -536,20 +557,26 @@ int convert_snr(int in_snr);
|
||||
|
||||
struct amldtvdemod_device_s *dtvdemod_get_dev(void);
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_ISDBT || defined AML_DEMOD_SUPPORT_DVBT
|
||||
static inline void __iomem *gbase_dvbt_isdbt(void)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
|
||||
return devp->reg_v[ES_MAP_ADDR_DEMOD].v + devp->data->regoff.off_dvbt_isdbt;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_DVBT
|
||||
static inline void __iomem *gbase_dvbt_t2(void)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
|
||||
return devp->reg_v[ES_MAP_ADDR_DEMOD].v + devp->data->regoff.off_dvbt_t2;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_DVBS || defined AML_DEMOD_SUPPORT_DVBC || \
|
||||
defined AML_DEMOD_SUPPORT_J83B
|
||||
static inline void __iomem *gbase_dvbs(void)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
@@ -570,20 +597,34 @@ static inline void __iomem *gbase_dvbc_2(void)
|
||||
|
||||
return devp->reg_v[ES_MAP_ADDR_DEMOD].v + devp->data->regoff.off_dvbc_2;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_DTMB
|
||||
static inline void __iomem *gbase_dtmb(void)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
|
||||
return devp->reg_v[ES_MAP_ADDR_DEMOD].v + devp->data->regoff.off_dtmb;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_ATSC || defined AML_DEMOD_SUPPORT_J83B
|
||||
static inline void __iomem *gbase_atsc(void)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
|
||||
return devp->reg_v[ES_MAP_ADDR_DEMOD].v + devp->data->regoff.off_atsc;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef AML_DEMOD_SUPPORT_ISDBT
|
||||
static inline void __iomem *gbase_isdbt(void)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
|
||||
return devp->reg_v[ES_MAP_ADDR_DEMOD].v + devp->data->regoff.off_isdbt;
|
||||
}
|
||||
#endif
|
||||
|
||||
static inline void __iomem *gbase_demod(void)
|
||||
{
|
||||
@@ -592,13 +633,6 @@ static inline void __iomem *gbase_demod(void)
|
||||
return devp->reg_v[ES_MAP_ADDR_DEMOD].v + devp->data->regoff.off_demod_top;
|
||||
}
|
||||
|
||||
static inline void __iomem *gbase_isdbt(void)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
|
||||
return devp->reg_v[ES_MAP_ADDR_DEMOD].v + devp->data->regoff.off_isdbt;
|
||||
}
|
||||
|
||||
static inline void __iomem *gbase_front(void)
|
||||
{
|
||||
struct amldtvdemod_device_s *devp = dtvdemod_get_dev();
|
||||
|
||||
@@ -35,6 +35,17 @@
|
||||
#include "fpga_func.h"
|
||||
#endif
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_DVBS || defined AML_DEMOD_SUPPORT_DVBC
|
||||
|
||||
#define DSTATUS 0x934
|
||||
#define SR_LOW_THRD 11000000
|
||||
#define AUTOSR_REG 0x922
|
||||
#define DVBS_REG_DISTXCFG 0x302
|
||||
#define AUTOSR_OFF 0xcc
|
||||
#define DVBS_REG_DISTIMEOCFG 0x308
|
||||
|
||||
#endif
|
||||
|
||||
#define PWR_ON 1
|
||||
#define PWR_OFF 0
|
||||
|
||||
@@ -58,6 +69,7 @@
|
||||
#define AO_RTI_GEN_PWR_ISO0 ((0x00 << 10) | (0x3b << 2))
|
||||
/*----------------------------------*/
|
||||
|
||||
#define ALIGN_24 16777216
|
||||
|
||||
/* demod register */
|
||||
#define DEMOD_TOP_REG0 (0x00)
|
||||
@@ -1026,6 +1038,8 @@ void calculate_cordic_para(void);
|
||||
/*extern int aml_fe_analog_set_frontend(struct dvb_frontend *fe);*/
|
||||
int get_dtvpll_init_flag(void);
|
||||
void demod_set_mode_ts(struct aml_dtvdemod *demod, enum fe_delivery_system delsys);
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_J83B || defined AML_DEMOD_SUPPORT_DVBC
|
||||
void qam_write_reg(struct aml_dtvdemod *demod,
|
||||
unsigned int reg_addr, unsigned int reg_data);
|
||||
unsigned int qam_read_reg(struct aml_dtvdemod *demod, unsigned int reg_addr);
|
||||
@@ -1034,6 +1048,8 @@ void qam_write_bits(struct aml_dtvdemod *demod,
|
||||
const u32 start, const u32 len);
|
||||
void dvbc_write_reg(unsigned int addr, unsigned int data);
|
||||
unsigned int dvbc_read_reg(unsigned int addr);
|
||||
#endif
|
||||
|
||||
void demod_top_write_reg(unsigned int addr, unsigned int data);
|
||||
void demod_top_write_bits(u32 reg_addr, const u32 reg_data, const u32 start, const u32 len);
|
||||
unsigned int demod_top_read_reg(unsigned int addr);
|
||||
@@ -1061,12 +1077,16 @@ unsigned int demod_get_adc_clk(struct aml_dtvdemod *demod);
|
||||
unsigned int demod_get_sys_clk(struct aml_dtvdemod *demod);
|
||||
|
||||
/*register access api new*/
|
||||
#if defined AML_DEMOD_SUPPORT_ISDBT || defined AML_DEMOD_SUPPORT_DVBT
|
||||
void dvbt_isdbt_wr_reg(unsigned int addr, unsigned int data);
|
||||
void dvbt_isdbt_wr_reg_new(unsigned int addr, unsigned int data);
|
||||
void dvbt_isdbt_wr_bits_new(u32 reg_addr, const u32 reg_data,
|
||||
const u32 start, const u32 len);
|
||||
unsigned int dvbt_isdbt_rd_reg(unsigned int addr);
|
||||
unsigned int dvbt_isdbt_rd_reg_new(unsigned int addr);
|
||||
#endif
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_DVBT
|
||||
void dvbt_t2_wrb(unsigned int addr, unsigned char data);
|
||||
void dvbt_t2_write_w(unsigned int addr, unsigned int data);
|
||||
void dvbt_t2_wr_byte_bits(u32 addr, const u32 data, const u32 start, const u32 len);
|
||||
@@ -1075,15 +1095,20 @@ unsigned int dvbt_t2_read_w(unsigned int addr);
|
||||
char dvbt_t2_rdb(unsigned int addr);
|
||||
void riscv_ctl_write_reg(unsigned int addr, unsigned int data);
|
||||
unsigned int riscv_ctl_read_reg(unsigned int addr);
|
||||
#endif
|
||||
|
||||
#if defined AML_DEMOD_SUPPORT_DVBS || defined AML_DEMOD_SUPPORT_DVBC
|
||||
void dvbs_write_bits(u32 reg_addr, const u32 reg_data,
|
||||
const u32 start, const u32 len);
|
||||
void dvbs_wr_byte(unsigned int addr, unsigned char data);
|
||||
unsigned char dvbs_rd_byte(unsigned int addr);
|
||||
void dvbs2_reg_initial(unsigned int symb_rate_kbs, unsigned int is_blind_scan);
|
||||
#endif
|
||||
|
||||
int aml_demod_init(void);
|
||||
void aml_demod_exit(void);
|
||||
unsigned int write_riscv_ram(void);
|
||||
unsigned int dvbs_get_quality(void);
|
||||
void dvbs2_reg_initial(unsigned int symb_rate_kbs, unsigned int is_blind_scan);
|
||||
int dvbs_get_signal_strength_off(void);
|
||||
void t3_revb_set_ambus_state(bool enable, bool is_t2);
|
||||
void t5w_write_ambus_reg(u32 addr,
|
||||
@@ -1106,7 +1131,9 @@ void real_para_clear(struct aml_demod_para_real *para);
|
||||
enum fe_bandwidth dtvdemod_convert_bandwidth(unsigned int input);
|
||||
void demod_enable_frontend_agc(struct aml_dtvdemod *demod,
|
||||
enum fe_delivery_system delsys, bool enable);
|
||||
#if defined AML_DEMOD_SUPPORT_DVBS || defined AML_DEMOD_SUPPORT_DVBC
|
||||
void fe_l2a_set_symbol_rate(struct fe_l2a_internal_param *pparams, unsigned int symbol_rate);
|
||||
#endif
|
||||
void fe_l2a_get_agc2accu(struct fe_l2a_internal_param *pparams, unsigned int *pintegrator);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -204,19 +204,3 @@ int atsc_get_power_strength(int agc_gain, int tuner_strength)
|
||||
return strength;
|
||||
}
|
||||
|
||||
unsigned int atsc_read_reg_v4(unsigned int addr)
|
||||
{
|
||||
unsigned int tmp;
|
||||
|
||||
if (!get_dtvpll_init_flag())
|
||||
return 0;
|
||||
|
||||
demod_mutex_lock();
|
||||
|
||||
tmp = readl(gbase_atsc() + (addr << 2));
|
||||
|
||||
demod_mutex_unlock();
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user