History log of /linux-master/sound/pci/hda/patch_analog.c
Revision Date Author Comments
# d2d83756 17-Aug-2021 Nathan Chancellor <nathan@kernel.org>

ALSA: hda/analog - Sink ad198x_shutup() and shuffle CONFIG_PM guards

When CONFIG_PM is not set, there is an unused function warning:

sound/pci/hda/patch_analog.c:115:13: warning: unused function
'ad198x_shutup' [-Wunused-function]
static void ad198x_shutup(struct hda_codec *codec)
^
1 warning generated.

Sink ad198x_shutup() into ad198x_suspend(), as it is only called in that
one space. Move the CONFIG_PM guards above ad198x_power_eapd_write() as
it is only called in ad198x_power_eapd(), which is in turn only called
in ad198x_power_eapd(). Those two functions are large enough that they
are left alone.

Fixes: 327b34f2a97d ("ALSA: hda: Nuke unused reboot_notify callback")
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Link: https://lore.kernel.org/r/20210818012705.311963-2-nathan@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 327b34f2 13-Aug-2021 Takashi Iwai <tiwai@suse.de>

ALSA: hda: Nuke unused reboot_notify callback

As reboot_notify callback is no longer used by the codec core, let's
get rid of the unused code. Conexant codec needs a slight code change
as it used to call the reboot_notify at the codec removal, too.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=214045
Link: https://lore.kernel.org/r/20210813081230.4268-4-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 2ba0176c 15-Jan-2020 Takashi Iwai <tiwai@suse.de>

ALSA: hda/analog - Minor optimization for SPDIF mux connections

AD HD-audio codec driver has a few code lines invoking
snd_get_num_conns() and using its return value as the array index
without checking. This is basically safe in all those places; at the
second and later calls snd_get_num_conns() returns the value cached
from the first invocation, hence the value is always consistent.

However, it looks a bit confusing as if a lack of the proper check.
This patch introduces a new field num_smux_conns in ad198x_spec for
simplifying the code. Now we store and refer to the value more
locally without invoking the extra function at each time.

Reported-by: Colin King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20200115100035.22511-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# bf82326f 05-Jan-2020 Takashi Iwai <tiwai@suse.de>

ALSA: hda: More constifications

Apply const prefix to the remaining possible places: the string
tables, the rate tables, the verb tables, the index tables, etc.

Just for minor optimization and no functional changes.

Link: https://lore.kernel.org/r/20200105144823.29547-10-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# caf3c043 03-Jan-2020 Michał Mirosław <mirq-linux@rere.qmqm.pl>

ALSA: hda - constify and cleanup static NodeID tables

Make hda_nid_t tables static const, as they are not intended to be
modified by callees.

Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Link: https://lore.kernel.org/r/5150c94101c9534f4c8e987324f6912c16d459f6.1578043216.git.mirq-linux@rere.qmqm.pl
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 7b485d17 20-Sep-2019 Shih-Yuan Lee (FourDollars) <fourdollars@debian.org>

ALSA: hda - Add laptop imic fixup for ASUS M9V laptop

The same fixup to enable laptop imic is needed for ASUS M9V with AD1986A
codec like another HP machine.

Signed-off-by: Shih-Yuan Lee (FourDollars) <fourdollars@debian.org>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20190920134052.GA8035@localhost
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# d0fa1179 20-May-2019 Thomas Gleixner <tglx@linutronix.de>

treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32

Based on 1 normalized pattern(s):

this driver is free software you can redistribute it and or modify
it under the terms of the gnu general public license as published by
the free software foundation either version 2 of the license or at
your option any later version this driver is distributed in the hope
that it will be useful but without any warranty without even the
implied warranty of merchantability or fitness for a particular
purpose see the gnu general public license for more details you
should have received a copy of the gnu general public license along
with this program if not write to the free software foundation inc
59 temple place suite 330 boston ma 02111 1307 usa

extracted by the scancode license scanner the SPDX license identifier

GPL-2.0-or-later

has been chosen to replace the boilerplate/reference in 18 file(s).

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Allison Randal <allison@lohutok.net>
Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190520170857.186505395@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>


# be57bfff 22-Aug-2018 Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

ALSA: hda: move hda_codec.h to include/sound

As suggested by Takashi, move this header file to make it easier
to include from e.g. the Intel Skylake driver in follow-up patches

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>


# b4af16d6 22-Aug-2018 Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

ALSA: hda: move hda_codec.h to include/sound

As suggested by Takashi, move this header file to make it easier
to include from e.g. the Intel Skylake driver in follow-up patches

Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>


# 401caff7 27-Jun-2018 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Kill snd_hda_codec_update_cache()

snd_hda_codec_update_cache() used to serve for a slightly different
purpose from snd_hdac_write_cache(), but now both of them became
identical.

Let's unify and replace with the latter one consistently.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# fdbf0488 16-Aug-2017 Bhumika Goyal <bhumirks@gmail.com>

ALSA: hda: make snd_kcontrol_new const

Make these const as they are only passed as the 3rd argument to the
function snd_hda_gen_add_kctl, which is of type const.
Done using Coccinelle.

Signed-off-by: Bhumika Goyal <bhumirks@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b9a94a9c 01-Oct-2015 Takashi Iwai <tiwai@suse.de>

ALSA: hda - convert to hda_device_id

Finally we have a proper infrastructure to generate the modaliases
automatically, let's move to hda_device_id from the legacy
hda_codec_preset that contains basically the same information.

The patch function hook is stored in driver_data field, which is long,
and we need an explicit cast. Other than that, the conversion is
mostly straightforward. Each entry is even simplified using a macro,
and the lengthy (and error-prone) manual modaliases got removed.

As a result, we achieved a quite good diet:
14 files changed, 407 insertions(+), 595 deletions(-)

Reviewed-by: Vinod Koul <vinod.koul@intel.com>
Tested-by: Subhransu S Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 225068ab 29-May-2015 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Set patch_ops before calling auto-parser

... so that the parser code can overwrite some optional ops. For
Realtek and others, it can be set solely in the spec allocator, so it
results in a good code cleanup, too.

With this change, we can finally remove the local stream_pm setup and
rely on the generic parser's automatic setting.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# a551d914 25-Feb-2015 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Use regmap for command verb caches, too

Like the previous patches, this patch converts also to the regmap, at
this time, the cached verb writes are the target. But this conversion
needs a bit more caution than before.

- In the old code, we just record any verbs as is, and restore them at
resume. For the regmap scheme, this doesn't work, since a few verbs
like AMP or DIGI_CONVERT are asymmetrical. Such verbs are converted
either to the dedicated function (snd_hda_regmap_xxx_amp()) or
changed to the unified verb.

- Some verbs have to be declared as vendor-specific ones before
accessing via regmap.

Also, the minor optimization with codec->cached_write flag is dropped
in a few places, as this would confuse the operation. Further
optimizations will be brought in the later patches, if any.

This conversion ends up with a drop of significant amount of codes,
mostly the helper codes that are no longer used.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 7639a06c 03-Mar-2015 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Move a part of hda_codec stuff into hdac_device

Now some codes and functionalities of hda_codec struct are moved to
hdac_device struct. A few basic attributes like the codec address,
vendor ID number, FG numbers, etc are moved to hdac_device, and they
are accessed like codec->core.addr. The basic verb exec functions are
moved, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# d8a766a1 17-Feb-2015 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Bind codecs via standard bus

Now we create the standard HD-audio bus (/sys/bus/hdaudio), and bind
the codec driver with the codec device over there. This is the first
step of the whole transition so that the changes to each codec driver
are kept as minimal as possible.

Each codec driver needs to register hda_codec_driver struct containing
the currently existing preset via the new helper macro
module_hda_codec_driver(). The old hda_codec_preset_list is replaced
with this infrastructure. The generic parsers (for HDMI and other)
are also included in the preset with the special IDs to bind
uniquely.

In HD-audio core side, the device binding code is split to
hda_bind.c. It provides the snd_hda_bus_type implementation to match
the codec driver with the given codec vendor ID. It also manages the
module auto-loading by itself like before: when the matching isn't
found, it tries to probe the corresponding codec modules, and finally
falls back to the generic drivers. (The special ID mentioned above is
set at this stage.)

The only visible change to outside is that the hdaudio sysfs entry now
appears in /sys/bus/devices, not as a sound class device.

More works to move the suspend/resume and remove ops will be
(hopefully) done in later patches.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 57da6bdd 21-Dec-2014 Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>

ALSA: hda - patch_analog.c: Remove some unused functions

Removes some functions that are not used anywhere:
ad198x_ch_mode_get() ad198x_ch_mode_info() ad198x_ch_mode_info()

This was partially found by using a static code analysis program called cppcheck.

Signed-off-by: Rickard Strandqvist <rickard_strandqvist@spectrumdigital.se>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 7327643b 15-Dec-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add quirk for Packard Bell EasyNote MX65

Packard Bell EasyNote MX65 with AD1986A codec needs a few fixups,
namely, the pin config overrides to set only the known I/O pins and
the EAPD has to be turned on. In addition, add stereo mix input
forcibly for avoiding the weird KDE behavior by this update.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88251
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 74f14b36 15-Dec-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Make add_stereo_mix_input flag tristate

... for distinguishing whether it's explicitly enabled via a user hint
or enabled by a driver as a fallback. Now the former case corresponds
to HDA_HINT_STEREO_MIX_ENABLE while the latter to
HDA_HINT_STEREO_MIX_AUTO.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9faa73f0 10-Dec-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add "eapd" model string for AD1986A codec

Also update the documentation to the latest state.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f62f5eff 09-Dec-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add EAPD fixup for ASUS Z99He laptop

The same fixup to enable EAPD is needed for ASUS Z99He with AD1986A
codec like another ASUS machine.

Reported-and-tested-by: Dmitry V. Zimin <pfzim@mail.ru>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 598e3061 23-May-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda/analog - Fix silent output on ASUS A8JN

