Some VIA codecs like VT1702 provide the input-route only to specific
ADCs such as digital-mic inputs. These routes aren't covered by the
normal primary ADC, and for now, user had to open the capture stream
assigned to that special ADC manually for using such inputs.
This patch implements a way to switch the current ADC dynamically per
the input-source selection in such a case. When this workaround is
activated, the driver provides only one capture stream and one input-
source control but with the full possible inputs. The driver switches
the ADC to be used (or being used) according to the input-source on the
fly.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The base hardware revision of the Maxim 98095 part is 0x40; the code
which outputs the revision of the hardware has been updated to
properly use uppercase alphabetic values for the revision numbers.
Also, the use of a constant for the length 'max98095_dai' has been
replaced with ARRAY_SIZE().
Signed-off-by: Taylor Hutt <thutt@chromium.org>
Acked-by: Peter Hsiang <peter.hsiang@maxim-ic.com>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
When smart51 mode is enabled, auto-mute these surround outputs
as well as the primary line-out. Also this patch includes minor
clean-ups.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Unify the VT1709 10ch and 6ch parsers, as well as VT1708B 8ch and 4ch
parsers. They have no difference now.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The codecs like VT1708 needs more complicated routing using the mixer
widget rather than the simple selector widgets.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The surround/CLFE/side DACs on VT1708B and co have no amp but the
connected selector widgets have the amp instead. Fix the parser to
check these selector widgets for the possible mixer controls as well.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Fix the check of the multiple loopback-mixer, which gave sometimes
a wrong index assigned to an element even for different names, e.g.
Mic and Front Mic. Now check the label properly for avoid duplication.
Reported-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The input jacks assigned as the smart51 outputs must be in the same
stack, either rear, front or other. Also, prefer line-in as the surround
to mic-in.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Fix a issue to create playback volume control if pin has amplifier capability
but not DAC.
Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Change the order of the output-path list in a way from the DAC to the
target pin. Also now the list include the target pin, too.
Together with this format change, simplify the arguments of
parse_output_path() function, and fix the initialization in
via_auto_init_output().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Drop "Capture" prefix from the mic-boost names.
Otherwise some control names can overflow the max name length.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Create patch_ca0132.c, to add support for devices featuring the
Creative CA0132 HD-audio codec.
This driver implements :-
* 1 playback subdevice to headphone and speaker
* 2 capture subdevices:
i - Mic-in
ii- Line-in
* mixer device
Advanced DSP features are not yet included.
Developed and maintained by Creative Labs, Inc.
Signed-off-by: Ian Minett <ian_minett@creativelabs.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Create a master volume and mute control of playback for VT1718S.
Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
When switch HP independent mode, mute/unmute connctions of mixer which is
connected to headphone for VT1718S.
Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Remove some invalid initial verbs and correct some wrong initial verbs
for VT1718S codec.
Signed-off-by: Lydia Wang <lydiawang@viatech.com.cn>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The "diverse" Quanta ID 0x0763 is overridden to ALC268_ACER.
This keeps headphone automute and microphone input from operating
on at least one laptop from Opti Systems.
Without the override, the BIOS parser does a fine job setting the
card up and everything works.
Tested-By: Peter Schneider <e.at.chi.kaen@googlemail.com>
Signed-off-by: Tony Vroon <tony@linx.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
"ret" is supposed to be signed here. The current code will only
return -EIO on error, instead of a more appropriate error code such
as -EAGAIN etc.
Signed-off-by: Dan Carpenter <error27@gmail.com>
Acked-by: Lars-Peter Clausen <lars@metafoo.de>
Acked-by: Liam Girdwood <lrg@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Use the existing aa-loop list for simplifying the check for analog
low-current mode. Also fix the stream count test for playback streams.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Issue the init verbs of unsolicited events dynamically from the parsed
results for VIA codecs. Also, consolidate the unsol handlers for HP
and line-out mutes.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Similarly like the previous commit, initialize the input-paths dynamically
from the parsed results instead of the fixed array for VIA codecs.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Instead of fixed array for each codec type, initialize the output path
dynamically from the parsed results.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Fix races in handling of HP DAC and independent streams for VIA codecs.
Also, allow the HP output path without front-DAC, and removed
unnecessary activation of HP mixer elements.
This also removes the handling of shared side/HP stream; it's anyway
implemented in a broken way, so we need to re-implement the feature
later...
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Instead of ignoring the invalid pin configuration, return the error.
This will avoid unexpected crash, anyway.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Create capture-related mixer elements dynamically from the parsed
ADCs and input-pins instead of fixed values for each codec.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Instead of using the secondary substream, create an individual PCM
stream for HP-independent PCM. Otherwise it's difficult to handle
different channel numbers with multi-channel stream in the sam PCM
stream structure.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
For VIA codecs, we shouldn't create a substream for independent HP mode,
when no individual HP DAC is found.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Parse the output-paths more dynamically, i.e. traverse the paths
from each output pin instead of fixed assignment for each codec.
Now all codecs are using the same output parser code.
The smart51 setup doesn't work with this change, and will be fixed
in the next commits.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Mute the outputs via pin-controls instead of amps for the auto-mute
handling. This makes our life easier as it avoids conflict of the states
between the mixer elements and the auto-mute toggles.
With this change, we can use vmaster for the master control easily now.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The jack-detect control should be created at the time of build_controls
callback instead of calling snd_hda_add_ctls() at the tree-parsing time.
For that, copy the control to the temporary array like other cases.
Also, fixed typos of vt1708_jack_detect in all places.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Instead of giving the fixed ADC list, parse the widgets and fill in
ADCs dynamically.
Also, probe the stereo-mixer input more dynamically, too.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Currently VIA driver controls the power-state of each pin per jack
detection. But, it means that the power-state mismatch may occur when
the machine doesn't give the proper jack-detection.
For avoiding this problem, a new control element "Dynamic Power-Control"
is provided so that user can turn on/off the pin-power control.
Signed-off-by: Takashi Iwai <tiwai@suse.de>