[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Massive sound changes / fix (24/32bit pcm support, new sampling rate converter, various fixes)



> 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

Mathew Kanner did the original locking, which I cleaned up a bit:
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/59349

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...

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


--
Jonathan Noack | noackjr_(_at_)_alumni_(_dot_)_rice_(_dot_)_edu | OpenPGP: 0x991D8195

Attachment: signature.asc
Description: OpenPGP digital signature