V4L/DVB (8236): cx23885: add support for new revision of FusionHDTV7 Dual Express
authorMichael Krufky <mkrufky@linuxtv.org>
Wed, 9 Jul 2008 05:18:49 +0000 (02:18 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 20 Jul 2008 10:18:25 +0000 (07:18 -0300)
The new revision of this board uses the same pci subsystem id as the first
revision, but uses a S5H1411 demodulator instead of the S5H1409.

In the case of the FusionHDTV7 Dual Express,
if s5h1409_attach fails, try s5h1411_attach.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/cx23885/Kconfig
drivers/media/video/cx23885/cx23885-dvb.c

index 7bf14c9..04e9640 100644 (file)
@@ -14,6 +14,7 @@ config VIDEO_CX23885
        select DVB_DIB7000P if !DVB_FE_CUSTOMISE
        select MEDIA_TUNER_MT2131 if !DVB_FE_CUSTOMISE
        select DVB_S5H1409 if !DVB_FE_CUSTOMISE
+       select DVB_S5H1411 if !DVB_FE_CUSTOMISE
        select DVB_LGDT330X if !DVB_FE_CUSTOMISE
        select MEDIA_TUNER_XC2028 if !DVB_FE_CUSTOMIZE
        select MEDIA_TUNER_TDA8290 if !DVB_FE_CUSTOMIZE
index 51dedb1..0a2e655 100644 (file)
@@ -31,6 +31,7 @@
 #include <media/v4l2-common.h>
 
 #include "s5h1409.h"
+#include "s5h1411.h"
 #include "mt2131.h"
 #include "tda8290.h"
 #include "tda18271.h"
@@ -174,6 +175,16 @@ static struct s5h1409_config dvico_s5h1409_config = {
        .mpeg_timing   = S5H1409_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK,
 };
 
+static struct s5h1411_config dvico_s5h1411_config = {
+       .output_mode   = S5H1411_SERIAL_OUTPUT,
+       .gpio          = S5H1411_GPIO_ON,
+       .qam_if        = S5H1411_IF_44000,
+       .vsb_if        = S5H1411_IF_44000,
+       .inversion     = S5H1411_INVERSION_OFF,
+       .status_mode   = S5H1411_DEMODLOCKING,
+       .mpeg_timing   = S5H1411_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK,
+};
+
 static struct xc5000_config hauppauge_hvr1500q_tunerconfig = {
        .i2c_address      = 0x61,
        .if_khz           = 5380,
@@ -475,6 +486,10 @@ static int dvb_register(struct cx23885_tsport *port)
                port->dvb.frontend = dvb_attach(s5h1409_attach,
                                                &dvico_s5h1409_config,
                                                &i2c_bus->i2c_adap);
+               if (port->dvb.frontend == NULL)
+                       port->dvb.frontend = dvb_attach(s5h1411_attach,
+                                                       &dvico_s5h1411_config,
+                                                       &i2c_bus->i2c_adap);
                if (port->dvb.frontend != NULL)
                        dvb_attach(xc5000_attach, port->dvb.frontend,
                                &i2c_bus->i2c_adap,