Commit 1d6207fd authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] as102: get rid of as102_fe_copy_tune_parameters()

This function just parses the frontend cache and converts
to the as102 internal format message. Get rid of it.

No functional changes.
Signed-off-by: default avatarMauro Carvalho Chehab <m.chehab@samsung.com>
parent b601d9a5
...@@ -156,144 +156,137 @@ static uint8_t as102_fe_get_code_rate(fe_code_rate_t arg) ...@@ -156,144 +156,137 @@ static uint8_t as102_fe_get_code_rate(fe_code_rate_t arg)
return c; return c;
} }
static void as102_fe_copy_tune_parameters(struct as10x_tune_args *tune_args, static int as102_fe_set_frontend(struct dvb_frontend *fe)
struct dtv_frontend_properties *params)
{ {
struct as102_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *c = &fe->dtv_property_cache;
int ret = 0;
struct as10x_tune_args tune_args = { 0 };
/* set frequency */ /* set frequency */
tune_args->freq = params->frequency / 1000; tune_args.freq = c->frequency / 1000;
/* fix interleaving_mode */ /* fix interleaving_mode */
tune_args->interleaving_mode = INTLV_NATIVE; tune_args.interleaving_mode = INTLV_NATIVE;
switch (params->bandwidth_hz) { switch (c->bandwidth_hz) {
case 8000000: case 8000000:
tune_args->bandwidth = BW_8_MHZ; tune_args.bandwidth = BW_8_MHZ;
break; break;
case 7000000: case 7000000:
tune_args->bandwidth = BW_7_MHZ; tune_args.bandwidth = BW_7_MHZ;
break; break;
case 6000000: case 6000000:
tune_args->bandwidth = BW_6_MHZ; tune_args.bandwidth = BW_6_MHZ;
break; break;
default: default:
tune_args->bandwidth = BW_8_MHZ; tune_args.bandwidth = BW_8_MHZ;
} }
switch (params->guard_interval) { switch (c->guard_interval) {
case GUARD_INTERVAL_1_32: case GUARD_INTERVAL_1_32:
tune_args->guard_interval = GUARD_INT_1_32; tune_args.guard_interval = GUARD_INT_1_32;
break; break;
case GUARD_INTERVAL_1_16: case GUARD_INTERVAL_1_16:
tune_args->guard_interval = GUARD_INT_1_16; tune_args.guard_interval = GUARD_INT_1_16;
break; break;
case GUARD_INTERVAL_1_8: case GUARD_INTERVAL_1_8:
tune_args->guard_interval = GUARD_INT_1_8; tune_args.guard_interval = GUARD_INT_1_8;
break; break;
case GUARD_INTERVAL_1_4: case GUARD_INTERVAL_1_4:
tune_args->guard_interval = GUARD_INT_1_4; tune_args.guard_interval = GUARD_INT_1_4;
break; break;
case GUARD_INTERVAL_AUTO: case GUARD_INTERVAL_AUTO:
default: default:
tune_args->guard_interval = GUARD_UNKNOWN; tune_args.guard_interval = GUARD_UNKNOWN;
break; break;
} }
switch (params->modulation) { switch (c->modulation) {
case QPSK: case QPSK:
tune_args->modulation = CONST_QPSK; tune_args.modulation = CONST_QPSK;
break; break;
case QAM_16: case QAM_16:
tune_args->modulation = CONST_QAM16; tune_args.modulation = CONST_QAM16;
break; break;
case QAM_64: case QAM_64:
tune_args->modulation = CONST_QAM64; tune_args.modulation = CONST_QAM64;
break; break;
default: default:
tune_args->modulation = CONST_UNKNOWN; tune_args.modulation = CONST_UNKNOWN;
break; break;
} }
switch (params->transmission_mode) { switch (c->transmission_mode) {
case TRANSMISSION_MODE_2K: case TRANSMISSION_MODE_2K:
tune_args->transmission_mode = TRANS_MODE_2K; tune_args.transmission_mode = TRANS_MODE_2K;
break; break;
case TRANSMISSION_MODE_8K: case TRANSMISSION_MODE_8K:
tune_args->transmission_mode = TRANS_MODE_8K; tune_args.transmission_mode = TRANS_MODE_8K;
break; break;
default: default:
tune_args->transmission_mode = TRANS_MODE_UNKNOWN; tune_args.transmission_mode = TRANS_MODE_UNKNOWN;
} }
switch (params->hierarchy) { switch (c->hierarchy) {
case HIERARCHY_NONE: case HIERARCHY_NONE:
tune_args->hierarchy = HIER_NONE; tune_args.hierarchy = HIER_NONE;
break; break;
case HIERARCHY_1: case HIERARCHY_1:
tune_args->hierarchy = HIER_ALPHA_1; tune_args.hierarchy = HIER_ALPHA_1;
break; break;
case HIERARCHY_2: case HIERARCHY_2:
tune_args->hierarchy = HIER_ALPHA_2; tune_args.hierarchy = HIER_ALPHA_2;
break; break;
case HIERARCHY_4: case HIERARCHY_4:
tune_args->hierarchy = HIER_ALPHA_4; tune_args.hierarchy = HIER_ALPHA_4;
break; break;
case HIERARCHY_AUTO: case HIERARCHY_AUTO:
tune_args->hierarchy = HIER_UNKNOWN; tune_args.hierarchy = HIER_UNKNOWN;
break; break;
} }
pr_debug("as102: tuner parameters: freq: %d bw: 0x%02x gi: 0x%02x\n", pr_debug("as102: tuner parameters: freq: %d bw: 0x%02x gi: 0x%02x\n",
params->frequency, c->frequency,
tune_args->bandwidth, tune_args.bandwidth,
tune_args->guard_interval); tune_args.guard_interval);
/* /*
* Detect a hierarchy selection * Detect a hierarchy selection
* if HP/LP are both set to FEC_NONE, HP will be selected. * if HP/LP are both set to FEC_NONE, HP will be selected.
*/ */
if ((tune_args->hierarchy != HIER_NONE) && if ((tune_args.hierarchy != HIER_NONE) &&
((params->code_rate_LP == FEC_NONE) || ((c->code_rate_LP == FEC_NONE) ||
(params->code_rate_HP == FEC_NONE))) { (c->code_rate_HP == FEC_NONE))) {
if (params->code_rate_LP == FEC_NONE) { if (c->code_rate_LP == FEC_NONE) {
tune_args->hier_select = HIER_HIGH_PRIORITY; tune_args.hier_select = HIER_HIGH_PRIORITY;
tune_args->code_rate = tune_args.code_rate =
as102_fe_get_code_rate(params->code_rate_HP); as102_fe_get_code_rate(c->code_rate_HP);
} }
if (params->code_rate_HP == FEC_NONE) { if (c->code_rate_HP == FEC_NONE) {
tune_args->hier_select = HIER_LOW_PRIORITY; tune_args.hier_select = HIER_LOW_PRIORITY;
tune_args->code_rate = tune_args.code_rate =
as102_fe_get_code_rate(params->code_rate_LP); as102_fe_get_code_rate(c->code_rate_LP);
} }
pr_debug("as102: \thierarchy: 0x%02x selected: %s code_rate_%s: 0x%02x\n", pr_debug("as102: \thierarchy: 0x%02x selected: %s code_rate_%s: 0x%02x\n",
tune_args->hierarchy, tune_args.hierarchy,
tune_args->hier_select == HIER_HIGH_PRIORITY ? tune_args.hier_select == HIER_HIGH_PRIORITY ?
"HP" : "LP", "HP" : "LP",
tune_args->hier_select == HIER_HIGH_PRIORITY ? tune_args.hier_select == HIER_HIGH_PRIORITY ?
"HP" : "LP", "HP" : "LP",
tune_args->code_rate); tune_args.code_rate);
} else { } else {
tune_args->code_rate = tune_args.code_rate =
as102_fe_get_code_rate(params->code_rate_HP); as102_fe_get_code_rate(c->code_rate_HP);
} }
}
static int as102_fe_set_frontend(struct dvb_frontend *fe)
{
struct as102_state *state = fe->demodulator_priv;
struct dtv_frontend_properties *p = &fe->dtv_property_cache;
int ret = 0;
struct as10x_tune_args tune_args = { 0 };
/* Set frontend arguments */
if (mutex_lock_interruptible(&state->bus_adap->lock)) if (mutex_lock_interruptible(&state->bus_adap->lock))
return -EBUSY; return -EBUSY;
as102_fe_copy_tune_parameters(&tune_args, p);
/* send abilis command: SET_TUNE */
ret = as10x_cmd_set_tune(state->bus_adap, &tune_args); ret = as10x_cmd_set_tune(state->bus_adap, &tune_args);
if (ret != 0) if (ret != 0)
dev_dbg(&state->bus_adap->usb_dev->dev, dev_dbg(&state->bus_adap->usb_dev->dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment