Re: [RFT] Major snd_hda rewrite

From: Jaroslav Suchanek <jaroslav.suchanek_at_avg.com>
Date: Thu, 5 Apr 2012 23:20:07 +0200
On Mon, 2012-01-23 at 22:05 +0400, Yuri Pankov wrote:
> On Wed, Jan 18, 2012 at 06:02:13PM +0200, Alexander Motin wrote:
> > On 01/12/12 15:04, Yuri Pankov wrote:
> > > On Thu, Jan 12, 2012 at 02:57:52PM +0200, Alexander Motin wrote:
> > >> On 01/12/12 14:18, Yuri Pankov wrote:
> > >>> On Wed, Jan 11, 2012 at 09:33:17PM +0200, Alexander Motin wrote:
> > >>>> I would like request for testing of my work on further HDA sound driver
> > >>>> improvement.
> > >>> [...]
> > >>>> Patch can be found here:
> > >>>> http://people.freebsd.org/~mav/hda.rewrite.patch
> > >>>>
> > >>>> Patch was generated for 10-CURRENT, but should apply to fresh 9-STABLE
> > >>>> and 8-STABLE branches also.
> > >>>
> > >>> Patch applied cleanly to r230008 using `svn patch`.
> > >>>
> > >>> hdacc0:<NVidia GT220 HDA CODEC>   at cad 0 on hdac0
> > >>> hdaa0:<NVidia GT220 HDA CODEC Audio Function Group>   at nid 1 on hdacc0
> > >>> pcm0:<NVidia GT220 HDA CODEC PCM (DisplayPort 8ch)>   at nid 5 on hdaa0
> > >>> hdacc1:<NVidia GT220 HDA CODEC>   at cad 1 on hdac0
> > >>> hdaa1:<NVidia GT220 HDA CODEC Audio Function Group>   at nid 1 on hdacc1
> > >>> pcm1:<NVidia GT220 HDA CODEC PCM (DisplayPort 8ch)>   at nid 5 on hdaa1
> > >>> hdacc2:<NVidia GT220 HDA CODEC>   at cad 2 on hdac0
> > >>> hdaa2:<NVidia GT220 HDA CODEC Audio Function Group>   at nid 1 on hdacc2
> > >>> pcm2:<NVidia GT220 HDA CODEC PCM (DisplayPort 8ch)>   at nid 5 on hdaa2
> > >>> hdacc3:<NVidia GT220 HDA CODEC>   at cad 3 on hdac0
> > >>> hdaa3:<NVidia GT220 HDA CODEC Audio Function Group>   at nid 1 on hdacc3
> > >>> pcm3:<NVidia GT220 HDA CODEC PCM (DisplayPort 8ch)>   at nid 5 on hdaa3
> > >>> hdacc4:<IDT 92HD75BX HDA CODEC>   at cad 0 on hdac1
> > >>> hdaa4:<IDT 92HD75BX HDA CODEC Audio Function Group>   at nid 1 on hdacc4
> > >>> pcm4:<IDT 92HD75BX HDA CODEC PCM (Analog)>   at nid 13 and 11 on hdaa4
> > >>> pcm5:<IDT 92HD75BX HDA CODEC PCM (Analog)>   at nid 15 and 24 on hdaa4
> > >>> pcm6:<IDT 92HD75BX HDA CODEC PCM (Front Digital)>   at nid 30 on hdaa4
> > >>>
> > >>> pcm4 (builtin speakers) and pcm5 (headphones) seem to work fine, however
> > >>
> > >> Thank you.
> > >>
> > >>> I'm not getting anything out of pcm0-pcm3 (connected to a TV via HDMI),
> > >>> mplayer just pauses at the beggining, trying to cat anything to
> > >>> /dev/dsp{0-3}.0 gives:
> > >>>
> > >>> pcm0: chn_write(): pcm0:virtual:dsp0.vp0: play interrupt timeout, channel dead
> > >>>
> > >>> It was the same with the old driver and I'm not sure if it's (most
> > >>> likely) my misconfiguration or a driver problem.
> > >>
> > >> It sounds more like a driver problem. HDMI audio is still not very well
> > >> discovered area, and, according to ALSA reading, NVidia HDMI is also not
> > >> very standard. Probably I'll finally have to buy something to
> > >> experiment. What card do you have?
> > >
> > > It's a laptop with "nVidia Corporation GT216 [GeForce GT 230M]" (as
> > > identified by x11/nvidia-driver).
> > 
> > I've reproduced it on NVidia GT210. It seems there is some problem with 
> > MSI generation. Switching to legacy PCI interrupts fixes problem for me. 
> > Linux HDA driver disables MSI for all NVidia controllers.
> > 
> > Try to add hint.hdac.0.msi=0 into the /boot/loader.conf.
> 
> Sorry for delay. Indeed, setting hint.hdac.0.msi=0 helped.

I tried the same trick but without success. I am attaching output of
dmesg, sysctl, uname, sndstat and pciconf. I am using FreeBSD
9.0-RELEASE with MAV's recent patches.

The chipset is NVidia ION. I am also using NVidia's drivers 295.33. The
box is connected to receiver over HDMI. It does not work even with X
server running. But the analog output works just fine.

Any idea is appreciated.

Thank you,
--
Jaroslav Suchanek

> 
> 
> Thanks,
> Yuri
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"


hw.snd.vpc_reset: 0
hw.snd.vpc_0db: 45
hw.snd.vpc_autoreset: 1
hw.snd.latency_profile: 1
hw.snd.latency: 5
hw.snd.report_soft_matrix: 1
hw.snd.report_soft_formats: 1
hw.snd.compat_linux_mmap: 0
hw.snd.feeder_eq_exact_rate: 0
hw.snd.feeder_eq_presets: PEQ:16000,0.2500,62,0.2500:-9,9,1.0:44100,48000,88200,96000,176400,192000
hw.snd.feeder_rate_quality: 1
hw.snd.feeder_rate_round: 25
hw.snd.feeder_rate_max: 2016000
hw.snd.feeder_rate_min: 1
hw.snd.feeder_rate_polyphase_max: 183040
hw.snd.feeder_rate_presets: 100:8:0.85 100:36:0.92 100:164:0.97
hw.snd.vpc_mixer_bypass: 1
hw.snd.verbose: 0
hw.snd.maxautovchans: 16
hw.snd.default_unit: 2
hw.snd.version: 2009061500/amd64
hw.snd.default_auto: 0

FreeBSD 9.0-STABLE #0 r233700: Fri Mar 30 17:55:36 CEST 2012     jarda_at_jasrock:/usr/obj/home/jarda/new/softw/freebsd/9/sys/GENERIC 

hostb0_at_pci0:0:0:0:	class=0x060000 card=0x0a821849 chip=0x0a8210de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 Host Bridge'
    class      = bridge
    subclass   = HOST-PCI
none0_at_pci0:0:0:1:	class=0x050000 card=0x0a881849 chip=0x0a8810de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 Memory Controller'
    class      = memory
    subclass   = RAM
isab0_at_pci0:0:3:0:	class=0x060100 card=0x0aad1849 chip=0x0aad10de rev=0xb2 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 LPC Bridge'
    class      = bridge
    subclass   = PCI-ISA
none1_at_pci0:0:3:1:	class=0x050000 card=0x0aa41849 chip=0x0aa410de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 Memory Controller'
    class      = memory
    subclass   = RAM
none2_at_pci0:0:3:2:	class=0x0c0500 card=0x0aa21849 chip=0x0aa210de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 SMBus'
    class      = serial bus
    subclass   = SMBus
none3_at_pci0:0:3:3:	class=0x050000 card=0x0a891849 chip=0x0a8910de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 Memory Controller'
    class      = memory
    subclass   = RAM
