patch-2.4.23 linux-2.4.23/drivers/media/video/bttv-cards.c
Next file: linux-2.4.23/drivers/media/video/bttv-driver.c
Previous file: linux-2.4.23/drivers/md/lvm.c
Back to the patch index
Back to the overall index
- Lines: 160
- Date:
2003-11-28 10:26:20.000000000 -0800
- Orig file:
linux-2.4.22/drivers/media/video/bttv-cards.c
- Orig date:
2003-08-25 04:44:42.000000000 -0700
diff -urN linux-2.4.22/drivers/media/video/bttv-cards.c linux-2.4.23/drivers/media/video/bttv-cards.c
@@ -31,6 +31,9 @@
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/vmalloc.h>
+#ifdef CONFIG_FW_LOADER
+# include <linux/firmware.h>
+#endif
#include <asm/io.h>
@@ -76,6 +79,7 @@
static unsigned int card[BTTV_MAX] = { [ 0 ... (BTTV_MAX-1) ] = UNSET};
static unsigned int pll[BTTV_MAX] = { [ 0 ... (BTTV_MAX-1) ] = UNSET};
static unsigned int tuner[BTTV_MAX] = { [ 0 ... (BTTV_MAX-1) ] = UNSET};
+static unsigned int svhs[BTTV_MAX] = { [ 0 ... (BTTV_MAX-1) ] = UNSET};
#ifdef MODULE
static unsigned int autoload = 1;
#else
@@ -1212,7 +1216,7 @@
.tuner_type = -1,
.pll = PLL_28,
.muxsel = { 2 },
- gpiomask: 0
+ .gpiomask = 0
},{
/* Tomasz Pyra <hellfire@sedez.iq.pl> */
.name = "Prolink Pixelview PV-BT878P+ (Rev.4C,8E)",
@@ -1299,7 +1303,7 @@
},{
.name = "Powercolor MTV878/ MTV878R/ MTV878F",
.video_inputs = 3,
- audio_inputs: 2,
+ .audio_inputs = 2,
.tuner = 0,
.svhs = 2,
.gpiomask = 0x1C800F, // Bit0-2: Audio select, 8-12:remote control 14:remote valid 15:remote reset
@@ -1339,7 +1343,7 @@
},{
.name = "Jetway TV/Capture JW-TV878-FBK, Kworld KW-TV878RF",
.video_inputs = 4,
- audio_inputs: 3,
+ .audio_inputs = 3,
.tuner = 0,
.svhs = 2,
.gpiomask = 7,
@@ -1389,18 +1393,19 @@
.gpiomask = 7,
.audiomux = {7},
},{
- .name = "GV-BCTV5/PCI",
+ .name = "IODATA GV-BCTV5/PCI",
.video_inputs = 3,
.audio_inputs = 1,
.tuner = 0,
.svhs = 2,
- .gpiomask = 0x010f00,
+ .gpiomask = 0x0f0f80,
.muxsel = {2, 3, 1, 0},
- .audiomux = {0x10000, 0, 0x10000, 0, 0, 0},
+ .audiomux = {0x030000, 0x010000, 0x030000, 0, 0x020000, 0},
.no_msp34xx = 1,
.pll = PLL_28,
.tuner_type = TUNER_PHILIPS_NTSC_M,
.audio_hook = gvbctv3pci_audio,
+ .has_radio = 1,
},{
.name = "Osprey 100/150 (878)", /* 0x1(2|3)-45C6-C1 */
.video_inputs = 4, /* id-inputs-clock */
@@ -1854,12 +1859,8 @@
btv->type=card[btv->nr];
/* print which card config we are using */
- sprintf(btv->video_dev.name,"BT%d%s(%.23s)",
- btv->id,
- (btv->id==848 && btv->revision==0x12) ? "A" : "",
- bttv_tvcards[btv->type].name);
printk(KERN_INFO "bttv%d: using: %s [card=%d,%s]\n",btv->nr,
- btv->video_dev.name,btv->type,
+ bttv_tvcards[btv->type].name, btv->type,
card[btv->nr] < bttv_num_tvcards
? "insmod option" : "autodetected");
@@ -2270,6 +2271,9 @@
&btv->pinnacle_id);
if (btv->tuner_type != UNSET)
bttv_call_i2c_clients(btv,TUNER_SET_TYPE,&btv->tuner_type);
+ btv->svhs = bttv_tvcards[btv->type].svhs;
+ if (svhs[btv->nr] != UNSET)
+ btv->svhs = svhs[btv->nr];
if (bttv_tvcards[btv->type].has_radio)
btv->has_radio=1;
@@ -2549,18 +2553,19 @@
int __devinit pvr_boot(struct bttv *btv)
{
const struct firmware *fw_entry;
- struct device *dev = btv->dev->dev;
- int result;
+ int rc;
- result = request_firmware(&fw_entry, "hcwamc.rbf", dev);
- if (result != 0) {
+ rc = request_firmware(&fw_entry, "hcwamc.rbf", pci_name(btv->dev));
+ if (rc != 0) {
printk(KERN_WARNING "bttv%d: no altera firmware [via hotplug]\n",
btv->nr);
return rc;
}
- result = pvr_altera_load(btv, fw_entry->data, fw_entry->size);
+ rc = pvr_altera_load(btv, fw_entry->data, fw_entry->size);
+ printk(KERN_INFO "bttv%d: altera firmware upload %s\n",
+ btv->nr, (rc < 0) ? "failed" : "ok");
release_firmware(fw_entry);
- return result;
+ return rc;
}
#endif
@@ -2695,12 +2700,12 @@
static void __devinit avermedia_eeprom(struct bttv *btv)
{
- int tuner_make,tuner_tv_fm,tuner_format,tuner=0,remote;
+ int tuner_make,tuner_tv_fm,tuner_format,tuner=0;
- tuner_make = (eeprom_data[0x41] & 0x7);
- tuner_tv_fm = (eeprom_data[0x41] & 0x18) >> 3;
- tuner_format = (eeprom_data[0x42] & 0xf0) >> 4;
- remote = (eeprom_data[0x42] & 0x01);
+ tuner_make = (eeprom_data[0x41] & 0x7);
+ tuner_tv_fm = (eeprom_data[0x41] & 0x18) >> 3;
+ tuner_format = (eeprom_data[0x42] & 0xf0) >> 4;
+ btv->has_remote = (eeprom_data[0x42] & 0x01);
if (tuner_make == 0 || tuner_make == 2)
if(tuner_format <=9)
@@ -2717,8 +2722,8 @@
} else
printk("Unknown type");
printk(" radio:%s remote control:%s\n",
- tuner_tv_fm?"yes":"no",
- remote?"yes":"no");
+ tuner_tv_fm ? "yes" : "no",
+ btv->has_remote ? "yes" : "no");
}
/* used on Voodoo TV/FM (Voodoo 200), S0 wired to 0x10000 */
@@ -3466,9 +3471,11 @@
latency = 0x0A;
#endif
+#if 0
/* print which chipset we have */
while ((dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8,dev)))
- printk(KERN_INFO "bttv: Host bridge is %s\n",dev->name);
+ printk(KERN_INFO "bttv: Host bridge is %s\n",pci_name(dev));
+#endif
/* print warnings about any quirks found */
if (triton1)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)