Commit Graph

1085 Commits

Author SHA1 Message Date
Takashi Iwai
a68f20ef80 Merge branch 'fix/acer-alc889-fix' into fix/hda
Conflicts:
	sound/pci/hda/patch_realtek.c

Merged back the fix for Acer Aspire 6935 with ALC889 codec.
The fix commit was based on 3.2 kernel so that it can be applied to
stable kernel cleanly.
2012-02-13 15:34:31 +01:00
Takashi Iwai
02a237b24d ALSA: hda - Fix silent speaker output on Acer Aspire 6935
Since 3.2 kernel, the driver starts trying to assign the multi-io DACs
before the speaker, thus it assigns DAC2/3 for multi-io and DAC4 for
the speaker for a standard laptop setup like a HP, a speaker, a mic-in
and a line-in.  However, on Acer Aspire 6935, it seems that the
speaker pin 0x14 must be connected with either DAC1 or 2; otherwise it
results in silence by some reason, although the codec itself allows
the routing to DAC3/4.

As a workaround, the connection list of each pin is reduced to be
mapped to either only DAC1/2 or DAC3/4, so that the compatible
assignment as in kernel 3.1 is achieved.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42740

Cc: <stable@kernel.org> [v3.2+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-13 15:26:41 +01:00
Takashi Iwai
1565cc3585 ALSA: hda - Add another jack-detection suppression for ASUS ALC892
Add the jack-detect suppression for an ASUS machine with ALC892 codec.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42655

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-13 12:07:59 +01:00
Takashi Iwai
e652f4c861 ALSA: hda - Suppress auto-mute feature on some machines with ALC861
A few machines with ALC861 & co are reported not to work properly with
the auto-mute feature in software.  The auto-mute feature is implemented
in the hardware level, and the jack-detection never works with them.

Also, rename the fixup index as ALC861_FIXUP_* to follow the standard.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-13 12:07:40 +01:00
Takashi Iwai
374a69e76e Merge branch 'fix/hda' into topic/hda
Necessary for working on the jack-detection suppression feature.
2012-02-13 12:05:30 +01:00
Jaroslav Kysela
416846d2b3 ALSA: hda - add support for Uniwill ECS M31EI notebook
This hardware requires same fixup for the node 0x0f like Asus A6Rp.
More information: https://bugzilla.redhat.com/show_bug.cgi?id=785417

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-07 15:43:15 +01:00
Takashi Iwai
eedec3d385 ALSA: hda/realtek - Fix a wrong condition
sparse complains that "spec->multiout.dac_nids" is a pointer.

sound/pci/hda/patch_realtek.c:2321:37: error: incompatible types for operation (>)
sound/pci/hda/patch_realtek.c:2321:37:    left side has type unsigned short const [usertype] *dac_nids
sound/pci/hda/patch_realtek.c:2321:37:    right side has type int

It was meant to be num_dacs instead of dac_nids.
Although the current code still works as expected (when num_dacs is zero,
dac_nids should be NULL, too), better to fix now, of course.

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Cc: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-06 10:27:06 +01:00
Takashi Iwai
9322ca5497 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>
2012-02-03 14:28:01 +01:00
Takashi Iwai
b544d1e0e2 ALSA: hda/realtek - Add missing Bass and CLFE as vmaster slaves
The recent changes in Realtek auto-parser added the new "Bass Speaker"
and "CLFE" mixer elements which should be tracked as vmaster slaves,
too.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42720

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-02-03 14:04:11 +01:00
David Henningsson
3422a47041 ALSA: HDA: Remove quirk for Toshiba Qosmio G50
The user reports that model=auto works better than current handling
on a 3.2 based kernel (with jack detection patches backported).
Since model=auto is what we prefer these days anyway, the quirk
should be removed.

Alsa-info for the relevant machine:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/923316/+attachment/2702812/+files/alsa-info.txt.Pbfno2x7bp

BugLink: https://bugs.launchpad.net/bugs/923316
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-31 15:12:08 +01:00
Takashi Iwai
31150f2327 ALSA: hda - Apply 0x0f-VREF fix to all ASUS laptops with ALC861/660
It turned out that other ASUS laptops require the similar fix to
enable the VREF on the pin 0x0f for the secret output amp, not only
ASUS A6Rp.  Moreover, it's required even when the pin is being used
as the output.  Thus, writing a fixed value doesn't work always.

This patch applies the VREF-fix for all ASUS laptops with ALC861/660
in a fixup function that checks the current value and turns on only
the VREF value no matter whether input or output direction is set.

The automute function is modified as well to keep the pin VREF upon
muting/unmuting via pin-control; otherwise the pin VREF is reset at
plugging/unplugging a jack.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42588

Cc: <stable@kernel.org> [v3.2+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-30 16:26:07 +01:00
David Henningsson
a389d67cf9 ALSA: HDA: Remove quirk for Asus N53Jq
The user reports that he needs to add model=auto for audio to
work properly. In fact, since node 0x15 is not even a pin node,
the existing fixup is definitely wrong. Relevant information can
be found in the buglink below.

Cc: stable@kernel.org (3.2+)
BugLink: https://bugs.launchpad.net/bugs/918254
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-27 15:06:46 +01:00
Takashi Iwai
b3a81520bd ALSA: hda - Fix silent output on Haier W18 laptop
The very same problem is seen on Haier W18 laptop with ALC861 as seen
on ASUS A6Rp, which was fixed by the commit 3b25eb69.
Now we just need to add a new SSID entry pointing to the same fixup.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42656

Cc: <stable@kernel.org> [v3.2+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-26 15:59:25 +01:00
Takashi Iwai
3b25eb690e ALSA: hda - Fix silent output on ASUS A6Rp
The refactoring of Realtek codec driver in 3.2 kernel caused a
regression for ASUS A6Rp laptop; it doesn't give any output.
The reason was that this machine has a secret master mute (or EAPD)
control via NID 0x0f VREF.  Setting VREF50 on this node makes the
sound working again.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42588

Cc: <stable@kernel.org> [v3.2+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-25 09:59:57 +01:00
Takashi Iwai
cb0cdebbf8 ALSA: hda - Fix a unused variable warning
Just overlooked.

sound/pci/hda/patch_realtek.c: In function ‘alc_sku_unsol_event’:
sound/pci/hda/patch_realtek.c:643:19: warning: unused variable ‘spec’ [-Wunused-variable]

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-20 12:14:12 +01:00
Takashi Iwai
a7309792c4 ALSA: hda/realtek - Remove use_jack_tbl field
Now that all quirks have the own unsol handlers, we don't need to check
use_jack_tbl flag any more.  Let's kill it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-19 15:03:48 +01:00
Takashi Iwai
f21d78e269 ALSA: hda/realtek - Avoid conflict of unsol-events with static quirks
The recently added jack-kctl support sets the unsol event tags
dynamically, while static quirks usually set the fixed tags in the
init_verbs array.  Due to this conflict, the own unsol event handler
can't retrieve the tag and handle it properly any more.

For fixing this, avoid calling snd_hda_jack_add_kctls() for static
quirks, and always let them use own handlers instead of the standard
one for the auto-pareser.

Reported-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-19 12:10:29 +01:00
Takashi Iwai
b90bf1de7c ALSA: hda/realtek - Avoid multi-ios conflicting with multi-speakers
When a machine has multiple speakers, we don't need to create the
controls for multi-ios.  Check the number of primary outputs beforehand.

Note that this workaround might not work always with new codecs in
future; this assumes that both speakers and multi-io jacks share the
same mixers/DACs.  If they are routed with different mixers, the
individual mixer controls should be needed.  But, so far, this doesn't
happen with the existing ALC codecs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-19 11:42:55 +01:00
David Henningsson
2267ea9762 ALSA: HDA: Fix typo for ALC269VB_FIXUP_DMIC
This fixup is not actually used, so in practice this is just a
cosmetic fix.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2012-01-08 09:59:30 +01:00
Takashi Iwai
78c058df6a Merge branch 'test/hda-jack' into topic/hda
Conflicts:
	sound/pci/hda/patch_hdmi.c
	sound/pci/hda/patch_via.c
2011-12-20 15:42:57 +01:00
David Henningsson
fde48a1f80 ALSA: HDA: Realtek: Take vmaster dac from multiout dac list
With the auto-parser we can choose the dac nid for vmaster from
the DACs we already know, instead of hard-coding it. This is more
future-proof and was actually wrong on one machine.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-12-12 12:21:30 +01:00
Takashi Iwai
ffe7e40639 Merge branch 'fix/hda' into topic/hda
Conflicts:
	sound/pci/hda/patch_realtek.c
2011-12-07 17:33:09 +01:00
Takashi Iwai
0a34b42b62 ALSA: hda/realtek - Fix lost speaker volume controls
When there are the same or more number of HP pins are available, HP pins
are used as the primary outputs instead of the speaker pins.  But, in
some cases (especially with ALC663 & co), some DACs are available only
with a later pin and it's assigned to a speaker, and since the driver
parses the pins from the lower NID, such a DAC was skipped eventually
without assignments.  This resulted in a regression, the missing speaker
volume control in the new parser.

As a workaround for this, now the driver retries the pin->DAC mapping
again after restoring the speaker-pins as primary.  This is still an ad
hoc fix, but it works so far for most of Realtek codecs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-12-07 17:32:24 +01:00
Takashi Iwai
fbabc24619 ALSA: hda/realtek - Create "Bass Speaker" for two speaker pins
On systems with two speaker pins, the secondary speaker pin is mostly
assigned to a bass speaker instead of a surround.  Thus it makes more
sense to rename the control properly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-12-07 17:32:24 +01:00
Takashi Iwai
766ddee68b ALSA: hda/realtek - Don't create extra controls with channel suffix
The multiple headphone or speaker pins are usually provided to
output the same stream unlike line-out jacks (which are supposed
to be multi-channel surrounds).  Thus giving a mixer name like
"Headphone Surround" is rather confusing.  Instead, when multiple
headphone volumes are available, use index with the same "Headphone"
name.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-12-07 17:32:24 +01:00
Takashi Iwai
cce4aa378a ALSA: hda/realtek - Fix Oops in alc_mux_select()
When no imux is available (e.g. a single capture source),
alc_auto_init_input_src() may trigger an Oops due to the access to -1.
Add a proper zero-check to avoid it.

Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-12-02 15:29:12 +01:00
Takashi Iwai
31ef225793 ALSA: hda - Integrate input-jack stuff into kctl-jack
Instead of managing input-jack stuff separately, call all stuff inside
the kctl-jack creation, deletion and report.  The caller no longer needs
to care about input-jack.

The better integration between input-jack and kctl-jack should be done
in the upper layer in near future, but for now, it's implemented locally
for more tests.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-12-01 17:47:54 +01:00
Takashi Iwai
b37c0096b4 Merge branch 'fix/hda' into topic/hda
Conflicts:
	sound/pci/hda/patch_realtek.c
2011-11-23 17:08:42 +01:00
Takashi Iwai
61071594f6 ALSA: hda/realtek - Minor cleanup
Use an inline function for the common pattern for assigning a capsrc.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-23 07:52:15 +01:00
Takashi Iwai
6759dc3238 ALSA: hda/realtek - Fix missing inits of item indices for auto-mic
When the imux entries are rebuilt in alc_rebuild_imux_for_auto_mic(),
the initialization of index field is missing.  It may work without it
casually when the original imux was created by the auto-parser, but
it's definitely broken in the case of static configs where no imux was
parsed beforehand.  Because of this, the auto-mic switching doesn't
work properly on some model options.

This patch adds the missing initialization of index field.

Reported-by: Dmitry Nezhevenko <dion@inhex.net>
Cc: <stable@kernel.org> [v3.1]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-23 07:45:21 +01:00
Takashi Iwai
aad37dbd56 ALSA: hda - Merge input-jack helpers to hda_jack.c
We can use the very same table in hda_jack.c for managing the list for
input-jack elements, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-16 11:14:04 +01:00
Takashi Iwai
3a93897ea3 ALSA: hda - Manage unsol tags in hda_jack.c
Manage the tags assigned for unsolicited events dynamically together
with the jack-detection routines.  Basically this is almost same as what
we've done in patch_sigmatel.c.  Assign the new tag number for each new
unsol event, associate with the given NID and the action type, etc.

With this change, now all pins looked over in snd_hda_jack_add_kctls()
are actually enabled for detection now even if the pins aren't used for
jack-retasking by the driver.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-16 11:14:03 +01:00
Takashi Iwai
01a61e12b4 ALSA: hda - Create jack-detection kcontrols
Create kcontrols for pin jack-detections, which work similarly like
jack-input layer.  Each control will notify when the jack is plugged or
unplugged, and also user can read the value at any time via the normal
control API.

The control elements are created with iface=CARD, so that they won't
appear in the mixer apps.

So far, only the pins that enabled the jack-detection are registered.
For covering all pins, the transition of the common unsol-tag handling
would be needed.  Stay tuned.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-16 11:12:17 +01:00
Takashi Iwai
1835a0f9a2 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>
2011-11-16 11:11:15 +01:00
Takashi Iwai
8b940fc457 Merge branch 'fix/hda' into topic/hda 2011-11-16 11:05:55 +01:00
Takashi Iwai
ee3b29693c ALSA: hda/realtek - Move ALC880 model=medion-rim to auto-parser
Translate ALC880 medion-rim static configs to the auto-parser with the
additional GPIO2 verb and COEF setup.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-15 14:26:54 +01:00
Takashi Iwai
5671087ffa ALSA: hda/realtek - Move ALC885 macpro and imac24 models to auto-parser
The ALC882 macpro and imac24 static configs can be transferred to the
auto-parser with the additional GPIO setup.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-14 17:43:17 +01:00
Takashi Iwai
b25396994b ALSA: hda/realtek - Re-add the model string selection for ALC88x
In the commit [c3e837bb: ALSA: hda/realtek - Rewrite ALC882 acer-aspire-*
models with the auto-parser], the check of the model option got removed
mistakenly.  Re-added the board_config check again.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-14 17:32:17 +01:00
Takashi Iwai
e29d377814 ALSA: hda/realtek - Create mono volume controls for mono-outputs
When the pin or the DAC doesn't support the stereo, create a mono
control instead of creating a stereo control blindly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-14 17:13:23 +01:00
Jesper Juhl
e53de8f00c ALSA: hda/realtek: remove redundant semicolon
Having just one semicolon after a break statement is enough.

Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-14 10:41:46 +01:00
Takashi Iwai
c3e837bbcc ALSA: hda/realtek - Rewrite ALC882 acer-aspire-* models with the auto-parser
Now we can move the big acer-aspire-* static quirks to the auto-paresr
with some additional pin-configs and verbs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-10 16:01:47 +01:00
Takashi Iwai
07b18f69a7 ALSA: hda/realtek - Create multi-io jacks more aggresively
So far the driver creates the multi-io jacks only when a single output
jack, i.e. no multiple speakers are assigned.  This patch adds the
similar multi-io detection even with multiple speakers are assigned
primarily, so that 5.1-speakers + HP/mic/LI combination can work.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-10 15:42:54 +01:00
Takashi Iwai
68ef0561ef ALSA: hda/realtek - Drop ALC882 desktop model quirks
Now we're touching the desktop static configs for ALC88x codecs.
These are mostly OK with the auto-parser, but some models need careful
handling; ALC889 intel mobo requires the COEF setup, and W2JC needs
GPIO1 and COEF.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-09 18:28:35 +01:00
Takashi Iwai
eb844d51cc ALSA: hda/realtek - Remove ALC882 targa-* models
All ALC882 targa-* models can be replaced with the auto-parser just
with the additional GPIO3 setup.  And it's generically applied to all
MSI boards unless other quirks are present.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-09 18:03:07 +01:00
Takashi Iwai
ac9b1cddf1 ALSA: hda/realtek - Reorder alc882_fixup_tbl[]
No, I'm not Mr. Monk, but can't resist...

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-09 17:58:32 +01:00
Takashi Iwai
8812c4f961 ALSA: hda/realtek - Move ALC882 model=acer-aspire to auto-parser
The ALC882 model=acer-aspire requires the additional COEF setup.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-09 17:58:30 +01:00
Takashi Iwai
7a6069bf64 ALSA: hda/realtek - Replace ALC882 arima, medion and laptop-eapd quirks
Move these quitks to the auto-parser.  They just need some EAPD setups
in addition.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-09 17:57:45 +01:00
Takashi Iwai
177943a39a ALSA: hda/realtek - Drop ALC882 asus-a7j and asus-a7m models
These models work fine with the auto-parser with the additional COEF
setup.  The iMac 7,1 (106b:3200) also uses the same quirk, so remove it
too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-09 15:11:16 +01:00
Takashi Iwai
596830ee1d ALSA: hda/realtek - Look through codec SSID for fix-up lists
Not only PCI SSIDs but also look through codec SSIDs for fix-up table
entries.  MacBook tend to give the same PCI SSID but unique codec SSIDs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-09 15:08:41 +01:00
Takashi Iwai
0e7cc2e745 ALSA: hda/realtek - Move ALC888 ASUS EEE1601 config to auto-parser
The ASUS EEE1601 works almost fine with the auto-parser but the static
configuration has a certain specific COEF verb.  Add this to the fix-up
list so that we can drop the whole EEE1601 static config from
alc882_quirks.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-09 12:42:48 +01:00
Takashi Iwai
5c0ebfbe56 ALSA: hda/realtek - Rewrite ALC882 model=vaio-tt with auto-parser
Providing a pincfg fix for VAIO-TT with ALC889 codec to work with the
auto-parser, and drop the static configuration.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:37 +01:00
Takashi Iwai
42399f7a71 ALSA: hda/realtek - Remove all ALC262-quirk codes
Now that model=ultra is supported well by the auto-parser, we can get rid
of the whole alc262_quirks.c and its related codes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:36 +01:00
Takashi Iwai
24de183ed0 ALSA: hda/realtek - Add the support of shared HP/Mic
A machine like Q1-ultra which has only a single HP but no mic-jack, we
can re-task the headhpone as an external mic jack.  This was done formerly
in ALC262 model=ultra quirk, and now the auto-parser supports this mode.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:36 +01:00
Takashi Iwai
82e14a4754 ALSA: hda/realtek - Drop ALC262 model=basic static configs
Now most of ALC262 stuff has been moved to the auto-parser, and no longer
need for keeping model=basic.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:36 +01:00
Takashi Iwai
3dcd3be330 ALSA: hda/realtek - Convert ALC262 model=fujitsu to auto-parser
It works well with the auto-parse and the default BIOS setup when an
additional COEF setup (for benq) is used.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:35 +01:00
Takashi Iwai
b42590b865 ALSA: hda/realtek - Convert ALC262 benq and benq-t31 to fixup-lists
The conversion from ALC262 model=benq and model=benq-t31 static configs
to auto-parser requires the manual COEF setups for corresponding models.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:35 +01:00
Takashi Iwai
c470150c53 ALSA: hda/realtek - Convert ALC262 lenovo-3000 quirks to fixup-list
The static quirks for ALC262 Lenovo 3000 can be covered by the auto-
parser with a fixup of the mic-pin to VREF50 and the additional COEF
verb.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:35 +01:00
Takashi Iwai
12837c983d ALSA: hda/realtek - Convert ALC262 model=toshiba-rx1 to a fixup-list
Use the auto-parser for ALC262 model=toshiba-rx1 with the fixed pin-
configs.  The BIOS table seems incorrect, so many pin entries are
overwritten to match with the former quirk.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:34 +01:00
Takashi Iwai
ea4e7af122 ALSA: hda/realtek - Convert alc262 model=tyan to a fixup-list
Use the auto-parser for ALC262 model=tyan with a pin-config fix-up and
drop the static configuration.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 08:59:34 +01:00
Takashi Iwai
dccc1810f4 ALSA: hda - Mute unused capture sources for Realtek codecs
When a Realtek codec has a matrix-style capture-source selection, we
need to scan all connections instead of only imux items.  Otherwise some
input might be kept unmuted.  Although the corresponding input must be
dead so there should be no input from it, it's still safer to mute the
route completely.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-08 07:52:19 +01:00
Linus Torvalds
32aaeffbd4 Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
* 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux: (230 commits)
  Revert "tracing: Include module.h in define_trace.h"
  irq: don't put module.h into irq.h for tracking irqgen modules.
  bluetooth: macroize two small inlines to avoid module.h
  ip_vs.h: fix implicit use of module_get/module_put from module.h
  nf_conntrack.h: fix up fallout from implicit moduleparam.h presence
  include: replace linux/module.h with "struct module" wherever possible
  include: convert various register fcns to macros to avoid include chaining
  crypto.h: remove unused crypto_tfm_alg_modname() inline
  uwb.h: fix implicit use of asm/page.h for PAGE_SIZE
  pm_runtime.h: explicitly requires notifier.h
  linux/dmaengine.h: fix implicit use of bitmap.h and asm/page.h
  miscdevice.h: fix up implicit use of lists and types
  stop_machine.h: fix implicit use of smp.h for smp_processor_id
  of: fix implicit use of errno.h in include/linux/of.h
  of_platform.h: delete needless include <linux/module.h>
  acpi: remove module.h include from platform/aclinux.h
  miscdevice.h: delete unnecessary inclusion of module.h
  device_cgroup.h: delete needless include <linux/module.h>
  net: sch_generic remove redundant use of <linux/module.h>
  net: inet_timewait_sock doesnt need <linux/module.h>
  ...

Fix up trivial conflicts (other header files, and  removal of the ab3550 mfd driver) in
 - drivers/media/dvb/frontends/dibx000_common.c
 - drivers/media/video/{mt9m111.c,ov6650.c}
 - drivers/mfd/ab3550-core.c
 - include/linux/dmaengine.h
2011-11-06 19:44:47 -08:00
Takashi Iwai
43dea228a3 ALSA: hda - Fix silent output regression with ALC861
The 3.1 kernel has a regression for ALC861 codec where no sound output
is heard with the default setup.  It's because the amps in DACs aren't
properly unmuted while the output mixers are assigned only to pins.

This patch fixes the missing initialization of DACs when no mixer is
assigned to them.

Tested-by: Andrea Iob <andrea_iob@yahoo.it>
Cc: <stable@kernel.org> [v3.1+]
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-06 11:25:34 +01:00
Takashi Iwai
51e4152a96 ALSA: hda/realtek - Skip invalid digital out pins
Some BIOS report invalid pins as digital output pins.  The driver checks
the connection but it doesn't do it fully correctly, and it leaves some
undefined value as the audio-out widget, which makes the driver spewing
warnings.  This patch fixes the issue.

Reference: https://bugzilla.novell.com/show_bug.cgi?id=727348

Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-03 17:00:27 +01:00
Takashi Iwai
112daa7a4c ALSA: hda - Remove unused variables
Just clean-up what GCC caught.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-02 21:40:06 +01:00
Takashi Iwai
1fa1757366 ALSA: hda/realtek - Don't create alt-stream for capture when unnecessary
When the driver finds multiple ADCs, it tries to create an alternative
capture PCM stream.  However, these secondary ADCs might be useless or
in uncontrolled paths in some cases, e.g. when auto-mic or dynamic
ADC-switching is enabled.  Also, when only a single capture source is
available, the multi-streams don't make sense, too.

With this patch, the driver checks such condition and skips the alt
stream appropriately.

Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-11-02 21:30:51 +01:00
Paul Gortmaker
da155d5b40 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>
2011-10-31 19:31:21 -04:00
Takashi Iwai
527e4d73af ALSA: hda/realtek - Fix missing volume controls with ALC260
ALC260 has multiple mixer widgets connected to the shared DAC, but the
driver currently doesn't check this possibility and ignores when the DAC
is shared with others.  This resulted in the silent output from some
routes because of lack of the amp setup.

This patch adds the workaround for it by checking the route even with the
shared DAC, but also checking the conflict with the existing control for
the very same widget NID.

Reference: https://bugzilla.novell.com/show_bug.cgi?id=726812

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-27 16:58:00 +02:00
Takashi Iwai
5cdf745eba ALSA: hda - Fix pin-config for ASUS W90V
The association numbers of surround/CLFE speaker pins aren't correctly
mapped by the auto-parser.  This patch fixes the CLFE speaker pin to the
right assoc value (from 3 to 1).

Tested-by: Nika Topolchanskaya <nanodesuu@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-26 23:05:46 +02:00
David Henningsson
cc667a72d4 ALSA: HDA: Add new revision for ALC662
The revision 0x100300 was found for ALC662. It seems to work well
with patch_alc662.

Cc: stable@kernel.org
BugLink: http://bugs.launchpad.net/bugs/877373
Tested-by: Shengyao Xue <Shengyao.xue@canonical.com>
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Acked-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-24 13:23:04 +02:00
Takashi Iwai
716eef032c ALSA: hda/realtek - Fix DAC assignments of multiple speakers
When a device has multiple speakers and still has the auto-mute support,
the driver copies line_outs[] to speaker_outs[].  And then it tries to
assign DACs for both.  This ended up with the assignment only to the
primary DAC to all speakers.

This patch fixes the situation by checking the duplicated LO/SPK case
appropriately.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-21 15:07:42 +02:00
Takashi Iwai
1bb7e43e22 ALSA: hda/realtek - Cache COEF 0 value
The COEF #0 value represents a sort of device id, so it's supposedly
constant while operation.  Better to use the cached value instead of
reading it at each time from the performance POV.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17 23:39:33 +02:00
Takashi Iwai
e16fb6d140 ALSA: hda/realtek - Clean up codec renames
Use a static table for detecting the codec renames.
Also clean up the error paths in each patch_*() function.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17 23:39:32 +02:00
Takashi Iwai
84db9150b6 ALSA: hda/realtek - Use alc_codec_rename()
Replaced with alc_codec_rename() in all possible places.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17 23:39:31 +02:00
Kailang Yang
801f49d3b8 ALSA: hda - ALC888S-VC remark to ALC886
Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17 23:39:12 +02:00
Takashi Iwai
20ca0c350d ALSA: hda/realtek - Check the error from alc_codec_rename()
Should be a rare case, but...

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-17 16:00:35 +02:00
David Henningsson
636030e90e ALSA: HDA: Fixup Realtek headphone pin initialization
This typo caused headphone pins not to be initialized correctly.

BugLink: https://bugs.launchpad.net/bugs/871582
Reported-by: Effenberg
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-13 08:06:01 +02:00
Takashi Iwai
06503670af ALSA: hda/realtek - Choose more cleverly the primary outputs
When the speaker outputs are more than the headphone outputs, it implies
that the system has surround speakers while the headphones are only for
monitoring the front.  In such a case, it's better to put speakers as
the primary outputs so that the driver can build up and keep the
surround setup.  Otherwise the system will pick up the headphone as
primary, and offers less channels than the speakers do support.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-10-06 08:30:45 +02:00
Takashi Iwai
5ec02a1cfa Merge branch 'fix/hda' into topic/hda 2011-09-26 15:27:10 +02:00
Takashi Iwai
e0d32e335f ALSA: hda/realtek - Don't detect LO jack when identical with HP
The spec->autocfg.line_out_pins[] may contain the same pins as hp_pins[]
depending on the configuration.  When they are identical, detecting the
line_jack_present flag screws up the auto-mute because alc_line_automute()
is called unconditionally at initialization while it won't be triggered
by unsol events, thus the old line_jack_present flag is kept for the
whole run.

For fixing this buggy behavior, the driver needs to check whether the
line-outs are really individual, and skip if same as headphone jacks.

Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-26 15:24:57 +02:00
Takashi Iwai
5fe6e0151d ALSA: hda/realtek - Avoid bogus HP-pin assignment
When the headphone pin is assigned as primary output to line_out_pins[],
the automatic HP-pin assignment by ASSID must be suppressed.  Otherwise
a wrong pin might be assigned to the headphone and breaks the auto-mute.

Reference: https://bugzilla.novell.com/show_bug.cgi?id=716104

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
2011-09-26 11:13:43 +02:00
David Henningsson
42cf0d0155 ALSA: HDA: Refactor Realtek's automute
Increase readability and understandability in the automute code.

Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-20 18:22:33 +02:00
Takashi Iwai
290b421f69 Merge branch 'fix/hda' into topic/hda 2011-09-20 09:14:04 +02:00
Takashi Iwai
8974bd51a7 ALSA: hda/realtek - Fix auto-mute with HP+LO configuration
When the system has only the headphone and the line-out jacks without
speakers, the current auto-mute code doesn't work.  It's because the
spec->automute_lines flag is wrongly referred in update_speakers().
This flag must be meaningless when spec->automute_hp_lo isn't set, thus
they should be always coupled.

The patch fixes the problem and add a comment to indicate the
relationship briefly.

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

Reported-by: David Henningsson <david.henningsson@canonical.com>
Tested-By: Jayne Han <jayne.han@canonical.com>
Cc: stable@kernel.org (3.0)
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-09-19 11:31:34 +02:00
Takashi Iwai
b9c5106cd2 ALSA: hda - Remove the rest of ALC662 quirks
The rest of ALC662 quirks are only for desktops, and they should work
with the auto-parser.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24 18:08:07 +02:00
Takashi Iwai
c267468e98 ALSA: hda - Prefer multi-io to speakers for realtek auto-parser
When the multi-io jacks are available, parse them first and assign DACs
before parsing speakers and headphones.  This allows a better chance of
surround I/O in some desktops and laptops with limited DACs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24 17:57:44 +02:00
Takashi Iwai
9c4e84d3b8 ALSA: hda - Fix Center/LFE mixer element creations for Realtek
The commit 23c09b0090
    ALSA: hda - Support multiple speakers by Realtek auto-parser
changes the return value from alc_get_line_out_pfx(), and it breaks
the center/LFE mixer split check.  The caller must test with a string
"CLFE" now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-24 17:27:52 +02:00
Takashi Iwai
a4297b5db0 ALSA: hda - Rewrite ALC269 laptop-amic,dmic,&co quirks with fixups
Similarly like ALC662 asus-mode* models, rewrite the laptop-amic and
dmic models with the static pin-config tables.

Now we can get rid of all alc269_quirks.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23 18:40:12 +02:00
Takashi Iwai
53c334add1 ALSA: hda - Rewrite ALC662 asus-mode* models with fixups
Re-implement the asus-mode[1-8] quirks with the pin-config tables.
They are provided in case where BIOS is broken on the device, so it's
not enabled in PCI SSID lookup table.  User needs to specify it via model
option explicitly if the driver doesn't work with the BIOS setup as is.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23 18:27:14 +02:00
Takashi Iwai
e23832ac15 ALSA: hda - Support multiple headphones in Realtek auto-parser
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23 18:16:56 +02:00
Takashi Iwai
cb4e482415 ALSA: hda - Remove all ALC861 and ALC861-VD quirks
Let's remove the rest of ALC861 and ALC861-VD quirks.
If any breakage is found, it can be fixed easily via the pin-config
table update.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23 17:34:25 +02:00
Takashi Iwai
8fdcb6fe42 ALSA: hda - Restore VREF50 setup for ALC861-VD dallas/hp models
During the cleanup by commit 6727b12669,
the specific setups for dallas and hp models, using VREF50 for mic pins,
were lost.  Fixed now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23 17:28:55 +02:00
Takashi Iwai
8cd0775da2 ALSA: hda - Fix initialization of multi-speaker output paths for Realtek
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23 15:16:22 +02:00
Takashi Iwai
5fa9b15112 Merge branch 'fix/hda' into topic/hda
Conflicts:
	sound/pci/hda/patch_realtek.c
2011-08-23 15:02:36 +02:00
Takashi Iwai
3c715a9884 ALSA: hda - Update jack-sense info even when no automute is set
The internal states, jack_present and line_jack_present should be
updated upon unsolicited events even if no automute is set.
Otherwise the wrong state is referred when the automute behavior is
changed by the mixer control.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23 12:41:09 +02:00
Takashi Iwai
675c1aa3c4 ALSA: hda - Fix output-path initialization for Realtek auto-parser
When the headphone or speaker output has no own DAC, initialize the path
using the primary DAC.  Otherwise the path won't be set properly and
can result in the silence.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-23 12:36:28 +02:00
Takashi Iwai
23c09b0090 ALSA: hda - Support multiple speakers by Realtek auto-parser
Add the support of multiple speakers by Realtek auto-parser.
When all speaker pins have individual DACs, create each speaker volume
control.  Otherwise, create a bind-volume control for all speaker outs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-19 09:05:35 +02:00
Takashi Iwai
2996bdbaa4 ALSA: hda - Remove ALC662 eeepc-p701 and ecs models
These are confirmed to work with the auto-parser with pincfg fixups.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-18 16:02:24 +02:00
Takashi Iwai
3fe45aeaf2 ALSA: hda - Add "PCM" volume to vmaster slave list
The new parser may use "PCM" volume, but it was missing the vmaster
slave list, thus "Master" volume didn't control it.

Reference: https://bugzilla.kernel.org/show_bug.cgi?id=41342

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-18 15:13:17 +02:00
Takashi Iwai
6ebb80530b ALSA: hda - Remove ALC268 model quirks
Get rid of the rest of ALC268 model quirks.  They are all confirmed to
work with the auto-parser, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-16 15:15:40 +02:00
Takashi Iwai
2451991167 ALSA: hda - Replace ALC269 quanta and lifebook models with fixups
Implement new fixup entries for Quanta FL1 and Fujitsu Lifebook
specific COEF and pin configurations.  Removed the model entries
from alc269_quirks.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2011-08-16 15:08:49 +02:00