atv_demod: Modify atv entry and leave mode status.
authornengwen.chen <nengwen.chen@amlogic.com>
Thu, 19 Apr 2018 12:55:43 +0000 (20:55 +0800)
committerYixun Lan <yixun.lan@amlogic.com>
Fri, 20 Apr 2018 02:18:57 +0000 (19:18 -0700)
PD#163853: Modify atv entry and leave mode status.

Change-Id: I508574f7c0328342e0dff7657f79de4e60443d9a
Signed-off-by: nengwen.chen <nengwen.chen@amlogic.com>
drivers/amlogic/atv_demod/atv_demod_ops.c

index 8bcf116..27571fd 100644 (file)
@@ -375,6 +375,33 @@ static int atv_demod_set_config(struct dvb_frontend *fe, void *priv_cfg)
 
        mutex_lock(&atv_demod_list_mutex);
 
+       switch (*state) {
+       case AML_ATVDEMOD_INIT:
+               if (get_atvdemod_state() != ATVDEMOD_STATE_WORK) {
+                       atv_demod_enter_mode();
+                       if (fe->ops.tuner_ops.init)
+                               fe->ops.tuner_ops.init(fe);
+               }
+               break;
+
+       case AML_ATVDEMOD_UNINIT:
+               if (get_atvdemod_state() != ATVDEMOD_STATE_IDEL) {
+                       atv_demod_leave_mode();
+                       if (fe->ops.tuner_ops.release)
+                               fe->ops.tuner_ops.release(fe);
+               }
+               break;
+
+       case AML_ATVDEMOD_RESUME:
+               if (get_atvdemod_state() == ATVDEMOD_STATE_SLEEP) {
+                       atv_demod_enter_mode();
+                       if (fe->ops.tuner_ops.resume)
+                               fe->ops.tuner_ops.resume(fe);
+               }
+               break;
+       }
+
+#if 0
        if (*state == AML_ATVDEMOD_INIT && atvdemod_state != *state) {
                atv_demod_enter_mode();
                if (fe->ops.tuner_ops.init)
@@ -389,6 +416,7 @@ static int atv_demod_set_config(struct dvb_frontend *fe, void *priv_cfg)
                if (fe->ops.tuner_ops.resume)
                        fe->ops.tuner_ops.resume(fe);
        }
+#endif
 
        mutex_unlock(&atv_demod_list_mutex);