| Summary: | [snd_ich] snd_ich broken on Dell PIII system | ||
|---|---|---|---|
| Product: | Base System | Reporter: | Kevin Oberman <oberman> |
| Component: | kern | Assignee: | Ariff Abdullah <ariff> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 7.0-CURRENT | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
Kevin Oberman
2006-07-12 18:10:15 UTC
Responsible Changed From-To: freebsd-bugs->freebsd-multimedia Over to maintainer(s). Responsible Changed From-To: freebsd-multimedia->ariff Take it (with a little doubt that this has anything to do with the driver). ariff 2006-11-26 12:24:06 UTC
FreeBSD src repository
Modified files:
sys/sys param.h
. UPDATING
sys/dev/sound/pci atiixp.c cmi.c es137x.c ich.c via8233.c
sys/dev/sound/pci/hda hda_reg.h hdac.c hdac_private.h
sys/dev/sound/pcm ac97.c ac97.h buffer.c buffer.h channel.c
channel.h dsp.c fake.c feeder.c feeder.h
feeder_fmt.c feeder_rate.c
feeder_volume.c mixer.c sndstat.c sound.c
sound.h vchan.c
sys/dev/sound/usb uaudio.c
Log:
Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixes
in every sense.
General
-------
- Multichannel safe, endian safe, format safe
* Large part of critical pcm filters such as vchan.c, feeder_rate.c,
feeder_volume.c, feeder_fmt.c and feeder.c has been rewritten so that
using them does not cause the pcm data to be converted to 16bit little
endian.
* Macrosses for accessing pcm data safely are defined within sound.h in
the form of PCM_READ_* / PCM_WRITE_*
* Currently, most of them are probably limited for mono/stereo handling,
but the future addition of true multichannel will be much easier.
- Low latency operation
* Well, this require lot more works to do not just within sound driver,
but we're heading towards right direction. Buffer/block sizing within
channel.c is rewritten to calculate precise allocation for various
combination of sample/data/rate size. As a result, applying correct
SNDCTL_DSP_POLICY value will achive expected latency behaviour simmilar
to what commercial 4front driver do.
* Signal handling fix. ctrl+c of "cat /dev/zero > /dev/dsp" does not
result long delay.
* Eliminate sound truncation if the sound data is too small.
DIY:
1) Download / extract
http://people.freebsd.org/~ariff/lowlatency/shortfiles.tar.gz
2) Do a comparison between "cat state*.au > /dev/dsp" and
"for x in state*.au ; do cat $x > /dev/dsp ; done"
- there should be no "perceivable" differences.
Double close for PR kern/31445.
CAVEAT: Low latency come with (unbearable) price especially for poorly
written applications. Applications that trying to act smarter
by requesting (wrong) blocksize/blockcount will suffer the most.
Fixup samples/patches can be found at:
http://people.freebsd.org/~ariff/ports/
- Switch minimum/maximum sampling rate limit to "1" and "2016000" (48k * 42)
due to closer compatibility with 4front driver.
Discussed with: marcus@ (long time ago?)
- All driver specific sysctls in the form of "hw.snd.pcm%d.*" have been
moved to their own dev sysctl nodes, notably:
hw.snd.pcm%d.vchans -> dev.pcm.%d.vchans
Bump __FreeBSD_version.
Driver specific
---------------
- Ditto for sysctls.
- snd_atiixp, snd_es137x, snd_via8233, snd_hda
* Numerous cleanups and fixes.
* _EXPERIMENTAL_ polling mode support using simple callout_* mechanisme.
This was intended for pure debugging and latency measurement, but proven
good enough in few unexpected and rare cases (such as problematic shared
IRQ with GIANT devices - USB). Polling can be enabled/disabled through
dev.pcm.0.polling. Disabled by default.
- snd_ich
* Fix possible overflow during speed calibration. Delay final
initialization (pcm_setstatus) after calibration finished.
PR: kern/100169
Tested by: Kevin Overman <oberman@es.net>
* Inverted EAPD for few Nec VersaPro.
PR: kern/104715
Submitted by: KAWATA Masahiko <kawata@mta.biglobe.ne.jp>
Thanks to various people, notably Joel Dahl, Yuriy Tsibizov, Kevin Oberman,
those at #freebsd-azalia @ freenode and others for testing.
Joel Dahl will do the manpage update.
Revision Changes Path
1.466 +13 -0 src/UPDATING
1.8 +354 -196 src/sys/dev/sound/pci/atiixp.c
1.38 +3 -3 src/sys/dev/sound/pci/cmi.c
1.61 +622 -371 src/sys/dev/sound/pci/es137x.c
1.2 +24 -24 src/sys/dev/sound/pci/hda/hda_reg.h
1.9 +456 -171 src/sys/dev/sound/pci/hda/hdac.c
1.3 +10 -1 src/sys/dev/sound/pci/hda/hdac_private.h
1.68 +228 -103 src/sys/dev/sound/pci/ich.c
1.26 +558 -275 src/sys/dev/sound/pci/via8233.c
1.64 +86 -18 src/sys/dev/sound/pcm/ac97.c
1.19 +0 -2 src/sys/dev/sound/pcm/ac97.h
1.29 +60 -26 src/sys/dev/sound/pcm/buffer.c
1.13 +3 -0 src/sys/dev/sound/pcm/buffer.h
1.112 +721 -311 src/sys/dev/sound/pcm/channel.c
1.34 +39 -1 src/sys/dev/sound/pcm/channel.h
1.100 +16 -17 src/sys/dev/sound/pcm/dsp.c
1.17 +2 -1 src/sys/dev/sound/pcm/fake.c
1.38 +452 -134 src/sys/dev/sound/pcm/feeder.c
1.14 +26 -3 src/sys/dev/sound/pcm/feeder.h
1.21 +623 -203 src/sys/dev/sound/pcm/feeder_fmt.c
1.19 +320 -546 src/sys/dev/sound/pcm/feeder_rate.c
1.3 +178 -33 src/sys/dev/sound/pcm/feeder_volume.c
1.56 +5 -3 src/sys/dev/sound/pcm/mixer.c
1.23 +11 -10 src/sys/dev/sound/pcm/sndstat.c
1.107 +40 -48 src/sys/dev/sound/pcm/sound.c
1.73 +280 -7 src/sys/dev/sound/pcm/sound.h
1.26 +458 -131 src/sys/dev/sound/pcm/vchan.c
1.23 +1 -1 src/sys/dev/sound/usb/uaudio.c
1.280 +1 -1 src/sys/sys/param.h
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
State Changed From-To: open->closed Fix committed. Does not affect other branches. ariff 2007-05-28 21:07:41 UTC
FreeBSD src repository
Modified files: (Branch: RELENG_6)
sys/dev/sound/pci ich.c
Log:
MFC (revision 1.75)
* Fix possible integer overflow during speed calibration. Delay final
initialization (pcm_setstatus) after calibration finished.
PR: kern/100169
Tested by: Kevin Overman <oberman@es.net>
* Fix (or rather workaround) Intel 440MX Errata #36
- http://www.intel.com/design/chipsets/specupdt/245051.htm
AC97 Soft Audio and Soft Modem Master Abort Errata
Issue:
Use of either soft audio or soft modem on an IntelĀ® 82443MX PCISet
based platform running a 100 MHz Processor System Bus and an AC97 codec
may result in failures. The system continues to function normally while
the AC97 hardware may not resume and may require a cold-boot to
recover. As a result of the failure, the Master Abort Status bit will
be set in the audio or modem function PCI header space.
Workaround:
Force uncacheable DMA on both BDL and pcm buffers.
Tested by: Emil Holmstr|m <emil@linux.se>
Revision Changes Path
1.53.2.11 +339 -126 src/sys/dev/sound/pci/ich.c
_______________________________________________
cvs-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/cvs-all
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
|