Bug 5895
Summary: | With DVB drivers enabled snd_87x (ALSA) don't detect Broooktree audio | ||
---|---|---|---|
Product: | Drivers | Reporter: | Juan Pedro Paredes Caballero (juampe) |
Component: | Video(Other) | Assignee: | Manu Abraham (manu) |
Status: | CLOSED CODE_FIX | ||
Severity: | blocking | CC: | mchehab, perex |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.15 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
KWorld and Av711 with bttv driver only
Kworld and av711 bttv and dvb drivers Kworld and av711 with dvb probe hacked (Working) Pixelview and av711 with dvb probe hacked (Working) |
Description
Juan Pedro Paredes Caballero
2006-01-15 03:52:24 UTC
in drivers/media/dvb/bt8xx/bt878.c the probe method bt878_probe(struct pci_dev *dev,const struct pci_device_id *pci_id) This method does not take care about subvendor and subdevice to enable pci. Why not have a enabled or disabled param? I will try to force dvb-bt878 probe error to KWorld device Created attachment 7038 [details]
KWorld and Av711 with bttv driver only
Created attachment 7039 [details]
Kworld and av711 bttv and dvb drivers
Created attachment 7040 [details]
Kworld and av711 with dvb probe hacked (Working)
A dirty fix to my problem ------------------------- --- drivers/media/dvb/bt8xx/bt878.c.ori 2006-01-16 17:32:25.000000000 +0100 +++ drivers/media/dvb/bt8xx/bt878.c 2006-01-16 17:46:02.000000000 +0100 @@ -399,6 +399,12 @@ bt878_num); if (pci_enable_device(dev)) return -EIO; + printk(KERN_NOTICE "juampe debug dbv card, yes found , but may be used? %#04x:%#04x-%#04x:%#04x\n",dev->vendor, dev->device,dev->subsystem_vendor, dev->subsystem_device); + if(dev->vendor==0x109e && dev->device==0x0878 && dev->subsystem_vendor==0x00 && dev->subsystem_device==0x00){ + result = -EINVAL; + goto fail0; + } + bt = &bt878[bt878_num]; bt->dev = dev; @@ -483,6 +489,7 @@ release_mem_region(pci_resource_start(bt->dev, 0), pci_resource_len(bt->dev, 0)); fail0: + printk(KERN_NOTICE "juampe not i will not used :)"); pci_disable_device(dev); return result; } -------------------- input: i2c IR (Hauppauge) as /class/input/input0 input: bttv IR (card=123) as /class/input/input1 tuner 0-0060: All bytes are equal. It is not a TEA5767 tuner 0-0060: chip found @ 0xc0 (bt878 #0 [sw]) tuner 0-0060: type set to 5 (Philips PAL_BG (FI1216 and compatibles)) bt878: AUDIO driver version 0.0.0 loaded bt878: Bt878 AUDIO function found (0). PCI: Enabling device 0000:02:0c.1 (0004 -> 0006) ACPI: PCI Interrupt 0000:02:0c.1[A] -> Link [LNKE] -> GSI 11 (level, low) -> IRQ 11 juampe debug dbv card, yes found , but may be used? 0x109e:0x878-0x00:0x00 juampe not i will not used :)<6>ACPI: PCI interrupt for device 0000:02:0c.1 disabled bt878: probe of 0000:02:0c.1 failed with error -22 bt878: Bt878 AUDIO function found (0). PCI: Enabling device 0000:02:0d.1 (0004 -> 0006) ACPI: PCI Interrupt 0000:02:0d.1[A] -> Link [LNKF] -> GSI 11 (level, low) -> IRQ 11 juampe debug dbv card, yes found , but may be used? 0x109e:0x878-0x1461:0x771 bt878(0): Bt878 (rev 17) at 02:0d.1, irq: 11, latency: 32, memory: 0xed800000 DVB: registering new adapter (bttv1). DVB: registering frontend 0 (Zarlink MT352 DVB-T)... ... ... Advanced Linux Sound Architecture Driver Version 1.0.10rc3 (Mon Nov 07 13:30:21 2005 UTC). juampe debug card 0x109e:0x878-0x00:0x00 unknown card 0x00:0x00, using default rate 32000 please mail id, board name, and, if it works, the correct digital_rate option to <alsa-devel@lists.sf.net> juampe rate 32000 ACPI: PCI Interrupt 0000:02:0c.1[A] -> Link [LNKE] -> GSI 11 (level, low) -> IRQ 11 juampe Probe is OKACPI: PCI Interrupt Link [LNKB] enabled at IRQ 10 PCI: setting IRQ 10 as level-triggered ACPI: PCI Interrupt 0000:00:1f.5[B] -> Link [LNKB] -> GSI 10 (level, low) -> IRQ 10 PCI: Setting latency timer of device 0000:00:1f.5 to 64 input: AT Translated Set 2 keyboard as /class/input/input2 intel8x0_measure_ac97_clock: measured 54333 usecs intel8x0: clocking to 48000 ALSA device list: #0: Intel 82801BA-ICH2 with ALC200,200P at 0xa800, irq 10 #1: Brooktree Bt878 at 0xee800000, irq 11 #2: Virtual MIDI Card 1 ----------- Any better ideas? Due to a audiomux misconfig of Kworld TV card (next bttv-cards.c in my todo bug list :P), I can't get sound fom this card (but snd_bt87x now is detected and I can use it, no sound, but is detected and works) I change this card by a Pixelview TV card bttv.card=78 to bttv.card=70. Now I get sound from snd_bt87x See attach. With 'Really, really dirty fix' the DVB card works well and the TV card works well, now my mythtv is complete :) ---------- --- drivers/media/dvb/bt8xx/bt878.c.ori 2006-01-16 17:32:25.000000000 +0100 +++ drivers/media/dvb/bt8xx/bt878.c 2006-01-17 08:28:05.000000000 +0100 @@ -399,6 +399,18 @@ bt878_num); if (pci_enable_device(dev)) return -EIO; + if(dev->vendor==0x109e && dev->device==0x0878 && dev->subsystem_vendor==0x00 && dev->subsystem_device==0x00){ + printk(KERN_NOTICE "juampe this is bttv card not DVB %#04x: %#04x-%#04x:%#04x\n",dev->vendor, dev->device,dev->subsystem_vendor, dev->subsystem_device); + result = -EINVAL; + goto fail0; + } + if(dev->vendor==0x109e && dev->device==0x0878 && dev->subsystem_vendor==0xffff && dev->subsystem_device==0xffff){ + printk(KERN_NOTICE "juampe this is bttv card not DVB %#04x: %#04x-%#04x:%#04x\n",dev->vendor, dev->device,dev->subsystem_vendor, dev->subsystem_device); + + result = -EINVAL; + goto fail0; + } + bt = &bt878[bt878_num]; bt->dev = dev; @@ -483,6 +495,7 @@ release_mem_region(pci_resource_start(bt->dev, 0), pci_resource_len(bt->dev, 0)); fail0: + printk(KERN_NOTICE "juampe not it will not used :)\n"); pci_disable_device(dev); return result; } ----------- Created attachment 7044 [details]
Pixelview and av711 with dvb probe hacked (Working)
|