kern/72995: Intel ICH2 (82801BA) - sound nearly inaudible

tom tom at uffner.com
Fri Oct 22 00:50:27 PDT 2004


>Number:         72995
>Category:       kern
>Synopsis:       Intel ICH2 (82801BA) - sound nearly inaudible
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Oct 22 07:50:26 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     tomuffner.com
>Release:        FreeBSD 6.0-CURRENT i386
>Organization:
>Environment:
System: FreeBSD xiombarg.uffner.com 6.0-CURRENT FreeBSD 6.0-CURRENT #4: Thu Oct 21 18:59:23 EDT 2004 tom at xiombarg.uffner.com:/usr/obj/usr/src/sys/XIOMBARG i386

machine         i386
cpu             I686_CPU
ident           XIOMBARG
maxusers        0

options         SCHED_ULE
options         INET                    #InterNETworking
options         INET6                   #IPv6 communications protocols
options         IPSEC                   #IP security
options         IPSEC_ESP               #IP security (crypto; define w/ IPSEC)
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         CD9660                  #ISO 9660 Filesystem
options         COMPAT_43               #Compatible with BSD 4.3 [KEEP THIS!]
options         COMPAT_FREEBSD4         #Compatible with FreeBSD4
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
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options         PERFMON
options         NO_F00F_HACK
options         PQ_CACHESIZE=256        # color for 512k/16k cache
options         KDB
options         CLK_USE_I8254_CALIBRATION

device          isa
device          eisa
device          pci
device          fdc
device          ata
device          atadisk                 # ATA disk drives
device          atapicd                 # ATAPI CDROM drives
options         ATA_STATIC_ID           #Static device numbering
device          md

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

# syscons is the default console driver, resembling an SCO console
device          sc
options         SC_HISTORY_SIZE=1000    # number of history buffer lines
options         SC_DISABLE_REBOOT       # disable reboot key sequence
options         SC_NORM_ATTR="(FG_GREEN|BG_BLACK)"
device          splash
device          npx
device          sio

# Parallel port
device          ppc
device          ppbus           # Parallel port bus (required)
device          lpt             # Printer
device          plip            # TCP/IP over parallel
device          ppi             # Parallel port interface device

# 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          xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')

# Pseudo devices - the number indicates how many units to allocate.
device          loop            # Network loopback
device          ether           # Ethernet support
device          tun             # Packet tunnel.
device          pty             # Pseudo-ttys (telnet etc)
device          bpf             #Berkeley packet filter

# for IPv6
device          gif             #IPv6 and IPv4 tunneling
device          faith           #for IPv6 and IPv4 translation

# USB support
device          uhci            # UHCI PCI->USB interface
device          usb             # USB Bus (required)
device          ugen            # Generic
device          uhid            # "Human Interface Devices"
device          ukbd            # Keyboard
device          ums             # Mouse

device          sound
device          snd_ich


Copyright (c) 1992-2004 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 6.0-CURRENT #4: Thu Oct 21 18:59:23 EDT 2004
    tom at xiombarg.uffner.com:/usr/obj/usr/src/sys/XIOMBARG
WARNING: debug.mpsafenet forced to 0 as ipsec requires Giant
WARNING: MPSAFE network stack disabled, expect reduced performance.
Timecounter "i8254" frequency 1193142 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1794.13-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf12  Stepping = 2
  Features=0x3febfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM>
