diff options
-rw-r--r-- | drivers/media/video/cx88/Kconfig | 1 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 1 | ||||
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 32 |
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 | ||
51 | MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); | 52 | MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); |
52 | MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>"); | 53 | MODULE_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 | ||
467 | static 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 | |||
477 | static struct xc5000_config dvico_fusionhdtv7_tuner_config = { | ||
478 | .i2c_address = 0xc2 >> 1, | ||
479 | .if_khz = 5380, | ||
480 | .tuner_callback = cx88_tuner_callback, | ||
481 | }; | ||
482 | |||
466 | static int attach_xc3028(u8 addr, struct cx8802_dev *dev) | 483 | static 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); |