[media] Force xc5000 firmware loading for NetUP Dual DVB-T/C CI RF card
authorAbylay Ospan <aospan@netup.ru>
Sun, 2 Jan 2011 12:15:00 +0000 (09:15 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Tue, 22 Mar 2011 07:54:12 +0000 (04:54 -0300)
Two xc5000 tuners connected to same i2c bus.
Experiments shows that situation when one tuner is not initialized
while other is tuned to channel causes TS errors.

Signed-off-by: Abylay Ospan <aospan@netup.ru>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/cx23885/cx23885-dvb.c

index c0e665506750961001de6a01e0ea2a2d65f3c9a9..3c315f94cc8512c33f6a43a264722411fcf43a93 100644 (file)
@@ -1071,12 +1071,15 @@ static int dvb_register(struct cx23885_tsport *port)
                fe0->dvb.frontend = dvb_attach(stv0367ter_attach,
                                        &netup_stv0367_config[port->nr - 1],
                                        &i2c_bus->i2c_adap);
-               if (fe0->dvb.frontend != NULL)
+               if (fe0->dvb.frontend != NULL) {
                        if (NULL == dvb_attach(xc5000_attach,
                                        fe0->dvb.frontend,
                                        &i2c_bus->i2c_adap,
                                        &netup_xc5000_config[port->nr - 1]))
                                goto frontend_detach;
+                       /* load xc5000 firmware */
+                       fe0->dvb.frontend->ops.tuner_ops.init(fe0->dvb.frontend);
+               }
                /* MFE frontend 2 */
                fe1 = videobuf_dvb_get_frontend(&port->frontends, 2);
                if (fe1 == NULL)