diff options
author | Michael Krufky <devnull@localhost> | 2005-11-22 19:32:26 +0000 |
---|---|---|
committer | Michael Krufky <devnull@localhost> | 2005-11-22 19:32:26 +0000 |
commit | 3a91d08ab4b317c3bce60582b5f2f44023a3703c (patch) | |
tree | fbd7534e53504f2622c3911b75e05245b4187f8d | |
parent | 121cfbfec54c1ef2acd9ba1a92787f44ef23e708 (diff) | |
download | mediapointer-dvb-s2-3a91d08ab4b317c3bce60582b5f2f44023a3703c.tar.gz mediapointer-dvb-s2-3a91d08ab4b317c3bce60582b5f2f44023a3703c.tar.bz2 |
add support for KWorld DVB-S 100
From: Vadim Catana <skystar@moldova.cc>
- add support for KWorld DVB-S 100, based on the same chips as Hauppauge
Nova-S Plus (CX23883/CX24123/CX24109), without the Intersil ISL6421,
which is used for LNB control.
- LNB voltage and tone are controled by LNBDC and LNBTone bits from
register 0x29 of the CX24123 demodulator.
- The MO_GP0_IO register from CX23883 is used to turn LNB power on and off.
Signed-off-by: Vadim Catana <skystar@moldova.cc>
Acked-by: Johannes Stezenbach <js@linuxtv.org>
Signed-off-by: Michael Krufky <mkrufky@m1k.net>
-rw-r--r-- | linux/Documentation/video4linux/CARDLIST.cx88 | 1 | ||||
-rw-r--r-- | linux/drivers/media/video/cx88/cx88-cards.c | 28 | ||||
-rw-r--r-- | linux/drivers/media/video/cx88/cx88-dvb.c | 29 | ||||
-rw-r--r-- | linux/drivers/media/video/cx88/cx88.h | 3 | ||||
-rw-r--r-- | v4l/ChangeLog | 20 |
5 files changed, 76 insertions, 5 deletions
diff --git a/linux/Documentation/video4linux/CARDLIST.cx88 b/linux/Documentation/video4linux/CARDLIST.cx88 index 739a343e5..13ec5e965 100644 --- a/linux/Documentation/video4linux/CARDLIST.cx88 +++ b/linux/Documentation/video4linux/CARDLIST.cx88 @@ -37,3 +37,4 @@ 36 -> AVerTV 303 (M126) [1461:000a] 37 -> Hauppauge Nova-S-Plus DVB-S [0070:9201,0070:9202] 38 -> Hauppauge Nova-SE2 DVB-S [0070:9200] + 39 -> KWorld DVB-S 100 [17de:08b2] diff --git a/linux/drivers/media/video/cx88/cx88-cards.c b/linux/drivers/media/video/cx88/cx88-cards.c index 962f224b2..5781ef4b1 100644 --- a/linux/drivers/media/video/cx88/cx88-cards.c +++ b/linux/drivers/media/video/cx88/cx88-cards.c @@ -1,5 +1,5 @@ /* - * $Id: cx88-cards.c,v 1.106 2005/11/18 07:25:08 mchehab Exp $ + * $Id: cx88-cards.c,v 1.107 2005/11/22 19:32:26 mkrufky Exp $ * * device driver for Conexant 2388x based TV cards * card-specific stuff. @@ -928,6 +928,24 @@ struct cx88_board cx88_boards[] = { }}, .dvb = 1, }, + [CX88_BOARD_KWORLD_DVBS_100] = { + .name = "KWorld DVB-S 100", + .tuner_type = TUNER_ABSENT, + .radio_type = UNSET, + .tuner_addr = ADDR_UNSET, + .radio_addr = ADDR_UNSET, + .input = {{ + .type = CX88_VMUX_DVB, + .vmux = 0, + },{ + .type = CX88_VMUX_COMPOSITE1, + .vmux = 1, + },{ + .type = CX88_VMUX_SVIDEO, + .vmux = 2, + }}, + .dvb = 1, + }, }; const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards); @@ -1087,6 +1105,10 @@ struct cx88_subid cx88_subids[] = { .subvendor = 0x0070, .subdevice = 0x9202, .card = CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1, + },{ + .subvendor = 0x17de, + .subdevice = 0x08b2, + .card = CX88_BOARD_KWORLD_DVBS_100, }, }; const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); @@ -1258,6 +1280,10 @@ void cx88_card_setup(struct cx88_core *core) if (0 == core->i2c_rc) hauppauge_eeprom(core,eeprom); break; + case CX88_BOARD_KWORLD_DVBS_100: + cx_write(MO_GP0_IO, 0x000007f8); + cx_write(MO_GP1_IO, 0x00000001); + break; case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T1: case CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_PLUS: /* GPIO0:0 is hooked to mt352 reset pin */ diff --git a/linux/drivers/media/video/cx88/cx88-dvb.c b/linux/drivers/media/video/cx88/cx88-dvb.c index 8e3ff7acf..b7bcae666 100644 --- a/linux/drivers/media/video/cx88/cx88-dvb.c +++ b/linux/drivers/media/video/cx88/cx88-dvb.c @@ -1,5 +1,5 @@ /* - * $Id: cx88-dvb.c,v 1.73 2005/11/13 18:11:21 mkrufky Exp $ + * $Id: cx88-dvb.c,v 1.74 2005/11/22 19:32:26 mkrufky Exp $ * * device driver for Conexant 2388x based TV cards * MPEG Transport Stream (DVB) routines @@ -332,9 +332,28 @@ static int cx24123_set_ts_param(struct dvb_frontend* fe, return 0; } +static void cx24123_enable_lnb_voltage(struct dvb_frontend* fe, int on) +{ + struct cx8802_dev *dev= fe->dvb->priv; + struct cx88_core *core = dev->core; + + if (on) + cx_write(MO_GP0_IO, 0x000006f9); + else + cx_write(MO_GP0_IO, 0x000006fB); +} + static struct cx24123_config hauppauge_novas_config = { - .demod_address = 0x55, - .set_ts_params = cx24123_set_ts_param, + .demod_address = 0x55, + .use_isl6421 = 1, + .set_ts_params = cx24123_set_ts_param, +}; + +static struct cx24123_config kworld_dvbs_100_config = { + .demod_address = 0x15, + .use_isl6421 = 0, + .set_ts_params = cx24123_set_ts_param, + .enable_lnb_voltage = cx24123_enable_lnb_voltage, }; #endif @@ -451,6 +470,10 @@ static int dvb_register(struct cx8802_dev *dev) dev->dvb.frontend = cx24123_attach(&hauppauge_novas_config, &dev->core->i2c_adap); break; + case CX88_BOARD_KWORLD_DVBS_100: + dev->dvb.frontend = cx24123_attach(&kworld_dvbs_100_config, + &dev->core->i2c_adap); + break; #endif default: printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n", diff --git a/linux/drivers/media/video/cx88/cx88.h b/linux/drivers/media/video/cx88/cx88.h index ca44308d9..1e79f514a 100644 --- a/linux/drivers/media/video/cx88/cx88.h +++ b/linux/drivers/media/video/cx88/cx88.h @@ -1,5 +1,5 @@ /* - * $Id: cx88.h,v 1.90 2005/11/18 20:20:47 mchehab Exp $ + * $Id: cx88.h,v 1.91 2005/11/22 19:32:26 mkrufky Exp $ * * v4l2 device driver for cx2388x based TV cards * @@ -188,6 +188,7 @@ extern struct sram_channel cx88_sram_channels[]; #define CX88_BOARD_AVERTV_303 36 #define CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1 37 #define CX88_BOARD_HAUPPAUGE_NOVASE2_S1 38 +#define CX88_BOARD_KWORLD_DVBS_100 39 enum cx88_itype { CX88_VMUX_COMPOSITE1 = 1, diff --git a/v4l/ChangeLog b/v4l/ChangeLog index 7590fa5ea..2d7debc66 100644 --- a/v4l/ChangeLog +++ b/v4l/ChangeLog @@ -1,3 +1,23 @@ +2005-11-22 19:30 mkrufky + + * ../linux/Documentation/video4linux/CARDLIST.cx88: + * ../linux/drivers/media/video/cx88/cx88-cards.c: + (cx88_card_setup): + * ../linux/drivers/media/video/cx88/cx88-dvb.c: + (cx24123_enable_lnb_voltage), (dvb_register): + * ../linux/drivers/media/video/cx88/cx88.h: + - add support for KWorld DVB-S 100, based on the same chips as + Hauppauge Nova-S Plus (CX23883/CX24123/CX24109), without the + Intersil ISL6421, which is used for LNB control. + - LNB voltage and tone are controled by LNBDC and LNBTone bits + from register 0x29 of the CX24123 demodulator. + - The MO_GP0_IO register from CX23883 is used to turn LNB power + on and off. + + Signed-off-by: Vadim Catana <skystar@moldova.cc> + Acked-by: Johannes Stezenbach <js@linuxtv.org> + Signed-off-by: Michael Krufky <mkrufky@m1k.net> + 2005-11-22 03:46 mkrufky * ../v4l/scripts/merge-trees.sh: |