none4_at_pci0:0:3:5:	class=0x0b4000 card=0x0aa31849 chip=0x0aa310de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 Co-processor'
    class      = processor
ohci0_at_pci0:0:4:0:	class=0x0c0310 card=0x0aa51849 chip=0x0aa510de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 OHCI USB 1.1 Controller'
    class      = serial bus
    subclass   = USB
ehci0_at_pci0:0:4:1:	class=0x0c0320 card=0x0aa61849 chip=0x0aa610de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 EHCI USB 2.0 Controller'
    class      = serial bus
    subclass   = USB
hdac0_at_pci0:0:8:0:	class=0x040300 card=0x03971849 chip=0x0ac010de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 High Definition Audio'
    class      = multimedia
    subclass   = HDA
pcib1_at_pci0:0:9:0:	class=0x060401 card=0x0aab1849 chip=0x0aab10de rev=0xb1 hdr=0x01
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 PCI Bridge'
    class      = bridge
    subclass   = PCI-PCI
nfe0_at_pci0:0:10:0:	class=0x020000 card=0x0ab01849 chip=0x0ab010de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 Ethernet'
    class      = network
    subclass   = ethernet
ahci0_at_pci0:0:11:0:	class=0x010185 card=0x0ab51849 chip=0x0ab510de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 SATA Controller'
    class      = mass storage
    subclass   = ATA
pcib2_at_pci0:0:16:0:	class=0x060400 card=0x0aa01849 chip=0x0aa010de rev=0xb1 hdr=0x01
    vendor     = 'nVidia Corporation'
    device     = 'MCP79 PCI Express Bridge'
    class      = bridge
    subclass   = PCI-PCI
vgapci0_at_pci0:1:0:0:	class=0x030000 card=0x087d1849 chip=0x087d10de rev=0xb1 hdr=0x00
    vendor     = 'nVidia Corporation'
    device     = 'ION VGA'
    class      = display
    subclass   = VGA

FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)
Installed devices:
pcm0: <VIA VT1708S_0 HDA CODEC PCM (Rear Analog)> (play/rec)
pcm1: <VIA VT1708S_0 HDA CODEC PCM (Rear-panel Digital)> (play)
pcm2: <NVIDIA MCP7A HDA CODEC PCM (Digital)> (play) default

Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.0-STABLE #0 r233700: Fri Mar 30 17:55:36 CEST 2012
    jarda_at_jasrock:/usr/obj/home/jarda/new/softw/freebsd/9/sys/GENERIC amd64
CPU: Intel(R) Atom(TM) CPU  330   _at_ 1.60GHz (1600.03-MHz K8-class CPU)
  Origin = "GenuineIntel"  Id = 0x106c2  Family = 6  Model = 1c  Stepping = 2
  Features=0xbfe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x40e31d<SSE3,DTES64,MON,DS_CPL,TM2,SSSE3,CX16,xTPR,PDCM,MOVBE>
  AMD Features=0x20000800<SYSCALL,LM>
  AMD Features2=0x1<LAHF>
  TSC: P-state invariant, performance statistics
real memory  = 2147483648 (2048 MB)
avail memory = 1528074240 (1457 MB)
Event timer "LAPIC" quality 400
ACPI APIC Table: <082609 APIC2310>
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
FreeBSD/SMP: 1 package(s) x 2 core(s) x 2 HTT threads
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP/HT): APIC ID:  1
 cpu2 (AP): APIC ID:  2
 cpu3 (AP/HT): APIC ID:  3
