summaryrefslogtreecommitdiffstats
path: root/sys/modules/sound
Commit message (Collapse)AuthorAgeFilesLines
* Restore SUBDIR+= accidentally removed in the previous revision.marius2008-05-041-4/+4
| | | | Pointed out by: ariff
* Don't build unused SBus front-ends for sun4v, don't build EBus front-endsmarius2008-05-041-5/+8
| | | | | | | | which are also likely to be irrelevant for sun4v (there's no SBus on sun4v and only some EBus devices). While at it fix some style bugs according to style.Makefile(5) where appropriate. MFC after: 3 days
* Remove option headers that do not exist and are not usedantoine2008-03-271-1/+1
| | | | | | | from the Makefiles in sys/modules. (opt_devfs.h, opt_bdg.h, opt_emu10kx.h and opt_uslcom.h) Approved by: rwatson (mentor)
* Remove WARNS from here and compile with default kernel flags.ru2008-02-211-1/+0
|
* Update snd_emu10kx driver with recent perforce changes (and fewariff2007-09-121-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | other changes too). (without any real order) 1. Use device_get_nameunit for mutex naming 2. Add timer for low-latency playback 3. Move most mixer controls from sysctls to mixer(8) controls. This is a largest part of this patch. 4. Add analog/digital switch (as a temporary sysctl) 5. Get back support for low-bitrate playback (with help of (2)) 6. Change locking for exclusive I/O. Writing to non-PTR register is almost safe and does not need to be ordered with PTR operations. 7. Disable MIDI until we get it to detach properly and fix memory managment problems. 8. Enable multichannel playback by default. It is as stable as single-channel mode. Multichannel recording is still an experimental feature. 9. Multichannel options can be changed by loader tunables. 10. Add a way to disable card from a loader tunable. 11. Add new PCI IDs. 12. Debugger settings are loader tunables now. 14. Remove some unused variables. 15. Mark pcm sub-devices MPSAFE. 16. Partially revert (bus_setup_intr -> snd_setup_intr) since it need to be done independently Submitted by: Yuriy Tsibizov (driver maintainer) Approved by: re (bmah)
* Last major commit and updates for RELENG_7:ariff2007-05-311-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Rework the entire pcm_channel structure: * Remove rarely used link placeholder, instead, make each pcm_channel as head/link of each own/each other. Unlock - Lock sequence due to sleep malloc has been reduced. * Implement "busy" queue which will contain list of busy/active channels. This greatly reduce locking contention for example while servicing interrupt for hardware with many channels or when virtual channels reach its 256 peak channels. - So I heard you like v chan ... O RLY? Welcome to Virtual **Record** Channels (vrec, rec vchans, vchans for recording, Rec-Chan, you decide), the ultimate solutions for your nagging O_RDWR full-duplex wannabe (note: flash plugins) monopolizing single record channel causing EBUSY. Vrec works exactly like Vchans (or, should I rename it to "Vplay" :) , except that it operates on the opposite direction (recording). Up to 256 vrecs (like vchans) are possible. Notes: * Relocate dev.pcm.%d.{vchans,vchanformat,vchanrate} to each of its respective node/direction: dev.pcm.%d.play.* for "play" (cdev = dsp%d.vp%d) dev.pcm.%d.rec.* for "record" (cdev = dsp%d.vr%d) * Don't expect that it will magically give you ability to split "recording source" (eg: 1 channel for cdrom, 1 channel for mic, etc). Just admit that you only have a *single* recording source / channel. Please bug your hardware vendor instead :) - Bump maxautovchans from 4 to 16. For a full-fledged multimedia desktop/workstation with too many soundservers installed (esound, artsd, jackd, pulse/polypaudio, ding-dong pling plong mudkip fuh fuh, etc), 4 seems inadequate. There will be no memory penalty here, since virtual channels are allocate only by demand. - Nuke/Rework the entire statically created cdev entries. Everything is clonable through snd own clone manager which designed to withstand many kind of abusive devfs droids such as: * while : ; do /bin/test -e /dev/dsp ; done * jot 16777216 0 | while read x ; do ls /dev/dsp0.$x ; done * hundreds (could be thousands) concurrent threads/process opening "/dev/dsp" (previously, this might result EBUSY even with just 3 contesting threads/procs). o Reusable clone objects (instead of creating new one like there's no tomorrow) after certain expiration deadline. The clone allocator will decide whether to reuse, share, or creating new clone. o Automatic garbage collector. - Dynamic unit magic allocator. Maximum attached soundcards can be tuned using tunable "hw.snd.maxunit" (Default to 512). Minimum is 16, and maximum is 2048. - ..other fixes, mostly related to concurrency issues. joel@ will do the manpage updates on sound(4). Have fun.
* Disable multichannel recording in snd_emu10kx module. Whith multichannelnetchild2007-01-071-1/+1
| | | | | | | | | | recording enabled some programs (audio/audacity from ports) can't correctly enumerate all /dev/dsp device. Note: previous commit did not enable some debugging stuff, my eyes did misread "#undef" as "#define". Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
* Extend the emu10kx driver. With the words of the author:netchild2007-01-061-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---snip--- New features: 1. Optional multichannel recording (32 channels on Live!, 64 channels on Audigy). All channels are 16bit/48000Hz/mono, format is fixed. Half of them are copied from sound output, another half can be used to record any data from DSP. What should be recorded is hardcoded in DSP code. In this version it records dummy data, but can be used to record all DSP inputs, for example.. Because there are no support of more-than-stereo sound streams multichannell stream is presented as one 32(64)*48000 Hz 16bit mono stream. Channel map: SB Live! (4.0/5.1) offset (words) substream 0x00 Front L 0x01 Front R 0x02 Digital Front L 0x03 Digital Front R 0x04 Digital Center 0x05 Digital Sub 0x06 Headphones L 0x07 Headphones R 0x08 Rear L 0x09 Rear R 0x0A ADC (multi-rate recording) L 0x0B ADC (multi-rate recording) R 0x0C unused 0x0D unused 0x0E unused 0x0F unused 0x10 Analog Center (Live! 5.1) / dummy (Live! 4.0) 0x11 Analog Sub (Live! 5.1) / dummy (Live! 4.0) 0x12..-0x1F dummy Audigy / Audigy 2 / Audigy 2 Value / Audigy 4 offset (words) substream 0x00 Digital Front L 0x01 Digital Front R 0x02 Digital Center 0x03 Digital Sub 0x04 Digital Side L (7.1 cards) / Headphones L (5.1 cards) 0x05 Digital Side R (7.1 cards) / Headphones R (5.1 cards) 0x06 Digital Rear L 0x07 Digital Rear R 0x08 Front L 0x09 Front R 0x0A Center 0x0B Sub 0x0C Side L 0x0D Side R 0x0E Rear L 0x0F Rear R 0x10 output to AC97 input L (muted) 0x11 output to AC97 input R (muted) 0x12 unused 0x13 unused 0x14 unused 0x15 unused 0x16 ADC (multi-rate recording) L 0x17 ADC (multi-rate recording) R 0x18 unused 0x19 unused 0x1A unused 0x1B unused 0x1C unused 0x1D unused 0x1E unused 0x1F unused 0x20..0x3F dummy Fixes: 1. Do not assign negative values to variables used to index emu_cards array. This array was never accessed when index is negative, but Alexander (netchild@) told me that Coverity does not like it. After this change emu_cards[0] should never be used to identify valid sound card. 2. Fix off-by-one errors in interrupt manager. Add more checks there. 3. Fixes to sound buffering code now allows driver to use large playback buffers. 4. Fix memory allocation bug when multichannel recording is not enabled. 5. Fix interrupt timeout when recording with low bitrate (8kHz). Hardware: 1. Add one more known Audigy ZS card to list. Add two cards with PCI IDs betwen old known cards and new one. Other changes: 1. Do not use ALL CAPS in messages. Incomplete code: 1. Automute S/PDIF when S/PDIF signal is lost. Tested on i386 only, gcc 3.4.6 & gcc41/gcc42 (syntax only). ---snip--- This commits enables a little bit of debugging output when the driver is loaded as a module. I did a cross-build test for amd64. The code has some style issues, this will be addressed later. The multichannel recording part is some work in progress to allow playing around with it until the generic sound code is better able to handle multichannel streams. This is supposed to fix CID: 171187 Found by: Coverity Prevent Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
* Connect snd_hda(4) to build process...ariff2006-10-011-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Add support for Intel High Definition Audio Controller. This driver make a special guarantee that "playback" works on majority hardwares with minimal or without specific vendor quirk. This driver is a product of collaborative effort made by: Stephane E. Potvin <sepotvin@videotron.ca> Andrea Bittau <a.bittau@cs.ucl.ac.uk> Wesley Morgan <morganw@chemikals.org> Daniel Eischen <deischen@FreeBSD.org> Maxime Guillaud <bsd-ports@mguillaud.net> Ariff Abdullah <ariff@FreeBSD.org> ....and various people from freebsd-multimedia@FreeBSD.org Refer to snd_hda(4) for features and issues. Welcome To HDA. Sponsored by: Defenxis Sdn. Bhd.
* Add support for Intel High Definition Audio Controller.ariff2006-10-011-0/+9
| | | | | | | | | | | | | | | | | | | | | | | This driver make a special guarantee that "playback" works on majority hardwares with minimal or without specific vendor quirk. This driver is a product of collaborative effort made by: Stephane E. Potvin <sepotvin@videotron.ca> Andrea Bittau <a.bittau@cs.ucl.ac.uk> Wesley Morgan <morganw@chemikals.org> Daniel Eischen <deischen@FreeBSD.org> Maxime Guillaud <bsd-ports@mguillaud.net> Ariff Abdullah <ariff@FreeBSD.org> ....and various people from freebsd-multimedia@FreeBSD.org Refer to snd_hda(4) for features and issues. Welcome To HDA. Sponsored by: Defenxis Sdn. Bhd.
* Respect style.Makefile(5).netchild2006-09-303-12/+15
| | | | Cluebat waving by: ru
* Add the envy24ht driver to the build.netchild2006-09-302-2/+10
|
* Remove the ak452x module.netchild2006-09-301-8/+0
|
* Disconnect ak452x from the build, it is not needed anymore.netchild2006-09-301-1/+1
|
* We don't need the ISA interface.netchild2006-09-301-1/+1
| | | | Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
* Add the spicds module to the build.netchild2006-09-302-1/+9
| | | | Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
* If building the module as part of the kernel build, determineru2006-09-041-0/+7
| | | | | | | | | the "device isa" presence out of the opt_isa.h in the kernel build directory, rather than always assuming its presence. sparc64 is still special cased and is not affected by this change. Noticed by: bde
* Don't use touch when what is really meant is :> (create an empty file, ordes2006-08-141-1/+1
| | | | | | | | truncate it if it exists) or :>> (ensure the file exists, but don't change it if it already does) Reviewed by: ru MFC after: 2 weeks
* - Connect the snd_emu10kx driver to the build. [1]netchild2006-07-151-3/+3
| | | | | | - Bump __FreeBSD_version, no need to build the port now. Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru> [1]
* Add snd_emu10kx driver for Creative SoundBlaster Live! and Audigy seriesnetchild2006-07-151-0/+48
| | | | | | | | | | | | | | | sound cards with optional pseudo-multichannel playback. It's based on snd_emu10k1 sound driver. Single channel version is available from audio/emu10kx port since some time. The two new ALSA header files (GPLed), which contain Audigy 2 ("p16v") and Audigy 2 Value ("p17v") specific interfaces, are latest versions from ALSA Mercurial repository. This is not connected to the build yet. Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
* Connect the envy42 driver to the build.netchild2006-06-171-2/+2
|
* dd the envy24 driver as is to the tree. It's not connected to the buildnetchild2006-06-172-0/+16
| | | | | | | | | | | yet. More commits to follow. I got no response from the author, but since the driver is BSD licensed I don't think he will complain. :-) I got it from http://people.freebsd.org/~lofi/envy24.tar.gz Written by: Katsurajima Naoto <raven@katsurajima.seya.yokohama.jp>
* Commit the new (old) midi framework. It's based in parts on the NetBSD code,netchild2006-05-273-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | but large parts are rewritten by matk and tanimura. This is old code, it's not maintained since 2003. We also don't have a maintainer for this! Yuriy Tsibizov took it and uses it in his emu10kx driver. Since the emu10kx driver will enter the tree "soon" (some bugs have to be fixed after Yuriy return from his holidays), I add it here already. This also contains some changes to emu10k1 and cmi, so if you're lucky, you can now make some kind of use of midi with those soundcards. To all those poor souls which don't have such a card: feel free to send patches, we don't have a maintainer for this. To those which miss a specific feature in the midi code: feel free to submit patches, we don't have a maintainer for this. Oh, did I already told that it would be nice if someone would take care of it? Maintainer with midi equipment wanted! :-) If you get LOR's, submit a PR and notify multimedia@ please. If you get panics, submit a PR with a backtrace (compile the sound system into your kernel instead of using modules in this case) and notify multimedia@ please. Written by: matk, tanimura Submitted by: "Yuriy Tsibizov" <Yuriy.Tsibizov@gfk.ru> Based upon: code from NetBSD
* Unbreak build. es1888.c (alpha bit) no longer exist.ariff2006-05-121-1/+1
|
* Support for ATI IXP 200 / 300 / 400 series audio controllers.ariff2005-11-272-1/+10
|
* Connect es137x build on sparc64.yongari2005-10-251-1/+1
|
* Soft volume implementation for audio devices without pcm mixer controller.netchild2005-10-021-1/+1
| | | | | Submitted by: Ariff Abdullah <skywizard@MyBSD.org.my> Tested by: multimedia@
* - Add missing opt_isa.h. This fixes the standalone build of sound.komarius2005-07-101-2/+14
| | | | | | | | | | | | after sys/dev/sound/pcm/channel.c rev. 1.99, i.e. when there's no existing KERNBUILDDIR with an opt_isa.h defined. - Sync with sys/dev/sound/pcm/channel.c rev. 1.99 (sort of), i.e. never compile in isadma support on sparc64 as we just never need it there. This allows to use the "generic" module with a custom kernel that is built without isa(4). Reviewed by: ru Approved by: re (scottl)
* Add WERRROR= to work around the warningsimp2005-01-261-0/+1
|
* We don't need to generate vnode_if.h anymoreimp2004-12-291-1/+1
|
* Device driver for onboard CS4231 audio controller which is foundyongari2004-10-252-0/+14
| | | | | | | | | | | | | | | on UltraSPARC workstations. The driver is based on OpenBSD's SBus cs4231 driver and heavily modified to incorporate into sound(4) infrastructure. Due to the lack of APCDMA documentation, the DMA code of SBus cs4231 came from OpenBSD's driver. The driver runs without Giant lock and supports both SBus and EBus based CS4231 audio controller. Special thanks to marius for providing feedbacks during the driver writing. His feedback made it possible to write hiccup free playback code under high system loads. Approved by: jake (mentor) Reviewed by: marius (initial version) Tested by: marius, kwm, Julian C. Dunn(jdunn AT opentrend DOT net)
* Rename the sound device drivers:tanimura2004-07-163-19/+2
| | | | | | | | | | | | | | - `sound' The generic sound driver, always required. - `snd_*' Device-dependent drivers, named after the sound module names. Configure accordingly to your hardware. In addition, rename the `snd_pcm' module to `sound' in order to sync with the driver names. Suggested by: cg
* Add Audigy support.obrien2004-01-111-2/+11
| | | | | | I started with a year-old patch by Orlando Bassotto <orlando.bassotto@ieo-research.it>, and ported it to 5.2-CURRENT along with fixing the problems working with pre-Audigy cards.
* Add (but do not connect) a half-finished driver for Aureal Vortex cards.des2003-06-011-0/+9
| | | | The mixer works, pcm support is half done.
* pci_if.h is not needed.nyan2003-02-071-1/+1
|
* - Clean up ISA DMA supports.nyan2003-02-072-0/+4
| | | | | | | - Rename all sndbuf_isadma* functions to sndbuf_dma* and move them into sys/dev/sound/isa/sndbuf_dma.c. No response from: sound
* isa_if.h is not needed.nyan2003-02-0719-19/+19
| | | | No response from: sound
* Add ac97_patch.[ch] that provide space for ac97 codec specific patches.orion2003-01-252-4/+4
|
* Move adding -DPC98 to CFLAGS from each modules to sys/modules/Makefile.inc.nyan2002-11-062-8/+0
|
* Support for VIA VT8233 audio controller.orion2002-08-172-1/+10
|
* Add uaudio -- a USB audio device driver.nsayer2002-07-212-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | This driver actually works slightly better on -stable than on -current (the system locks on detach on -current), so it should be MFC'd somewhat sooner. This driver currently points out a difficulty in the sound device framework. The PCM unregister routine is allowed to refuse the detach if the device is in use. In the case of a USB device, however, this unregistration is much more mandatory in nature, since the device is *actually* gone when this call is made. The sound subsystem really should not refuse an unregistration and should take its own steps to reject further I/O. As a result, if you detach a USB sound device while it is in use, you can expect a panic shortly thereafter. This device cannot currently record audio. Some routines are unwritten as of yet in uaudio.c to support recording. This device hangs my -current box on detach. I don't know why. This does not happen on my -stable machine. Obtained from: Hiroyuki Aizu MFC after: 2 weeks
* remove modules no longer builtcg2002-01-233-27/+0
|
* consolidate bits that don't need to be seperate modules into the modulescg2002-01-234-5/+5
| | | | that want them
* Turn on unconditional symbol export for modules whose API ismsmith2002-01-112-0/+4
| | | | | not clear enough, will require additional analysis, or will require some input from their maintainers.
* intel ich/ich2 driver - this needs some work but is functional enough forcg2001-07-012-3/+11
| | | | | | | | | | | | | | | the impatient. Hardware... Provided by: ps Lost by: <censored> Found by: <censored> Not delivered by: Ashley Penney <ashp@unloved.org> Retrieved by: greid, Andrew McKay <andy@openirc.co.uk> Delivered by: Andrew McKay <andy@openirc.co.uk> PR: kern/25507 Submitted by: Katsurajima Naoto <raven@katsurajima.seya.yokohama.jp>
* add sndstat.c so module users have /dev/sndstat againcg2001-06-232-2/+2
|
* enable vchan buildingcg2001-06-072-2/+2
|
* Add als4000 subdir.orion2001-04-231-3/+3
|
* Initial version of Avance Logic ALS4000 pcm driver.orion2001-04-231-0/+9
|
* Add missing sound module.markm2001-04-161-0/+1
| | | | OK'ed by: cg
OpenPOWER on IntegriCloud