Poor sound quality with snd_via8233

Niklas Sorensson nik at cs.chalmers.se
Sat Mar 18 13:58:41 UTC 2006


Hello,

I experience constant poor sound quality with the snd_8233 driver, ie not 
interruptions due to temporary load or anything like that, but constant 
distortion. I've been able to live with it because its good enough to use for 
Skype, but I really would like to be able to listen to music as well.

I've searched mailing lists and googled, but couldn't find any problem 
description that fits mine.

I'm running current, on an ASUS K8V Deluxe board. My kernel config and details 
about the sound setup is attached.

Any advice on how to improve the situation is appreciated

/Niklas
-------------- next part --------------
#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386
#
# For more information on this file, please read the handbook section on
# Kernel Configuration Files:
#
#    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD: src/sys/i386/conf/GENERIC,v 1.438 2006/01/21 12:38:35 marius Exp $

cpu		I686_CPU
ident		APA

options         CPU_ENABLE_SSE

# To statically compile in device wiring instead of /boot/device.hints
#hints		"GENERIC.hints"		# Default places to look for devices.

#makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols

#options 	SCHED_ULE		# ULE scheduler
options 	SCHED_4BSD		# 4BSD scheduler
options 	PREEMPTION		# Enable kernel thread preemption
options 	INET			# InterNETworking
#options 	INET6			# IPv6 communications protocols
options 	FFS			# Berkeley Fast Filesystem
options 	SOFTUPDATES		# Enable FFS soft updates support
#options 	UFS_ACL			# Support for access control lists
options 	UFS_DIRHASH		# Improve performance on big directories
options 	MD_ROOT			# MD is a potential root device
#options 	NFSCLIENT		# Network Filesystem Client
#options 	NFSSERVER		# Network Filesystem Server
#options 	NFS_ROOT		# NFS usable as /, requires NFSCLIENT
options 	MSDOSFS			# MSDOS Filesystem
options 	CD9660			# ISO 9660 Filesystem
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		# Pseudo-filesystem framework
options 	GEOM_GPT		# GUID Partition Tables.
options 	COMPAT_43		# Compatible with BSD 4.3 [KEEP THIS!]
options 	COMPAT_43TTY		# BSD 4.3 TTY compat [KEEP THIS!]
options 	COMPAT_FREEBSD4		# Compatible with FreeBSD4
options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
options 	KTRACE			# ktrace(1) support
options 	SYSVSHM			# SYSV-style shared memory
options 	SYSVMSG			# SYSV-style message queues
options 	SYSVSEM			# SYSV-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
#options 	AHC_REG_PRETTY_PRINT	# Print register bitfields in debug
#					# output.  Adds ~128k to driver.
#options 	AHD_REG_PRETTY_PRINT	# Print register bitfields in debug
#					# output.  Adds ~215k to driver.
options 	ADAPTIVE_GIANT		# Giant mutex is adaptive.
options 	STOP_NMI		# Stop CPUS using NMI instead of IPI

#options         NETSMB

options         HWPMC_HOOKS
device          hwpmc
device          apic

# Debugging for use in -current
#options 	KDB			# Enable kernel debugger support.
#options 	DDB			# Support DDB.
#options 	GDB			# Support remote GDB.
#options 	INVARIANTS		# Enable calls of extra sanity checking
#options 	INVARIANT_SUPPORT	# Extra sanity checks of internal structures, required by INVARIANTS
#options 	WITNESS			# Enable checks to detect deadlocks and cycles
#options 	WITNESS_SKIPSPIN	# Don't run witness on spinlocks for speed

# Bus support.
device		eisa
device		pci

# ATA and ATAPI devices
device		ata
device		atadisk		# ATA disk drives
device          atapicam
#device		ataraid		# ATA RAID drives
#device		atapicd		# ATAPI CDROM drives
options 	ATA_STATIC_ID	# Static device numbering

# SCSI peripherals
device		scbus		# SCSI bus (required for SCSI)
#device		ch		# SCSI media changers
device		da		# Direct Access (disks)
device		cd		# CD
device		pass		# Passthrough device (direct SCSI access)

# atkbdc0 controls both the keyboard and the PS/2 mouse
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		psm		# PS/2 mouse

device		vga		# VGA video card driver

device		splash		# Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device		sc

device		agp		# support several AGP chipsets

# Add suspend/resume support for the i8254.
#device		pmtimer


# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device		miibus		# MII bus support
device		sk		# SysKonnect SK-984x & SK-982x gigabit Ethernet

