android_kernel_xiaomi_sm8350/sound/pci
Jonathan Woithe a1e8d2da03 [ALSA] HDA/Realtek: multiple input mux definitions and pin mode additions
The following patch relative to CVS from 20060324 adds the following
features to the Realtek HDA codec.

1) Define two new pin modes: ALC_PIN_DIR_IN_NOMICBIAS and
   ALC_PIN_DIR_INOUT_NOMICBIAS.  These can be used with jack mode switch
   definitions in mixers to prevent the user being offered the mic bias
   options if the hardware doesn't support it.

2) Add the ability to have different input mux definitions for different
   ADCs.  This is needed because the ALC260 chip uses different mux layouts
   for the two onboard ADCs.  A new field (num_mux_defs) was added to the
   alc_spec and alc_config_preset structures to support this.

3) Adjust numerous comments to make them consistent with the above changes.

4) Utilise the new multi-mux definition functionality for the ALC260 fujitsu
   model to allow recording of the mixer output.

5) Utilise the new multi-mux definition functionality for the ALC260 test
   model to make the mux selections a little less confusing.

6) Allow the headphone jack of the ALC260 acer model to be retasked in
   the mixer.

6) Utilise the new multi-mux definition functionality for the ALC260 acer
   model to give access to the mixer output and the retasked headphone
   jack.

At this stage the *_NOMICBIAS modes are not used.  We have reports that the
"Line" jack of at least some Acer models doesn't pass the bias out, and we
also know that NIDs 0x0f and 0x10 don't seem to accept the mic bias requests
at all.  However, I feel we need to collect more evidence on both counts
before committing to the use of *_NOMICBIAS.  In the case of the Acers, it's
not clear whether this issue (probably caused by the inclusion of DC
blocking capacitors) affects all Acer models or just a small number.  With
the issue with NIDs 0x0f and 0x10 it's unclear whether this is a hardware
bug which will be addressed in later chip revisions or if it's an
intentional restriction.  The datasheet makes no mention of the restriction
so at this stage I'm inclined to consider it a hardware bug.  Comments in
the source reflect this reasoning.

On a similar theme, the headphone jack of the Fujitsu S7020 also doesn't
appear to pass mic bias voltage.  I'm still investigating this however.

With the ability to retask the headphone jack, owners of ALC260-based Acer
laptops should now be able to record 4 channels of audio if they desire. The
multiple mux definitions allow this jack to be presented from both ADCs
(since this mux input is one of those which differs between the muxes).

This patch has been tested on a Fujitsu S7020 laptop and appears to behave
itself both for the "test" and "fujitsu" models.  Definitions using only a
single mux specification also work.  Other ALC chips should be fine but I
cannot test these myself.  The "auto" modes should also continue to function
but again I have not verified this.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2006-03-31 17:59:00 +02:00
..
ac97 [ALSA] ac97 - Clean up obsolete workarounds 2006-03-22 10:38:53 +01:00
ali5451 [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
au88x0
ca0106
cs46xx [ALSA] fix some memory leaks 2006-03-22 10:38:23 +01:00
cs5535audio [ALSA] CS5535: shorter delays when accessing AC'97 codec registers 2006-03-22 10:34:45 +01:00
emu10k1 [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
hda [ALSA] HDA/Realtek: multiple input mux definitions and pin mode additions 2006-03-31 17:59:00 +02:00
ice1712 [ALSA] ice1712 - Fix wrong register value for DMX 6FIRE 2006-03-31 17:58:56 +02:00
korg1212 [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
mixart [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
nm256 [ALSA] Fix NM256 hard lock up 2006-03-22 10:38:50 +01:00
pcxhr [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
riptide [ALSA] Remove obsolete kfree_nocheck call 2006-03-31 17:58:58 +02:00
rme9652 [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
trident [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
vx222 [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
ymfpci [ALSA] ymfpci - make rear channel swap optional 2006-03-22 10:26:21 +01:00
ad1889.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
ad1889.h
als300.c [ALSA] Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards 2006-03-31 17:58:58 +02:00
als4000.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
atiixp_modem.c [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
atiixp.c [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
azt3328.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
azt3328.h
bt87x.c [ALSA] bt87x: add more DVB card IDs 2006-03-22 10:37:10 +01:00
cmipci.c [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
cs4281.c
ens1370.c [ALSA] semaphore -> mutex (PCI part) 2006-03-22 10:25:29 +01:00
ens1371.c
es1938.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
es1968.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
fm801.c
intel8x0.c [ALSA] intel8x0 - wait for ICH_RESETREGS 2006-03-22 10:29:29 +01:00
intel8x0m.c
Kconfig [ALSA] Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards 2006-03-31 17:58:58 +02:00
maestro3.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
Makefile [ALSA] Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards 2006-03-31 17:58:58 +02:00
rme32.c [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
rme96.c [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
sonicvibes.c [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK 2006-03-28 09:16:07 -08:00
via82xx_modem.c
via82xx.c [ALSA] via82xx - Add dxs entry for EPoX EP-8KRAI 2006-03-31 17:58:56 +02:00