Commit Graph

1174 Commits

Author SHA1 Message Date
Herton Ronaldo Krzesinski
b98b7b347e ALSA: hda - make alc882_auto_init_input_src aware of selectors
In the case of having a selector instead of mixer while initing input
sources, the case that happens with ALC889, we must select instead
of muting input. Problem was found while testing with hda-emu.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-29 16:33:02 +01:00
Herton Ronaldo Krzesinski
61b9b9b109 ALSA: hda - Consider additional capture source/selector in ALC889
Currently code for capture source support in ALC889 only considers
capture mixers. This change adds additional support for ADC+selector
present in ALC889, taking into account also the presence of an
additional DMIC connection item in the selector.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-28 16:25:39 +01:00
Matthew Ranostay
ca8d33fc9f ALSA: hda: 92hd71xxx disable unmute support for codecs that don't have input amps
Some revisions of the 92hd71xxx codec families don't have input amps
on ports 0xa, 0xd and 0xf, so probe the widget caps on port 0xa and
check for support, if found run snd_hda_sequence_write_cache() on the
stac92hd71xxx_unmute_core_init verb list.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-26 16:50:26 +01:00
Takashi Iwai
70040c0740 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>
2009-01-23 14:18:11 +01:00
Takashi Iwai
4cfb91c6d7 ALSA: hda - Fix invalid amp init for ALC268 codec
Fix some invalid AMP initializations for ALC268 codecs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-23 12:53:09 +01:00
Takashi Iwai
60e388e89c 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>
2009-01-23 12:37:09 +01:00
Takashi Iwai
19a2d3e9b9 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>
2009-01-23 12:35:25 +01:00
Takashi Iwai
6d6e17de4f 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>
2009-01-23 12:33:54 +01:00
Takashi Iwai
e3c7596466 ALSA: hda - Create "Input Source" control dynamically for STAC/IDT
Instead of fixed kcontrol_new element, build "Input Source" controls
dynamically.  If the number of input-source items is 0 or 1, we don't
need to create such a control.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-23 11:57:22 +01:00
Takashi Iwai
028b9445b4 Merge branch 'fix/hda' into topic/hda 2009-01-23 11:55:52 +01:00
Takashi Iwai
00a602db1c ALSA: hda - Fix PCM reference NID for STAC/IDT analog outputs
The reference NID for the analog outputs of STAC/IDT codecs is set
to a fixed number 0x02.  But this isn't always correct and in many
codecs it points to a non-existing NID.

This patch fixes the initialization of the PCM reference NID taken
from the actually probed DAC list.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-23 11:55:42 +01:00
Takashi Iwai
8056d47e77 ALSA: hda - Add model=ref for Intel board with STAC9221
An intel board (8086:0204) works only with model=ref.

Reference: Novell bug #406529
	https://bugzilla.novell.com/show_bug.cgi?id=406529

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-23 09:09:43 +01:00
Matthew Ranostay
577aa2c195 ALSA: hda: add reference board SND_PCI_QUIRK
Add another LanParty reference board SND_PCI_QUIRK to quirk lists of
all codec families.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-23 08:11:43 +01:00
Takashi Iwai
7907f6a411 Merge branch 'fix/hda' into topic/hda 2009-01-23 08:07:51 +01:00
Matthew Ranostay
32ed3f4640 ALSA: hda: Add STAC92HD83XXX_PWR_REF quirk
Some revisions of the 92hd8xxx codec's not supporting port power
downs in which the using of it causes capture and also randomly
playback streams to not function at all. Thus by disabling it by
default and adding a option to enable it manually will fix all issue
on current and future revisions.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-23 08:06:57 +01:00
Matthew Ranostay
87e88a746d ALSA: hda: revert change to 92hd83xxx power mapping
Port 0xe power mapping was incorrect set to 0x80 changed to the correct
value 0x40.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-23 08:05:02 +01:00
Takashi Iwai
d9a4268ee9 ALSA: hda - Add quirk for Gateway %1616 laptop
Gateway T1616 laptop needs EAPD always on while the current STAC9205
code turns off per HP plug.  Added a new model "eapd" to keep it on.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-22 17:41:14 +01:00
Takashi Iwai
eda6829394 Merge branch 'fix/hda' into topic/hda 2009-01-22 17:10:22 +01:00
Takashi Iwai
8ce8419829 ALSA: hda - Avoid to set the pin control again if already set
Check the present pin control bit and avoid the write if it's already
set in patch_sigmatel.c.  This will reduce the number of verb execs at
jack plugging.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-22 16:59:20 +01:00
Takashi Iwai
e0c0e943af ALSA: hda - Add model entry for HP dv4
Added model=hp-dv5 for HP dv4 (103c:30f7).

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-22 12:58:11 +01:00
Takashi Iwai
1eaf5c0716 Merge branch 'test/hda-vol-ofs' into next/hda 2009-01-22 08:33:04 +01:00
Takashi Iwai
1e137f929b ALSA: hda - Clean up old VAIO hack codes for STAC9872
Get rid of old VAIO static hack codes for STAC9872 and use the BIOS
auto-parser for all models.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-21 07:42:02 +01:00
Takashi Iwai
d30e6caac2 Merge branch 'topic/hda' into next/hda 2009-01-21 07:34:08 +01:00
Matthew Ranostay
65557f3507 ALSA: hda: 83xxx port 0xe DAC selection
On the 92hd8xxx codecs port 0xe needs the connection selected to be the
last DAC in the list.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-21 01:10:37 +01:00
Takashi Iwai
e64f14f4e5 ALSA: hda - Allow digital-only I/O on ALC262 codec
Some laptops like VAIO have multiple codecs and uses ALC262 only for
the SPIDF output without analog I/O.  So far, the codec-parser assumes
the presence of analog I/O and returned an error for such a case.

