diff options
author | Hans Verkuil <hans.verkuil@cisco.com> | 2011-06-25 09:24:49 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2011-07-07 14:07:01 -0400 |
commit | d16625e788b8871163ad991851ffba5f64c06d43 (patch) | |
tree | cd74a65b95552649fe960e5a6aeefae8a7a98f9f /drivers/media | |
parent | a6cf90a91551c767bed78a4418c26f41aed60cde (diff) |
[media] tuner-core: power up tuner when called with s_power(1)
Drivers must be able to rely on s_power to power up subdevices.
Note that at this moment no driver attempts to power up tuners. This probably
isn't surprising since s_power(1) was never implemented in tuner-core.c until
now.
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/tuner-core.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/media/video/tuner-core.c b/drivers/media/video/tuner-core.c index 1e7505eb32e9..39af999112f9 100644 --- a/drivers/media/video/tuner-core.c +++ b/drivers/media/video/tuner-core.c | |||
@@ -1039,16 +1039,20 @@ static int tuner_s_radio(struct v4l2_subdev *sd) | |||
1039 | /** | 1039 | /** |
1040 | * tuner_s_power - controls the power state of the tuner | 1040 | * tuner_s_power - controls the power state of the tuner |
1041 | * @sd: pointer to struct v4l2_subdev | 1041 | * @sd: pointer to struct v4l2_subdev |
1042 | * @on: a zero value puts the tuner to sleep | 1042 | * @on: a zero value puts the tuner to sleep, non-zero wakes it up |
1043 | */ | 1043 | */ |
1044 | static int tuner_s_power(struct v4l2_subdev *sd, int on) | 1044 | static int tuner_s_power(struct v4l2_subdev *sd, int on) |
1045 | { | 1045 | { |
1046 | struct tuner *t = to_tuner(sd); | 1046 | struct tuner *t = to_tuner(sd); |
1047 | struct analog_demod_ops *analog_ops = &t->fe.ops.analog_ops; | 1047 | struct analog_demod_ops *analog_ops = &t->fe.ops.analog_ops; |
1048 | 1048 | ||
1049 | /* FIXME: Why this function don't wake the tuner if on != 0 ? */ | 1049 | if (on) { |
1050 | if (on) | 1050 | if (t->standby && set_mode(t, t->mode) == 0) { |
1051 | tuner_dbg("Waking up tuner\n"); | ||
1052 | set_freq(t, 0); | ||
1053 | } | ||
1051 | return 0; | 1054 | return 0; |
1055 | } | ||
1052 | 1056 | ||
1053 | tuner_dbg("Putting tuner to sleep\n"); | 1057 | tuner_dbg("Putting tuner to sleep\n"); |
1054 | t->standby = true; | 1058 | t->standby = true; |