From f2e7af0baee2d1b5f14fd5676fa3dc50b9701163 Mon Sep 17 00:00:00 2001 From: Yasunari Takiguchi Date: Thu, 26 Apr 2018 02:41:29 -0400 Subject: [PATCH] media: cxd2880:Optimized spi drive current and BER/PER set/get condition This is the optimization for SPI drive current and signal lock condition check part for BER/PER measure to ensure BER/PER are stable Signed-off-by: Yasunari Takiguchi Signed-off-by: Masayuki Yamamoto Signed-off-by: Hideki Nozawa Signed-off-by: Kota Yonezawa Signed-off-by: Toshihiko Matsumoto Signed-off-by: Satoshi Watanabe Signed-off-by: Mauro Carvalho Chehab --- drivers/media/dvb-frontends/cxd2880/cxd2880_top.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/media/dvb-frontends/cxd2880/cxd2880_top.c b/drivers/media/dvb-frontends/cxd2880/cxd2880_top.c index d474dc1b05da..bd9101e246d5 100644 --- a/drivers/media/dvb-frontends/cxd2880/cxd2880_top.c +++ b/drivers/media/dvb-frontends/cxd2880/cxd2880_top.c @@ -520,6 +520,15 @@ static int cxd2880_init(struct dvb_frontend *fe) pr_err("cxd2880 integ init failed %d\n", ret); return ret; } + + ret = cxd2880_tnrdmd_set_cfg(&priv->tnrdmd, + CXD2880_TNRDMD_CFG_TSPIN_CURRENT, + 0x00); + if (ret) { + mutex_unlock(priv->spi_mutex); + pr_err("cxd2880 set config failed %d\n", ret); + return ret; + } mutex_unlock(priv->spi_mutex); pr_debug("OK.\n"); @@ -1126,7 +1135,7 @@ static int cxd2880_get_stats(struct dvb_frontend *fe, priv = fe->demodulator_priv; c = &fe->dtv_property_cache; - if (!(status & FE_HAS_LOCK)) { + if (!(status & FE_HAS_LOCK) || !(status & FE_HAS_CARRIER)) { c->pre_bit_error.len = 1; c->pre_bit_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE; c->pre_bit_count.len = 1; @@ -1345,7 +1354,8 @@ static int cxd2880_read_status(struct dvb_frontend *fe, pr_debug("status %d\n", *status); - if (priv->s == 0 && (*status & FE_HAS_LOCK)) { + if (priv->s == 0 && (*status & FE_HAS_LOCK) && + (*status & FE_HAS_CARRIER)) { mutex_lock(priv->spi_mutex); if (c->delivery_system == SYS_DVBT) { ret = cxd2880_set_ber_per_period_t(fe);