mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 09:19:51 +00:00
[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: Mauro Carvalho Chehab <m.chehab@samsung.com>
This commit is contained in:
parent
b601d9a5d6
commit
1d6207fd2c
1 changed files with 54 additions and 61 deletions
|
@ -156,144 +156,137 @@ static uint8_t as102_fe_get_code_rate(fe_code_rate_t arg)
|
|||
return c;
|
||||
}
|
||||
|
||||
static void as102_fe_copy_tune_parameters(struct as10x_tune_args *tune_args,
|
||||
struct dtv_frontend_properties *params)
|
||||
static int as102_fe_set_frontend(struct dvb_frontend *fe)
|
||||
{
|
||||
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 */
|
||||
tune_args->freq = params->frequency / 1000;
|
||||
tune_args.freq = c->frequency / 1000;
|
||||
|
||||
/* 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:
|
||||
tune_args->bandwidth = BW_8_MHZ;
|
||||
tune_args.bandwidth = BW_8_MHZ;
|
||||
break;
|
||||
case 7000000:
|
||||
tune_args->bandwidth = BW_7_MHZ;
|
||||
tune_args.bandwidth = BW_7_MHZ;
|
||||
break;
|
||||
case 6000000:
|
||||
tune_args->bandwidth = BW_6_MHZ;
|
||||
tune_args.bandwidth = BW_6_MHZ;
|
||||
break;
|
||||
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:
|
||||
tune_args->guard_interval = GUARD_INT_1_32;
|
||||
tune_args.guard_interval = GUARD_INT_1_32;
|
||||
break;
|
||||
case GUARD_INTERVAL_1_16:
|
||||
tune_args->guard_interval = GUARD_INT_1_16;
|
||||
tune_args.guard_interval = GUARD_INT_1_16;
|
||||
break;
|
||||
case GUARD_INTERVAL_1_8:
|
||||
tune_args->guard_interval = GUARD_INT_1_8;
|
||||
tune_args.guard_interval = GUARD_INT_1_8;
|
||||
break;
|
||||
case GUARD_INTERVAL_1_4:
|
||||
tune_args->guard_interval = GUARD_INT_1_4;
|
||||
tune_args.guard_interval = GUARD_INT_1_4;
|
||||
break;
|
||||
case GUARD_INTERVAL_AUTO:
|
||||
default:
|
||||
tune_args->guard_interval = GUARD_UNKNOWN;
|
||||
tune_args.guard_interval = GUARD_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (params->modulation) {
|
||||
switch (c->modulation) {
|
||||
case QPSK:
|
||||
tune_args->modulation = CONST_QPSK;
|
||||
tune_args.modulation = CONST_QPSK;
|
||||
break;
|
||||
case QAM_16:
|
||||
tune_args->modulation = CONST_QAM16;
|
||||
tune_args.modulation = CONST_QAM16;
|
||||
break;
|
||||
case QAM_64:
|
||||
tune_args->modulation = CONST_QAM64;
|
||||
tune_args.modulation = CONST_QAM64;
|
||||
break;
|
||||
default:
|
||||
tune_args->modulation = CONST_UNKNOWN;
|
||||
tune_args.modulation = CONST_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (params->transmission_mode) {
|
||||
switch (c->transmission_mode) {
|
||||
case TRANSMISSION_MODE_2K:
|
||||
tune_args->transmission_mode = TRANS_MODE_2K;
|
||||
tune_args.transmission_mode = TRANS_MODE_2K;
|
||||
break;
|
||||
case TRANSMISSION_MODE_8K:
|
||||
tune_args->transmission_mode = TRANS_MODE_8K;
|
||||
tune_args.transmission_mode = TRANS_MODE_8K;
|
||||
break;
|
||||
default:
|
||||
tune_args->transmission_mode = TRANS_MODE_UNKNOWN;
|
||||
tune_args.transmission_mode = TRANS_MODE_UNKNOWN;
|
||||
}
|
||||
|
||||
switch (params->hierarchy) {
|
||||
switch (c->hierarchy) {
|
||||
case HIERARCHY_NONE:
|
||||
tune_args->hierarchy = HIER_NONE;
|
||||
tune_args.hierarchy = HIER_NONE;
|
||||
break;
|
||||
case HIERARCHY_1:
|
||||
tune_args->hierarchy = HIER_ALPHA_1;
|
||||
tune_args.hierarchy = HIER_ALPHA_1;
|
||||
break;
|
||||
case HIERARCHY_2:
|
||||
tune_args->hierarchy = HIER_ALPHA_2;
|
||||
tune_args.hierarchy = HIER_ALPHA_2;
|
||||
break;
|
||||
case HIERARCHY_4:
|
||||
tune_args->hierarchy = HIER_ALPHA_4;
|
||||
tune_args.hierarchy = HIER_ALPHA_4;
|
||||
break;
|
||||
case HIERARCHY_AUTO:
|
||||
tune_args->hierarchy = HIER_UNKNOWN;
|
||||
tune_args.hierarchy = HIER_UNKNOWN;
|
||||
break;
|
||||
}
|
||||
|
||||
pr_debug("as102: tuner parameters: freq: %d bw: 0x%02x gi: 0x%02x\n",
|
||||
params->frequency,
|
||||
tune_args->bandwidth,
|
||||
tune_args->guard_interval);
|
||||
c->frequency,
|
||||
tune_args.bandwidth,
|
||||
tune_args.guard_interval);
|
||||
|
||||
/*
|
||||
* Detect a hierarchy selection
|
||||
* if HP/LP are both set to FEC_NONE, HP will be selected.
|
||||
*/
|
||||
if ((tune_args->hierarchy != HIER_NONE) &&
|
||||
((params->code_rate_LP == FEC_NONE) ||
|
||||
(params->code_rate_HP == FEC_NONE))) {
|
||||
if ((tune_args.hierarchy != HIER_NONE) &&
|
||||
((c->code_rate_LP == FEC_NONE) ||
|
||||
(c->code_rate_HP == FEC_NONE))) {
|
||||
|
||||
if (params->code_rate_LP == FEC_NONE) {
|
||||
tune_args->hier_select = HIER_HIGH_PRIORITY;
|
||||
tune_args->code_rate =
|
||||
as102_fe_get_code_rate(params->code_rate_HP);
|
||||
if (c->code_rate_LP == FEC_NONE) {
|
||||
tune_args.hier_select = HIER_HIGH_PRIORITY;
|
||||
tune_args.code_rate =
|
||||
as102_fe_get_code_rate(c->code_rate_HP);
|
||||
}
|
||||
|
||||
if (params->code_rate_HP == FEC_NONE) {
|
||||
tune_args->hier_select = HIER_LOW_PRIORITY;
|
||||
tune_args->code_rate =
|
||||
as102_fe_get_code_rate(params->code_rate_LP);
|
||||
if (c->code_rate_HP == FEC_NONE) {
|
||||
tune_args.hier_select = HIER_LOW_PRIORITY;
|
||||
tune_args.code_rate =
|
||||
as102_fe_get_code_rate(c->code_rate_LP);
|
||||
}
|
||||
|
||||
pr_debug("as102: \thierarchy: 0x%02x selected: %s code_rate_%s: 0x%02x\n",
|
||||
tune_args->hierarchy,
|
||||
tune_args->hier_select == HIER_HIGH_PRIORITY ?
|
||||
tune_args.hierarchy,
|
||||
tune_args.hier_select == HIER_HIGH_PRIORITY ?
|
||||
"HP" : "LP",
|
||||
tune_args->hier_select == HIER_HIGH_PRIORITY ?
|
||||
tune_args.hier_select == HIER_HIGH_PRIORITY ?
|
||||
"HP" : "LP",
|
||||
tune_args->code_rate);
|
||||
tune_args.code_rate);
|
||||
} else {
|
||||
tune_args->code_rate =
|
||||
as102_fe_get_code_rate(params->code_rate_HP);
|
||||
tune_args.code_rate =
|
||||
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))
|
||||
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);
|
||||
if (ret != 0)
|
||||
dev_dbg(&state->bus_adap->usb_dev->dev,
|
||||
|
|
Loading…
Reference in a new issue