HPI Version is used to check for firmware compatibility.
This version will accept 4.08.xx released firmware,
and will also accept 4.09.xx beta firmware
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Add names corresponding to new HPI node types.
Shorten some names so that constructed names don't overflow the
maximum name length.
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Because mutex is used in adapter struct defined here.
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Subsystem requests don't have or need a valid adapter index.
The adapter index is already checked further on, before it is used to index
the adapters array. (Reverts 4a122c10f)
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Work towards moving the function into alsa common header.
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The loader API has been revised so that OS specific data is kept
local to hpidspcd.c, and the public API is unchanged across OSes.
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Some cobranet control data would not fit in an original HPI message.
Now that HPI is able to transfer larger messages, this special handling
is no longer required.
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Allow for up to 256 bytes of extra data on top of standard hpi
request and response sizes.
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Having a 'request message' makes more sense than a 'message message'
Signed-off-by: Eliot Blennerhassett <eblennerhassett@audioscience.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch fixes non-working indep-HP control on VT1708* codecs.
The problems are that via_independent_hp_put() wasn't fixed to follow
the recent change of three HP paths, and hp_indep_path didn't contain
the amp nids of mixer elements.
Together with the fixes, a few code clean-ups are done.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch changes the behavior of independent-HP enum switch. Now
instead of returning a busy error, the driver switches dynamically the
stream of the HP (and shared) DACs according to the current mode.
The logic is similar like the dual-mic ADC switch, but a bit more
complicated because of the presence of shared DAC.
Together with the change, a mutex is introduced to protect against the
possible races for the indep-HP mode setting.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch adds the dynamic control of analog-loopback for VIA codecs.
When the loopback is enabled, the inputs from line-ins and mics are
mixed with the front DAC, and sent to the front outputs. The very same
input is routed to the headhpones and speakers in loopback mode.
However, since the loopback mix can't take other than the front DAC,
there is no longer individual volume controls for headphones and
speakers. Once when the loopback control is off, these volumes take
effect.
Since the individual volumes are more desired in general use caess, the
loopback mode is set to off as default for now.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Commit dd203fa97b (ALSA: virtuoso: remove non-working controls on
Essence ST Deluxe) made it impossible to adjust the volume after the
driver initialized it to muted.
Ensure that those DACs that can be accessed with I2C are initialized
to the same volume that is the reset default of the DAC without I2C.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Cc: 2.6.38+ <stable@kernel.org>
BugLink: https://bugs.launchpad.net/bugs/774895
The original reporter states that his volume keys do not change the
desired Master and PCM mixer elements together, so apply the hp+mute led
quirk for his PCI SSID.
Reported-by: Jeffrey Finkelstein
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
During the rewrite, the check of spec->need_dac_fix and the corresponding
num_dacs change was dropped from the channel-mode control.
This patch re-adds it, and also enables need_dac_fix for ALC880 as default,
as this feature was originally introduced to fix h/w bugs of this chip.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is a fix up for commit acfa634f.
commit acfa634f7e
Author: Takashi Iwai <tiwai@suse.de>
Date: Tue Jul 12 17:27:46 2011 +0200
ALSA: hda - Add Kconfig for the default buffer size
Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Add a Kconfig entry to specify the default buffer size.
Distros using PulseAudio can choose a larger value here.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
VT1718S and co have a secret connection from DAC to AA-mix, which
doesn't appear in the connection list obtained from the h/w.
Currently the driver fixes the connection index locally at init, but
now we can expose it statically via snd_hda_override_connections()
so that this conection can be checked better by the parser in future.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
In the codec proc outputs, read the raw connections instead of the
cached connection list, i.e. proc files contain only raw values.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Add a function to add/modify the connection-list cache entry.
It'll be useful to fix a buggy hardware result.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Some machines seem to use EAPD control of the unused pin for controlling
the overall EAPD. Since the driver currently doesn't check the EAPD of
unused pins, the EAPD isn't enabled. For avoiding such a problem, turn
all extra EAPDs on as default.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
For smart51 pins, we need to preserve the input pin-control bits at
auto-mute controls instead of overwriting zero or pin-out-only.
Otherwise the VREF won't be set properly when smart51 is disabled
again.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
When Independent-HP mode is changed for VIA, the driver needs to
re-issue the auto-mute check so that the line-out pins are set properly
without influence of HP pin state.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
When the line-jack is plugged/unplugged, the driver must check also
the headphone jack state in addition to the line-out jack. Currently
it checks only the line-out state and ignores the headphone.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Instead of checking the model quirk, use a fixup table for workaround
of 44kHz-fixed PCM for Lenovo IdeaPad with ALC269.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
It's harmless but annyoing.
sound/pci/hda/patch_realtek.c: In function ‘alc_cap_getput_caller’:
sound/pci/hda/patch_realtek.c:2722:9: warning: ‘err’ may be used uninitialized in this function
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Now all alc*_parse_auto_config() do almost same thing except for the
NID list to ignore and the PINs for SSID-check, we can merge all these
to a single function. A good amount of code reduction.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
One more code reduction. This codec has less DACs, thus the wiring
to DAC can't be filled uniquely for all output pins, i.e. some outputs
share the same volume control.
Except for that, all seems working fine.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Merge more auto-parser code in patch_realtek.c, now for ALC861.
The topology of this codec is pretty simple, and can be parsed well
by the current starndard parser.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
query_amp_caps() may return non-zero if the amp cap isn't supported
by the codec. Thus one needs to check widget-caps first, then check
the corresponding amp-caps.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
A regression fix from commit 21268961d3
ALSA: hda - More flexible dynamic-ADC switching for Realtek codecs
The auto-mic wasn't detected properly when no ADC-switch is needed.
Signed-off-by: Takashi Iwai <tiwai@suse.de>