提交 e2f63d9b 编写于 作者: M Mauro Carvalho Chehab

[media] tuner-core: do the right thing for suspend/resume

Power down tuners at suspend. At resume, if the tuner is in standby,
calls set_mode, that will turn it on and set the latest frequencies.
Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
上级 cbde6898
...@@ -1121,9 +1121,13 @@ static int tuner_log_status(struct v4l2_subdev *sd) ...@@ -1121,9 +1121,13 @@ static int tuner_log_status(struct v4l2_subdev *sd)
static int tuner_suspend(struct i2c_client *c, pm_message_t state) static int tuner_suspend(struct i2c_client *c, pm_message_t state)
{ {
struct tuner *t = to_tuner(i2c_get_clientdata(c)); struct tuner *t = to_tuner(i2c_get_clientdata(c));
struct analog_demod_ops *analog_ops = &t->fe.ops.analog_ops;
tuner_dbg("suspend\n"); tuner_dbg("suspend\n");
/* FIXME: power down ??? */
if (!t->standby && analog_ops->standby)
analog_ops->standby(&t->fe);
return 0; return 0;
} }
...@@ -1132,10 +1136,10 @@ static int tuner_resume(struct i2c_client *c) ...@@ -1132,10 +1136,10 @@ static int tuner_resume(struct i2c_client *c)
struct tuner *t = to_tuner(i2c_get_clientdata(c)); struct tuner *t = to_tuner(i2c_get_clientdata(c));
tuner_dbg("resume\n"); tuner_dbg("resume\n");
if (V4L2_TUNER_RADIO == t->mode)
set_freq(c, t->radio_freq); if (!t->standby)
else set_mode_freq(c, t, t->type, 0);
set_freq(c, t->tv_freq);
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册