V4L/DVB (7355): tuner-simple: use separate inputs for vsb and qam on tuv1236d & fcv1236d

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Michael Krufky 2008-04-22 14:45:55 -03:00 committed by Mauro Carvalho Chehab
parent f4173d0f75
commit 02f5f44484

View file

@ -268,6 +268,37 @@ static int simple_config_lookup(struct dvb_frontend *fe,
/* ---------------------------------------------------------------------- */
static void simple_set_rf_input(struct dvb_frontend *fe,
u8 *config, u8 *cb, unsigned int rf)
{
struct tuner_simple_priv *priv = fe->tuner_priv;
switch (priv->type) {
case TUNER_PHILIPS_TUV1236D:
switch (rf) {
case 1:
*cb |= 0x08;
break;
default:
*cb &= ~0x08;
break;
}
break;
case TUNER_PHILIPS_ATSC:
switch (rf) {
case 1:
*cb |= 0x01;
break;
default:
*cb &= ~0x01;
break;
}
break;
default:
break;
}
}
static int simple_std_setup(struct dvb_frontend *fe,
struct analog_parameters *params,
u8 *config, u8 *cb)
@ -725,6 +756,24 @@ static void simple_set_dvb(struct dvb_frontend *fe, u8 *buf,
params->frequency >= 158870000)
buf[3] |= 0x08;
break;
case TUNER_PHILIPS_TUV1236D:
case TUNER_PHILIPS_ATSC:
{
unsigned int new_rf;
switch (params->u.vsb.modulation) {
case QAM_64:
case QAM_256:
new_rf = 1;
break;
case VSB_8:
default:
new_rf = 0;
break;
}
simple_set_rf_input(fe, &buf[2], &buf[3], new_rf);
break;
}
default:
break;
}