aboutsummaryrefslogtreecommitdiff
path: root/sound/pci/oxygen/virtuoso.c
AgeCommit message (Collapse)Author
2009-01-19sound: virtuoso: add newlineClemens Ladisch
Add a missing newline. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-19sound: virtuoso: enable UART on Xonar HDAV1.3Clemens Ladisch
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>
2009-01-15sound: virtuoso: do not overwrite EEPROM on Xonar D2/D2XClemens Ladisch
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>
2008-09-22ALSA: virtuoso: add Xonar HDAV1.3 supportClemens Ladisch
Add support for the Asus Xonar HDAV1.3 and the Xonar HDAV1.3 Deluxe. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2008-09-22ALSA: virtuoso: rename AC97 callback functionClemens Ladisch
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>
2008-09-22ALSA: virtuoso: make number of PCM1796 DACs configurableClemens Ladisch
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>
2008-09-22ALSA: virtuoso: allow I2C-connected PCM1796Clemens Ladisch
Add support for PCM1796 chips that are connected with an I2C bus instead of SPI. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2008-09-22ALSA: oxygen: add self-documenting functionsClemens Ladisch
Introduce some trivial functions to better document the relationships of the various model callbacks. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
2008-09-22ALSA: oxygen: configure MIDI via device_configClemens Ladisch
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>
2008-09-22ALSA: oxygen: rename pcm_dev_cfgClemens Ladisch
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>
2008-09-22ALSA: virtuoso: create common functions for GPIO bit switch controlsClemens Ladisch
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>
2008-09-22ALSA: virtuoso: handle D2X/DX dynamicallyClemens Ladisch
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>
2008-09-22ALSA: oxygen: add probe callbackClemens Ladisch
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>
2008-08-14ALSA: virtuoso: add Xonar D1 supportClemens Ladisch
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>
2008-05-19[ALSA] oxygen: add PM supportClemens Ladisch
Add suspend/resume support. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-05-19[ALSA] virtuoso: add xonar_enable_output()Clemens Ladisch
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>
2008-05-19[ALSA] oxygen: separate out hardware initialization codeClemens Ladisch
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>
2008-05-19[ALSA] oxygen: simplify DAC volume initializationClemens Ladisch
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>
2008-05-19[ALSA] oxygen: save register writesClemens Ladisch
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>
2008-05-19[ALSA] oxygen: fix version in MODULE_LICENSEClemens Ladisch
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>
2008-04-24[ALSA] oxygen: generalize DAC volume TLV handlingClemens Ladisch
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>
2008-04-24[ALSA] oxygen: mute by defaultClemens Ladisch
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>
2008-04-24[ALSA] oxygen: generalize handling of DAC volume limitsClemens Ladisch
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>
2008-04-24[ALSA] virtuoso: fix DX front panel I/OClemens Ladisch
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>
2008-04-24[ALSA] virtuoso: initialize two-wire control registerClemens Ladisch
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>
2008-04-24[ALSA] virtuoso: add GPIO 1 mixer controlClemens Ladisch
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>
2008-04-24[ALSA] oxygen: use SPDIF input only if presentClemens Ladisch
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>
2008-04-24[ALSA] virtuoso: correctly switch input jack on Xonar DXClemens Ladisch
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>
2008-04-24[ALSA] virtuoso: add Xonar DX supportClemens Ladisch
Add support for the Asus Xonar DX. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] virtuoso: fix typoClemens Ladisch
Fix a (fortunately harmless) typo. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] virtuoso: change card short nameClemens Ladisch
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>
2008-04-24[ALSA] virtuoso: set PCM1796 oversampling rateClemens Ladisch
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>
2008-04-24[ALSA] virtuoso: move some code to xonar_common_init()Clemens Ladisch
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>
2008-04-24[ALSA] virtuoso: allow both CS5381 and CS5361Clemens Ladisch
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>
2008-04-24[ALSA] virtuoso: separate D2/D2X init functionsClemens Ladisch
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>
2008-04-24[ALSA] oxygen: fix line-in recording selection (now for real)Clemens Ladisch
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>
2008-04-24[ALSA] oxygen: move MIDI flag to model structClemens Ladisch
Put the flag that enables the MIDI port into the model structure instead of passing it as a separate parameter to oxygen_pci_probe(). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] oxygen: make SPI/2-wire configuration model-specificClemens Ladisch
Allow the model drivers to specify if the codec communication goes over SPI or a 2-wire bus. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] oxygen: change model-specific PCM device configurationClemens Ladisch
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>
2008-04-24[ALSA] virtuoso: move PCM1796 symbols to a header fileClemens Ladisch
Move the PCM1796 register symbol definitions to their own header file. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-04-24[ALSA] sound: virtuoso.c fix shadowed variable warningHarvey Harrison
Use priv_idx as an identifier. sound/pci/oxygen/virtuoso.c:277:15: warning: symbol 'index' shadows an earlier one sound/pci/oxygen/virtuoso.c:56:12: originally declared here Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-02-29[ALSA] oxygen: add owner fieldClemens Ladisch
I forgot to set the module owner for the HiFier/Xonar models. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-01-31[ALSA] virtuoso: monitor external power on D2XClemens Ladisch
On the Xonar D2X, monitor the GPIO pin that indicates whether external power is present. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] oxygen: add front panel controlsClemens Ladisch
Add mixer controls for the front panel AC97 codec. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] oxygen: make line-in exclusive only on XonarClemens Ladisch
Move the line input switching code to the Virtuoso driver because only the Xonar cards bypass the analog mixer for line input. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] oxygen: make the number of analog output configurableClemens Ladisch
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>
2008-01-31[ALSA] oxygen: add more symbolsClemens Ladisch
Add symbol definitions for the various codecs and GPIO pins. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] oxygen: remove MIDI autodetectionClemens Ladisch
The MIDI bit in the MISC register is set by default and cannot be used to detect the presence of a MIDI port. Instead, add a parameter to the oxygen_pci_probe() function so that model drivers can specify this. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] oxygen: add register definitionsClemens Ladisch
Add more symbols for registers and register fields. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2008-01-31[ALSA] oxygen: make the I2S format configurableClemens Ladisch
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>