aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen
Commit message (Collapse)AuthorAge
* sound: virtuoso: add newlineClemens Ladisch2009-01-19
| | | | | | | Add a missing newline. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: virtuoso: enable UART on Xonar HDAV1.3Clemens Ladisch2009-01-19
| | | | | | | | | This hardware has a better chance of working correctly if we don't forget to enable it. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: virtuoso: do not overwrite EEPROM on Xonar D2/D2XClemens Ladisch2009-01-15
| | | | | | | | | | | | | | | | | | | | On the Asus Xonar D2 and D2X models, the SPI chip select signal for the fourth DAC shares its pin with the serial clock for the EEPROM that contains the PCI subdevice ID values. It appears that when DAC registers are written and some other unknown conditions occur (probably noise on the EEPROM's chip select line), the EEPROM gets overwritten with garbage, which makes it impossible to properly detect the card later. Therefore, we better avoid DAC register writes and make sure that the driver works with the DAC's registers' default values. Consequently, the sample format is now I2S instead of left-justified (no user-visible change), and the DAC's volume/mute registers cannot be used anymore (volume changes are now done by the software volume plugin). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: add Claro halo supportClemens Ladisch2008-11-28
| | | | | | | Add support for the HT-Omega Claro halo (XT). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* 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>