Commit graph

130486 commits

Author SHA1 Message Date
Takashi Iwai
39c2871eea ALSA: hda - Add an example about pin reconfiguration
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-23 14:14:51 +01:00
Takashi Iwai
5e7b8e0d87 ALSA: hda - Make user_pin overriding the driver setup
Make user_pin overriding even the driver pincfg, e.g. the static / fixed
pin config table in patch_sigmatel.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-23 09:45:59 +01:00
Takashi Iwai
346ff70fdb ALSA: hda - Rename {override,cur}_pin with {user,driver}_pin
Rename from override_pin and cur_pin with user_pin and driver_pin,
respectively, to be a bit more intuitive.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-23 09:42:57 +01:00
Takashi Iwai
c17a1abae2 ALSA: hda - Use snd_hda_codec_get_pincfg() in the rest places
Replace with snd_hda_codec_get_pincfg() in the places where available.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-23 09:28:12 +01:00
Takashi Iwai
f1085c4f31 ALSA: hda - Update documentation for pincfg sysfs entries
Added the brief descriptions of new sysfs entries for pint default
config values.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-20 16:48:40 +01:00
Takashi Iwai
2f334f92cf 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>
2009-02-20 16:48:40 +01:00
Takashi Iwai
330ee99579 ALSA: hda - Remove IDT codec-specific pin save/restore functions
Removed its own save/restore functions and replaced with the common code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-20 16:48:39 +01:00
Takashi Iwai
0e8a21b59d ALSA: hda - Remove realtek codec-specific pin save/restore functions
Now it's done in the common code.
Also use the common access functions for pin defaults.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-20 16:48:38 +01:00
Takashi Iwai
3be141494a ALSA: hda - Add generic pincfg initialization
Added the generic pincfg cache and save/restore functions.
Also introduced the pin-overriding via hwdep sysfs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-20 16:48:26 +01:00
Takashi Iwai
d2f57cd54a Merge branch 'fix/hda' into topic/hda 2009-02-20 16:06:47 +01:00
Takashi Iwai
55290e1932 ALSA: hda - Fix parse of init_verbs sysfs entry
Fixed the parse of init_verbs hwdep sysfs entry.
Simplieied using sscanf.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-20 16:06:30 +01:00
Takashi Iwai
7e0e44d430 ALSA: hda - Add digital-only mode for ALC268
ALC268 can be configured as digital-only, e.g. for HDMI, on some
machines.  Allow the parser to set up the digital-only mode.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-19 08:15:49 +01:00
Takashi Iwai
ab9fec099b ALSA: hda - Avoid doubly beep attachment in patch_alc268()
Remove the doubly attachment in patch_alc268().
The input beep is attached conditionally only when needed.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-19 08:13:26 +01:00
Takashi Iwai
07eba61dd6 ALSA: hda - Don't enable beep for digital-only ALC262
When ALC262 codec is configured as digital-only, it's meaningless to
add the digital beep input.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-19 08:06:35 +01:00
Takashi Iwai
b3bdb30b6d ALSA: hda - Add quirk for Acer X3200
Acer X3200 needs model=auto, otherwise model=acer is pre-selected.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-18 13:16:26 +01:00
Takashi Iwai
c23127566c 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>
2009-02-16 15:20:41 +01:00
Takashi Iwai
2ae466f8cc ALSA: hda - Cleanup IDT92HD7x HP quirks
Clean up IDT92HD7x quirks for HP laptops with SND_PCI_QUIRK_MASK().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-16 14:16:36 +01:00
Takashi Iwai
e23573d7e3 Merge branch 'fix/hda' into topic/hda 2009-02-16 10:23:35 +01:00
Herton Ronaldo Krzesinski
e2ea57a8df ALSA: hda - Fix speaker output on HP DV4 1155-SE
Force speaker pin config with model=hp-dv5 model for cases when bios
doesn't set it up properly. All reported hp laptops using model=hp-dv5
model have speaker at pin 0x0d with same config, so it's safe to add
this within hp-dv5 model.

Reference: alsa-devel mailing list thread on
    http://mailman.alsa-project.org/pipermail/alsa-devel/2009-February/014390.html

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-16 10:23:00 +01:00
Takashi Iwai
d14a7e0bfc Revert "Sound: hda - Restore PCI configuration space with interrupts off"
This reverts commit 32e176c14d.

That commit caused a regression with suspend on Thinkpad SL300.

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