ASUS A8JN with AD1986A codec seems following the normal EAPD in the
normal order (0 = off, 1 = on) unlike other machines with AD1986A.
Apply the workaround used for Toshiba laptop that showed the same
problem.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=75041
Cc: <stable@vger.kernel.org> [3.11+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f3e9b59c 04-Mar-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Use analog beep for Thinkpads with AD1984 codecs

For making the driver behavior compatible with the earlier kernels,
use the analog beep in the loopback path instead of the digital beep.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c5eda4c1 05-Mar-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add missing loopback merge path for AD1884/1984 codecs

The mixer widget (NID 0x20) of AD1884 and AD1984 codecs isn't
connected directly to the actual I/O paths but only via another mixer
widget (NID 0x21). We need a similar fix as we did for AD1882.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1f85a0f0 15-Feb-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove superfluous inclusion of linux/pci.h

Some codec drivers still have it since using PCI_VENDOR_ID_*.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 276ab336 05-Feb-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Improve loopback path lookups for AD1983

AD1983 has flexible loopback routes and the generic parser would take
wrong path confusingly instead of taking individual paths via NID 0x0c
and 0x0d. For avoiding it, limit the connections at these widgets so
that the parser can think more straightforwardly. This fixes the
regression of the missing line-in loopback on Dell machine.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70011
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c7579fed 04-Feb-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add missing mixer widget for AD1983

The mixer widget on AD1983 at NID 0x0e was missing in the commit
[f2f8be43c5c9: ALSA: hda - Add aamix NID to AD codecs].

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=70011
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4528eb19 03-Feb-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix silent output on Toshiba Satellite L40

Toshiba Satellite L40 with AD1986A codec requires the EAPD of NID 0x1b
to be constantly on, otherwise the output doesn't work.
Unlike most of other AD1986A machines, EAPD is correctly implemented
in HD-audio manner (that is, bit set = amp on), so we need to clear
the inv_eapd flag in the fixup, too.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=67481
Cc: <stable@vger.kernel.org> [v3.11+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# cbd209f4 12-Jan-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Don't set indep_hp flag for old AD codecs

Some old AD codecs don't like the independent HP handling, either it
contains a single DAC (AD1981) or it mandates the mixer routing
(AD1986A). This patch removes the indep_hp flag for such codecs.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=68081
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# ed0e0d06 07-Jan-2014 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Correct AD1986A 3stack pin configs

The 3stack pin configs for AD1986A codec had incorrect values that
resulted in broken mic and line-in.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66621
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 3690739b 10-Dec-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add static DAC/pin mapping for AD1986A codec

AD1986A codec is a pretty old codec and has really many hidden
restrictions. One of such is that each DAC is dedicated to certain
pin although there are possible connections. Currently, the generic
parser tries to assign individual DACs as much as possible, and this
lead to two bad situations: connections where the sound actually
doesn't work, and connections conflicting other channels.

We may fix this by trying to find the best connections more harder,
but as of now, it's easier to give some hints for paired DAC/pin
connections and honor them if available, since such a hint is needed
only for specific codecs (right now only AD1986A, and there will be
unlikely any others in future).

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64971
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66621
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f1e762dd 09-Dec-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Enable stereo mix as default for AD and VIA codecs

AD and VIA codecs had stereo mixer input enabled as default before
moving to the generic parser, and people think the lack of such a
regression. In this patch, the stereo mixer input is added back to
the input selection if no auto-mic is available, and if it's not
disabled explicitly via hint. This should satisfy most of demands,
i.e. stereo mix on desktop machines like what it worked before, and it
still keeps the new auto-mic feature on laptops.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b3bd4fc3 02-Dec-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Use always amps for auto-mute on AD1986A codec

It seems that AD1986A cannot manage the dynamic pin on/off for
auto-muting, but rather gets confused. Since each output has own amp,
let's use it instead.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64971
Cc: <stable@vger.kernel.org> [v3.11+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# ce8e0fd2 02-Dec-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda/analog - Handle inverted EAPD properly in vmaster hook

ad_vmaster_eapd_hook() needs to handle the inverted EAPD case
properly, too. Otherwise the output gets broken on Lenovo N100 with
AD1986A codec.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=64971
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1cd9b2f7 02-Dec-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix bad EAPD setup for HP machines with AD1984A

It seems that EAPD on NID 0x16 is the only control over all outputs on
HP machines with AD1984A while turning EAPD on NID 0x12 breaks the
output. Thus we need to avoid fiddling EAPD on NID. As a quick
workaround, just set own_eapd_ctrl flag for the wrong EAPD, then
implement finer EAPD controls.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=66321
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f710a9fb 13-Nov-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Control EAPD for Master volume on Lenovo N100

Similarly as other laptops with AD1981 & co codecs, we can control
EAPD on AD1986A more safely depending on the Master switch, in order
to save some power.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 7a3e6107 13-Nov-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Don't turn off EAPD for headphone on Lenovo N100

The only EAPD on AD1986A is on NID 0x1b where usually the speaker.
But this doesn't control only the speaker amp but may influence on all
outputs, e.g. Lenovo N100 laptop seems to have this issue.

Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# afb5a779 25-Oct-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Sync EAPD with vmaster on AD1984A Thinkpads

As EAPD on NID 0x12 (speaker pin) is used as the master amp on
Thinkpads with AD1984A codec, we can hook this to vmaster for saving a
bit more power at master mute state.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1ac32930 25-Oct-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix silent headphone on Thinkpads with AD1984A codec

AD1984A codec has a couple of pins with EAPD controls, and the generic
codec driver tries to turn each of them on/off depending on the pin
active state. However, Thinkpads seem to use EAPD of the speaker pin
as a master EAPD for controlling the mute of all outputs, including
the headphone. This results in the dead headphone output via the
headphone plugging because it mutes the speaker and turns off EAPD.

The fix is to simply add spec->gen.keep_on_eapd flag.

[This is a regression fix on 3.12 where we moved the AD codec parser
to the generic parser. 3.11 and earlier didn't show this problem
because still static quirks have been used.]

Reported-and-tested-by: Vito Caputo <vcaputo@gnugeneration.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 632408ad 05-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove static quirks for AD1986A codec

Finally all the static quirks in patch_analog.c are reduced by this
patch. As machines with AD1986A codec are all old and often their
BIOS are buggy, we need to keep at least a few static pin conifgs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 0f7dbda0 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Drop a few other static quirks for AD1986A

Most of ASUS laptops and Lenovo N100 provide proper BIOS pin-configs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# fc39a7ea 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Drop static quirk for Toshiba Satellite L40-10Q

The BIOS provides good pin-configurations, so we can drop the static
quirk now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 7fc116ec 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Drop static quirks for other AD1986A Samsung machines

BIOS on Samsung R55, M55 and M50 provide the proper pin-configs,
so we can remove the corresponding static quirk entries gracefully.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f8c0ab17 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Convert static quirks for AD1986A Samsung laptops

Just need to override some pin-configurations.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# e0b27167 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Convert the static quirk for Samsung Q1 Ultra

... to a fixup entry.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 36ad4530 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove static quirks for AD1988 codecs

For removing static quirks for AD1988 variants, a new fixup defining
the 6stack pinconfig has been added for the buggy BIOS. Other than
that, we can cut off straightforwardly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# bd450dcc 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove static quirks for AD1981 and AD1983 codecs

These are relatively easy ones, as we already converted all static
quirks to the generic parser.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 5ccc618f 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove static quirks for AD1884/1984 & variants

Since the necessary device-specific fixups for Thinkpad and HP devices
have been already ported, we can remove all static quirks for AD1884,
AD1984, AD1884A and AD1984A codecs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# aa95d61b 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove static quirks for AD1882

Now the generic parser can work stably enough, we can get rid of the
static quirks. Let's start from AD1882.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f404627d 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add fixup for HP TouchSmart with AD1984A codec

Ported from the static quirk.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 6a699bec 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add fixup for Lenovo Thinkpad with AD1984 codec

Ported from the static quirk (model=thinkpad).

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1a39b5e1 04-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add GPIO control to AD1884 HP fixup

The AD1884 HP laptop/mobile quirks control GPIO1 bit as the primary
mute as well. Add the similar control to ad1884 fixup for auto
parser, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 8f0b3b7e 03-Jul-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix EAPD vmaster hook for AD1884 & co

ad1884_fixup_hp_eapd() tries to set the NID for controlling the
speaker EAPD from the pin configuration. But the current code can't
work expectedly since it sets spec->eapd_nid before calling the
generic parser where the autocfg pins are set up.

This patch changes the function to set spec->eapd_nid after the
generic parser call while it sets vmaster hook unconditionally. The
spec->eapd_nid check is moved in the hook function itself instead.

Cc: <stable@vger.kernel.org> [v3.9+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 7504b6cd 18-Mar-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Move beep attach/detach calls in hda_generic.c

Instead of calling snd_hda_attach_beep_device() and
snd_hda_detach_beep_device() in each codec driver, move them to the
generic parser. The codec driver just needs to set spec->beep_nid for
activating the digital beep.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# e4a395e7 23-Jan-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix missing path between aamix and outputs in AD codecs

AD1988 family and AD1882 codecs have another mixer widget (0x21)
between the analog-loopback mixer widget (0x20) and the actual
outputs. Due to this hole, the analog-loopbacks aren't sent properly
to the output pins.

As a band-aid fix, introduce another fields holding the aamix merge
path, and activate it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 657e1b93 22-Jan-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Select auto-parser as default for AD codecs

Now all AD codecs have the proper BIOS auto-parser, and we can make
it for default, finally. (AD1988 already did it because it had the
auto-parser.)

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# a928bd2c 22-Jan-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Convert some static quirks to fixup codes for AD codecs

Other remaining quirks are mostly resolvable via pincfg fixes, even if
it matters.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9ff4bc8f 22-Jan-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Rearrange for dropping static quirk codes in AD codec driver

As done for patch_conexant.c, put ifdef ENABLE_AD_STATIC_QUIRKS for
preparing t odrop the static quirk codes in patch_analog.c.

The whole static quirk code can be omitted by commenting out
ENABLE_AD_STATIC_QUIRKS define now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 272f3ea3 22-Jan-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add SPDIF mux control to AD codec auto-parser

AD codecs have strange implementations for choosing the SPDIF-output
mux source: the digital audio out widget may take the sources from
multiple connections, where 0x01 indicates it's a PCM while others
point ADCs. It's obviously invalid in the HD-audio spec POV, but it's
somehow convincing, too. And, to make things more complex, AD1988A
and AD1882 have deeper connection routes that aren't expressed
correctly.

In this patch, the SPDIF mux control is implemented in two ways:
- For easier one like AD1981, AD1983, AD1884 and AD1984, where the
SPDIF audio out widget takes just two or three sources, we can
simply implement via the normal input_mux and connection verb
calls.

- For the complex routes like AD1988A (but not AD1988B) or AD1882, we
prepare "faked" paths represented statically, and switch the paths
using these static ones, instead of parsing the routes from the
widget tree.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f2f8be43 21-Jan-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add aamix NID to AD codecs

The aamix NIDs are also missing for AD codecs. All AD codecs seem to
have a (more or less) working aamix widget.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 6efcc526 21-Jan-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove superfluous header inclusions

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 8a6c21ae 17-Jan-2013 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix missing unsol event handler in some codec drivers

This resulted in non-working auto-mute behavior, of course...

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 78bb3cb0 21-Dec-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add generic parser support to Analog Device codec driver

This patch adds the support for the generic auto-parser to AD codec
driver. For AD1988, the old code is replaced simply with the new
generic parser. For other codecs, new model "auto" is added and
directed to use the generic parser.

No fixup codes have been implemented yet as of now. Eventually we'd
replace each static quirk with the generic parser + fixup.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 8092e606 13-Dec-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove snd_hda_codec_amp_update() call from patch_*.c

It's used only in one place in patch_analog.c, and it can be replaced
with others better.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 361dab3e 09-May-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Call snd_array_init() early and only once

This is a preliminary patch for introducing a protection to access
races of snd_array instances. Call snd_array_init() appropriately
at the initialization time and don't call it twice.

Also the allocations of codec-spec structs are cleaned up by helper
functions in patch_sigmatel.c and patch_analog.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# e15f1b43 21-Nov-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove shutup calls in free callbacks

The free callback is called at the state where no extra verbs are
executed, thus calling *_shutup() is useless, as it's checking the
shutdown flag. Remove such superfluous calls.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# ae24c319 04-Nov-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Force to reset IEC958 status bits for AD codecs

Several bug reports suggest that the forcibly resetting IEC958 status
bits is required for AD codecs to get the SPDIF output working
properly after changing streams.

Original fix credit to Javeed Shaikh.

BugLink: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/359361

Reported-by: Robin Kreis <r.kreis@uni-bremen.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c40bd914 18-Sep-2012 David Henningsson <david.henningsson@canonical.com>

ALSA: hda - avoid non-standard "Docking" name in mixers

The standard name (and what PulseAudio picks up) is "Dock Mic",
not "Docking Mic" or "Docking-Station".

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 83012a7c 24-Aug-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Clean up CONFIG_SND_HDA_POWER_SAVE

CONFIG_SND_HDA_POWER_SAVE is no longer an experimental feature and its
behavior can be well controlled via the default value and module
parameter. Let's just replace it with the standard CONFIG_PM.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1c868452 13-Aug-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add 3stack-automute model to AD1882 codec

Added a simple support of automute for the front HP jack to AD1882
stack model. Such an addition is basically an exception -- we really
want to avoid the static quirk codes, but AD1882 parser isn't still
ready for moving to the BIOS auto-parser yet. So, as a quick fix, I
merged it for now.

In near future, we really need the big clean up of patch_analog.c to
move on to the auto-parser...

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 68cb2b55 02-Jul-2012 Takashi Iwai <tiwai@suse.de>

ALSA: Convert to new pm_ops for PCI drivers

Straightforward conversion to the new pm_ops from the legacy
suspend/resume ops.

Since we change vx222, vx_core and vxpocket have to be converted,
too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 128bc4ba 07-May-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Move BIOS pin-parser code to hda_auto_parser.c

Just code shuffles.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4740860b 20-Apr-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add snd_hda_get_default_vref() helper function

Add a new helper function to guess the default VREF pin control bits
for mic in. This can be used to set the pin control value safely
matching with the actual pin capabilities.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# cdd03ced 19-Apr-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Introduce snd_hda_set_pin_ctl*() helper functions

For setting the pin-control values more safely to match with the
actual pin capability bits, a copule of new helper functions,
snd_hda_set_pin_ctl() and snd_hda_set_pin_ctl_cache(), are
introduced. These are simple replacement of the codec verb write with
AC_VERB_SET_PIN_WIDGET but do more sanity checks and filter out
superfluous pin-control bits if they don't fit with the corresponding
pin capabilities.

Some codecs are screwed up or ignore the command when such a wrong bit
is set. These helpers will avoid such secret errors.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 29e5853d 11-Mar-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Return the created kcontrol in __snd_hda_add_vmaster()

It'll be used for adding hooks in later patches.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 18478e8b 09-Mar-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Initialize vmaster slave volumes

When the driver is changed to use vmaster or a new slave element is
added by the improvement of the parser code, user may face often the
silent output because of the muted slave mixer although Master volume
is properly set. And they complain. And I get upset.

Although such a mixer element should be initialized via "alsactl init",
it'd be more user-friendly if the known output slaves are unmuted and
set to 0dB so that user can control the volume only with Master as
default. Since Master is still set muted as default even with this
change, no risk of the speaker blow up, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9322ca54 03-Feb-2012 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add suffix argument to snd_hda_add_vmaster()

In most cases, the slave strings for vmaster are identical between
volumes and switches except for "xxx Volume" and "xxx Switch" suffix.
Now snd_hda_add_vmaster() takes the optional suffix argument so that
each string can be composed with the given suffix, and we can share the
slave name strings in both volume and switch calls nicely.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1835a0f9 27-Oct-2011 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Cache the jack-detection value

Introduce a table containing the pins and their jack-detection states
for avoiding the unnecessary verbs to check the pin status at each time.

When the unsol event is enabled via snd_hda_jack_detect_enable(), it
automatically adds the given NID to the table. Then the driver supposes
that the codec driver will set the dirty flag appropariately when an
unsolicited event is invoked for that pin.

The behavior for reading other pins that aren't registered in the table
doesn't change. Only the pins assigned to the table are cached, so far.

In near futre, this table can be extended to use the central place for
the unsolicited events of all pins, etc, and eventually include the
jack-detect kcontrols that replace the current input-jack stuff.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# da155d5b 14-Jul-2011 Paul Gortmaker <paul.gortmaker@windriver.com>

sound: Add module.h to the previously silent sound users

Lots of sound drivers were getting module.h via the implicit presence
of it in <linux/device.h> but we are going to clean that up. So
fix up those users now.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>


# 34588709 23-Sep-2011 Raymond Yau <superquad.vortex2@gmail.com>

ALSA: HDA - Add Independent Headphone for all models of ad1988/ad1989

- Add "AD198x Headphone" playback device for independent headphone playback
while playing 7.1 surround using rear panel audio jacks.

- Remove "6stack-dig-fp" model since "Headphone Playback Volume" control using
DAC0 instead of DAC1 (HDA_FRONT) was already added to all models.

- Add "Independent HP" switch to enable/disable this playback device.
When the switch is OFF, headphone use "copy front" mode to get the front
channel as the green jack.
When the switch is ON, you can play stereo sound through "AD198x Headphone"
device to headphone while playing 7.1 surround sound through "AD198x Analog"
device.
The switch cannot be changed when either "AD198x Headphone" or "AD198X Analog"
is open.

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 356aab7d 30-Aug-2011 Raymond Yau <superquad.vortex2@gmail.com>

ALSA: hda - Add Headphone Playback Volume control for ad1988/ad1989

- use DAC0 instead of DAC1 for Port-A Headphone
- assign 0x03 to spec->multiout.hp_nid except model="6stack-dig-fp"

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 2a43952a 26-Jul-2011 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Make CONFIG_SND_HDA_POWER_SAVE depending on CONFIG_PM

It makes little sense to enable power-saving without PM.
This removes SND_HDA_NEEDS_RESUME define so that we can use CONFIG_PM
in all places.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 695cd4a3 10-Jun-2011 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Disable SPDIF only when no pin config set for HP with AD1981

Some HP laptops with AD1981 have SPDIF connections, but currently the
driver disables it statically. Better to check the pin default config
to judge whether to enable or disable the SPDIF.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 74b654c9 01-Jun-2011 Stephen Warren <swarren@nvidia.com>

ALSA: hda: Virtualize SPDIF out controls

The SPDIF output controls apply to converter widgets. A future change
will create a PCM device per pin widget, and hence a set of SPDIF output
controls per pin widget, for certain HDMI codecs. To support this, we
need the ability to virtualize the SPDIF output controls. Specifically:

* Controls can be "unassigned" from real hardware when a converter is
not used for the PCM the control was created for.
* Control puts only write to hardware when they are assigned.
* Controls can be "assigned" to real hardware when a converter is picked
to support output for a particular PCM.
* When a converter is assigned, the hardware is updated to the cached
configuration.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# a01ef051 01-Jun-2011 Raymond Yau <superquad.vortex2@gmail.com>

ALSA: hda - Check pin support EAPD in ad198x_power_eapd_write

Check whether the pin supports EAPD in ad198x_power_eapd_write.

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4dffbe03 03-Jun-2011 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix HP and Front pins of ad1988/ad1989 in ad198x_power_eapd()

In ad198x_power_eapd(), wrong pin NIDs are used for controlling EAPD for
HP and Front outputs of AD1988/AD1989. These are actually same with the
ones for AD1984 & co, port-A is 0x11 and port-D 0x12.

Reported-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4e60b4f8 24-May-2011 Tony Vroon <tony@linx.net>

ALSA: hda - Force AD1988_6STACK_DIG for Asus M3N-HT Deluxe

The microphone input on the back panel (pink connector)
stopped operating correctly after an upgrade from
2.6.35 to 2.6.38; the actual problem manifests itself
as a lack of microphone bias voltage (VREF_HIZ) on
node 0x17.
With AD1988_6STACK_DIG the maximum bias voltage (VREF_80)
is applied and the headset operates correctly.

Signed-off-by: Tony Vroon <tony@linx.net>
Tested-by: Doug Redlich <pbrigade@nxltech.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 5a2d227f 19-May-2011 Adrian Wilkins <adrian.wilkins@nhs.net>

ALSA: hda - Fix input-src parse in patch_analog.c

Compare pin type enum to the pin type and not the array index.
Fixes bug#0005368.

Signed-off-by: Adrian Wilkins <adrian.wilkins@nhs.net>
Cc: <stable@kernel.org> (2.6.37 and later)
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 498f5b17 02-May-2011 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Constify fixup and other array data in patch_analog.c

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# dda14410 02-May-2011 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Constify some API function arguments

Also fixed the assignment of multiout.dac_nids to satisfy const.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 0da26922 26-Apr-2011 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Move EAPD power-down into shutup callback for AD codecs

EAPD power-down should be called also for normal shutup cases.
Let's move to there. This also fixes the compile warnings when
CONFIG_PM isn't set automatically.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 677cd904 07-Feb-2011 David Henningsson <david.henningsson@canonical.com>

ALSA: HDA: New AD1984A model for Dell Precision R5500

For codec AD1984A, add a new model to support Dell Precision R5500
or the microphone jack won't work correctly.

BugLink: http://bugs.launchpad.net/bugs/741516
Tested-by: Kent Baxley <kent.baxley@canonical.com>
Cc: stable@kernel.org
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 28220846 08-Feb-2011 Raymond Yau <superquad.vortex2@gmail.com>

ALSA: hda - simplify multistreaming playback model of ad1988

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# ea734963 17-Jan-2011 Takashi Iwai <tiwai@suse.de>

ALSA: hda - consitify string arrays

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c66ddf32 17-Jan-2011 Raymond Yau <superquad.vortex2@gmail.com>

ALSA: hda - Add add multi-streaming playback for AD1988

Attached a patch which add a new model to support multi-streaming
playback for ad1988.

playback another stereo stream through the front panel headphone on
device 2 while playback through the speakers connected to rear panel
on device 0 at the same time.

Tested with ad1988a rev2 codec on asus P5B-V motherboard.

Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 5f99f86a 04-Jan-2011 David Henningsson <david.henningsson@canonical.com>

ALSA: HDA: Rename "Mic Boost" to "Mic Boost Volume"

BugLink: http://bugs.launchpad.net/bugs/697240

If the "Volume" suffix is not given, alsa-lib gets confused and
loses the dB information at the simple element level.

Boosts generally affects both playback and capture, as they are
applied early in the chain. Hence no "Playback" or "Capture" in
the suffix.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 0e7adbe2 25-Oct-2010 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Disable sticky PCM stream assignment for AD codecs

The sticky PCM stream assignment introduced in 2.6.36 kernel seems
causing problems on AD codecs. At some time later, the streaming no
longer works by unknown reason. A simple workaround is to disable
sticky-assignment for these codecs.

Tested-by: Vasily Khoruzhick <anarsoul@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 0f9f1ee9 21-Sep-2010 Luke Yelavich <luke.yelavich@canonical.com>

ALSA: hda - Add Dell Latitude E6400 model quirk

BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/643891

Set the Dell Latitude E6400 (1028:0233) SSID to use AD1984_DELL_DESKTOP

Cc: stable@kernel.org
Signed-off-by: Luke Yelavich <luke.yelavich@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 10a20af7 09-Sep-2010 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Improve the input source name labels

This patch improves the input-source label strings to be generated from
the pin information instead of fixed strings per AUTO_PIN_* type.
This gives more suitable labels, especially for mic and line-in pins.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 86e2959a 09-Sep-2010 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove AUTO_PIN_FRONT_{MIC|LINE}

We can assign multiple pins to a single role now, let's reduce the
redundant FRONT_MIC and FRONT_LINE. Also, autocfg->input_pins[] is
no longer used, so this is removed as well.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b5786e85 09-Sep-2010 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Keep char arrays in input_mux items

Keep char array in the input_mux item itself instead of pointing to
an external string. This is a preliminary work for improving the
input-mux name based on the pin role.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9e042e71 30-Aug-2010 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Use new inputs[] field to parse input-pins for AD codecs

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 68c18697 03-Aug-2010 Jerone Young <jerone.young@canonical.com>

ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed

Just as with the X301. The X300 does not have a way to do SPDIF either.
It does not have a dock connector, nor does it have the SPDIF through
the headphone jack.

This patch fixes it so X300 does not show SPDIF, since it cannot do it.

To add all Lenovo Thinkpads had different codec subsytem IDs:

X300:
http://launchpadlibrarian.net/34862838/Card0.Codecs.codec.0.txt

Signed-off-by: Jerone Young <jerone.young@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b7d2526f 19-Apr-2010 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix resume from StR of HP 2510p with docking-station

When HP laptop with AD1981 codec is suspended and the docking-station
is connected before the resume, the outputs get confused, and wrongly
routed still to the speaker. This is because of a change in 2.6.34-rc1
ea52bf260ecbb175339af3178c15788df21b7516
ALSA: hda: Add powerdown for Analog Devices HDA codecs

The problem was the added resume callback that doesn't consider the
modified init hook. The fix is simply remove the resume callback here
and make the resume normally. This doesn't change any behavior intended
in the commit above (for shutting down the sound at suspend) but only
fixes the resume.

Reported-and-tested-by: Frans Pop <elendil@planet.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b8e80cf3 30-Mar-2010 Daniel T Chen <crimsun@ubuntu.com>

ALSA: hda: Fix 0 dB offset for Lenovo Thinkpad models using AD1981

BugLink: https://launchpad.net/bugs/551606

The OR's hardware distorts at PCM 100% because it does not correspond to
0 dB. Fix this in patch_ad1981() for all models using the Thinkpad
quirk.

Reported-by: Jane Silber
Cc: <stable@kernel.org>
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 0bf0e5a6 26-Mar-2010 Jaroslav Kysela <perex@perex.cz>

ALSA: hda-intel - AD1984 thinkpad - add analog beep input control

For Lenovo Thinkpad T61/X61, the analog beep input is connected
to node 0x20, index 3. Move the digital beep mute/volume controls
as "Digital Beep" and create analog beep controls for mentioned node.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# ba579eb7 20-Feb-2010 Daniel T Chen <crimsun@ubuntu.com>

ALSA: hda: Use 3stack quirk for Toshiba Satellite L40-10Q

BugLink: https://bugs.launchpad.net/bugs/524948

The OR has verified that the existing model=laptop-eapd quirk does not
function correctly but instead needs model=3stack. Make this change
so that manual corrections to module-init-tools file(s) are not
required.

Reported-by: Lasse Havelund <lasse@havelund.org>
CC: <stable@kernel.org>
Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# fd0b092a 21-Jan-2010 Jaroslav Kysela <perex@perex.cz>

ALSA: hda - AD1988 codec - fix SPDIF-input mixer initialization (unmute)

The SPDIF-input pin 0x1c is muted by default in hardware. Unmute appropriate
pin to get captured samples instead zeros. Tested on Lenovo Thinkstation.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# ea52bf26 27-Dec-2009 Daniel T Chen <crimsun@ubuntu.com>

ALSA: hda: Add powerdown for Analog Devices HDA codecs

This patch ports powerdown fixes to AD198x. Currently we only turn off
Front and HP for suspend, but this is easily extended for additional
nids.

Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 729d55ba 25-Dec-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Disable tigger at pin-sensing on AD codecs

Analog Device codecs seem to have problems with the triggering of
pin-sensing although their pincaps give the trigger requirements.
Some reported that constant CPU load on HP laptops with AD codecs.

For avoiding this regression, add a flag to codec struct to notify
explicitly that the codec doesn't suppot the trigger at pin-sensing.

Tested-by: Maciej Rutecki <maciej.rutecki@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 21949f00 23-Dec-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix NID association for capture mixers

Fix the wrong implementation of NID <-> kctl mapping for capture mixers
introduced by the ocmmit 5b0cb1d850c26893b1468b3a519433a1b7a176be.
So far, the driver returns an error at probe.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 5e26dfd0 10-Dec-2009 Jaroslav Kysela <perex@perex.cz>

ALSA: hda - simplify usage of HDA_SUBDEV_AMP_FLAG

The HDA_SUBDEV_NID_FLAG is duplicate for amplifier control elements. Move
get_amp_nid_() call to the snd_hda_ctl_add() function.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 9e3fd871 08-Dec-2009 Jaroslav Kysela <perex@perex.cz>

ALSA: hda - introduce HDA_SUBDEV_AMP_FLAG (ControlAmp in proc)

The purpose of this changeset is to show information about amplifier
setting in the codec proc file. Something like:

Control: name="Front Playback Volume", index=0, device=0
ControlAmp: chs=3, dir=Out, idx=0, ofs=0
Control: name="Front Playback Switch", index=0, device=0
ControlAmp: chs=3, dir=In, idx=2, ofs=0

Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 5b0cb1d8 08-Dec-2009 Jaroslav Kysela <perex@perex.cz>

ALSA: hda - add more NID->Control mapping

This set of changes add missing NID values to some static control
elemenents. Also, it handles all "Capture Source" or "Input Source"
controls.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 01f5966d 13-Dec-2009 Daniel T Chen <crimsun@ubuntu.com>

ALSA: hda: Fix max PCM level to 0 dB for AD1981_HP

BugLink: https://bugs.launchpad.net/bugs/461062

The original reporter states that PCM maxes at +12 dB and results in
very bad distortion. Cap PCM at 0 dB to resolve this symptom.

Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# ee6e365e 08-Dec-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Generalize EAPD inversion check in patch_analog.c

Add a flag to spec field so that the EAPD inversion can be checked
outside the relevant control callbacks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# d56757ab 18-Nov-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Replace the rest of jack-detections with snd_hda_jack_detect()

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 67d634c0 16-Nov-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix build errors with CONFIG_SND_HDA_INPUT_BEEP=n

Disable beep-related codes when CONFIG_SND_HDA_INPUT_BEEP isn't set.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9c96fa59 16-Nov-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Get rid of magic digits for subdev hack

Define a proper const for a magic 31bit flag for subdev / NID setup
with a brief comment.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4d02d1b6 12-Nov-2009 Jaroslav Kysela <perex@perex.cz>

ALSA: hda - proc - add support for dynamic controls to mixer<->NID mapping

This patch adds support for dynamically created controls to proc codec file
(Control: lines).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 3911a4c1 11-Nov-2009 Jaroslav Kysela <perex@perex.cz>

ALSA: hda - proc - introduce Control: lines to show mixer<->NID assignment

This is an initial patch to show universal control<->NID assigment in
proc codec file. The change helps to debug codec related problems.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 123c07ae 21-Oct-2009 Jaroslav Kysela <perex@perex.cz>

ALSA: hda_intel: Digital PC Beep - change behaviour for input layer

Original implementation was keeping registered input device for SND_BEEP
and SND_TONE events all time. This patch changes this behaviour:
If digital PC Beep is turned off using universal control switch,
the input device is unregistered.

Explanation: The kd_mksound() send SND_BEEP and SND_TONE only to last
registered device acceping those events. It means that the HDA Intel
audio driver blocks also the internal PC Speaker device (pcspkr.c
driver) even if the HDA Beep is muted. The user can easy disable
all beeps using 'setterm -blength 0' or 'xset b off' command.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# a72cb4bc 27-Sep-2009 Miguel de Barros <miguel.de.barros@bluewin.ch>

ALSA: hda - Analog Devices AD1984A add HP Touchsmart model

Reference: ALSA bug #0004614
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=4614

port-A (0x11) - front hp-out
port-D (0x12) - rear line out
port-E (0x1c) - front mic-in
port-F (0x16) - Internal speakers
digital-mic (0x17) - Internal mic

init verbs, mixers, jack sensing and PCI_QUIRK to support this hardware

Signed-off-by: Miguel de Barros <miguel.de.barros@bluewin.ch>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 2ad81ba0 01-Sep-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Unmute docking line-out as default with AD1984A codec

Unmute the docking-station line-out as default on machines with
AD1984A codec chip. It can be still muted via "Dock" mixer switch.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# fe7e5681 31-Aug-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add missing GPIO initialization for AD1984A laptop model

A similar initialization of GPIO1 pin like mobile model is needed
for laptop model, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 17bbaa6f 29-Aug-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add support of docking auto-mute/mic for AD1984A laptop model

Add the support of automatic mute and mic-switching of the docking
station HP and mic plugs for AD1984A laptop model for some HP machines.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 286f5875 27-Aug-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add more quirk for HP laptops with AD1984A

More entries for HP laptops to get them working properly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 150fe14c 19-Aug-2009 Wu Fengguang <fengguang.wu@intel.com>

ALSA: hda: enable speaker output for Compaq 6530s/6531s

HP Compaq 6530s and 6531s internal speaker is silence or becomes silence
within 1 minute after fresh boot. It is found that pin 0x1c must be set to
PIN_OUT mode to make the speaker work. This is weird - line-in pin 0x1c and
speaker pin 0x16 seem to be unrelated.

The codec differences before/after patch are:

@@ Node 0x17 [Pin Complex] wcaps 0x40020b:
Pin Default 0x41a6e130: [N/A] Mic at Ext Rear
Conn = Digital, Color = White
DefAssociation = 0x3, Sequence = 0x0
Misc = NO_PRESENCE
- Pin-ctls: 0x24: IN
+ Pin-ctls: 0x40: OUT
@@ Node 0x1c [Pin Complex] wcaps 0x40018d:
Pin Default 0x41813021: [N/A] Line In at Ext Rear
Conn = 1/8, Color = Blue
DefAssociation = 0x2, Sequence = 0x1
- Pin-ctls: 0x24: IN VREF_80
+ Pin-ctls: 0x40: OUT VREF_HIZ
Unsolicited: tag=00, enabled=0
Connection: 1
0x24

Tests show that it won't impact (external) Mic recording.

Reported-by: "Lin, Ming M" <ming.m.lin@intel.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9a11f1aa 28-Jul-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Reword information messages for BIOS auto-probing mode

The sentense "Unknown model for xxx, ..." makes people too nervous
and drives them to a direction to a wrong "fix" by giving any
mismatching model option.

Let's rephrase the messages to be more nice and easy (at least that
won't make people suspect conspiracies).

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4012ade9 22-Jul-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Restore GPIO1 properly at resume with AD1984A

The commit 099db17e66294b02814dee01c81d9abbbeece93e introduced a
regression at suspend/resume where the GPIO1 bit isn't properly
restored, thus the speaker output gets muted initially after resume.

The fix is simple, use the cached write for storing GPIO data.

Reference: Novell bnc#522764
https://bugzilla.novell.com/show_bug.cgi?id=522764

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 099db17e 02-Jul-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add GPIO1 control at muting with HP laptops

HP laptops with AD1984A codecs (at least mobile models) need to set
GPIO1 appropriately to indicate the mute state. The BIOS checks this
bit to judge whether the mute on or off is sent via F8 key.
Without changing this bit, the BIOS can be confused and may toggle
the mute wrongly.

Reference: Novell bnc#515266
https://bugzilla.novell.com/show_bug.cgi?id=515266

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# ff848471 01-Jul-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add quirk for HP 6930p

Added a quirk model=laptop for HP 6930p (103c:30dc) with AD1984A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c912e7a5 24-Jun-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix support for Samsung P50 with AD1986A codec

Samsung P50 requires the HP auto-muting unlike other Samsung models.
Added a new model=samsung-p50 to support this.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 03c405ad 24-Jun-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Generalize the pin-detect quirk for Lenovo N100

Add a new flag to ad_spec struct so that the same hack can be used for
any other models (if any). This also allows other models to reuse the
auto-mute functions.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 16d11a82 24-Jun-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Simplify AD1986A mixer definitions

Split mixer element arrays of AD1986A models to several pieces so that
each model can share the same mixer arrays.
This removes lots of duplicated data.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 7315613f 23-Apr-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix init verbs of AD1884A mobile model

The current ad1884a-mobile model has a problem that the speaker output
doesn't work sometimes after boot or power-saving on some HP laptops.
It seems that the verbs accessing to the non-functional widgets cause
this problem.

This patch simplifies the init verbs for mobile model not to touch
unnecessary setups so that it avoids the speaker-mute problem.

Reference: Novell bnc#495668
https://bugzilla.novell.com/show_bug.cgi?id=495668

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4dc1f87f 16-Apr-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add upper-limit of mixer amp for AD1884A-laptop model, too

Add the upper-limit of mixer amp for AD1884A-laptop model just like
the mobile model for some HP laptops.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# bca68467 06-Apr-2009 Akinobu Mita <akinobu.mita@gmail.com>

ALSA: hda - add missing comma in ad1884_slave_vols

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 873dc78a 25-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Clean up / fix quirks for HP laptops with AD1984A

Use SND_PCI_QUIRK_MASK() to clean up / support better HP laptops with
AD1984A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 13c989be 23-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Don't give over 0dB volume for AD1984A HP laptops

Set the upper limit 0dB to the volume of mixer amp 0x20 for
AD1984A HP laptops. The overloaded volume may damage the internal
speaker.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 2f334f92 20-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove codec-specific pin save/restore functions

Replace the accessor to pin defaults with the common code for caching.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c2312756 16-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Clean up quirks for HP laptops with AD1984A

Clean up quirks for HP laptops with AD1984A using SND_PCI_QUIRK_MASK()

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9411e21c 13-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add snd_hda_multi_out_dig_cleanup()

Added the helper function snd_hda_multi_out_dig_cleanup() to clean up
the digital outputs with multi setup. This call is needed in cases
the codec supports multiple digital outputs as slaves. Otherwise the
slave widgets aren't properly cleaned up.

For a single digital output (e.g. in patch_conexant.c), this call isn't
needed.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 3a08e30d 13-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add missing terminator in slave dig-out array

Added the missing terminator for ad1989b_slave_dig_outs[].

Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 0852d7a6 11-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Detect multiple digital-out pins

Detect multiple digital-out pins in snd_hda_parse_pin_defconfig().
The dig_out_pin and dig_out_type fields become arrays.

The codec parser still doesn't use this multiple pins detection, though.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# dea0a509 09-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Clean up quirk lists

Clean up quirk lists with bit masks.
Also, sorted in numerical order for alc662_cfg_tbl[].

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c5a4bcd0 06-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Use digital beep for AD codecs

Use digital beep instead of analog pc-beep for AD codecs.
Create the beep mixer controls dynamically on demand.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 632da732 05-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add quirk for another HP laptop

Add model=laptop entry for another HP laptop (103c:3077) with AD1984A.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 67f7857a 04-Feb-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add quirk for HP zenith laptop

Added model=laptop for another HP laptop (103c:3072) with AD1984A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 70040c07 23-Jan-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix wrong initial verb for AD1984 thinkpad model

The docking mic-boost (0x25) has no mute bit.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 60e388e8 22-Jan-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix invalid verbs for mic-boosts on AD1884*

The mic-boosts (0x14 and 0x15) on AD1884* codecs are input-amps,
not output-amps. Fix the invalid initialization verbs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 19a2d3e9 22-Jan-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove invalid amp initializations for AD1988* codecs

The ADC widgets on AD1988* codecs have no amp controls.
Remove invalid initialization verbs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 6d6e17de 22-Jan-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix initial verbs for mic-boosts on AD1981HD

The mic boosts (NID 0x08 and 0x18) are input-amps, not output-amps.
Fix the initial verbs for them.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c247ed6f 07-Jan-2009 Clemens Fruhwirth <clemens@endorphin.org>

ALSA: hda - Fix typos for AD1882 codecs

Fixed typos of codec-id checks for AD1882/AD1882A.

Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# d5337deb 07-Jan-2009 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add quirk for HP 2230s

Added a quirk for HP 2230s, model=laptop, with AD1984A codec.
Reference: Novell bnc#461660
https://bugzilla.novell.com/show_bug.cgi?id=461660

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 11d518e0 10-Dec-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add quirk for HP6730B laptop

Added model=laptop for HP 6730B laptop with AD1984A codec.
Reference: Novell bnc#457909
https://bugzilla.novell.com/show_bug.cgi?id=457909

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: stable@kernel.org


# 1289e9e8 27-Nov-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Modularize HD-audio driver

Split the monolithc HD-audio driver into several pieces:
- snd-hda-intel HD-audio PCI controller driver; loaded via udev
- snd-hda-codec HD-audio codec bus driver
- snd-hda-codec-* Specific HD-audio codec drivers

When built as modules, snd-hda-codec (that is invoked by snd-hda-intel)
looks up the codec vendor ID and loads the corresponding codec module
automatically via request_module().

When built in a kernel, each codec drivers are statically hooked up
before probing the PCI.

This patch adds appropriate EXPORT_SYMBOL_GPL()'s and the module
information for each driver, and driver-linking codes between
codec-bus and codec drivers.

TODO:
- Avoid EXPORT_SYMBOL*() when built-in kernel
- Restore __devinit appropriately depending on the condition

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1725b82a 20-Nov-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - make laptop-eapd model back for AD1986A

The changes specific for Samsung laptops seem unapplicable to other
hardware models like ASUS. The mic inputs are lost on such hardware
by the change 5d5d5f43f1b835c375de9bd270cce030d16e2871.

This patch adds back the old laptop-eapd model, and create a new
model "samsung" for the new one specific to Samsung laptops with
automatic mic selection feature.

Reference: kernel bugzilla #12070
http://bugzilla.kernel.org/show_bug.cgi?id=12070

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 25424831 10-Nov-2008 Travis Place <wishie@wishie.net>

ALSA: hda - Make the HP EliteBook 8530p use AD1884A model laptop

Added a QUIRK to patch_analog.c for the HP Elitebook 8530p
(IDs 0x103c:0x30e7) to use AD1884A model 'laptop' by default.
Playback and Capture confirmed working.

Signed-off-by: Travis Place <wishie@wishie.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 65b92e5c 08-Nov-2008 Michel Marti <mma@objectxp.com>

ALSA: hda - Add another HP model (6730s) for AD1884A

Added model=laptop for another HP machine (103c:3614) with AD1884A
codec.

Signed-off-by: Michel Marti <mma@objectxp.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 5695ff44 28-Oct-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add another HP model for AD1884A

Added a quirk entry for another HP mobile device with AD1884A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 603c4019 30-Jul-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Use generic array helpers

Use generic array helpers to simplify array handling in snd-hda-intel.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f51ff993 13-Sep-2008 Robin H. Johnson <robbat2@orbis-terrarum.net>

ALSA: HDA: patch_analog: Quirk for Asus P5Q Premium/Pro boards.

Use 6STACK_DIG for the AD2000BX variant of the AD1989B chip used by Asus
on their Asus P5Q Premium and Pro boards.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 9cae0c63 13-Sep-2008 Robin H. Johnson <robbat2@gentoo.org>

ALSA: HDA: patch_analog: Implement multiple outputs for AD1988

Implement the slave_dig_outs for AD1989 cards. Untested due to lack of
hardware.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# e8bfc6c1 13-Sep-2008 Robin H. Johnson <robbat2@gentoo.org>

ALSA: HDA: patch_analog: Fix SPDIF output on AD1989B

The SPDIF pins for AD1989 are not enabled by default. Set OUT bit so that they
actually work. Also initialize the HDMI SPDIF at the same time.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 9e44c6e4 18-Aug-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add AD1882A codec support

Added the basic support of AD1882A codec chip.
It's almost compatible with AD1882, but with a digital mic and some
differences in connections.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# db3da6c1 11-Aug-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - initialize node 0x21 properly on AD1988 codecs

The widget node 0x21 should be initialized as unmuted/full (0dB)
as default. This will reduce additional manual work by user at the
first time use.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 470eaf6b 30-Jun-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Add missing Thinkpad Z60m support

Added the missing SSID of Thinkpad Z60m for model=thinkpad with
AD1981HD.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 43785eae 16-Jun-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode

Don't create mixer volume elements for Headphone and Speaker if they
use the same DAC as normal line-outs on AD1988. Otherwise the amp
value gets screwed up, e.g.
https://bugzilla.novell.com/show_bug.cgi?id=398255

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 149b1544 12-Jun-2008 Takashi Iwai <tiwai@suse.de>

ALSA: hda - Remove unused mutex

Removed unused mutex from patch_*.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 269ef19c 30-May-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda - Fix mic input on HP2133

The mic pins are wrongly assigned on AD1884A mobile model.
The mic handling is fixed for the automatic mic selection, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b9e16bc5 21-May-2008 Travis Place <wishie@wishie.net>

[ALSA] hda - Add model for ASUS P5K-E/WIFI-AP

Added a config table entry for the ASUS P5K-E/WIFI-AP mainboard (ID
1043:8227) to use AD1988_6STACK_DIG

Signed-off-by: Travis Place <wishie@wishie.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 05808ecc 23-Apr-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda - Fix Thinkpad X300 digital mic

TP X300 digital mic requires additional init verbs with magic COEFs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 3adb8abc 15-Apr-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda - Add support of AD1989A/AD1989B

Added the support of AD1989A and AD1989B codecs.
These codecs can have multiple SPDIF devices, but currently we handle
only one SPDIF. If any real devices with two SPDIF interfaces (likely
one for SPDIF and one for HDMI), we'll fix this rightly.

Otherwise, these codecs are pretty similar with AD1988.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f081374b 17-Mar-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Support of Lenovo Thinkpad X300

Added the model thinkpad for Lenovo Thinkpad X300 with AD1984A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 888afa15 18-Mar-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - keep the format verb at closing PCM streams

Keep the format verb at closing PCM streams.
Introduced snd_hda_codec_cleanup_stream() for the parcicular purpose.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 3c9a3203 29-Feb-2008 Harvey Harrison <harvey.harrison@gmail.com>

[ALSA] sound: hda: missing includes of hda_patch.h

Move the array declaration to hda_codec.c where it is used and add includes
where the individual presets are declared.

Fixes the following sparse warnings:
sound/pci/hda/patch_realtek.c:13744:25: warning: symbol 'snd_hda_preset_realtek' was not declared. Should it be static?
sound/pci/hda/patch_cmedia.c:729:25: warning: symbol 'snd_hda_preset_cmedia' was not declared. Should it be static?
sound/pci/hda/patch_analog.c:3656:25: warning: symbol 'snd_hda_preset_analog' was not declared. Should it be static?
sound/pci/hda/patch_sigmatel.c:3995:25: warning: symbol 'snd_hda_preset_sigmatel' was not declared. Should it be static?
sound/pci/hda/patch_si3054.c:286:25: warning: symbol 'snd_hda_preset_si3054' was not declared. Should it be static?
sound/pci/hda/patch_atihdmi.c:156:25: warning: symbol 'snd_hda_preset_atihdmi' was not declared. Should it be static?
sound/pci/hda/patch_conexant.c:1721:25: warning: symbol 'snd_hda_preset_conexant' was not declared. Should it be static?
sound/pci/hda/patch_via.c:1962:25: warning: symbol 'snd_hda_preset_via' was not declared. Should it be static?

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b26451c0 26-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add docking-station mic input for Thinkpad X61

Added the docking-stationc mic input to the capture source list
for Thinkpad X61.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1c82ed1b 18-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] Keep private TLV entry in vmaster itself

Use a private array for TLV entries of virtual master controls instead
of (supposed) static array. This cleans up the existing codes.

Also, now vmaster assumes the simple dB-range TLV that is the only type
it can handle.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b40b04ad 16-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add model=mobile for AD1884A & co

Added the new model mobile for AD1884A and compatible codecs.
It's a reduced version of model=laptop.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c5059259 16-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add support of AD1883/1884A/1984A/1984B

Added the support of new AD codecs: AD1883, AD1884A, AD1984A and AD1984B.
These are almost compatible except for additional digital pins, etc.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9a08160b 12-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add "IEC958 Default PCM" switch

Added a new mixer switch to enable/disable the sharing of the default
PCM stream with analog and SPDIF outputs. When "IEC958 Default PCM"
switch is on, the PCM stream is routed both to analog and SPDIF outputs.
This is the behavior in the earlier version.

Turning this switch off has a merit for some codecs, though. Some codec
chips don't support 24bit formats for SPDIF but only for analog outputs.
In this case, you can use 24bit format by disabling this switch.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 5d5d5f43 11-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Implement auto-mic jack sensing on Samsung laptops

Implemented the auto-mic jack sensing for Samsung laptops with AD1986A
codec chip (model=laptop-eapd).

The hardware uses pin 0x1d and 0x1f for the internal and external
mics, respectively.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f0824812 11-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix automute of AD1981HD hp model

Reprogram the speaker-pin setting at each HP pin plug to make sure
the spekaer auto-muting on AD1981HD hp model.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 7ba72ba1 06-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-intel - Fix PCM device number assignment

In the current scheme, PCM device numbers are assigned incrementally
in the order of codecs. This causes problems when the codec number
is irregular, e.g. codec #0 for HDMI and codec #1 for analog. Then
the HDMI becomes the first PCM, which is picked up as the default
output device. Unfortuantely this doesn't work well with normal
setups.

This patch introduced the fixed device numbers for the PCM types,
namely, analog, SPDIF, HDMI and modem. The PCM devices are assigned
according to the corresponding PCM type. After this patch, HDMI will
be always assigned to PCM #3, SPDIF to PCM #1, and the first analog
to PCM #0, etc.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# fb304ce5 25-Feb-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix AD1988 capture elements

The some indices of capture elements of AD1988 are wrongly assigned.
This patch fixes it. See ALSA bug#3795
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3795

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 0aaa22e5 29-Jan-2008 Douglas Kosovic <douglask@itee.uq.edu.au>

[ALSA] hda-codec - Add Dell T3400 support

Added the support for Dell T3400 with AD1984 codec chip.
ALSA bug#3699:
https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3699

Signed-off-by: Douglas Kosovic <douglask@itee.uq.edu.au>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 8c0d9649 27-Jan-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add SPDIF output support to AD1986a laptop-eapd model

The SPDIF output on AD1986A laptop-eapd model is disabled although
some Samsung laptops have SPDIF output. Enable it after checking the
pin default config.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 4806ef0c 26-Jan-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add SPDIF controls as slave on AD codecs

The AD codecs have hardware SPDIF volume/switch controls but they
are not assigned to the slave list for virtual master controls.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 628ed133 25-Jan-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add missing slave for AD1884 master switch

The Speaker switch is missing in the slave list.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 52a1d4f9 12-Jan-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Remove obsolete FIXME's

Removed 'FIXME' comments that have been already fixed.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 2134ea4f 10-Jan-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add virtual master controls

Add master controls using vmaster to codecs that have no real hardware
master volume registers.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 9004acc7 08-Jan-2008 Takashi Iwai <tiwai@suse.de>

[ALSA] Remove sound/driver.h

This header file exists only for some hacks to adapt alsa-driver
tree. It's useless for building in the kernel. Let's move a few
lines in it to sound/core.h and remove it.
With this patch, sound/driver.h isn't removed but has just a single
compile warning to include it. This should be really killed in
future.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# ebf00c54 06-Jan-2008 Jerone Young <jerone@gmail.com>

[ALSA] hda-codec - Add IEC958 digital out support for Lenovo Thinkpads T61/X61

This patch adds IEC958 digital out support for the AD1984 sound card.
This card can be found in Lenovo Thinkapds T61/X61. The digital out is
not located on the Thinkpad, but optional docking station (it's coxial
digital out). I've add this support as it is done the exact same way
for the AD1983 & AD1884.
I have tested this patch with my Lenovo Thinkpad T61 hooked up to a
docking station (that has the digital coxial) and then run to my home
theater reciever. Works like a charm :-)

Signed-off-by: Jerone Young <jerone@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 7db756f2 24-Dec-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Sort ad1986a cfg table

Sort the ad1986a config table by PCI SSID (the last toshiba entry was
added wrongly).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 6b7eb196 20-Dec-2007 Jiang Zhe <zhe.jiang@intel.com>

[ALSA] hda-codec - Device ID for Toshiba laptop which uses AD1986A

The model laptop-eapd get rid of the high-pitched noise.
(ALSA bug#3662)

Signed-off-by: Jiang Zhe <zhe.jiang@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# ac3e3741 17-Dec-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - sort pci quirk list

Sort pci quirk list in the order of PCI SSID.
This makes easier to find out the buggy duplicated entries.
Thanks to Andy Shevchenko for providing the sort script.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 695005cf 13-Dec-2007 Johannes Stezenbach <js@sig21.net>

[ALSA] hda-intel: Enable Analog CD Input from internal ATAPI connector on Asus M2N-SLI

Enable Analog CD Input from internal ATAPI connector on Asus M2N-SLI.

Signed-off-by: Johannes Stezenbach <js@sig21.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 68ea7b2f 15-Nov-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Check value range in ctl callbacks

Check the value ranges in ctl put callbacks properly so that
invalid values won't be stored or written to registers.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# d9f9b8ba 05-Nov-2007 Tobin Davis <tdavis@dsl-only.net>

[ALSA] HDA: Add Asus VX1 support

Simple patch to add the Asus VX1 laptop to the Analog Devices pci quirk list.

Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# d29240ce 25-Oct-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Disable shared stream on AD1986A

AD1986A has a hardware problem that it cannot share a stream with
multiple pins properly. The problem occurs e.g. when a volume is changed
during playback.
So far, hda-intel driver unconditionally assigns the stream to multiple
output pins in copy-front mode, and this should be avoided for AD1986A
codec.
The original fix patch was by zhejiang <zhe.jiang@intel.com>.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 41923e44 22-Oct-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix possible array overflow

dac_nids arrays in each codec support code may have up to 5 items
when assigned from the auto-configurator. Some codec codes have
less numbers than the possible max. This patch defines the constant
and fixes the array definitions.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 53eb1b85 17-Oct-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix AD1986A Lenovo auto-mute

The jack detection bit on AD1986A Lenovo N100 seems inverse from
the standard definition. Now fixed the detection properly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>


# 8ab78c74 06-Sep-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add laptop-automute model for AD1986A

Added a new model laptop-automute for AD1986A, which has the HP jack
detection and auto-muting of the speaker. Currently, it's used for
Lenovo N100.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 20a45e86 15-Aug-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix Master volume with AD1986A laptop model

Use the bind-control for NID 0x1a and 0x1b as Master volume control
on AD1986 model=laptop as well as model=laptop-eapd. This will fix
the missing output on some devices.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# cb53c626 10-Aug-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-intel - Add POWER_SAVE option

Added CONFIG_SND_HDA_POWER_SAVE kconfig. It's an experimental option
to achieve an aggressive power-saving. With this option, the driver
will turn on/off the power of each codec and controller chip dynamically
on demand.
The patch introduces a new module option 'power_save'. It specifies
the second of time-out for automatic power-down. As default, it's
10 seconds. Setting 0 means to suppress the power-saving feature.
The codec may have analog-input loopbacks, which are usually represented
by mixer elements such as 'Mic Playback Switch' or 'CD Playback Switch'.
When these are on, we cannot turn off the mixer and the codec chip has
to be kept on. For bookkeeping these states, a new codec-callback is
introduced.
For the bus-controller side, a new callback pm_notify is introduced,
which can be used to turn on/off the contoller appropriately.
Note that this power-saving might cause slight click-noise at
power-on/off. Also, it might take some time to wake up the codec, and
might even drop some tones at the very beginning. This seems to be the
side-effect of turning off the controller chip.
This turn-off of the controller can be disabled by undefining
HDA_POWER_SAVE_RESET_CONTOLLER in hda_intel.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# cca3b371 10-Aug-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Clean up bind-controls

We have already a generic bind-control helper, so let's clean up the codes
using it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 47fd830a 10-Aug-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - add snd_hda_codec_stereo() function

Added snd_hda_codec_amp_stereo() function that changes both of stereo
channels with the same mask and value bits. It simplifies most of
amp-handling codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 82beb8fd 10-Aug-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - optimize resume using caches

So far, the driver looked the table of snd_kcontrol_new used for creating
mixer elements and forces to call each of its put callbacks in PM resume
code. This is too ugly and hackish.
Now, the resume is simplified using the codec amp and command register
caches. The driver simply restores the values that have been written
in the cache table. With this simplification, most codec support codes
don't require any special resume callback.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 532d5381 27-Jul-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add a generic bind-control helper

Added callbacks for a generic bind-control of mixer elements.
This can be used for creating a mixer element controlling multiple
widgets at the same time. Two macros, HDA_BIND_VOL() and HDA_BIND_SW(),
are introduced for creating bind-volume and bind-switch, respectively.
It taks the mixer element name and struct hda_bind_ctls pointer, which
contains the real control callbacks in ops field and long array for
private_value of each bound widget.
All widgets have to be the same type (i.e. the same amp capability).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# bddcf541 24-Jul-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix AD1988 SPDIF output

The SPDIF output on AD1988 had some problems due to the wrongly routed
analog loopback to SPDIF. This patch fixes the implementation of
'IEC958 Playback Source' mixer to handle the amp bits of mixer widget
0x1d correctly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# a5ce8890 23-Jul-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] Clean up with common snd_ctl_boolean_*_info callbacks

Clean up codes using the new common snd_ctl_boolean_*_info() callbacks.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 0ac8551e 20-Jun-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add AD1882 codec support

Added AD1882 codec support. It has currently two models, 3stack and
6stack.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# b959d1f8 07-Jun-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix Thinkpad X61/T61 outputs

Enable EAPD bit on Thinkpad X61/T61. The recent model requires it
explicitly to make any sounds. In future, it should be toggled
automatically on demand.
Also, added a beep volume/switch. Some people like it although I
don't understand why :)

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 538c49c4 04-Jun-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix AD1984 basic model

Fix the amp direction of digital mic capture volume mixer, which
resulted in -EINVAL.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 3b194401 04-Jun-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix Oops with AD1984 thinkpad model

Fixed Oops with AD1984 thinkpad model. Also fixed the wrong
init verbs for NID 0x03 and 0x04, which have apparently no mute
bit.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 0ba7962b 23-May-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix wrong mixer controls for AD1984 thinkpad model

Fixed the wrong mixer controls for AD1984 thinkpad model.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 2bac647c 18-May-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add AD1884 / AD1984 codec support

Added the support of AD1884 and AD1984 codec chips.
Also experimental quirks for Thinkpad T61/X61 laptops with AD1984.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 35b26722 04-May-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix AD1988 SPDIF playback route control

Fix AD1988 SPDIF playback route control for selecting ADC1-3.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 658fba0e 23-Apr-2007 Tobin Davis <tdavis@dsl-only.net>

[ALSA] hda-codec - Add support for Asus A8JN Laptop

This patch adds support for the Asus A8JN Laptop.
Other modes were tested, this one worked best.

Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# fb956c16 18-Apr-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix surround output on AD1986A

Fix surround output on AD1986A codec 3stack model.
The following bugs are fixed:
- init verbs for 3stack disabled the shared surround outputs
- a channel mode change resulted in the mute of surrounds

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 6b97eb45 05-Apr-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix SPDIF output

Fix SPDIF output (at least on Realtek codecs). The DIGI_CONVERT verbs
have to be reset before the PCM stream is set up. Otherwise the digital
setup is screwed up.
Also, check the AMP capability before setting AMP of the digital out
widget.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 1aba2bc3 21-Mar-2007 Andrea Arcangeli <andrea@suse.de>

[ALSA] hda-codec - Fix front/rear mic inputs on AD1986A codec

Fix the front/rear mic inputs on ASUS M2NPV-VM board with AD1986A
codec chip (3stack model).

Signed-off-by: Andrea Arcangeli <andrea@suse.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 18768991 12-Mar-2007 Tobin Davis <tdavis@dsl-only.net>

[ALSA] hda-codec - more systems for Analog Devices

This patch adds support for more systems using Analog Devices codecs.
Asus P5B-DLX - AD1988
Toshiba U205 - AD1981
Lenovo M55 - AD1986
Samsung R55 - AD1986

Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# a64c8cd6 12-Mar-2007 Tobin Davis <tdavis@dsl-only.net>

[ALSA] hda-codec - Add suppoprt for Asus M2N-SLI motherboard

This patch adds a cfg_tbl to the ad1988 code with the Asus M2N-SLI as
it's first member.

Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# fe8970b4 26-Feb-2007 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add missing Mic Boost for AD1986A codec

Added the missing 'Mic Boost' switch for AD1986A codec.
This influences largely on the recording level of mic-input on some boards.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# f36090fe 08-Jan-2007 Tobin Davis <tdavis@dsl-only.net>

[ALSA] hda-codec - Add support for Samsung Q1 Ultra

This adds support for the Samsung Q1 Ultra tablet pc.

Signed-off-by: Tobin Davis <tdavis@dsl-only.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# f5fcc13c 24-Nov-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Use snd_pci_quirk_lookup() for board config lookup

Use snd_pci_quirk_lookup() for looking up a board config table.
The config table is sorted in numerical order of PCI SSIDs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# e3a4050c 16-Nov-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add model for ASUS W3j laptop

Added a proper model entry (model=laptop-eapd) for ASUS W3j laptop
with AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 9174140c 06-Nov-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix model for ASUS M2N-MX

Add a proper model (3stack) for ASUS M2N-MX with AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 06bf2f49 24-Oct-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix model for Lenovo A60 desktop

Add a proper model entry (3stack) for Lenovo A60 desktop with
AD1986a codec to fix noise problems.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# a48bb28c 21-Nov-2006 Nickolay V. Shmyrev <nshmyrev@yandex.ru>

[ALSA] snd_hda_intel 3stack mode for ASUS P5P-L2

I have ASUS P5PL2 motherboard and it's embedded sound card requires
the following patch which sets '3stack' model to operate properly:
00:1b.0 0403: 8086:27d8 (rev 01)
Subsystem: 1043:817f
Flags: bus master, fast devsel, latency 0, IRQ 177
Memory at dfdf8000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Capabilities: [60] Message Signalled Interrupts: 64bit+
Queue=0/0 Enable-
Capabilities: [70] Express Unknown type IRQ 0

Signed-off-by: Nickolay V. Shmyrev <nshmyrev@yandex.ru>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# ba8bdf85 08-Nov-2006 Christian Hesse <mail@earthworm.de>

[ALSA] hda-codec - fix typo in PCI IDs

my notebook is a Samsung X11 of course... The attached patch fixes the typo.

Signed-off-by: Christian Hesse <mail@earthworm.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 4a95cd86 07-Nov-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix model for ASUS V1j laptop

Add a proper model entry (laptop-eapd) for ASUS V1j laptop with
AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# bd2033f2 10-Oct-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix wrong error checks in patch_{realtek,analog}.c

Fix wrong error checks of *_ch_mode_put() in patch_realtek.c and
patch_analog.c. snd_hda_ch_mode_put() could return a positive
value for success, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 264e6e3b 12-Oct-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add model entry for ASUS U5F laptop

Added a model entry for ASUS U5F laptop with AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# eb06ed8f 20-Sep-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Support multiple headphone pins

Some machines have multiple headpohne pins (usually on the lpatop
and on the docking station) while the current hda-codec driver
assumes a single headphone pin. Now it supports multiple hp pins
(at least for detection).
The sigmatel 92xx code supports this new multiple hp pins.
It detects all hp pins for auto-muting, too.
Also, the driver checks speaker pins in addition. In some cases,
all line-out, speaker and hp-pins coexist.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# c2566524 17-Aug-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] Add missing TLV callbacks for HD-audio codecs

Added missing TLV callbacks for HD-audio codec supports.
Also cleaned up the tlv callback for ad1986a (no mutex is needed there).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 7cf0a953 17-Aug-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] Fix compile errors with older gcc

Fixed compile errors with older gcc for initialization of a union.
sound/pci/ca0106/ca0106_mixer.c: At top level:
sound/pci/ca0106/ca0106_mixer.c:499: unknown field 'p' specified in initializer
sound/pci/ca0106/ca0106_mixer.c:499: warning: missing braces around initializer
sound/pci/ca0106/ca0106_mixer.c:499: warning: (near initialization for 'snd_ca0106_volume_ctls[0].tlv')

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 4e195a7b 28-Jul-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] Fix noisy output with shared channel mode with hd-audio

- Fix the wrong initialization of num_dacs when changing the channel
mode between 2 and multi-channel modes. It must be evaluated
after calling snd_hda_ch_mode_put()
- Added the similar check of num_dacs fix in Realtek code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 827a56ea 25-Jul-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] Added model for ASUS M2NPV-VM mobo

