summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Krufky <devnull@localhost>2005-11-22 19:32:26 +0000
committerMichael Krufky <devnull@localhost>2005-11-22 19:32:26 +0000
commit3a91d08ab4b317c3bce60582b5f2f44023a3703c (patch)
treefbd7534e53504f2622c3911b75e05245b4187f8d
parent121cfbfec54c1ef2acd9ba1a92787f44ef23e708 (diff)
downloadmediapointer-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.cx881
-rw-r--r--linux/drivers/media/video/cx88/cx88-cards.c28
-rw-r--r--linux/drivers/media/video/cx88/cx88-dvb.c29
-rw-r--r--linux/drivers/media/video/cx88/cx88.h3
-rw-r--r--v4l/ChangeLog20
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: