Upgrade, fix and new, maximal CS4236B chip support to mss.c
available for testing
Harry Coin
harrycoin at qconline.com
Thu Aug 4 17:25:29 GMT 2005
Freebsd Multimedia enthusiasts, kindly take a look at the following upgrade
to mss.c that fixes broken mixer support (and adds mode 3 support and full
duplex support at different sample rates, in fact exposing every chip
feature) for a CS chip, and consider testing it if possible.
I think that sound chip driver writers have a better idea about mixer
volume defaults than the 'vanilla' that come with the OS. On that theory
(and only with a recently committed bugfixe to the kernel routine
subr_hints.c) the upgrade I propose looks in the device.hints for user
chosen default mixer values-- and to the extent it doesn't find them the
driver adds chip-appropriate defaults to the kernel hints environment.
Also a recent bugfix to mss.c relating to ACPI issues prevents the 'failure
to attach' messages and a sound card device number higher than the the
number of sound cards - 1 in the system. I see there was a recent SMP fix
to mss.c that this patch of mine doesn't have.
The two patched files mss.c and mss.h and new doc file are at
http://www.n4comm.com/cs4236b/
The PR with a better description of all this is at
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/83697
I don't know if the 'mode 3' of this wss chip is shared by other such, but
extending this upgrade to other chips with the same register layout would
be easy.
Certainly the example code and general idea of soundcard drivers providing
preferred mixer level defaults absent user entered device.hints entries has
some merit.
Also I wonder if any out there agree that the nature of the mixer ranges
(linear, log, etc) and the DB amplification range ought to be published for
mixer levels (vague 0-100 doesn't specify much, the levels are documented
in the patch and doc for this chip) so people know what they are getting
when choosing a number between 0 and 100. At a minimum what the db change
is at 0 and 100 and if it crosses 0db, the level to use for 0db.
I posted this here to request testing at the suggestion of Alexander Leidinger.
Sorry in advance for newbie mis-steps.
Harry Coin
More information about the freebsd-multimedia
mailing list