ioapic0: Changing APIC ID to 4
ioapic0 <Version 1.1> irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: <082609 RSDT2310> on motherboard
acpi0: Power Button (fixed)
acpi0: reservation of fefe1000, 1000 (3) failed
acpi0: reservation of fee01000, ff000 (3) failed
acpi0: reservation of fec00000, 1000 (3) failed
acpi0: reservation of fee00000, 1000 (3) failed
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, 7ff00000 (3) failed
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
cpu2: <ACPI CPU> on acpi0
cpu3: <ACPI CPU> on acpi0
attimer0: <AT timer> port 0x40-0x43 irq 0 on acpi0
Timecounter "i8254" frequency 1193182 Hz quality 0
Event timer "i8254" frequency 1193182 Hz quality 100
atrtc0: <AT realtime clock> port 0x70-0x71 irq 8 on acpi0
Event timer "RTC" frequency 32768 Hz quality 0
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x4008-0x400b on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
pci0: <memory, RAM> at device 0.1 (no driver attached)
isab0: <PCI-ISA bridge> port 0x4f00-0x4fff at device 3.0 on pci0
isa0: <ISA bus> on isab0
pci0: <memory, RAM> at device 3.1 (no driver attached)
pci0: <serial bus, SMBus> at device 3.2 (no driver attached)
pci0: <memory, RAM> at device 3.3 (no driver attached)
pci0: <processor> at device 3.5 (no driver attached)
ohci0: <nVidia nForce MCP79 USB Controller> mem 0xfae7f000-0xfae7ffff irq 16 at device 4.0 on pci0
usbus0 on ohci0
ehci0: <NVIDIA nForce MCP79 USB 2.0 controller> mem 0xfae7ec00-0xfae7ecff irq 18 at device 4.1 on pci0
usbus1: EHCI version 1.0
usbus1 on ehci0
hdac0: <NVIDIA MCP79 HDA Controller> mem 0xfae78000-0xfae7bfff irq 22 at device 8.0 on pci0
pcib1: <ACPI PCI-PCI bridge> at device 9.0 on pci0
pci2: <ACPI PCI bus> on pcib1
nfe0: <NVIDIA nForce MCP79 Networking Adapter> port 0xd080-0xd087 mem 0xfae7d000-0xfae7dfff,0xfae7e800-0xfae7e8ff,0xfae7e400-0xfae7e40f irq 23 at device 10.0 on pci0
miibus0: <MII bus> on nfe0
rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 3 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT, 1000baseT-master, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow
nfe0: Ethernet address: 00:26:18:87:97:dc
ahci0: <NVIDIA MCP79 AHCI SATA controller> port 0xd000-0xd007,0xcc00-0xcc03,0xc880-0xc887,0xc800-0xc803,0xc480-0xc48f mem 0xfae76000-0xfae77fff irq 20 at device 11.0 on pci0
ahci0: AHCI v1.20 with 6 3Gbps ports, Port Multiplier supported
ahcich0: <AHCI channel> at channel 0 on ahci0
ahcich1: <AHCI channel> at channel 1 on ahci0
ahcich2: <AHCI channel> at channel 2 on ahci0
ahcich3: <AHCI channel> at channel 3 on ahci0
ahcich4: <AHCI channel> at channel 4 on ahci0
ahcich5: <AHCI channel> at channel 5 on ahci0
pcib2: <ACPI PCI-PCI bridge> at device 16.0 on pci0
pci1: <ACPI PCI bus> on pcib2
vgapci0: <VGA-compatible display> port 0xec00-0xec7f mem 0xfb000000-0xfbffffff,0xe0000000-0xefffffff,0xf8000000-0xf9ffffff irq 21 at device 0.0 on pci1
acpi_button0: <Power Button> on acpi0
orm0: <ISA Option ROM> at iomem 0xc0000-0xce7ff on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
ppc0: cannot reserve I/O port range
ctl: CAM Target Layer loaded
p4tcc0: <CPU Frequency Thermal Control> on cpu0
p4tcc1: <CPU Frequency Thermal Control> on cpu1
p4tcc2: <CPU Frequency Thermal Control> on cpu2
p4tcc3: <CPU Frequency Thermal Control> on cpu3
Timecounters tick every 1.000 msec
hdacc0: <VIA VT1708S_0 HDA CODEC> at cad 0 on hdac0
hdaa0: <VIA VT1708S_0 HDA CODEC Audio Function Group> at nid 1 on hdacc0
pcm0: <VIA VT1708S_0 HDA CODEC PCM (Rear Analog)> at nid 28 and 26,27 on hdaa0
pcm1: <VIA VT1708S_0 HDA CODEC PCM (Rear-panel Digital)> at nid 32 on hdaa0
hdacc1: <NVIDIA MCP7A HDA CODEC> at cad 3 on hdac0
hdaa1: <NVIDIA MCP7A HDA CODEC Audio Function Group> at nid 1 on hdacc1
pcm2: <NVIDIA MCP7A HDA CODEC PCM (Digital)> at nid 5 on hdaa1
usbus0: 12Mbps Full Speed USB v1.0
usbus1: 480Mbps High Speed USB v2.0
ugen0.1: <nVidia> at usbus0
uhub0: <nVidia OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
ugen1.1: <nVidia> at usbus1
uhub1: <nVidia EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
uhub0: 6 ports with 6 removable, self powered
uhub1: 6 ports with 6 removable, self powered
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <ST9320325AS 0002SDM1> ATA-8 SATA 2.x device
ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes)
ada0: Command Queueing enabled
ada0: 305245MB (625142448 512 byte sectors: 16H 63S/T 16383C)
ada0: Previously was known as ad4
cd0 at ahcich1 bus 0 scbus1 target 0 lun 0
cd0: <Optiarc BD ROM BC-5500S 1.E1> Removable CD-ROM SCSI-0 device 
cd0: 150.000MB/s transfers (SATA 1.x, UDMA5, ATAPI 12bytes, PIO 8192bytes)
cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed
SMP: AP CPU #2 Launched!
SMP: AP CPU #1 Launched!
SMP: AP CPU #3 Launched!
Timecounter "TSC-low" frequency 12500260 Hz quality 1000
Root mount waiting for: usbus1
ugen1.2: <Western Digital> at usbus1
umass0: <Western Digital My Book 1111, class 0/0, rev 2.00/10.32, addr 2> on usbus1
umass0:  SCSI over Bulk-Only; quirks = 0x0000
umass0:7:0:-1: Attached to scbus7
da0 at umass-sim0 bus 0 scbus7 target 0 lun 0
da0: <WD My Book 1111 1032> Fixed Direct Access SCSI-4 device 
da0: 40.000MB/s transfers
da0: 1430129MB (2928904192 512 byte sectors: 255H 63S/T 182315C)
cd1 at umass-sim0 bus 0 scbus7 target 0 lun 1
cd1: <WD Virtual CD 1111 1032> Removable CD-ROM SCSI-4 device 
cd1: 40.000MB/s transfers
cd1: cd present [342016 x 2048 byte records]
ses0 at umass-sim0 bus 0 scbus7 target 0 lun 2
ses0: <WD SES Device 1032> Fixed Enclosure Services SCSI-4 device 
ses0: 40.000MB/s transfers
ses0: SCSI-3 SES Device
Trying to mount root from ufs:/dev/ada0p2 [rw]...
WARNING: / was not properly dismounted
ugen0.2: <Logitech> at usbus0
ukbd0: <Logitech Logitech USB Keyboard, class 0/0, rev 1.10/28.00, addr 2> on usbus0
kbd2 at ukbd0
nfe0: tx v2 error 0x6100
nvidia0: <ION> on vgapci0
vgapci0: child nvidia0 requested pci_enable_io
vgapci0: child nvidia0 requested pci_enable_io
ugen0.2: <Logitech> at usbus0 (disconnected)
ukbd0: at uhub0, port 6, addr 2 (disconnected)
Received on Thu Apr 05 2012 - 19:38:07 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:25 UTC