# Pseudo devices.
device		loop		# Network loopback
device		random		# Entropy device
device		ether		# Ethernet support
device		tun		# Packet tunnel.
device		pty		# Pseudo-ttys (telnet etc)
device		md		# Memory "disks"
#device		gif		# IPv6 and IPv4 tunneling
#device		faith		# IPv6-to-IPv4 relaying (translation)

# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device		bpf		# Berkeley packet filter

# USB support
device		uhci		# UHCI PCI->USB interface
device		ohci		# OHCI PCI->USB interface
device		ehci		# EHCI PCI->USB interface (USB 2.0)
device		usb		# USB Bus (required)
#device		udbp		# USB Double Bulk Pipe devices
device		ugen		# Generic
device		uhid		# "Human Interface Devices"
#device		ukbd		# Keyboard
#device		ulpt		# Printer
device		umass		# Disks/Mass storage - Requires scbus and da
#device		ums		# Mouse

# FireWire support
#device		firewire	# FireWire bus code
#device		sbp		# SCSI over FireWire (Requires scbus and da)

device sound
device "snd_via8233"
-------------- next part --------------
--------------------------------------------------------------------------------
apa# uname -a
FreeBSD apa 7.0-CURRENT FreeBSD 7.0-CURRENT #16: Thu Mar 16 17:14:27 CET 2006     nik at apa:/usr/obj/usr/src/sys/APA  i386

--------------------------------------------------------------------------------
apa# pciconf -lv | grep -B 4 audio
pcm0 at pci0:17:5:	class=0x040100 card=0x80b01043 chip=0x30591106 rev=0x60 hdr=0x00
    vendor   = 'VIA Technologies Inc'
    device   = 'VT8233/33A/8235/8237 AC97 Enhanced Audio Controller'
    class    = multimedia
    subclass = audio

--------------------------------------------------------------------------------
apa# dmesg | grep ^pcm 
pcm0: <VIA VT8237> port 0xc800-0xc8ff irq 22 at device 17.5 on pci0
pcm0: <Analog Devices AD1980 AC97 Codec>
pcm0: <VIA DXS Disabled: DXS 0 / SGD 1 / REC 1>

--------------------------------------------------------------------------------
apa# sysctl hw.snd.verbose=2 ; cat /dev/sndstat
hw.snd.verbose: 1 -> 2
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <VIA VT8237> at io 0xc800 irq 22  (1p/1r/1v channels duplex default)
	[pcm0:play:0]: spd 48000, fmt 0x10000010, flags 0x00103000, 0x00000000
	interrupts 224, underruns 0, ready 0 [b:4096/2048/2|bs:4096/2048/2]
	{userland} -> feeder_vchan_s16(0x10000010) -> {hardware}
	pcm0:play:0[pcm0:virtual:0]: spd 22050/48000, fmt 0x00000020/0x10000010, flags 0x10000000, 0x00000010
	interrupts 0, underruns 0, ready 0 [b:0/2048/0|bs:131072/1024/128]
	{userland} -> feeder_root(0x00000020) -> feeder_endian16(0x00000020 -> 0x00000010) -> feeder_monotostereo16(0x00000010 -> 0x10000010) -> feeder_rate(22050 -> 48000) -> {hardware}
	[pcm0:record:0]: spd 8000, fmt 0x00000008, flags 0x00000000, 0x00000000
	interrupts 0, overruns 0, hfree 256, sfree 131072 [b:256/128/2|bs:131072/128/1024]
	{hardware} -> feeder_root(0x00000008) -> {userland}

--------------------------------------------------------------------------------
apa# sysctl hw.snd
hw.snd.targetirqrate: 32
hw.snd.report_soft_formats: 1
hw.snd.feeder_rate_ratemin: 4000
hw.snd.feeder_rate_ratemax: 1102500
hw.snd.feeder_rate_scaling: 5
hw.snd.feeder_rate_buffersize: 8192
hw.snd.verbose: 2
hw.snd.unit: 0
hw.snd.maxautovchans: 10
hw.snd.pcm0.buffersize: 4096
hw.snd.pcm0.vchans: 1
hw.snd.pcm0.vchanrate: 48000

--------------------------------------------------------------------------------
apa# /usr/sbin/mixer
Mixer vol      is currently set to 100:100
Mixer pcm      is currently set to 100:100
Mixer line     is currently set to 100:100
Mixer mic      is currently set to 100:100
Mixer cd       is currently set to 100:100
Mixer rec      is currently set to 100:100
Mixer igain    is currently set to 100:100
Mixer ogain    is currently set to  10:10
Mixer line1    is currently set to  75:75
Mixer phin     is currently set to   0:0
Mixer phout    is currently set to   0:0
Recording source: mic


More information about the freebsd-multimedia mailing list