diff options
author | Steven Toth <stoth@linuxtv.org> | 2008-09-04 00:17:33 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-10-12 07:37:03 -0400 |
commit | 5bd1b66359437864e6b46420ba6770c2b1c4362c (patch) | |
tree | 610860306d4a0c40456ef6b7b12904251880ddbd /drivers/media/video/cx88/cx88-dvb.c | |
parent | 0d46748c3f874defbbbf98bcf40c7b18964abbc0 (diff) |
V4L/DVB (8987): cx88: Add support for the Hauppauge HVR4000 and HVR4000-LITE (S2) boards
Adding support for Hauppauge's cx88 S2 based products, based on the
cx24116 DVB-S2 demodulator.
Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx88/cx88-dvb.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-dvb.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/drivers/media/video/cx88/cx88-dvb.c b/drivers/media/video/cx88/cx88-dvb.c index 9f0e5b3c515e..7a5a4a2c69ca 100644 --- a/drivers/media/video/cx88/cx88-dvb.c +++ b/drivers/media/video/cx88/cx88-dvb.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include "tuner-simple.h" | 48 | #include "tuner-simple.h" |
49 | #include "tda9887.h" | 49 | #include "tda9887.h" |
50 | #include "s5h1411.h" | 50 | #include "s5h1411.h" |
51 | #include "cx24116.h" | ||
51 | 52 | ||
52 | MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); | 53 | MODULE_DESCRIPTION("driver for cx2388x based DVB cards"); |
53 | MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>"); | 54 | MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>"); |
@@ -518,6 +519,35 @@ static int attach_xc3028(u8 addr, struct cx8802_dev *dev) | |||
518 | return 0; | 519 | return 0; |
519 | } | 520 | } |
520 | 521 | ||
522 | static int cx24116_set_ts_param(struct dvb_frontend *fe, | ||
523 | int is_punctured) | ||
524 | { | ||
525 | struct cx8802_dev *dev = fe->dvb->priv; | ||
526 | dev->ts_gen_cntrl = 0x2; | ||
527 | |||
528 | return 0; | ||
529 | } | ||
530 | |||
531 | static int cx24116_reset_device(struct dvb_frontend *fe) | ||
532 | { | ||
533 | struct cx8802_dev *dev = fe->dvb->priv; | ||
534 | struct cx88_core *core = dev->core; | ||
535 | |||
536 | /* Reset the part */ | ||
537 | cx_write(MO_SRST_IO, 0); | ||
538 | msleep(10); | ||
539 | cx_write(MO_SRST_IO, 1); | ||
540 | msleep(10); | ||
541 | |||
542 | return 0; | ||
543 | } | ||
544 | |||
545 | static struct cx24116_config hauppauge_hvr4000_config = { | ||
546 | .demod_address = 0x05, | ||
547 | .set_ts_params = cx24116_set_ts_param, | ||
548 | .reset_device = cx24116_reset_device, | ||
549 | }; | ||
550 | |||
521 | static int dvb_register(struct cx8802_dev *dev) | 551 | static int dvb_register(struct cx8802_dev *dev) |
522 | { | 552 | { |
523 | struct cx88_core *core = dev->core; | 553 | struct cx88_core *core = dev->core; |
@@ -876,6 +906,18 @@ static int dvb_register(struct cx8802_dev *dev) | |||
876 | goto frontend_detach; | 906 | goto frontend_detach; |
877 | } | 907 | } |
878 | break; | 908 | break; |
909 | case CX88_BOARD_HAUPPAUGE_HVR4000: | ||
910 | case CX88_BOARD_HAUPPAUGE_HVR4000LITE: | ||
911 | /* Support for DVB-S only, not DVB-T support */ | ||
912 | dev->dvb.frontend = dvb_attach(cx24116_attach, | ||
913 | &hauppauge_hvr4000_config, | ||
914 | &dev->core->i2c_adap); | ||
915 | if (dev->dvb.frontend) { | ||
916 | dvb_attach(isl6421_attach, dev->dvb.frontend, | ||
917 | &dev->core->i2c_adap, | ||
918 | 0x08, 0x00, 0x00); | ||
919 | } | ||
920 | break; | ||
879 | default: | 921 | default: |
880 | printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", | 922 | printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", |
881 | core->name); | 923 | core->name); |