This patch adds some hacks to allow the digital-only configuration for
ALC262.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 18:32:55 +01:00
Takashi Iwai
8c441982fd ALSA: hda - Assign proper digital I/O type for STAC/IDT
Assign the proper PCM digital I/O type (HDA_PCM_TYPE_*) for the digital
I/O on STAC/IDT codecs.  HDA_PCM_TYPE_HDMI is assigned for the HDMI I/O.

A similar framework is implemented to patch_realtek.c, but it's not
set up and still using only HDA_PCM_TYPE_SPDIF yet.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 18:30:20 +01:00
Takashi Iwai
2297bd6e52 ALSA: hda - Check HDMI jack types in the auto configuration
Add dig_out_type and dig_in_type fields to autocfg struct.
A proper HDA_PCM_TYPE_* value is assigned to these fields according
to the pin-jack location type value.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 18:24:13 +01:00
Takashi Iwai
41b5b01afb ALSA: hda - Don't break the PCM creation loop
Don't break the loop in snd_hda_codec_build_pcms() even if the item
has no substreams.

It's possible that it's an empty item and the next item containing
the valid substreams (e.g. realtek codecs may create the analog
and alt-analog but no digitl streams).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 18:21:23 +01:00
Takashi Iwai
caa10b6e80 ALSA: hda - Improve auto-probing of STAC9872 codec
Use the standard STAC/IDT auto-probing routine for non-static
STAC9872 codec probing.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 17:19:01 +01:00
Takashi Iwai
1b52ae701f ALSA: hda - Detect non-SPDIF digital I/O
Accept non-SPDIF digital I/O pins as the digital pins.
These are usually corresponding to HDMI I/O.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 17:18:41 +01:00
Takashi Iwai
89ce9e8708 ALSA: hda - Add debug prints for digital I/O pin detections
Add the debug prints for digital I/O pin detections in
snd_hda_parse_pin_def_config() function.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 17:15:57 +01:00
Takashi Iwai
7c7767ebe2 ALSA: hda - Halve too large volume scales for STAC/IDT codecs
STAC/IDT codecs have often too large volume scales such as -96dB,
and exposing this as is results in too large scale in percentage
representation.

This patch adds the check of the volume scale and halves the
volume range if it's too large automatically.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 15:31:14 +01:00
Takashi Iwai
29fdbec2dc ALSA: hda - Add extra volume offset to standard volume amp macros
Added the volume offset to base for the standard volume controls
to handle elements with too big volume scales like -96dB..0dB.
For such elements, you can set the base volume to reduce the range.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-20 15:16:47 +01:00
Matthew Ranostay
989738c4f8 ALSA: hda: fix invalid power mapping masks
Fixed invalid power mappings for ports 0xd and 0xe on 93hd83xxx codecs.
They were shifted right one too many bits.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-18 11:03:51 +01:00
Luke Yelavich
2de686d227 ALSA: hda - add quirks for some 82801H variants to use ALC883_MITAC
Add the 82801H variants 1071:8227 and 8086:2503 to use ALC883_MITAC

Reference: Ubuntu bug 210865
    https://bugs.launchpad.net/bugs/210865

Signed-off-by: Luke Yelavich <themuso@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-16 10:29:37 +01:00
Takashi Iwai
c9280d681c ALSA: hda - Fix (yet more) STAC925x issues
The codec-parsing of STAC925x was utterly broken due to its unique
design unlike other STAC codecs.  It has a volume control only in NID
0x0e (similar as STAC9200), but the parser assumes that the amp is
available on each DAC widget.

