summaryrefslogtreecommitdiffstats
path: root/sys/dev/sound/pci
Commit message (Collapse)AuthorAgeFilesLines
* o break newbus api: add a new argument of type driver_filter_t topiso2007-02-233-4/+10
| | | | | | | | | | | | | bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
* Add codec id for Sigmatel STAC9271D.ariff2007-02-161-2/+4
| | | | Submitted by: Michael Fuckner <michael@fuckner.net>
* Fix compilation for statically linked snd_envy24{ht}/spicds. Use explicitariff2007-02-143-3/+3
| | | | | | struct mtx rather than void pointer. PR: kern/109147
* Add speaker control for HP xw4300. This hardware doesn't respond toariff2007-01-281-2/+17
| | | | | | | | | | | | unsolicited pin sense event and need manual control to turn off speaker volume while attaching headphone. Tested by: Ingeborg Hellemo <Ingeborg.Hellemo@cc.uit.no> Disable global Acer + ALC883 headphone automute settings since there are few models that does not respect this and causing broken behaviour. Reported/Tested by: Pavel Argentov <argentoff@rtelekom.ru>
* Massive inlining cleanups/removal to make it survive on WARNS=2.ariff2007-01-271-92/+90
|
* Reduce maximum DMA segments from 128 to 64. We don't need more than that.ariff2007-01-271-1/+1
|
* Total DMA segments should include total number of record channel(s).ariff2007-01-261-1/+1
|
* Change the remainder of the drivers for DMA'ing devices enabled in themarius2007-01-211-1/+2
| | | | | | | | sparc64 GENERIC and the sound device drivers known working on sparc64 to use bus_get_dma_tag() to obtain the parent DMA tag so we can get rid of the sparc64_root_dma_tag kludge eventually. Except for ath(4), sk(4), stge(4) and ti(4) these changes are runtime tested (unless I booted up the wrong kernels again...).
* Fix typo in a comment.joel2007-01-161-1/+1
|
* Fix headphone/speaker automute for [1] Acer Aspire 5050 and [2] MSI MS-1034ariff2007-01-131-0/+27
| | | | | | | | | | | laptops. Tested by: [1] Lion G. <liontanker@hotmail.com> [2] Pietro Cerutti <pietro.cerutti@gmail.com> Specialized mixer initialization for STAC9221, much like STAC9220. Tested by: Devon H. O'Dell
* Extend the emu10kx driver. With the words of the author:netchild2007-01-063-63/+399
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ---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>
* Fix headphone/speaker automute for Toshiba Satellite Pro U200.ariff2007-01-041-1/+10
| | | | Reported/Tested by: keramida
* Fix distorted sound on Intel Desktop Board D101GGC (ATI SB450/ALC861).ariff2006-12-221-10/+7
| | | | | | | Turn on ALC861 quirk as default since it seems affecting all hardwares with the same codec. Reported/Tested by: Darryl Yeoh <drl@MyBSD.org.my>
* Fix distorted sound on Fujitsu Siemens AMILO Pa 1510.ariff2006-12-191-1/+7
| | | | Reported/Tested by: infofarmer
* Latest updates for Envy24/24HT. Fix various issues with LOR and panicariff2006-12-173-29/+72
| | | | | | during verbose booting. Submitted by: Konstantin Dimitrov <kosio.dimitrov@gmail.com>
* Add codec id for [1] Realtek ALC888 and [2] Sigmatel STAC9227ariff2006-12-171-0/+4
| | | | | Found/Tested by: [1] luigi [2] Jean-Baptiste Quenot <jbq@caraldi.com>
* Add support for Nvidia Nforce MCP04 AC97 controller.ariff2006-12-171-0/+3
| | | | | PR: kern/106829 Submitted by: Frédéric Petit <fredantispam@free.fr>
* Miscellaneous fixups and quirks for ASUS A7M, LG LW20 andariff2006-12-161-5/+36
| | | | HP NX6325 laptops.
* Fix compilation using gcc 4.1.ariff2006-12-151-1/+1
| | | | Submitted by: dougb
* Fix distorted sound on ASUS P1-AH2 caused by accumulated input / output.ariff2006-12-111-0/+10
| | | | Reported/Tested by: Hiroharu Tamaru <tamaru@myn.rcast.u-tokyo.ac.jp>
* Fix AD1986A (and possibily other codecs too) microphone issues.ariff2006-12-101-3/+38
| | | | Tested by: xride (using skype, xanalyser, etc. ; play/record)
* - Fix headphone/speakers automute on Lenovo 3000 N100.ariff2006-12-091-47/+74
| | | | | | | Tested by: xride - GPIO commit cleanups and fixes for possible breakage during previous commit.
* Add support for Apple Intel/Mac.ariff2006-12-021-10/+48
| | | | | | | | | | - Playback and headphone/speaker automute works. - Recording untested due to me being deaf doing back-and-forth remote debugging. Free Macbook donation is highly appreciated :) Tested by: Dennis Pielken <mips128@gmx.net>
* Add inverted amplifier sense quirk for HP Compaq nx4300.ariff2006-12-011-0/+1
| | | | | | PR: kern/106104 Submitted by: Shun-ichi Kobayashi <koba@mbox.kudpc.kyoto-u.ac.jp> MFC after: 3 days
* Fix support for Medion MD MD95257 (GPIO2 quirk).ariff2006-11-291-7/+12
| | | | Reported by: Chris Tophe <cohika@gmail.com>
* - LNV -> LENOVOariff2006-11-271-4/+10
| | | | | | - Fix support for Samsung Q1 UltraMobile PC (inverted EAPD). Reported by: benno
* Welcome to Once-a-year Sound Mega-Commit. Enjoy numerous updates and fixesariff2006-11-268-1148/+2259
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* - Inverted EAPD quirk for ASUS A8Jc.ariff2006-10-161-17/+17
| | | | | | | - Take the literal meaning of eapdbtl, but do the inversion during write. Tested by: Chung-liang Wei <idreamer@gmail.com>
* - Fix support for ASUS U5F laptop. This laptop (and possibly others)ariff2006-10-121-3/+23
| | | | | | | | need a special inverted EAPD quirk. - Add "eapdinv" config for future testing purposes. Tested by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru> #freebsd-azalia @ irc.freenode.net
* Fix support for IBM/Lenovo Thinkcentre M52 series. Its vendorid / 0x1014ariff2006-10-121-16/+44
| | | | | | accidentally match with HP vendorid / 0x103c. Reported by: Robert Noland <rnoland@2hip.net>
* Added few more pci ids for Intel, ATI, NVidia, VIA and SiS.ariff2006-10-081-2/+30
|
* - Fix wrong id for ALC882, add ALC883 id.ariff2006-10-062-281/+484
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Add support for the Conexant Waikiki/CX20551-22, found in most Toshiba P100 series laptops. Despite of growing urban legend of "unsupported Conexant", this codec is fully supported in this driver. Note: Toshiba P100 has broken (acpi) BIOS, thus rendering its soundchip useless. Please disable ACPI, or get BIOS updates (if any). Found/tested by: Vulpes Velox <v.velox@vvelox.net> URL: http://lists.freebsd.org/pipermail/freebsd-multimedia/2006-September/004896.html - Parser cleanups to handle possible oss/mixer collision. Found after parsing Conexant Waikiki nodes. - Increase resilient against resource failure during attach/detach. - Implement simple config through hint.pcm.<unit>.config. Supported options: gpio0 (default on Acer), gpio1, gpio2, softpcmvol, fixedrate (default), forcestereo (default) * Option prefixed with "no" (such as "nofixedrate") will do the opposite. * Options can be separated using space " " or comma ",". * The "no" option will take precedence over anything else. Example: hint.pcm.0.config="gpio2,nofixedrate,noforcestereo,nogpio0,softpcmvol" hint.pcm.0.config="softpcmvol noforcestereo"
* - Streamline quirks management for a better future.ariff2006-10-021-96/+122
| | | | | | | | - Fix support for ASUS M5200ae (buggy BIOS) - Fix few problems, reported by Coverity Prevent (TM). CID: 246991, 246676, 246675, 246674, 246477 Found by: Coverity Prevent (TM)
* Make this buildable on IA64.ariff2006-10-021-0/+2
| | | | Reported by: phk
* Various cleanups. Revert DMA alignmnet back to 2 since the originalariff2006-10-012-96/+167
| | | | | | | cause of DMA pointer train wreck has been solved. Reminded by: silby MFC after: 1 month
* Add support for Intel High Definition Audio Controller.ariff2006-10-015-0/+6480
| | | | | | | | | | | | | | | | | | | | | | | 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.
* Driver for Envy24HT (ICE1724 or VT1724)-based cards likenetchild2006-09-302-1186/+889
| | | | | | | | | | | | | | | Terratec Aureon 7.1 Space: tested Terratec Aureon 5.1 Sky: tested Terratec PHASE 28: tested Terratec Aureon 7.1 Universe: tested Audiotrak Prodigy 7.1: tested Audiotrak Prodigy 7.1 LT: not tested Terratec PHASE 22: not tested M-Audio Revolution 7.1: not tested M-Audio Revolution 5.1: not tested M-Audio Audiophile 192: tested Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
* Remove the ak452x code, superseeded by spicds.netchild2006-09-302-338/+0
|
* - fix memory leak, when "number of adcs" != "number of dacs"netchild2006-09-301-24/+17
| | | | | | | | - fix multiple initialization of the first codec (support for more than one codec should be added in the future) - use spicds instead of ak452x module Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
* After repo copy from ak452x.[ch]: SPIcds is the I2S SPI audio codec codenetchild2006-09-302-72/+192
| | | | | | used by the Envy* drivers. Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
* Add inverted amplifier sense quirks for Compaq Presario B3800yongari2006-08-151-0/+1
| | | | | | | Reported by: Nick Withers < nick AT nickwithers DOT com > Tested by: Nick Withers < nick AT nickwithers DOT com > No objection from: ariff MFC after: 1 week
* Use a low probe-priority to ensure that the emu10kx driver has a highernetchild2006-08-071-1/+1
| | | | priority than this one when both are available.
* "Fix typos in volume control DSP code."netchild2006-08-071-2/+2
| | | | Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
* "Fixe playback of mono files on stereo outputs. In previous versionnetchild2006-08-071-1/+20
| | | | | | mono files are played only on left channel." Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
* "Change type for flags bitmap to let use 1 as flag value withoutnetchild2006-08-071-1/+1
| | | | | | overflow (to -1)." Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
* "Workaround for sound lag in current snd_emu10kx driver. Real problemnetchild2006-08-073-19/+23
| | | | | | | | | | | is interaction between in-kernel sound buffer handling and hardware. With small buffer, there are times when both harwdare reads and kernel writes to the same buffer (it is only visible on slow machines, i think). I'm digging in channel.c and buffer.c to find a solution that allow use of large hardware buffers without sound lags - hardware can handle buffers up to 32Mb." Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
* - fix memory leak after "kldunload snd_ak452x.ko"netchild2006-07-282-10/+26
| | | | | | | | | | | | | | | | | | | | | - fix "No sound in KDE": The problem is related to the implementation of Envy24(1712) hardware mixer support in the driver. Envy24(1712) has very precise 36bit wide hardware mixer, which is superior that vchans (software sound mixer in the kernel). The driver supports Envy24(1712) hardware mixer, so up to 10 channels (5 stereo pairs) can be playback simultaneously. However, there are problems with the implementation of Envy24(1712) hardware mixer support in the driver, one of them is the problem with "no sound in KDE": When playing back several channels simultaneously and stoping one of the channels, sound starts to stutter and plays at very low speed. Another problem is: Playing back simultaneously more than one 24bit/32bit sound file or 16bit sound file and 24bit/32bit sound file doesn't work as expected. Submitted by: "Konstantin Dimitrov" <kosio.dimitrov@gmail.com>
* Prepend temporary sysctls with an underscore.netchild2006-07-171-1/+6
| | | | Submitted by: Yuriy Tsibizov <Yuriy.Tsibizov@gfk.ru>
* Fix a compile time problem on amd64. I'm not sure if the fix is correctnetchild2006-07-162-4/+6
| | | | | | | from a semantic point of view, but I notified the author of the driver for confirmation. So far it at least fixes the build and should only lead to not identifying or wrongly identifying a soundcard in the worst case.
* Make the MIDI kobj class static. This brings it inline with the channel ornetchild2006-07-153-3/+3
| | | | | | ac97 classes. This allows to link emu10k1 and emu10kx into the same kernel (LINT).
OpenPOWER on IntegriCloud