aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/cx88/Kconfig1
-rw-r--r--drivers/media/video/cx88/cx88-cards.c1
-rw-r--r--drivers/media/video/cx88/cx88-dvb.c32
3 files changed, 34 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/Kconfig b/drivers/media/video/cx88/Kconfig
index bcf6d9ba063d..27635cdcbaf2 100644
--- a/drivers/media/video/cx88/Kconfig
+++ b/drivers/media/video/cx88/Kconfig
@@ -58,6 +58,7 @@ config VIDEO_CX88_DVB
58 select DVB_CX24123 if !DVB_FE_CUSTOMISE 58 select DVB_CX24123 if !DVB_FE_CUSTOMISE
59 select DVB_ISL6421 if !DVB_FE_CUSTOMISE 59 select DVB_ISL6421 if !DVB_FE_CUSTOMISE
60 select TUNER_SIMPLE if !DVB_FE_CUSTOMISE 60 select TUNER_SIMPLE if !DVB_FE_CUSTOMISE
61 select DVB_S5H1411 if !DVB_FE_CUSTOMISE
61 ---help--- 62 ---help---
62 This adds support for DVB/ATSC cards based on the 63 This adds support for DVB/ATSC cards based on the
63 Conexant 2388x chip. 64 Conexant 2388x chip.
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index 620159d05506..2b6b283cda15 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -1591,6 +1591,7 @@ static const struct cx88_board cx88_boards[] = {
1591 .vmux = 2, 1591 .vmux = 2,
1592 .gpio0 = 0x16d9, 1592 .gpio0 = 0x16d9,
1593 }}, 1593 }},
1594 .mpeg = CX88_MPEG_DVB,
1594 }, 1595 },
1595 [CX88_BOARD_PROLINK_PV_8000GT] = { 1596 [CX88_BOARD_PROLINK_PV_8000GT] = {
1596 .name = "Prolink Pixelview MPEG 8000GT", 1597 .name = "Prolink Pixelview MPEG 8000GT",
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c
index f1251b844e08..1c7fe6862a60 100644
--- a/drivers/media/video/cx88/cx88-dvb.c
+++ b/drivers/media/video/cx88/cx88-dvb.c
@@ -47,6 +47,7 @@
47#include "isl6421.h" 47#include "isl6421.h"
48#include "tuner-simple.h" 48#include "tuner-simple.h"
49#include "tda9887.h" 49#include "tda9887.h"
50#include "s5h1411.h"
50 51
51MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); 52MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
52MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>"); 53MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>");
@@ -463,6 +464,22 @@ static struct zl10353_config cx88_geniatech_x8000_mt = {
463 .no_tuner = 1, 464 .no_tuner = 1,
464}; 465};
465 466
467static struct s5h1411_config dvico_fusionhdtv7_config = {
468 .output_mode = S5H1411_SERIAL_OUTPUT,
469 .gpio = S5H1411_GPIO_ON,
470 .mpeg_timing = S5H1411_MPEGTIMING_CONTINOUS_NONINVERTING_CLOCK,
471 .qam_if = S5H1411_IF_44000,
472 .vsb_if = S5H1411_IF_44000,
473 .inversion = S5H1411_INVERSION_OFF,
474 .status_mode = S5H1411_DEMODLOCKING
475};
476
477static struct xc5000_config dvico_fusionhdtv7_tuner_config = {
478 .i2c_address = 0xc2 >> 1,
479 .if_khz = 5380,
480 .tuner_callback = cx88_tuner_callback,
481};
482
466static int attach_xc3028(u8 addr, struct cx8802_dev *dev) 483static int attach_xc3028(u8 addr, struct cx8802_dev *dev)
467{ 484{
468 struct dvb_frontend *fe; 485 struct dvb_frontend *fe;
@@ -844,6 +861,21 @@ static int dvb_register(struct cx8802_dev *dev)
844 if (attach_xc3028(0x61, dev) < 0) 861 if (attach_xc3028(0x61, dev) < 0)
845 return -EINVAL; 862 return -EINVAL;
846 break; 863 break;
864 case CX88_BOARD_DVICO_FUSIONHDTV_7_GOLD:
865 dev->dvb.frontend = dvb_attach(s5h1411_attach,
866 &dvico_fusionhdtv7_config,
867 &dev->core->i2c_adap);
868 if (dev->dvb.frontend != NULL) {
869 /* tuner_config.video_dev must point to
870 * i2c_adap.algo_data
871 */
872 dvico_fusionhdtv7_tuner_config.priv =
873 dev->core->i2c_adap.algo_data;
874 dvb_attach(xc5000_attach, dev->dvb.frontend,
875 &dev->core->i2c_adap,
876 &dvico_fusionhdtv7_tuner_config);
877 }
878 break;
847 default: 879 default:
848 printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", 880 printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n",
849 dev->core->name); 881 dev->core->name);