V4L/DVB (12867): tda18271: ensure that configuration options are set for multiple...
authorMichael Krufky <mkrufky@kernellabs.com>
Sun, 30 Aug 2009 06:07:10 +0000 (03:07 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 19 Sep 2009 03:13:47 +0000 (00:13 -0300)
For the case of multiple tuner instances, ensure that non-default
configuration options are saved into the driver's state.

This resolves an issue where a configuration option may not be
carried into the driver if the analog side of a hybrid driver
initializes before the digital side.

Signed-off-by: Michael Krufky <mkrufky@kernellabs.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/common/tuners/tda18271-fe.c

index 063c7987d310b59001b0d00b2f6cfe08b72991fd..152df76cdce81773b75f5537def481c5364b7a59 100644 (file)
@@ -1258,9 +1258,19 @@ struct dvb_frontend *tda18271_attach(struct dvb_frontend *fe, u8 addr,
                /* existing tuner instance */
                fe->tuner_priv = priv;
 
-               /* allow dvb driver to override i2c gate setting */
-               if ((cfg) && (cfg->gate != TDA18271_GATE_ANALOG))
-                       priv->gate = cfg->gate;
+               /* allow dvb driver to override configuration settings */
+               if (cfg) {
+                       if (cfg->gate != TDA18271_GATE_ANALOG)
+                               priv->gate = cfg->gate;
+                       if (cfg->role)
+                               priv->role = cfg->role;
+                       if (cfg->config)
+                               priv->config = cfg->config;
+                       if (cfg->small_i2c)
+                               priv->small_i2c = cfg->small_i2c;
+                       if (cfg->output_opt)
+                               priv->output_opt = cfg->output_opt;
+               }
                break;
        }