Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 92527
b: refs/heads/master
c: 6551161
h: refs/heads/master
i:
  92525: 6afce61
  92523: 9a6c73c
  92519: e555db5
  92511: 9031084
v: v3
  • Loading branch information
Michael Krufky authored and Mauro Carvalho Chehab committed Apr 24, 2008
1 parent a63291b commit 5df17fa
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 26f1b942156766c6ff1a70fb2ac463c6fce31309
refs/heads/master: 65511611dd0a5219b431a8a08cff6f8f7ab83aa5
59 changes: 47 additions & 12 deletions trunk/drivers/media/video/tuner-simple.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,22 @@ static int debug;
module_param(debug, int, 0644);
MODULE_PARM_DESC(debug, "enable verbose debug messages");

#define TUNER_SIMPLE_MAX 64
static unsigned int simple_devcount;

static int offset;
module_param(offset, int, 0664);
MODULE_PARM_DESC(offset, "Allows to specify an offset for tuner");

static unsigned int atv_input[TUNER_SIMPLE_MAX] = \
{ [0 ... (TUNER_SIMPLE_MAX-1)] = 0 };
static unsigned int dtv_input[TUNER_SIMPLE_MAX] = \
{ [0 ... (TUNER_SIMPLE_MAX-1)] = 0 };
module_param_array(atv_input, int, NULL, 0644);
module_param_array(dtv_input, int, NULL, 0644);
MODULE_PARM_DESC(atv_input, "specify atv rf input, 0 for autoselect");
MODULE_PARM_DESC(dtv_input, "specify dtv rf input, 0 for autoselect");

/* ---------------------------------------------------------------------- */

/* tv standard selection for Temic 4046 FM5
Expand Down Expand Up @@ -92,6 +104,7 @@ static DEFINE_MUTEX(tuner_simple_list_mutex);
static LIST_HEAD(hybrid_tuner_instance_list);

struct tuner_simple_priv {
unsigned int nr;
u16 last_div;

struct tuner_i2c_props i2c_props;
Expand Down Expand Up @@ -364,7 +377,6 @@ static int simple_std_setup(struct dvb_frontend *fe,
*cb &= ~0x03;
if (!(params->std & V4L2_STD_ATSC))
*cb |= 2;
/* FIXME: input */
break;

case TUNER_MICROTUNE_4042FI5:
Expand Down Expand Up @@ -396,10 +408,11 @@ static int simple_std_setup(struct dvb_frontend *fe,
tuner_warn("i2c i/o error: rc == %d "
"(should be 2)\n", rc);
priv->i2c_props.addr = tuneraddr;
/* FIXME: input */
break;
}
}
if (atv_input[priv->nr])
simple_set_rf_input(fe, config, cb, atv_input[priv->nr]);

return 0;
}
Expand Down Expand Up @@ -770,16 +783,19 @@ static void simple_set_dvb(struct dvb_frontend *fe, u8 *buf,
{
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;
}
if (dtv_input[priv->nr])
new_rf = dtv_input[priv->nr];
else
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;
}
Expand Down Expand Up @@ -1025,6 +1041,7 @@ struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe,

priv->type = type;
priv->tun = &tuners[type];
priv->nr = simple_devcount++;
break;
default:
fe->tuner_priv = priv;
Expand All @@ -1038,6 +1055,24 @@ struct dvb_frontend *simple_tuner_attach(struct dvb_frontend *fe,

tuner_info("type set to %d (%s)\n", type, priv->tun->name);

if ((debug) || ((atv_input[priv->nr] > 0) ||
(dtv_input[priv->nr] > 0))) {
if (0 == atv_input[priv->nr])
tuner_info("tuner %d atv rf input will be "
"autoselected\n", priv->nr);
else
tuner_info("tuner %d atv rf input will be "
"set to input %d (insmod option)\n",
priv->nr, atv_input[priv->nr]);
if (0 == dtv_input[priv->nr])
tuner_info("tuner %d dtv rf input will be "
"autoselected\n", priv->nr);
else
tuner_info("tuner %d dtv rf input will be "
"set to input %d (insmod option)\n",
priv->nr, dtv_input[priv->nr]);
}

strlcpy(fe->ops.tuner_ops.info.name, priv->tun->name,
sizeof(fe->ops.tuner_ops.info.name));

Expand Down

0 comments on commit 5df17fa

Please sign in to comment.