summaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/oxygen_pcm.c
Commit message (Collapse)AuthorAgeFilesLines
* ALSA: oxygen: simplify model-specific MCLK handlingClemens Ladisch2011-01-101-16/+23
| | | | | | | | | Replace the get_i2s_mclk callback with tables of MCLK values. This simplifies the MCLK-handling code in both the framework and the model- specific drivers. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: allow different number of PCM and mixer channelsClemens Ladisch2011-01-101-1/+1
| | | | | | | | | For cards like the Xonar HDAV1.3, differentiate between the number of PCM channels that can be played and the number of channels whose volume can be adjusted. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: support for period wakeup disablingClemens Ladisch2010-11-221-4/+10
| | | | | | | Allow disabling period wakeup interrupts for all PCM streams. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: reduce minimum period countClemens Ladisch2010-10-061-6/+6
| | | | | | | | | The interrupt counter is independent of the buffer counter, so there are no restrictions on the period size. Having fewer periods also makes PulseAudio happy. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: allow custom MCLK ratesClemens Ladisch2009-09-281-4/+9
| | | | | | | | Add a callback that allows model drivers to modify the default I2S MCLK rate. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: add stereo upmixing to center/LFE channelsClemens Ladisch2009-09-281-2/+4
| | | | | | | | | Add the possibility to route a mix of the two channels of stereo data to the center and LFE outputs. This is implemented only for models where the DACs support this, i.e., for the Xonar D1 and DX. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: fix MCLK rate for 192 kHz playbackClemens Ladisch2009-09-011-0/+2
| | | | | | | | | | Do not forget to program the MCLK ratio for the I2S output. Otherwise, the master clock frequency can be too high for the DACs at sample frequencies above 96 kHz. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: reset DMA when stream is closedClemens Ladisch2009-05-251-1/+5
| | | | | | | | | When a PCM stream is closed, flush the corresponding DMA channel. Otherwise, the DMA controller would continue to output the last sample which would result in a DC offset on the output. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: rename first PCM deviceClemens Ladisch2008-09-221-2/+3
| | | | | | | Rename the first PCM device from "Analog" to "Multichannel" because it can be used for HDMI output on the Xonar HDAV. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: rename pcm_dev_cfgClemens Ladisch2008-09-221-12/+12
| | | | | | | Rename the pcm_dev_cfg field to device_config because there will be additional flags that do not describe PCM devices. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: use a copy of the model structClemens Ladisch2008-09-221-21/+21
| | | | | | | | Put a copy of the model structure into the chip structure so that model- specific drivers can modify it depending on a particular device instance. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* [ALSA] virtuoso: restrict period time to less than 10 sClemens Ladisch2008-05-191-0/+6
| | | | | | | | | Add a constraint for the period time so that there are less than ten seconds between interrupts so that ALSA does not assume that the device is dead. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: add symbols for buffer/period size constraintsClemens Ladisch2008-05-191-16/+30
| | | | | | | | Introduce symbols for the buffer/period size constraints so that their limits and relationships become clearer. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: add PM supportClemens Ladisch2008-05-191-0/+1
| | | | | | | Add suspend/resume support. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: change model-specific PCM device configurationClemens Ladisch2008-04-241-36/+42
| | | | | | | | | | When specifying which PCM devices to use, model drivers now use flags that also specify the routing between PCM devices and DMA channels instead of just DMA channel bits. This simplifies some code that checks for these flags. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] oxygen - Fix section mismatchTakashi Iwai2008-02-221-1/+1
| | | | | | | | Removed invalid __devinit and __devexit that are remaining after split to a helper module. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [ALSA] oxygen: add front panel captureClemens Ladisch2008-01-311-18/+34
| | | | | | | | When a second AC97 codec is present, add a PCM device for capturing from the front panel. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: more initializationClemens Ladisch2008-01-311-16/+4
| | | | | | | Initialize more registers of the controller and the second AC97 codec. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: make the number of analog output configurableClemens Ladisch2008-01-311-1/+6
| | | | | | | | Add a field to struct oxygen_model to allow model drivers for cards with less than eight output channels. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: fix SPDIF input ratesClemens Ladisch2008-01-311-0/+5
| | | | | | | | Fix up SPDIF input sample rates again: 32 kHz and 64 kHz are not supported. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: optimize snd_pcm_hardware structuresClemens Ladisch2008-01-311-150/+79
| | | | | | | | Add one more indirection to the lookup of the snd_pcm_hardware structures so that we can save the space of the duplicate ones. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: add 192 kHz SPDIF input supportClemens Ladisch2008-01-311-4/+8
| | | | | | | | | Change the oxygen_spdif_input_bits_changed() function so that clock changes on the SPDIF input are correctly detected. This means that sample rates greater than 96 kHz are now supported. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: fix pause handlingClemens Ladisch2008-01-311-10/+17
| | | | | | | Use the DMA_PAUSE register for pausing instead of stopping DMA. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: remove magic numbersClemens Ladisch2008-01-311-4/+14
| | | | | | | Replace some magic numbers with register symbols. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: add register definitionsClemens Ladisch2008-01-311-25/+8
| | | | | | | Add more symbols for registers and register fields. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: make the I2S format configurableClemens Ladisch2008-01-311-19/+27
| | | | | | | | Add proper register bit symbols for the I2S format field, and allow card models to configure the I2S format to be used for the DACs and ADCs. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: make PCM limits configurableClemens Ladisch2008-01-311-2/+8
| | | | | | | | Add a callback to the model structure to allow modification of the hardware PCM limits. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: make all DMA channels configurableClemens Ladisch2008-01-311-23/+49
| | | | | | | | Allow the card models to specify whether each of the hardware DMA channels is used. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: make AC97 codec optionalClemens Ladisch2008-01-311-1/+1
| | | | | | | | Only initialize and create mixer controls for the first AC97 codec when one has actually been detected. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: use an array of snd_kcontrol pointersClemens Ladisch2008-01-311-4/+4
| | | | | | | | Use an array for the pointers to known controls so that it is easier to add more. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] Remove sound/driver.hTakashi Iwai2008-01-311-1/+0
| | | | | | | | | | | | This header file exists only for some hacks to adapt alsa-driver tree. It's useless for building in the kernel. Let's move a few lines in it to sound/core.h and remove it. With this patch, sound/driver.h isn't removed but has just a single compile warning to include it. This should be really killed in future. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: use uintptr_t in pointer castsClemens Ladisch2008-01-311-7/+13
| | | | | | | | | | When we store the DMA channel number in the substream's private_data pointer, use uintptr_t as an intermediate step when casting from/to unsigned int to prevent the compiler from whining when the pointer size is different. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] add CMI8788 driverClemens Ladisch2008-01-311-0/+726
Add the snd-oxygen driver for the C-Media CMI8788 (Oxygen) chip, used on the Asound A-8788, AuzenTech X-Meridian, Bgears b-Enspirer, Club3D Theatron DTS, HT-Omega Claro, Razer Barracuda AC-1, Sondigo Inferno, and TempoTec HIFIER sound cards. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
OpenPOWER on IntegriCloud