Added the proper model (3stack) for ASUS M2NPV-VM mobo with AD1986A
codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 0a197f00 25-Jul-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] Add model entry for Samsung X10 laptop

Added the proper model entry (laptop-eapd) for Samsung X10-T2300
Culesa laptop with AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 302e9c5a 05-Jul-2006 Jaroslav Kysela <perex@suse.cz>

[ALSA] HDA codec & CA0106 - add/fix TLV support


Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 2ece5f42 06-Jul-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix missing array terminators in AD1988 codec support

Fixed the missing array terminators in AD1988 codec support code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 1a806f48 03-Jul-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] Fix workaround for AD1988A rev2 codec

Fix the workaround for AD1988A rev2 codec not to apply to AD1988B codec
chips.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# b2e1b0cc 26-Jun-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add model entry for Samsung X60 Chane

Added the model entry 'laptop-eapd' for Samsung X60 Chane with
AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 41f0cd3a 20-Jun-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Use 3stack model for ASUS P5RD2-VM / P5GPL-X SE

Use 3stack model as default for ASUS P5RD2-VM and P5GPL-X SE
boards with AD1986A codec (ALSA bug#2103).

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 6dac9a65 21-Jun-2006 Daniel T Chen <crimsun@ubuntu.com>

[ALSA] HDA - Lenovo 3000 N100-07684JU - enable laptop-eapd by default

Justin Sunseri reports that sound is audible on his Lenovo 3000
N100-07684JU by passing 'model=laptop-eapd' to modprobe, so this
patch adds the pci ids for his sound device to patch_analog.c .
This commit closes LP#39517. Alexey Parshin also confirmed the fix at
http://bugs.gentoo.org/137245
TODO: Mute onboard speakers when device is plugged into the headphone
jack. Muting the 'External Amplifier' mixer element while a device is
plugged into the headphone jack allows sound to be played only from the
headphone jack.
From: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Daniel T Chen <crimsun at ubuntu.com>
Signed-off-by: Daniel Drake <dsd@gentoo.org>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>


# 6540dffa 13-Jun-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add SPDIF support to Thinkpad T/X/Z60

Added IEC958 (SPDIF) output support to Thinkpad T/X/Z60 with
AD1981HD codec. The spdif jack is on docking station.
Also, renamed 'IEC958 Playback Route' to 'IEC958 Playback Source'
to avoid the mixer name confliction with IEC958 switch.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f8e9f340 01-Jun-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add model entry for HP nx6320

Added a model entry for HP nx6320 with AD1981HD codec.
It wasn't covered by the generic HP entry because of a hardware
bug (the SSID is reversed).

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 887709be 18-Apr-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix a typo

Fixed a typo of 'pci_subsystem' in the last changeset.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 01686c5f 17-Apr-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add Thinkpad X60/T60/Z60 support

Added the support for Thinkpad X60/T60/Z60 laptops with AD1981HD codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# e0292bdd 26-Apr-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add model entry for ASUS Z62F

Added a model entry 'laptop-eapd' for ASUS Z62F laptop with
AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 71b2ccc3 21-Apr-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add codec id for AD1988B codec chip

Add codec id for AD1988B codec chip.
The functionality is identical with AD1988(A) chip.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 61a7454a 20-Apr-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add model entry for ASUS M9 laptop

Add a model entry to support ASUS M9 laptop with AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 8970ccda 17-Apr-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Use model 'hp' for all HP laptops with AD1981HD

Use model 'hp' for all HP laptops with AD1981HD codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# e0922283 10-Apr-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add support of ASUS U5A with AD1986A codec

Modules: HDA Codec driver

Add the model entry to support of ASUS U5A with AD1986A codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# be28e7cc 10-Apr-2006 Coywolf Qi Hunt <qiyong@freeforge.net>

[ALSA] hda-codec - support HP Compaq Presario B2800 laptop with AD1986A codec

Modules: HDA Codec driver

This adds the support for HP Compaq Presario B2800 laptop with AD1986A codec.

Signed-off-by: Coywolf Qi Hunt <qiyong@freeforge.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f556e6f6 06-Apr-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add another HP laptop with AD1981HD

Modules: HDA Codec driver

Added the SSID of another HP laptop for the model 'hp' with AD1981HD.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 2125cad2 26-Mar-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix noisy output wtih AD1986A 3stack model

Fixed the noisy output wtih AD1986A 3stack model using 2 channels.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# b2c2844c 21-Mar-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add support for HP nx9420 laptop

Modules: HDA Codec driver

Added the support for HP nx9420 (AngelFire) laptop with AD1981HD codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 82bc955f 21-Mar-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix BIOS auto-configuration

Modules: HDA Codec driver,HDA generic driver

- Fix autoconfig speaker/hp detection
Now it allows multiple speaker pins (e.g. Dell laptops have such config)

- Use speaker or hp pins if no line-outs are available
This fixes the silence output on recent Dell laptops with STAC9200
(ALSA bug#1843)

- Fix analog/realtek/sigmatel autoconfig parser

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 825aa972 17-Mar-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix for Samsung R65 and ASUS A6J

Modules: Documentation,HDA Codec driver

Added a new model 'laptop-eapd' to AD1986A codec for Samsung R65 and
ASUS A6J laptops.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 9230d214 13-Mar-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix support of laptops with AD1986A codec

Modules: Documentation,HDA Codec driver

Fix the support of laptops with AD1986A HD-audio codec.
Added new models '3stack' and 'laptop'. Currently, fixed for FSC V2060
and Samsung M50.

Also fixed the description of missing models in ALSA-Configuration.txt.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# a7ee8201 01-Mar-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] Fix missing AD1986a capsrc

Modules: HDA Codec driver

Fix missing AD1986a capsrc setting in the last patch.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 18a815d7 01-Mar-2006 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix AD198x recording and add HP model

Modules: HDA Codec driver

- Fixed recording of AD1981HD/AD1983/AD1986A
- Added model 'hp' to AD1981HD for HP nx6320

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 62932df8 16-Jan-2006 Ingo Molnar <mingo@elte.hu>

[ALSA] semaphore -> mutex (PCI part)

Semaphore to mutex conversion.

The conversion was generated via scripts, and the result was validated
automatically via a script as well.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4a471b7d 07-Dec-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Small clean up and fixes

Modules: HDA Codec driver,HDA generic driver

- Common labels for input pins
- Fix and clean up of Realtek codec parsers

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# df694daa 05-Dec-2005 Kailang Yang <kailang@realtek.com.tw>

[ALSA] hda-codec - Add the support of ALC262,ALC883,ALC885,ALC861

Modules: HDA Codec driver,HDA generic driver

This patch adds the support of ALC262,ALC883,ALC885,ALC861 to driver
More models and improvements for ALC880, ALC260 and ALC882 codecs, too.

Signed-off-by: Kailang Yang <kailang@realtek.com.tw>
Signed-off-by: Takashi Iwai <tiwai@suse.de>


# f8c7c7b8 24-Nov-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix surrounds on 3stack mode of AD1988

Modules: HDA Codec driver

Fixed the swapped surround/CLFE on 3stack mode of AD1988.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# d32410b1 24-Nov-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix/enhance AD1988 support

Modules: HDA Codec driver

Fix/enhance AD1988 support code.

- Fix for h/w bug of AD1988A rev 2
- The BIOS auto-configuration is added and used as fallback

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 2e5b9567 21-Nov-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Fix AD1988 support

Modules: HDA Codec driver

Fix AD1988 support. As default, 6stack model is used.
Still no auto-BIOS setup is implemented.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# fd66e0d0 17-Nov-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add AD1988 support

Modules: HDA Codec driver

Add AD1988 codec support to hda-codec driver.
Still experimental, and no BIOS configuration parser is implemented yet.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# c8b6bf9b 17-Nov-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] Remove xxx_t typedefs: HD-Audio codec

Modules: HDA Codec driver,HDA generic driver

Remove xxx_t typedefs from the HD-Audio codec support codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# d2a6d7dc 17-Nov-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Add channel-mode helper

Modules: HDA Codec driver,HDA generic driver

Add common channel-mode helper functions for all codec patches.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 985be54b 02-Nov-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] hda-codec - Minor rewrites

Modules: HDA Codec driver,HDA generic driver

- Make bound controls global to all patches
- Clean up analog patches (for the upcoming extension to AD1988)

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# e560d8d8 09-Sep-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] Replace with kzalloc() - pci stuff

AD1889 driver,ATIIXP driver,ATIIXP-modem driver,AZT3328 driver
BT87x driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver
ES1938 driver,ES1968 driver,FM801 driver,Intel8x0 driver
Intel8x0-modem driver,Maestro3 driver,SonicVibes driver,VIA82xx driver
VIA82xx-modem driver,AC97 Codec,AK4531 codec,au88x0 driver
CA0106 driver,CS46xx driver,EMU10K1/EMU10K2 driver,HDA Codec driver
HDA generic driver,HDA Intel driver,ICE1712 driver,ICE1724 driver
KORG1212 driver,MIXART driver,NM256 driver,Trident driver,YMFPCI driver
Replace kcalloc(1,..) with kzalloc().

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 10e8d78a 03-Aug-2005 Clemens Ladisch <clemens@ladisch.de>

[ALSA] use SNDRV_CTL_NAME_IEC958 macro

CMI8330 driver,ENS1370/1+ driver,FM801 driver,VIA82xx driver,AC97 Codec
ALI5451 driver,CS46xx driver,EMU10K1/EMU10K2 driver,HDA Codec driver
ICE1712 driver,ICE1724 driver
Where appropriate, use the SNDRV_CTL_NAME_IEC958 instead of a literal
string.

Signed-off-by: Clemens Ladisch <clemens@ladisch.de>


# ead9b7c3 08-Jun-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] Fix the PCM mixer switch for AD1986A

HDA Codec driver
Fix the PCM mixer switch for AD1986a (it was a typo).

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 4a3fdf3d 14-Apr-2005 Takashi Iwai <tiwai@suse.de>

[ALSA] Add AD1981HD and AD1983 support

HDA Codec driver
Added the support of AD1981HD and AD1983 codecs.
Including the fix for AD1986A.

Signed-off-by: Takashi Iwai <tiwai@suse.de>


# 1da177e4 16-Apr-2005 Linus Torvalds <torvalds@ppc970.osdl.org>

Linux-2.6.12-rc2

Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.

Let it rip!