diff options
Diffstat (limited to 'linux/drivers/media/video/tuner-core.c')
-rw-r--r-- | linux/drivers/media/video/tuner-core.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/linux/drivers/media/video/tuner-core.c b/linux/drivers/media/video/tuner-core.c index 6f73235cf..4633c0d6a 100644 --- a/linux/drivers/media/video/tuner-core.c +++ b/linux/drivers/media/video/tuner-core.c @@ -1,5 +1,5 @@ /* - * $Id: tuner-core.c,v 1.5 2005/02/15 15:59:35 kraxel Exp $ + * $Id: tuner-core.c,v 1.6 2005/05/22 19:23:39 nsh Exp $ * * i2c tv tuner chip device driver * core core, i.e. kernel interfaces, registering and so on @@ -169,7 +169,7 @@ static void set_type(struct i2c_client *c, unsigned int type) } static char pal[] = "-"; -module_param_string(pal, pal, 0644, sizeof(pal)); +module_param_string(pal, pal, sizeof(pal), 0644); static int tuner_fixup_std(struct tuner *t) { @@ -364,8 +364,16 @@ tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) V4L2_TUNER_RADIO != t->mode) set_tv_freq(client,400*16); t->mode = f->type; - t->freq = f->frequency; - set_freq(client,t->freq); + set_freq(client,f->frequency); + break; + } + case VIDIOC_G_FREQUENCY: + { + struct v4l2_frequency *f = arg; + + SWITCH_V4L2; + f->type = t->mode; + f->frequency = t->freq; break; } case VIDIOC_G_TUNER: @@ -375,6 +383,8 @@ tuner_command(struct i2c_client *client, unsigned int cmd, void *arg) SWITCH_V4L2; if (V4L2_TUNER_RADIO == t->mode && t->has_signal) tuner->signal = t->has_signal(client); + tuner->rangelow = tv_range[0] * 16; + tuner->rangehigh = tv_range[1] * 16; break; } default: |