vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| hi today i tried a new kernel to see if the azalia driver is the one i need for my soundcard. it is but there were a few problems. firstly, the corbrp failed to initialise with azalia) at pci0 dev 29 function 0 vendor "Acer Labs", unknown product 0x5461 rev 0x02: irq 11 azalia0: host: High Definition Audio rev. 1.0 azalia0: CORBRP reset failure i fiddled around and as far as i can tell the corbrp never registers the reset (ie, the RST flag is never set). if i ignore the reset failure the driver initialises fine and music plays, so, with no knowledge of how the card works, my guess would be the card does the reset quickly and doesn't bother to tell you it is done. the following patch lets my card work and i presumed continues to let others work as well, at the expense of a small delay for my card. maybe there is a better way to do it. also, i get a page fault after the failure which i tracked down to a null dereference of codec_t.mixer_delete. i don't have time to figure out why it isn't a proper value since it seems to me like it should be. since my card is unknown, i guess there is a bug in the azalia_generic_mixer_init() path. the bottom patch works around that for the moment until someone can figure out what's really wrong finally, i don't know how to register my specific card in the source so i'll leave that to you. it's a SoundMAX ADI AD1986A on an Acer A8R-MVP motherboard. the full dmesg after applying these patches follows thanks --- src/sys/dev/pci/azalia.c.orig Thu Jun 29 20:32:39 2006 +++ src/sys/dev/pci/azalia.c Thu Jun 29 22:36:08 2006 @@ -659,10 +659,6 @@ if (corbrp & HDA_CORBRP_CORBRPRST) break; } - if (i <= 0) { - printf("%s: CORBRP reset failure\n", XNAME(az)); - return -1; - } AZ_WRITE_2(az, CORBRP, corbrp & ~HDA_CORBRP_CORBRPRST); for (i = 5000; i >= 0; i--) { DELAY(10); --- src/sys/dev/pci/azalia.c.orig Thu Jun 29 23:10:19 2006 +++ src/sys/dev/pci/azalia.c Thu Jun 29 23:14:40 2006 @@ -1083,7 +1083,8 @@ int azalia_codec_delete(codec_t *this) { - this->mixer_delete(this); + if (this->mixer_delete != NULL) + this->mixer_delete(this); if (this->formats != NULL) { free(this->formats, M_DEVBUF); this->formats = NULL; OpenBSD 3.9-current (GENERIC) #6: Thu Jun 29 23:12:47 EST 2006 root@nofsk.life.au.eu.org:/usr/src/sys/arch/amd64/compile/GENERIC real mem = 536145920 (523580K) avail mem = 450445312 (439888K) using 13140 buffers containing 53821440 bytes (52560K) of memory mainbus0 (root) bios0 at mainbus0: SMBIOS rev. 2.3 @ 0xf04f0 (66 entries) bios0: ASUSTeK Computer INC. A8R-MVP cpu0 at mainbus0: (uniprocessor) cpu0: AMD Athlon(tm) 64 Processor 3200+, 2004.83 MHz cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,P GE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE 3,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache cpu0: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative cpu0: DTLB 32 4KB entries fully associative, 8 4MB entries fully associative cpu0: Cool`n'Quiet K8 2004 Mhz: speeds: 2000 1800 1000 Mhz pci0 at mainbus0 bus 0: configuration mode 1 pchb0 at pci0 dev 0 function 0 "ATI RS480 Host" rev 0x01 ppb0 at pci0 dev 2 function 0 "ATI RX480 PCIE" rev 0x00 pci1 at ppb0 bus 1 vga1 at pci1 dev 0 function 0 "ATI Radeon X300" rev 0x00 wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation) wsdisplay0: screen 1-5 added (80x25, vt100 emulation) "ATI Radeon X300 Sec" rev 0x00 at pci1 dev 0 function 1 not configured pchb1 at pci0 dev 24 function 0 "AMD AMD64 HyperTransport" rev 0x00 pchb2 at pci0 dev 24 function 1 "AMD AMD64 Address Map" rev 0x00 pchb3 at pci0 dev 24 function 2 "AMD AMD64 DRAM Cfg" rev 0x00 pchb4 at pci0 dev 24 function 3 "AMD AMD64 Misc Cfg" rev 0x00 ppb1 at pci0 dev 26 function 0 "Acer Labs M5249 PCI-PCI" rev 0x00 pci2 at ppb1 bus 2 "Conexant 56k Winmodem" rev 0x08 at pci2 dev 17 function 0 not configured "Texas Instruments TSB43AB22 FireWire" rev 0x00 at pci2 dev 19 function 0 not configured skc0 at pci2 dev 20 function 0 "Marvell Yukon 88E8001/8003/8010" rev 0x13, Marvell Yukon Lite (0x9): irq 11 sk0 at skc0 port A, address 00:15:f2:91:23:3b eephy0 at sk0 phy 0: Marvell 88E1011 Gigabit PHY, rev. 5 ohci0 at pci0 dev 28 function 0 "Acer Labs M5237 USB" rev 0x03: irq 11, version 1.0, legacy support usb0 at ohci0: USB revision 1.0 uhub0 at usb0 uhub0: Acer Labs OHCI root hub, rev 1.00/1.00, addr 1 uhub0: 3 ports with 3 removable, self powered ohci1 at pci0 dev 28 function 1 "Acer Labs M5237 USB" rev 0x03: irq 11, version 1.0, legacy support usb1 at ohci1: USB revision 1.0 uhub1 at usb1 uhub1: Acer Labs OHCI root hub, rev 1.00/1.00, addr 1 uhub1: 3 ports with 3 removable, self powered ohci2 at pci0 dev 28 function 2 "Acer Labs M5237 USB" rev 0x03: irq 3, version 1.0, legacy support usb2 at ohci2: USB revision 1.0 uhub2 at usb2 uhub2: Acer Labs OHCI root hub, rev 1.00/1.00, addr 1 uhub2: 3 ports with 3 removable, self powered ehci0 at pci0 dev 28 function 3 "Acer Labs M5239 USB2" rev 0x01: irq 10 usb3 at ehci0: USB revision 2.0 uhub3 at usb3 uhub3: Acer Labs EHCI root hub, rev 2.00/1.00, addr 1 uhub3: 8 ports with 8 removable, self powered azalia0 at pci0 dev 29 function 0 vendor "Acer Labs", unknown product 0x5461 rev 0x02: irq 11 azalia0: host: High Definition Audio rev. 1.0 delete_encodings... pcib0 at pci0 dev 30 function 0 vendor "Acer Labs", unknown product 0x1575 rev 0x00 "Acer Labs M7101 Power" rev 0x00 at pci0 dev 30 function 1 not configured pciide0 at pci0 dev 31 function 0 "Acer Labs M5229 UDMA IDE" rev 0xc8: DMA, channel 0 configured to compatibility, channel 1 configured to compatibility pciide0: channel 0 disabled (no drives) atapiscsi0 at pciide0 channel 1 drive 0 scsibus0 at atapiscsi0: 2 targets cd0 at scsibus0 targ 0 lun 0: <HL-DT-ST, CD-RW GCE-8160B, 2.01> SCSI0 5/cdrom removable cd0(pciide0:1:0): using PIO mode 4, DMA mode 2 pciide1 at pci0 dev 31 function 1 vendor "Acer Labs", unknown product 0x5288 rev 0x10: DMA (unsupported), channel 0 wired to native-PCI, channel 1 wired to native-PCI pciide1: using irq 3 for native-PCI interrupt wd0 at pciide1 channel 0 drive 0: <WDC WD2500JS-00NCB1> wd0: 16-sector PIO, LBA48, 238475MB, 488397168 sectors pciide1: channel 1 ignored (not responding; disabled or no drives?) isa0 at pcib0 isadma0 at isa0 com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo pckbc0 at isa0 port 0x60/5 pckbd0 at pckbc0 (kbd slot) pckbc0: using irq 1 for kbd slot wskbd0 at pckbd0: console keyboard, using wsdisplay0 pmsi0 at pckbc0 (aux slot) pckbc0: using irq 12 for aux slot wsmouse0 at pmsi0 mux 0 mpu0 at isa0 port 0x330/2: generic MPU-401 compatible midi0 at mpu0: <MPU-401 MIDI UART> pcppi0 at isa0 port 0x61 midi1 at pcppi0: <PC speaker> spkr0 at pcppi0 lpt0 at isa0 port 0x378/4 irq 7 it2 at isa0 port 0xd00/8: IT87 fdc0 at isa0 port 0x3f0/6 irq 6 drq 2 fd0 at fdc0 drive 0: 1.44MB 80 cyl, 2 head, 18 sec umass0 at uhub3 port 6 configuration 1 interface 0 umass0: USBDisk RunDisk, rev 2.00/1.00, addr 2 umass0: using SCSI over Bulk-Only scsibus1 at umass0: 2 targets sd0 at scsibus1 targ 1 lun 0: <USBDisk, RunDisk, 1.00> SCSI2 0/direct removable sd0: 977MB, 977 cyl, 64 head, 32 sec, 512 bytes/sec, 2002000 sec total dkcsum: wd0 matches BIOS drive 0x80 root on wd0a rootdev=0x0 rrootdev=0x300 rawdev=0x302 |