Massive sound changes / fix (24/32bit pcm support, new sampling
rate converter, various fixes)
Ariff Abdullah
skywizard at MyBSD.org.my
Sat Jul 9 21:15:21 GMT 2005
On Sat, 09 Jul 2005 14:59:37 -0500
Jonathan Noack <noackjr at alumni.rice.edu> wrote:
> >> > Hardware spessific changes
> >> > ==========================
> >>
> >> > 3. es137x.c / es137x.h
> >> > * Register programming error during device initialization
> >> > especially for CT4730 / EV1938 chip, causing misconfigured
> >> > mixer (David Xu), crippled after power cycle (Kevin
> >Oberman). > > Fixed.
> >> > * Incorporate locking/spdif patches from Jon Noack. Not all
> >> > es137x
> >> > can really do spdif, clean it up a bit to only let few
> >> > capable chip.
> >>
> >> --- /var/log/dmesg.today Sat Jul 9 13:13:45 2005
> >> +++ /var/run/dmesg.boot Sat Jul 9 20:04:47 2005
> >> @@ -57,7 +57,6 @@
> >> pci0: <multimedia, audio> at device 7.5 (no driver attached)
> >> pcm0: <Creative CT5880-C> port 0xb800-0xb83f irq 5 at device 9.0
> >on > pci0 pcm0: <SigmaTel STAC9721/23 AC97 Codec>
> >> -pcm0: [GIANT-LOCKED]
> >> xl0: <3Com 3c905C-TX Fast Etherlink XL> port 0xbc00-0xbc7f mem
> >> 0xe7000000-0xe700007f irq 11 at device 10.0 on pci0 miibus0:
> ><MII > bus> on xl0 xlphy0: <3c905C 10/100 internal PHY> on miibus0
> >>
> >> And the music plays just fine, no bad behavior so far.
> >>
> > Credit goes to Jonathan Noack for adding spdif / locking. If you
> > think there are lots of pops / crackling sound, you may as well
> > play around with sysctl hw.snd.pcm0.latency_timer (especially
> > during untarring big tarball).
>
> My spdif work:
> http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/68594
>
Thanks for that.
> Mathew Kanner did the original locking, which I cleaned up a bit:
> http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/59349
>
Oops... I thought it always you.
> The _real_ credit for my locking work goes to the horrible
> interactivity problems that plagued -CURRENT about a year ago.
> Adding locking to the driver was a desperate attempt to get sound
> without pauses...
>
Plus, I've added hw.snd.pcm<unit>.latency_timer to reduce any
crackling noise down to nil (pciconf -w just too cryptic for that).
This really improve situation especially with VIA motherboard and
perhaps, others too.
> In any case, I've been running these changes for at least a year
> with no problems. I tried to pester folks into committing it many
> times (with no success), so I am VERY excited about this work!
>
> I don't know if you've touched the man pages at all, but my latest
> patch includes a man page update for the spdif sysctl:
> http://www.noacks.org/freebsd/es137x.diff
>
Currently I haven't touched any man pages at all. Can you do separate
patches for that? There are few new sysctls need to be documented,
perhaps you can do that too.
es137x:
1) hw.snd.pcm<unit>.latency_timer
- PCI latency timer adjustment. Most pops /
crackling issue can be solved by adjusting it to
appropriate value (especially on VIA mobo).
General Sound Driver:
1) hw.snd.feeder_rate_ratemin/ratemax
- Minimum / Maximum allowable rate
2) hw.snd.feeder_rate_scaling
- Rate conversion precision / quality
(Most of the options already explained in
feeder_rate.c)
3) hw.snd.feeder_rate_buffersize
- Buffer space for rate converter
There are few LORs (during boot) with this much integrated es137x
(which I do believe false positives). Perhaps you can reproduce
it by enabling WITNESS?
http://staff.mybsd.org.my/skywizard/FreeBSD/sound/LOR/es137x_lor.txt
(This is slightly outdated, some of it have bean dealt with)
Thanks for your works!
--
Ariff Abdullah
MyBSD
http://www.MyBSD.org.my (IPv6/IPv4)
http://staff.MyBSD.org.my (IPv6/IPv4)
http://tomoyo.MyBSD.org.my (IPv6/IPv4)
More information about the freebsd-multimedia
mailing list