android_kernel_xiaomi_sm8350/sound
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
..
arm [ALSA] semaphore -> mutex (Archs, misc buses) 2006-03-22 10:25:43 +01:00
core [ALSA] Fix / clean up PCM-OSS setup hooks 2006-03-31 17:58:59 +02:00
drivers [PATCH] pnp: mpu401: adjust pnp_register_driver signature 2006-03-27 08:44:53 -08:00
i2c [ALSA] ice1712 & cs8427 - fix problem for S/PDIF input setup 2006-03-22 10:28:15 +01:00
isa [ALSA] AdLib FM card driver 2006-03-31 17:58:59 +02:00
mips [ALSA] AMD Au1x00: AC'97 controller is memory mapped 2006-03-22 10:43:28 +01:00
oss Merge ../linux-2.6 2006-03-29 13:24:50 +11:00
parisc
pci [ALSA] HDA/Realtek: multiple input mux definitions and pin mode additions 2006-03-31 17:59:00 +02:00
pcmcia [ALSA] Don't NULL check vfree argument in pdaudiocf_pcm.c 2006-03-22 10:31:45 +01:00
ppc [PATCH] powerpc: Kill _machine and hard-coded platform numbers 2006-03-28 23:15:54 +11:00
sparc BUG_ON() Conversion in sound/sparc/cs4231.c 2006-03-24 18:49:12 +01:00
synth [ALSA] semaphore -> mutex (driver part) 2006-03-22 10:24:57 +01:00
usb [PATCH] Typo fixes 2006-03-28 09:16:08 -08:00
Kconfig
last.c
Makefile
sound_core.c [PATCH] mark f_ops const in the inode 2006-03-28 09:16:05 -08:00
sound_firmware.c