real memory  = 267874304 (255 MB)
avail memory = 252407808 (240 MB)
npx0: [FAST]
npx0: <math processor> on motherboard
npx0: INT 16 interface
acpi0: <DELL GX240  > on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
cpu0: <ACPI CPU> on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82845 host to AGP bridge> mem 0xf4000000-0xf7ffffff at device 0.0 on pci0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at device 0.0 (no driver attached)
pcib2: <ACPI PCI-PCI bridge> at device 30.0 on pci0
pci2: <ACPI PCI bus> on pcib2
xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xdc80-0xdcff mem 0xff6ffc00-0xff6ffc7f irq 11 at device 12.0 on pci2
miibus0: <MII bus> on xl0
ukphy0: <Generic IEEE 802.3u media interface> on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
xl0: Ethernet address: 00:06:5b:a2:d4:90
xl0: [GIANT-LOCKED]
isab0: <PCI-ISA bridge> at device 31.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel ICH2 UDMA100 controller> port 0xffa0-0xffaf,0x376,0x170-0x177,0x3f6,0x1f0-0x1f7 at device 31.1 on pci0
ata0: channel #0 on atapci0
ata1: channel #1 on atapci0
uhci0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> port 0xff80-0xff9f irq 11 at device 31.2 on pci0
uhci0: [GIANT-LOCKED]
usb0: <Intel 82801BA/BAM (ICH2) USB controller USB-A> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
pci0: <serial bus, SMBus> at device 31.3 (no driver attached)
uhci1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> port 0xff60-0xff7f irq 9 at device 31.4 on pci0
uhci1: [GIANT-LOCKED]
usb1: <Intel 82801BA/BAM (ICH2) USB controller USB-B> on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
pcm0: <Intel ICH2 (82801BA)> port 0xcc40-0xcc7f,0xc800-0xc8ff irq 10 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Analog Devices AD1885 AC97 Codec>
fdc0: <floppy drive controller> port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on acpi0
fdc0: [FAST]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
atkbdc0: <Keyboard controller (i8042)> port 0x64,0x60 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: model NetScroll, device ID 0
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 on acpi0
sio0: type 16550A
sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0: <ECP parallel printer port> port 0x778-0x77f,0x378-0x37f irq 7 on acpi0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/8 bytes threshold
ppbus0: <Parallel port bus> on ppc0
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0
orm0: <ISA Option ROM> at iomem 0xc0000-0xc7fff 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
Timecounter "TSC" frequency 1794130020 Hz quality 800
Timecounters tick every 10.000 msec
IPsec: Initialized Security Association Processing.
ad0: 76345MB <MAXTOR 6L080J4/A93.0500> [155114/16/63] at ata0-master UDMA100
acd0: CDRW <LITE-ON LTR-24102M/4DS3> at ata1-master UDMA33
pcm0: measured ac97 link rate at 55925 Hz
Mounting root from ufs:/dev/ad0s1a

[xiombarg:~:ttyp2] cat /dev/sndstat 
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH2 (82801BA)> at io 0xc800, 0xcc40 irq 10 bufsz 16384  (1p/1r/4v channels duplex default)

>Description:
pcm sound levels on my Dell GX240 are much lower than expected. i
am using a known good set of speakers that work well on a older
Dell box with identical FreeBSD version. sound is inaudible unless
mixer pcm & ogain are both set above 80%, mixer vol setting makes
no difference. output levels appear identical on the speaker jack
and headphone jack. headphones sound ok at ogain=50, pcm=75-100;
speakers get enough volume for a small quiet room at ogain=95-100,
pcm=75-100 but sound is clipped and distorted (probably due to
nearly maximum settings)

the application used does not seem to matter. i've tested w/ xmms,
mpg123, realplay and a variety of audio formats.

this patch (inspired by kern/66422) made no difference
===================================================================
RCS file: /home/ncvs/src/sys/dev/sound/pcm/ac97.c,v
retrieving revision 1.51
diff -u -r1.51 ac97.c
--- ac97.c      8 May 2004 03:41:40 -0000       1.51
+++ ac97.c      22 Oct 2004 06:14:11 -0000
@@ -548,7 +548,7 @@
 
        ac97_wrcd(codec, AC97_REG_POWER, (codec->flags & AC97_F_EAPD_INV)? 0x8000 : 0x0000);
        ac97_reset(codec);
-       ac97_wrcd(codec, AC97_REG_POWER, (codec->flags & AC97_F_EAPD_INV)? 0x8000 : 0x0000);
+       ac97_wrcd(codec, AC97_REG_POWER, 0x8000);
 
        i = ac97_rdcd(codec, AC97_REG_RESET);
        codec->caps = i & 0x03ff;
@@ -663,7 +663,7 @@
 
        ac97_wrcd(codec, AC97_REG_POWER, (codec->flags & AC97_F_EAPD_INV)? 0x8000 : 0x0000);
        ac97_reset(codec);
-       ac97_wrcd(codec, AC97_REG_POWER, (codec->flags & AC97_F_EAPD_INV)? 0x8000 : 0x0000);
+       ac97_wrcd(codec, AC97_REG_POWER, 0x8000);
 
        if (!codec->noext) {
                ac97_wrcd(codec, AC97_REGEXT_STAT, codec->extstat);

sound works great on a Dell GX200 (p3, Intel ICH 82801AA) running
the same build of FreeBSD-Current, and plays louder than I can
comfortably listen to if i turn the mixer settings up to similar
levels.

>How-To-Repeat:
run any audio application
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list