aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/oxygen/oxygen.c
Commit message (Collapse)AuthorAgeFilesLines
* merged more uncritical stuff from 3.2.72Wolfgang Wiedmeyer2015-10-231-1/+2
|
* ALSA: oxygen: add S/PDIF source selection for Claro cardsClemens Ladisch2011-01-111-4/+88
| | | | | | | | Add a mixer control to switch between the optical and coaxial S/PDIF inputs on the HT-Omega Claro and Claro halo cards. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: fix CD/MIDI for X-Meridian (2G)Clemens Ladisch2011-01-111-0/+3
| | | | | | | | Enable the X-Meridian's CD input and the X-Meridian 2G's potential MIDI ports. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: add some card namesClemens Ladisch2011-01-101-3/+21
| | | | | | | Instead of the generic Oxygen, use the actual card name, if known. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: X-Meridian: add S/PDIF source selectionClemens Ladisch2011-01-101-2/+75
| | | | | | | | Add a mixer control to select between the on-board and extension board S/PDIF inputs for the X-Meridian (2G). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: core, oxygen, virtuoso: add an enum control info helperClemens Ladisch2011-01-101-14/+2
| | | | | | | | Introduce the helper function snd_ctl_enum_info() to fill out the elem_info fields for an enumerated control. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: add Xonar DG supportClemens Ladisch2011-01-101-1/+10
| | | | | | | Add experimental support for the Asus Xonar DG sound card. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: add X-Meridian 2G supportClemens Ladisch2011-01-101-0/+2
| | | | | | | Add support for the AuzenTech X-Meridian 7.1 2G sound card. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: add more PCI IDsClemens Ladisch2011-01-101-0/+3
| | | | | | | Add PCI IDs for some unknown models. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: virtuoso: reduce MCLK in double rate modesClemens Ladisch2011-01-101-2/+4
| | | | | | | | For the CSxxxx and AKxxxx DAC/ADC chips, the MCLK factor in double rate modes (64-96 kHz) can be reduced to 128x without reducing sound quality. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: simplify model-specific MCLK handlingClemens Ladisch2011-01-101-1/+2
| | | | | | | | | 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-3/+5
| | | | | | | | | 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: update hardware commentsClemens Ladisch2010-12-061-9/+15
| | | | | | | | Reformat and update the comments that describe the hardware connections on the various models. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: allow to dump codec registersClemens Ladisch2010-12-061-0/+38
| | | | | | | | To help with debugging, add the registers of the model-specific codecs to the controller and AC97 register dump in the proc file. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: add HiFier Serenade supportClemens Ladisch2010-11-031-13/+14
| | | | | | | | | | | | Add support for the TempoTec/MediaTek HiFier Serenade sound card. The PCI ID was already there, but the driver handled it like the Fantasia model, which resulted in a dummy recording device. As a stereo output-only card, this model is to be handled exactly like the HG2PCI. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: reorganize PCI IDsClemens Ladisch2010-11-031-8/+14
| | | | | | | | | Sort the PCI IDs so that they make logical sense. Also move the card name comments into this list because the model symbols should be (more) self-explanationary. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: add Kuroutoshikou CMI8787-HG2PCI supportClemens Ladisch2010-11-031-4/+15
| | | | | | | | | Add support for the Kuroutoshikou CMI8787-HG2PCI sound card. [replaced non-latin letters in the patch by tiwai] Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: merge HiFier driver into snd-oxygenClemens Ladisch2010-11-031-5/+38
| | | | | | | | | | The snd-hifier driver contains more duplicated code than model-specific code, so it does not make sense for it to be a separate driver. Handling the two-channel output restriction can be easily done in the generic driver. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* Merge branch 'fix/misc' into topic/miscTakashi Iwai2010-10-111-0/+4
|\
| * ALSA: oxygen: fix analog capture on Claro halo cardsErik J. Staab2010-09-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | On the HT-Omega Claro halo card, the ADC data must be captured from the second I2S input. Using the default first input, which isn't connected to anything, would result in silence. Signed-off-by: Erik J. Staab <ejs@insightbb.com> Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Cc: <stable@kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: oxygen - Add a SSID for CMI8787-HG2PCITakashi Iwai2010-10-061-0/+1
| | | | | | | | | | | | | | | | This board has a strange PCI SSID 13f6:ffff. Works as compabile as MODEL_CMEDIA_REF. Reported-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* | ALSA: oxygen: handle CD input configuration with a flagClemens Ladisch2010-10-051-1/+2
|/ | | | | | | | | There are more models without a CD input than with one, so handle this explicitly with a device_config flag to avoid having to define a control filter callback to filter it out. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: use DEFINE_PCI_DEVICE_TABLEAlexey Dobriyan2010-02-091-1/+1
| | | | | | | | | Use DEFINE_PCI_DEVICE_TABLE() to make PCI device ids go to .devinit.rodata section, so they can be discarded in some cases, and make them const. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: add high-pass filter controlClemens Ladisch2009-09-281-2/+71
| | | | | | | Add a control that allows disabling the high-pass filter of the WM8785 ADC. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: add digital filter controlClemens Ladisch2009-09-281-0/+65
| | | | | | | | Add a control to select between sharp and slow roll-of filter responses of the DACs. 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-0/+1
| | | | | | | | 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: cache codec registersClemens Ladisch2009-09-281-49/+58
| | | | | | | Keep a cache of codec registers to avoid unnecessary writes. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: more hardware documentationClemens Ladisch2009-09-281-0/+6
| | | | | | | Add some comments describing the hardware pin routing. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: enable headphone output on Claro cardsClemens Ladisch2009-03-091-10/+53
| | | | | | | | On the HT-Omega Claro (halo) sound cards, the headphone amplifier must be enabled explicitly by setting a GPIO bit. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: handle AK5385 ADC on Claro halo cardsClemens Ladisch2009-02-201-0/+16
| | | | | | | | | | | | | The HT-Omega Claro halo's ADC is an AK5385 instead of a WM8785, so we should handle the ADC parameters as we do with the X-Meridian. Using the code for the wrong ADC does not seem to have any audible effects, and the Windows driver does it, but it is nonetheless a good idea to run the AK5385 with an oversampling ratio that is not outside the documented limits. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: handle cards with broken EEPROMClemens Ladisch2009-02-191-20/+24
| | | | | | | | | | | | | | | | | Under as yet unknown circumstances, the first word of the sound card's EEPROM gets overwritten. When this has happened, we cannot rely on the subsystem IDs that the kernel reads from the PCI configuration registers. Instead, we read the IDs directly from the EEPROM and do the ID matching manually. Because the model-specific driver cannot determine the model before calling oxygen_pci_probe(), that function now gets a get_model() callback as parameter. The customizing of the model structure, which was formerly done by the probe() callback, also has moved into get_model(). Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* sound: oxygen: make the owner module a parameter of the probe functionClemens Ladisch2009-02-191-2/+1
| | | | | | | | | | | Move the owner field out of the oxygen_model structure and make it a parameter of oxygen_pci_probe(), because the actual owner module does not depend on the card model. Furthermore, moving it out of the model structure allows us to create the card structure before the actual model is known. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
* ALSA: oxygen: add Claro halo supportClemens Ladisch2008-11-281-0/+4
| | | | | | | 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: add self-documenting functionsClemens Ladisch2008-09-221-1/+6
| | | | | | | Introduce some trivial functions to better document the relationships of the various model callbacks. Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
* ALSA: oxygen: configure MIDI via device_configClemens Ladisch2008-09-221-0/+1
| | | | | | | | 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-221-10/+10
| | | | | | | 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: handle X-Meridian dynamicallyClemens Ladisch2008-09-221-33/+17
| | | | | | | 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-221-11/+16
| | | | | | | 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-221-1/+2
| | | | | | | 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: fix distorted output on AK4396-based cardsClemens Ladisch2008-08-291-0/+4
| | | | | | | | | | | | | | | 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: add PM supportClemens Ladisch2008-05-191-0/+12
| | | | | | | Add suspend/resume support. 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-191-7/+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-191-14/+13
| | | | | | | | 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-191-3/+14
| | | | | | | | | 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: fix version in MODULE_LICENSEClemens Ladisch2008-05-191-1/+1
| | | | | | | 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>
* [ALSA] oxygen: generalize DAC volume TLV handlingClemens Ladisch2008-04-241-11/+2
| | | | | | | | 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-241-3/+3
| | | | | | | | 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-241-0/+4
| | | | | | | | 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] oxygen: fix line-in recording selection (now for real)Clemens Ladisch2008-04-241-33/+0
| | | | | | | | 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: move MIDI flag to model structClemens Ladisch2008-04-241-1/+2
| | | | | | | | 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>