summaryrefslogtreecommitdiff
path: root/linux/drivers/media/dvb/bt8xx
diff options
context:
space:
mode:
Diffstat (limited to 'linux/drivers/media/dvb/bt8xx')
-rw-r--r--linux/drivers/media/dvb/bt8xx/Kconfig4
-rw-r--r--linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c27
-rw-r--r--linux/drivers/media/dvb/bt8xx/dvb-bt8xx.h1
3 files changed, 31 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/bt8xx/Kconfig b/linux/drivers/media/dvb/bt8xx/Kconfig
index bc7b48ed1..726a60515 100644
--- a/linux/drivers/media/dvb/bt8xx/Kconfig
+++ b/linux/drivers/media/dvb/bt8xx/Kconfig
@@ -5,9 +5,11 @@ config DVB_BT8XX
select DVB_SP887X
select DVB_NXT6000
select DVB_CX24110
+ select DVB_OR51211
help
Support for PCI cards based on the Bt8xx PCI bridge. Examples are
- the Nebula cards, the Pinnacle PCTV cards and Twinhan DST cards.
+ the Nebula cards, the Pinnacle PCTV cards, the Twinhan DST cards and
+ pcHDTV HD2000 cards.
Since these cards have no MPEG decoder onboard, they transmit
only compressed MPEG data over the PCI bus, so you need
diff --git a/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c b/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
index 3da64f580..ca15bdd42 100644
--- a/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
+++ b/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
@@ -369,6 +369,20 @@ static struct dst_config dst_config = {
};
+static int or51211_request_firmware(struct dvb_frontend* fe, const struct firmware **fw, char* name)
+{
+ struct dvb_bt8xx_card* bt = (struct dvb_bt8xx_card*) fe->dvb->priv;
+
+ return request_firmware(fw, name, &bt->bt->dev->dev);
+}
+
+static struct or51211_config or51211_config = {
+
+ .demod_address = 0x15,
+ .request_firmware = or51211_request_firmware,
+};
+
+
static int vp3021_alps_tded4_pll_set(struct dvb_frontend* fe, struct dvb_frontend_parameters* params)
{
struct dvb_bt8xx_card *card = (struct dvb_bt8xx_card *) fe->dvb->priv;
@@ -458,6 +472,13 @@ static void frontend_init(struct dvb_bt8xx_card *card, u32 type)
break;
}
break;
+
+ case BTTV_PC_HDTV:
+ card->fe = or51211_attach(&or51211_config, card->i2c_adapter, card->bt);
+ if (card->fe != NULL) {
+ break;
+ }
+ break;
}
if (card->fe == NULL) {
@@ -637,6 +658,12 @@ static int dvb_bt8xx_probe(struct device *dev)
* RISC+FIFO ENABLE */
break;
+ case BTTV_PC_HDTV:
+ card->gpio_mode = 0x0100EC7B;
+ card->op_sync_orin = 0;
+ card->irq_err_ignore = 0;
+ break;
+
default:
printk(KERN_WARNING "dvb_bt8xx: Unknown bttv card type: %d.\n",
sub->core->type);
diff --git a/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.h b/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.h
index f9bf4e2e4..80ef189f9 100644
--- a/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.h
+++ b/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.h
@@ -34,6 +34,7 @@
#include "dst.h"
#include "nxt6000.h"
#include "cx24110.h"
+#include "or51211.h"
struct dvb_bt8xx_card {
struct semaphore lock;