summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Waechtler <devnull@localhost>2003-09-07 15:40:35 +0000
committerHolger Waechtler <devnull@localhost>2003-09-07 15:40:35 +0000
commitc00d9912bf6afef52f9eef0fb106b1b22a3276e9 (patch)
tree5d1a803ba1a90ed21c0779f8f1f9b92104b8c387
parent14d45b2320ee31b30bf3e1d33d2c78c2cc68d596 (diff)
downloadmediapointer-dvb-s2-c00d9912bf6afef52f9eef0fb106b1b22a3276e9.tar.gz
mediapointer-dvb-s2-c00d9912bf6afef52f9eef0fb106b1b22a3276e9.tar.bz2
- apply Avermedia DVB-T related patches contributed by Mark Edwards <mark@edwards.homelinux.net>
- add a workaround for the bogus no-ack returvalue of the kernel-i2c bitbanging driver - add sp887x.o to the Makefile
-rw-r--r--linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c22
-rw-r--r--linux/drivers/media/dvb/frontends/Makefile1
-rw-r--r--linux/drivers/media/dvb/frontends/sp887x.c4
3 files changed, 22 insertions, 5 deletions
diff --git a/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c b/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
index 2e9905b79..b79d94d22 100644
--- a/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
+++ b/linux/drivers/media/dvb/bt8xx/dvb-bt8xx.c
@@ -288,21 +288,35 @@ static void dvb_bt8xx_close(void)
static int __init dvb_bt8xx_init(void)
{
+ unsigned int card_nr = 0;
int card_id;
- unsigned int card_nr;
int card_type;
dprintk("dvb_bt8xx: enumerating availible bttv cards...\n");
- for (card_nr = 0; !bttv_get_cardinfo(card_nr, &card_type, &card_id); card_nr++) {
+ while (bttv_get_cardinfo(card_nr, &card_type, &card_id) == 0) {
switch(card_id) {
case 0x001C11BD:
- dvb_bt8xx_load(card_nr, "Pinnacle PCTV DVB-S", 0x0400C060);
+ dvb_bt8xx_load(card_nr, "Pinnacle PCTV DVB-S",
+ 0x0400C060);
break;
case 0x01010071:
- dvb_bt8xx_load(card_nr, "Nebula DigiTV DVB-T", (1 << 26) | (1 << 14) | (1 << 5));
+ dvb_bt8xx_load(card_nr, "Nebula DigiTV DVB-T",
+ (1 << 26) | (1 << 14) | (1 << 5));
+ break;
+ case 0x07611461:
+ dvb_bt8xx_load(card_nr, "Avermedia DVB-T",
+ (1 << 26) | (1 << 14) | (1 << 5));
break;
+ default:
+ dprintk("%s: unknown card_nr found %0X\n",
+ __FUNCTION__, card_nr);
+ dprintk("%s: unknown card_id found %0X\n",
+ __FUNCTION__, card_id);
+ dprintk("%s: unknown card_type found %0X\n",
+ __FUNCTION__, card_type);
}
+ card_nr++;
}
return 0;
diff --git a/linux/drivers/media/dvb/frontends/Makefile b/linux/drivers/media/dvb/frontends/Makefile
index da998647e..f2685f556 100644
--- a/linux/drivers/media/dvb/frontends/Makefile
+++ b/linux/drivers/media/dvb/frontends/Makefile
@@ -15,3 +15,4 @@ obj-$(CONFIG_DVB_GRUNDIG_29504_401) += grundig_29504-401.o
obj-$(CONFIG_DVB_MT312) += mt312.o
obj-$(CONFIG_DVB_VES1820) += ves1820.o
obj-$(CONFIG_DVB_TDA1004X) += tda1004x.o
+obj-$(CONFIG_DVB_SP887X) += sp887x.o
diff --git a/linux/drivers/media/dvb/frontends/sp887x.c b/linux/drivers/media/dvb/frontends/sp887x.c
index 337c61ea3..664600b53 100644
--- a/linux/drivers/media/dvb/frontends/sp887x.c
+++ b/linux/drivers/media/dvb/frontends/sp887x.c
@@ -75,7 +75,9 @@ int sp887x_writereg (struct dvb_frontend *fe, u16 reg, u16 data)
/**
* in case of soft reset we ignore ACK errors...
*/
- if (!(reg == 0xf1a && data == 0x000 && ret == -EREMOTEIO)) {
+ if (!(reg == 0xf1a && data == 0x000 &&
+ (ret == -EREMOTEIO || ret == -EFAULT)))
+ {
printk("%s: writereg error "
"(reg %03x, data %03x, ret == %i)\n",
__FUNCTION__, reg & 0xffff, data & 0xffff, ret);