The patch fixes the whole wrong stories: fix the initial volume,
assign the fixed "Master" volume, and avoid to create wrong volume
controls.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-15 17:33:47 +01:00
Takashi Iwai
428549f574 ALSA: hda - Fix invalid amp value for STAC925x
The value set in the commit 2465fb6605
is actually wrong.  The value range is from 0 to 0x1f while the patch
sets to 0x7f.  Let's fix it.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-15 17:02:49 +01:00
Takashi Iwai
1b0652eb58 ALSA: hda - Fix HP dv5 mic input
Fix HP dv5 (103c:3603) built-in mic input.

Reference: kernel bug 12440
	http://bugzilla.kernel.org/show_bug.cgi?id=12440

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: stable@kernel.org
2009-01-14 23:28:13 +01:00
Takashi Iwai
2465fb6605 ALSA: hda - Fix missing initialization of NID 0x0e for STAC925x
The selector widget 0x0e isn't initialized properly in the whole probe
process, thus it can be a wrong value depending on the BIOS setup.

This patch adds the init verb to set it to the max & unmuted.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 15:58:55 +01:00
Takashi Iwai
9248f26939 ALSA: hda - Fix stac92hd83xxx_amp_nids[]
Fix the bug introduced in commit c15c5060fc:
  sound/pci/hda/patch_sigmatel.c: In function ‘patch_stac92hd83xxx’:
  sound/pci/hda/patch_sigmatel.c:4765: warning: assignment from incompatible pointer type

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 09:40:25 +01:00
Luke Yelavich
3e420e78ec ALSA: hda - Add automatic model setting for Samsung Q45
Have the Samsung Q45 (144d:c510) select ALC262_HIPPO by default

Reference: Ubuntu bug 200210
	http://launchpad.net/bugs/200210

Signed-off-by: Luke Yelavich <themuso@ubuntu.com>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 08:08:49 +01:00
Takashi Iwai
8317e0b0c2 ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c
Resetting HP pinctl at the unplugged state may cause a sort of regression
on some devices because of their wrong pin configuration.

A simple workaround is to disable the pin reset.  This is ugly and may be
not good from the power-saving POV (if any), but damn simple.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: stable@kernel.org
2009-01-14 08:00:49 +01:00
Matthew Ranostay
c15c5060fc ALSA: hda: stac92hd8xxx amp mixers
Added amp nid for stac92hd8xxx families of codecs so the input amp
mixer is created.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 07:49:35 +01:00
Takashi Iwai
2acc9dcb60 ALSA: hda - Fix silent headphone output on Panasonic CF-74
CF-74 does the headphone/speaker switching on hardware, thus the driver
shouldn't do any software-toggling of pins.  Otherwise it results in a
silent headphone output.

This patch simply resets the hp_detect flag to fix the problem.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-14 07:48:50 +01:00
Takashi Iwai
14ed74fbe2 Merge branch 'topic/hda-gateway' into topic/hda 2009-01-13 17:50:46 +01:00
Takashi Iwai
c107b41c48 ALSA: hda - Use queue_delayed_work()
Replaced the old schedule_work() with queue_delayed_work() where
overlooked in the previous patches.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-13 17:46:37 +01:00
Giuseppe Bilotta
dafb70ce10 ALSA: hda - Add quirk for another HP dv5
Add the model=hp-m4 quirk for another HP dv5 (103c:3603)
Reference: kernel bug#12440
	http://bugzilla.kernel.org/show_bug.cgi?id=12440

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: stable@kernel.org
2009-01-13 15:14:12 +01:00
Takashi Iwai
f84e3e915e ALSA: hda - Add support of NVidia MCP78 HDMI
Added the new id for NVidia MCP HDMI (10de:0007).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-13 12:32:21 +01:00
Takashi Iwai
f9d088b208 ALSA: hda - Fix a typo
Fix a typo in stac92hd83xxx_cfg_tbl[].  The actual number is identical
thus there is no behavior change.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-13 11:54:49 +01:00
Takashi Iwai
6acaed38a3 ALSA: hda - Use own workqueue
snd-hda-intel driver used schedule_work() fot the delayed DMA pointer
updates, but this has several potential problems:
- it may block other eventsd works longer
- it may deadlock when probing fails and flush_scheduled_work() is
  called during probe callback (as probe callback itself could be
  invoked from eventd)

This patch adds an own workq for each driver instance to solve these
problems.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-01-12 10:33:56 +01:00