aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen
Commit message (Collapse)AuthorAge
* ALSA: oxygen: wait for ACK when resetting UARTClemens Ladisch2008-09-24
| | | | | | | | After sending a reset command to the UART, wait some time for the ACK to be generated (and to be read and dropped by the interrupt handler) before sending the next command. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: virtuoso: add Xonar HDAV1.3 supportClemens Ladisch2008-09-22
| | | | | | Add support for the Asus Xonar HDAV1.3 and the Xonar HDAV1.3 Deluxe. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: rename first PCM deviceClemens Ladisch2008-09-22
| | | | | | | 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: virtuoso: rename AC97 callback functionClemens Ladisch2008-09-22
| | | | | | | Rename the callback function that switches between line and mic inputs on the Xonar D1 because it is also usable on other models. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: virtuoso: make number of PCM1796 DACs configurableClemens Ladisch2008-09-22
| | | | | | | Do not use a hardcoded number when iterating over the PCM1796 DACs to allow for cards with a different number of analog output channels. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: virtuoso: allow I2C-connected PCM1796Clemens Ladisch2008-09-22
| | | | | | | Add support for PCM1796 chips that are connected with an I2C bus instead of SPI. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: add self-documenting functionsClemens Ladisch2008-09-22
| | | | | | | Introduce some trivial functions to better document the relationships of the various model callbacks. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: add UART I/O functionsClemens Ladisch2008-09-22
| | | | | | | Add functions to allow model drivers to communicate with external chips by doing I/O with the not-used-for-MIDI UART. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: configure MIDI via device_configClemens Ladisch2008-09-22
| | | | | | | | To enable the MIDI port, model drivers must now set flags in device_config, not only in misc_flags. This allows model drivers to enable the UART without creating an ALSA MIDI device. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: rename pcm_dev_cfgClemens Ladisch2008-09-22
| | | | | | | 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: virtuoso: create common functions for GPIO bit switch controlsClemens Ladisch2008-09-22
| | | | | | | Factor out the common code of the mixer callbacks that handle controls that just switch a single GPIO bit. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: virtuoso: handle D2X/DX dynamicallyClemens Ladisch2008-09-22
| | | | | | | | The Xonar D2X and DX are very similar to the D2 and D1, respectively, so we can handle the differences dynamically instead of using a separate model structure for each one. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: handle X-Meridian dynamicallyClemens Ladisch2008-09-22
| | | | | | | Handle the differences between the X-Meridian and the other models in the probe callback instead of using a second model structure. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: remove X-Meridian magic numberClemens Ladisch2008-09-22
| | | | | | | Introduce symbols that indicate the two models handled by the snd-oxygen driver, instead of using a magic number. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: add probe callbackClemens Ladisch2008-09-22
| | | | | | | Add a probe callback to the model structure so that model-specific drivers can refine their model detection before the card is initialized. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: use a copy of the model structClemens Ladisch2008-09-22
| | | | | | | | 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: oxygen: use SPDIF channel status symbolsClemens Ladisch2008-09-22
| | | | | | | When setting the SPDIF channel status sample rate field, use the recently defined symbols instead of magic numbers. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: fix distorted output on AK4396-based cardsClemens Ladisch2008-08-29
| | | | | | | | | | | | | | | When changing the sample rate, the CMI8788's master clock output becomes unstable for a short time. The AK4396 needs the master clock to do SPI writes, so writing to an AK4396 control register directly after a sample rate change will garble the value. In our case, this leads to the DACs being misconfigured to I2S sample format, which results in a wrong output level and horrible distortions on samples louder than -6 dB. To fix this, we need to wait until the new master clock signal has become stable before doing SPI writes. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: prevent muting of nonexistent AC97 controlsClemens Ladisch2008-08-26
| | | | | | | | | The Xonar DX does not have CD Capture controls, so we have to check that a control actually exists before muting it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: virtuoso: add Xonar D1 supportClemens Ladisch2008-08-14
| | | | | | | | Add support for the Asus Xonar D1. It is the same as the DX, but without the external power detection. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: restrict period time to less than 10 sClemens Ladisch2008-05-19
| | | | | | | | | 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-19
| | | | | | | | 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-19
| | | | | | | Add suspend/resume support. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] virtuoso: add xonar_enable_output()Clemens Ladisch2008-05-19
| | | | | | | Move the setting of the output enable GPIO bit to a separate function. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: separate out hardware initialization codeClemens Ladisch2008-05-19
| | | | | | | | | Create separate functions for the code that initializes the hardware, as opposed to initializing internal driver state, so that they can be reused for resume support. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: simplify DAC volume initializationClemens Ladisch2008-05-19
| | | | | | | | When initializing the DAC volume registers, we can just use the generic volume update functions instead of setting the registers manually. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: save register writesClemens Ladisch2008-05-19
| | | | | | | | | Save the written values of all CMI8788 and AC97 registers and of some of the DAC/ADC registers so that it is possible to restore the register state later. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: add symbol for I/O space sizeClemens Ladisch2008-05-19
| | | | | | | | Remove another magic number - add a symbol for the size of the PCI I/O range. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* [ALSA] oxygen: fix version in MODULE_LICENSEClemens Ladisch2008-05-19
| | | | | | | Adjust the MODULE_LICENSE strings to properly reflect the actual license. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
* sound: oxygen: fix NULL pointer dereference when loading snd-oxygenClemens Ladisch2008-06-16
| | | | | | | Check that model->control_filter is set before trying to call it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] Fix synchronize_irq() bugs, redundanciesJeff Garzik2008-04-24
| | | | | | | | | | | | | | | | free_irq() calls synchronize_irq() for you, so there is no need for drivers to manually do the same thing (again). Thus, calls where sync-irq immediately precedes free-irq can be simplified. However, during this audit several bugs were noticed, where free-irq is preceded by a "irq >= 0" check... but the sync-irq call is not covered by the same check. So, where sync-irq could not be eliminated completely, the missing check was added. Signed-off-by: Jeff Garzik <jgarzik@redhat.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] oxygen: generalize DAC volume TLV handlingClemens Ladisch2008-04-24
| | | | | | | | Add a pointer for DAC volume TLV data to the model structure so that the model driver do not need to manually assign it in their control filter. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] oxygen: mute by defaultClemens Ladisch2008-04-24
| | | | | | | | Initialize the playback volume controls as being muted and having minimal volume. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] oxygen: generalize handling of DAC volume limitsClemens Ladisch2008-04-24
| | | | | | | | Add fields for the DAC volume limits to the module structure so that model drivers do not need to install their own control info handlers. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] hifier: remove empty hifier_mixer_init()Clemens Ladisch2008-04-24
| | | | | | | The empty hifier_mixer_init() function is useless; remove it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: fix DX front panel I/OClemens Ladisch2008-04-24
| | | | | | | | Fix the GPIO 1 mixer control to enable I/O through the front panel connector of the Xonar DX. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: initialize two-wire control registerClemens Ladisch2008-04-24
| | | | | | | On the Xonar DX, initialize all bits of the two-wire control register. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: add GPIO 1 mixer controlClemens Ladisch2008-04-24
| | | | | | | | Add a mixer control for switching whatever it is that is connected to GPIO pin 1 on the Xonar DX. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] oxygen: use SPDIF input only if presentClemens Ladisch2008-04-24
| | | | | | | | If the card model does not have a digital input or an AC97 codec, disable the respective interrupt and mixer controls. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: correctly switch input jack on Xonar DXClemens Ladisch2008-04-24
| | | | | | | | | | When selecting the capture source on the Xonar DX, the input jack must be routed to either the line input or the microphone input by setting a GPIO pin. This requires an additional callback so that the model driver can hook into the toggling of AC97 switches. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: add Xonar DX supportClemens Ladisch2008-04-24
| | | | | | | Add support for the Asus Xonar DX. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: fix typoClemens Ladisch2008-04-24
| | | | | | | Fix a (fortunately harmless) typo. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: change card short nameClemens Ladisch2008-04-24
| | | | | | | | Change the card short name to show to show the card name instead of the chip name. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: set PCM1796 oversampling rateClemens Ladisch2008-04-24
| | | | | | | | When playing data at 96 kHz or higher, reduce the DAC oversampling rate to 32. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: move some code to xonar_common_init()Clemens Ladisch2008-04-24
| | | | | | | | Move the code that is common to all Xonar models to a separate function, and make it more generic in preparation for another model. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: allow both CS5381 and CS5361Clemens Ladisch2008-04-24
| | | | | | | | Rename all CS5381 symbols to CS53x1 because they can also be used for Xonar models with a CS5361. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] virtuoso: separate D2/D2X init functionsClemens Ladisch2008-04-24
| | | | | | | | Use separate model structures for the D2 and D2X so that the init function does not have to check for the model again. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] oxygen: add I2C supportClemens Ladisch2008-04-24
| | | | | | | Add a function to write I2C registers. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] oxygen: fix line-in recording selection (now for real)Clemens Ladisch2008-04-24
| | | | | | | | On C-Media cards, the GPIO pin 0 of the CM9780 must be handled exactly like on Xonar cards, so move the Xonar code to the common mixer code. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* [ALSA] oxygen: disable clock of unused I2S inputsClemens Ladisch2008-04-24
| | | | | | | Disable the master clock outputs of any unused I2S inputs. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>