Tested-by:  Alexandre Rostovtsev <tetromino@gmail.com>
Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-16 10:16:27 +01:00
Takashi Iwai
6a05ac4afa ALSA: hda - Support multiple digital outs with auto-probing
Added the support of multiple digital outputs via auto-probing for
Realtek ALC88x codecs.  The multiple outputs are handled as slave
streams, so only one PCM stream (and the corresponding IEC958*
elements) is provided to control both digital outputs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 11:59:33 +01:00
Takashi Iwai
9b5f12e5a4 ALSA: hda - Add proper cleanup for multiout-dig for ALC codecs
The recent patch_realtek.c contains the slave digital-out support
as well.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 11:59:31 +01:00
Takashi Iwai
c8a1a8985d Merge branch 'fix/hda' into topic/hda 2009-02-13 11:59:26 +01:00
Takashi Iwai
9411e21cd0 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>
2009-02-13 11:59:13 +01:00
Takashi Iwai
3a08e30de2 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>
2009-02-13 11:53:27 +01:00
Takashi Iwai
946835074e ALSA: hda - Add quirk for Acer AX1700-U3700A
Force model=auto for Acer AX1700-U3700A with ALC888 codec.
Since Acer devices are handlded as model=acer as default, the auto
parsing has to be specified explicitly.
(Maybe it's better rather to remove this default model=acer handling,
 though.)

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 09:31:20 +01:00
Takashi Iwai
344384494e Merge branch 'fix/hda' into topic/hda 2009-02-13 08:41:44 +01:00
Herton Ronaldo Krzesinski
92258a3ed2 ALSA: hda - Change HP dv7 (103c:30f4) quirk from hp-m4 to hp-dv5 model
Change HP dv7 quirk: although reported to work with hp-m4 model
(https://bugzilla.novell.com/show_bug.cgi?id=445321), the original
report doesn't contain info about testing of internal microphone.

Recently I received a report about internal mic not working
(https://qa.mandriva.com/show_bug.cgi?id=44855#c193), this must be
related with the forced line in on pin 0x0e done with hp-m4 model. Thus
change the current quirk from STAC_HP_M4 to STAC_HP_DV5, later reported
to be fixed on a provided kernel with this change
(https://qa.mandriva.com/show_bug.cgi?id=44855#c196).

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 08:41:00 +01:00
Aristeu Sergio Rozanski Filho
27e089888f ALSA: hda: add quirk for Lenovo X200 laptop dock
Currently the HP connector on X200 dock doesn't detect when a HP is connected
nor allows sound to be played using it. This patch fixes the problem by adding
a quirk for this specific model. It's possible that others have the same NID
(0x19) to report when dock HP is connected, but I don't have access to any.
Please Cc me in the reply since I'm not subscribed to alsa-devel@.

Signed-off-by: Aristeu Rozanski <aris@redhat.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 08:40:20 +01:00
Matthew Ranostay
8bb0ac5573 ALSA: hda: Add STAC_DELL_S14 quirk
Add STAC_DELL_S14 quirk for new laptop series. Removed un-needed pins
in pin_nids for stac92hd83xxx. Also reorganized connection selection
code for the respective ports per quirk define.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 08:35:08 +01:00
Takashi Iwai
ae374d667a ALSA: hda - Update documentation
Update documentation regarding codec probing; the new probe_only option
and the new probe_mask usage.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 08:33:55 +01:00
Takashi Iwai
20db7cb0ac ALSA: hda - Add forced codec-slots for ASUS W5F
ASUS W5F needs the fixed codec-slots to probe to override the BIOS
problem.

Tested-by: Giovanni Moser Frainer <giovanni@redix.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 08:19:30 +01:00
Takashi Iwai
f1eaaeec11 ALSA: hda - Allow fixed codec-probe mask
Some devices have broken BIOS and they don't set the codec probe-bit
properly after cleared by the driver.  This makes the driver skipping
the necessary codec slots.

Since BIOS update isn't always easy, now the semantics of probe_mask
option is changed a bit.  When it contains the bit 8 (0x100), the
lower bits are used to probe that slots regardless of codec-probe bits
returned by the hardware.

For example, probe_mask=0x103 will force to probe the codec slot #0
and #1.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-13 08:16:55 +01:00
Herton Ronaldo Krzesinski
c98041f7d7 ALSA: hda - Cleanup setting of pin_configs in patch_stac927x
After commit "ALSA: hda - Fix restore of pin configs at resume for
STAC/IDT codecs", the introduced stac_save_pin_cfgs function checks
already for pins == NULL case, saving then default pin configs from
machine with stac92xx_save_bios_config_regs. So we can remove the
extra checks when stac927x_brd_tbl[spec->board_config] == NULL.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-12 00:17:31 +01:00
Takashi Iwai
a1152e3570 Merge branch 'fix/hda' into topic/hda 2009-02-12 00:14:34 +01:00
Takashi Iwai
26a74f1f61 ALSA: hda - Register (new) devices at reconfig
The devices that have been newly added during reconfig must be
registered.  Otherwise they won't be visible to user-space.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-12 00:13:19 +01:00
Takashi Iwai
0852d7a654 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>
2009-02-12 00:04:19 +01:00
Takashi Iwai
32d2c7fa13 ALSA: hda - Fix a wrong pin check in snd_hda_parse_pin_def_config()
Fixed a wrong pin check (a typo) for debug print of digital input pin.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-11 11:33:13 +01:00
Takashi Iwai
df22313637 Merge branch 'fix/hda' into topic/hda 2009-02-11 09:09:29 +01:00
Wu Fengguang
a57c0eb655 ALSA: hda - add id for Intel IbexPeak integrated HDMI codec
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-11 09:09:15 +01:00
Wu Fengguang
9a957a24e3 ALSA: hda - compute checksum in HDMI audio infoframe
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-11 09:09:07 +01:00
Wu Fengguang
606c0cee69 ALSA: hda - enable HDMI audio pin out at module loading time
We found that enabling/disabling HDMI audio pin out at stream start/stop
time will kill the leading 500ms or so sound samples. Avoid this by enabling
pin out once and for ever at module loading time.

The leading ~500ms audio samples will still be lost when switching from
X-channel playback to Y-channel playback where X != Y. However there's no
much we can do about it: the audio infoframe has to change and it looks like
either G45 or YAMAHA requires some time to switch the configuration.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-11 09:08:59 +01:00
Wu Fengguang
a1667e4eea ALSA: hda - allow multi-channel HDMI audio playback when ELD is not present
The YAMAHA AV-X1800 requires audio infoframe to include speaker-channel
mapping to play >2 channel HDMI audio. In theory that mapping should be
derived from its speaker configurations contained in its ELD. However we
currently cannot get ELD in console before the KMS functionalities are ready.
This is a more or less general issue at least in the near future. As a
workaround, we propose to allow playback of mult-channel audio when ELD
is not available.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-11 09:08:47 +01:00
Takashi Iwai
501ca25629 Merge branch 'fix/hda' into topic/hda 2009-02-10 17:17:17 +01:00
Mackenzie Morgan
44a678d04b ALSA: hda - Add quirk for Asus z37e (1043:8284)
Added a quirk for Asus Z37E for fixing suspend/hibernation problem.

Reference:
	https://bugs.edge.launchpad.net/ubuntu/+source/linux/+bug/25896
	http://launchpadlibrarian.net/17053575/0001-Add-quirk-for-ASUS-Z37E-to-make-sound-audible-afte.patch
	https://bugtrack.alsa-project.org/alsa-bug/bug_view_page.php?bug_id=4282

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-10 17:13:43 +01:00
Takashi Iwai
22971e3a77 ALSA: hda - add digital beep support for ALC268
Added the digital beep support for ALC268.  It was missing in the
last patches.

However, ALC268 has a strange pin use for widget 0x1d, which could be
used as another purpose.  So, the patch adds a check of the beep control
before creating the hook for input layer.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-10 11:56:44 +01:00
Takashi Iwai
dea0a5095b 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>
2009-02-09 17:19:32 +01:00
Takashi Iwai
2a074f4a54 Merge branch 'topic/quirk-cleanup' into topic/hda 2009-02-09 17:19:21 +01:00
Takashi Iwai
8bd4bb7a35 ALSA: Add subdevice_mask field to quirk entries
Introduced a new field, subdevice_mask, which specifies the bitmask
to match with the given subdevice ID.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-09 17:19:11 +01:00
Herton Ronaldo Krzesinski
23c7b521c2 ALSA: hda - Don't touch non-existent port f on 4-port 92hd71bxx codecs
When checking for input amps on pins 0x0a, 0x0d and 0x0f, and
initializing them for 92hd71xxx codec models, we must skip nid 0x0f
for 4-port models too like with 5-port models, as it is unused
(nid 0x0f is vendor reserved in 4-port models).

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-02-09 08:25:23 +01:00