aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <m.chehab@samsung.com>2014-03-10 07:22:34 -0400
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-03-11 06:37:21 -0400
commitd591590e1b5bba2f96b44b1e05f65bc8269f0a68 (patch)
treea47bb1f16d503c6e48492a2b6942e9d2452c93d9
parent80846a5c2f6650c903e6fa0708030cb6ba1124c8 (diff)
[media] drx-j: enable DVBv5 stats
Now that everything is set, let's enable DVBv5 stats, for applications that support it. DVBv3 apps will still work. Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drxj.c29
1 files changed, 25 insertions, 4 deletions
diff --git a/drivers/media/dvb-frontends/drx39xyj/drxj.c b/drivers/media/dvb-frontends/drx39xyj/drxj.c
index 8098d87cda0b..0c0e9f3b108f 100644
--- a/drivers/media/dvb-frontends/drx39xyj/drxj.c
+++ b/drivers/media/dvb-frontends/drx39xyj/drxj.c
@@ -6200,7 +6200,7 @@ rw_error:
6200* \return Error code 6200* \return Error code
6201*/ 6201*/
6202static int get_vsb_post_rs_pck_err(struct i2c_device_addr *dev_addr, 6202static int get_vsb_post_rs_pck_err(struct i2c_device_addr *dev_addr,
6203 u16 *pck_errs, u16 *pck_count) 6203 u32 *pck_errs, u32 *pck_count)
6204{ 6204{
6205 int rc; 6205 int rc;
6206 u16 data = 0; 6206 u16 data = 0;
@@ -10664,8 +10664,8 @@ ctrl_sig_quality(struct drx_demod_instance *demod,
10664 struct dtv_frontend_properties *p = &state->frontend.dtv_property_cache; 10664 struct dtv_frontend_properties *p = &state->frontend.dtv_property_cache;
10665 enum drx_standard standard = ext_attr->standard; 10665 enum drx_standard standard = ext_attr->standard;
10666 int rc; 10666 int rc;
10667 u32 ber, cnt; 10667 u32 ber, cnt, err, pkt;
10668 u16 err, pkt, mer, strength; 10668 u16 mer, strength;
10669 10669
10670 rc = get_sig_strength(demod, &strength); 10670 rc = get_sig_strength(demod, &strength);
10671 if (rc < 0) { 10671 if (rc < 0) {
@@ -12249,11 +12249,11 @@ static struct dvb_frontend_ops drx39xxj_ops;
12249struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c) 12249struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c)
12250{ 12250{
12251 struct drx39xxj_state *state = NULL; 12251 struct drx39xxj_state *state = NULL;
12252
12253 struct i2c_device_addr *demod_addr = NULL; 12252 struct i2c_device_addr *demod_addr = NULL;
12254 struct drx_common_attr *demod_comm_attr = NULL; 12253 struct drx_common_attr *demod_comm_attr = NULL;
12255 struct drxj_data *demod_ext_attr = NULL; 12254 struct drxj_data *demod_ext_attr = NULL;
12256 struct drx_demod_instance *demod = NULL; 12255 struct drx_demod_instance *demod = NULL;
12256 struct dtv_frontend_properties *p;
12257 struct drxuio_cfg uio_cfg; 12257 struct drxuio_cfg uio_cfg;
12258 struct drxuio_data uio_data; 12258 struct drxuio_data uio_data;
12259 int result; 12259 int result;
@@ -12331,6 +12331,27 @@ struct dvb_frontend *drx39xxj_attach(struct i2c_adapter *i2c)
12331 sizeof(struct dvb_frontend_ops)); 12331 sizeof(struct dvb_frontend_ops));
12332 12332
12333 state->frontend.demodulator_priv = state; 12333 state->frontend.demodulator_priv = state;
12334
12335 /* Initialize stats - needed for DVBv5 stats to work */
12336 p = &state->frontend.dtv_property_cache;
12337 p->strength.len = 1;
12338 p->pre_bit_count.len = 1;
12339 p->pre_bit_error.len = 1;
12340 p->post_bit_count.len = 1;
12341 p->post_bit_error.len = 1;
12342 p->block_count.len = 1;
12343 p->block_error.len = 1;
12344 p->cnr.len = 1;
12345
12346 p->strength.stat[0].scale = FE_SCALE_RELATIVE;
12347 p->pre_bit_count.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
12348 p->pre_bit_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
12349 p->post_bit_count.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
12350 p->post_bit_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
12351 p->block_count.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
12352 p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
12353 p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
12354
12334 return &state->frontend; 12355 return &state->frontend;
12335 12356
12336error: 12357error: