Commit graph

1722 commits

Author SHA1 Message Date
Takashi Iwai
fc08722510 ALSA: hda - Fix input and jack Kconfig depenencies
CONFIG_SND_JACK needs to be selected explicitly only when INPUT=y or
INPUT_SND.  The current way, INPUT=SND_HDA_INTEL isn't strict enough.

Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-21 19:57:11 +01:00
Łukasz Wojniłowicz
7cef4cf1c5 ALSA: hda - 4930g mute lfe and side when pluging in headphones
Fixes first issue from comment 0021423 in bug 0004317 for Acer Aspire 5930g

Signed-off-by: Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-20 12:14:35 +01:00
Takashi Iwai
f2624791a0 ALSA: hda - Change quirk for Acer Aspire 5930G
Change the quirk for Acer Aspire 5930G from model=acer-aspire-4930g to
model=acer-aspre-6530g.  The tuba bass gets muted along with the other
built-in speakers upon headphones insertion, the internal mic works
perfectly etc.

Reported-by: Claudio Viano <claudio.viano@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-19 11:51:46 +01:00
Takashi Iwai
b4e818768d ALSA: hda - Fix mute-LED sync on HP laptops with IDT92HD83xxx codecs
The mute-LED isn't synchronized with the actual mute state on some
HP laptops with IDT 92HD83xxx codecs.  A similar hack using
check_power_status callback is added for this codec, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 17:22:07 +01:00
Takashi Iwai
8af3aeb498 ALSA: hda - Fix detection of dual headphones
The dual-headphone mode with STAC/IDT codecs is useful only for machines
that have two (or more) built-in headphones.

But, some HP laptops give multiple headphone pin configs, one for the
built-in and another for the separate (likely a docking station) one.
This results in a missing speaker volume control.

This patch adds more check for the dual-headphone mode to avoid this
problem.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 14:23:37 +01:00
Takashi Iwai
d56757abc1 ALSA: hda - Replace the rest of jack-detections with snd_hda_jack_detect()
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 08:00:14 +01:00
Wu Fengguang
83d605fd63 ALSA: hda - show EPSS capability in proc
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:48:28 +01:00
Wu Fengguang
81bf31e2d0 ALSA: intelhdmi - sticky channel count
Don't change channel count if not necessary.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:46:36 +01:00
Wu Fengguang
5779191e0e ALSA: intelhdmi - sticky stream id and format
We tracked down the first-0.5s-hdmi-audio-samples-lost problem to the
AC_VERB_SET_CHANNEL_STREAMID command. It is suspected that many HDMI
sinks need some time to adapt to the new state.

The workaround is to avoid changing stream id/format whenever possible.
Proposed by David.

Signed-off-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:46:19 +01:00
Wu Fengguang
848de598ee ALSA: intelhdmi - sticky infoframe
Remember the active infoframe, so as to avoid stop/restart infoframe
transmission when switching between audio clips of the same format.

Proposed by Shang and David.

CC: Shane W <shane-alsa@csy.ca>
CC: David Härdeman <david@hardeman.nu>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:45:42 +01:00
Wu Fengguang
978be6d711 ALSA: intelhdmi - separate out infoframe checksum routine
And make it right when called for more than one times.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:43:12 +01:00
Wu Fengguang
3f54aa5091 ALSA: intelhdmi - probe for monitor/eld presence at module init time
This avoids lost of presence info on module reloading.
The presence info used to be only updated at the (rare) hotplug events.

Proposed by David, thanks!

CC: David Härdeman <david@hardeman.nu>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:42:07 +01:00
Wu Fengguang
864f92be7e ALSA: hda - introduce snd_hda_jack_detect() and snd_hda_pin_sense()
This helps merge duplicate code.

v2: add snd_hda_jack_detect() and comments recommended by Takashi.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:40:57 +01:00
Wu Fengguang
23ccc2bd24 ALSA: intelhdmi - export monitor-presence and ELD-valid status
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:37:49 +01:00
Wu Fengguang
1e7c10fefa ALSA: intelhdmi - fix channel mapping slot mask
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:37:22 +01:00
Wu Fengguang
6f539a9861 ALSA: intelhdmi - fix audio infoframe fill size
Reported-by: David Härdeman <david@hardeman.nu>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-18 07:37:06 +01:00
Takashi Iwai
c5b5165ce2 ALSA: hda - Disable default quirk for Sony VAIO with ALC262 codec
The ALC262 has a quirk entry matching with all Sony Vaio laptops
to use model=sony-assamd as default.  But, model=auto works much better
for new models in the recent driver versions, thus it's safer to disable
that default quirk entry.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-17 16:03:34 +01:00
Takashi Iwai
5a35598299 Merge branch 'fix/hda' into topic/hda 2009-11-17 16:00:33 +01:00
Takashi Iwai
12929baea4 ALSA: hda - Fix quirk for VAIO type G
Vaio type G laptop doesn't work with the current quirk setup.
After some tests, it turned out that it should be model=auto as default.

Reported-by: Mattia Dongili <malattia@linux.it>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-17 15:58:35 +01:00
Takashi Iwai
67d634c07a 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>
2009-11-16 15:35:59 +01:00
Takashi Iwai
9bb1fe390d ALSA: hda - Fix beep_mode option value
The beep_mode option value was wrongly defined: it must be 0 = off and
1 = on.

Also, evaluate the beep_mode value at snd_hda_attach_beep_device()
properly so that no device is created when beep_mode=0 is given.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-16 15:33:49 +01:00
Takashi Iwai
d5191e50b2 ALSA: hda - Update / add kerneldoc comments to exported functions
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-16 14:58:17 +01:00
Jaroslav Kysela
85dd662ff4 ALSA: hda - move snd_hda_pcm_type_name from hda_codec.h to hda_local.h
The snd_hda_pcm_type_name array is local only.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-16 14:14:28 +01:00
Takashi Iwai
9c96fa599f 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>
2009-11-16 11:35:23 +01:00
Jaroslav Kysela
4d02d1b638 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>
2009-11-16 11:35:19 +01:00
Jaroslav Kysela
3911a4c19e 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>
2009-11-16 11:35:14 +01:00
Jaroslav Kysela
2dca0bba70 ALSA: hda - add beep_mode module parameter
The beep_mode parameter for snd-hda-intel module allows to choose among
different digital beep device registation to the input layer.

0 = do not register to the input layer
1 = register to the input layer all time
2 = use "Beep Switch" control exported to user space mixer applications

Also, introduce CONFIG_SND_HDA_INPUT_BEEP_MODE for default value.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-16 11:35:10 +01:00
Jaroslav Kysela
5f81669750 ALSA: hda: beep - add missing cancel_delayed_work
The unregister work should be also canceled in snd_hda_detach_beep_device()
function.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-16 11:35:05 +01:00
Jaroslav Kysela
13dab0808b ALSA: hda_intel: Digital PC Beep - delay input device unregistration
The massive register/unregister calls for input device layer might be
overkill. Delay unregister call by one HZ as workaround.

Also, as benefit, beep->enabled variable is changed immediately now
(not from workqueue).

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-16 11:35:00 +01:00
Jaroslav Kysela
123c07aedd 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>
2009-11-16 11:34:41 +01:00
Takashi Iwai
fe705ab152 Merge branch 'topic/beep-rename' into topic/hda 2009-11-16 11:33:41 +01:00
Takashi Iwai
7d1794e81b Merge branch 'fix/hda' into topic/hda 2009-11-16 11:33:35 +01:00
Daniel J Blueman
8ef5837a47 ALSA: hda - Dell Studio 1557 hd-audio quirk
Add the Dell Studio 15 (model 1557, Core i7) laptop to the hd-audio
quirk list, enabling audio.

Signed-off-by: Daniel J Blueman <daniel.blueman@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-15 11:09:19 +01:00
akpm@linux-foundation.org
01a1796bc5 sound/pci/hda/patch_via.c: work around gcc-4.0.2 ICE
sound/pci/hda/patch_via.c: In function 'via_hp_bind_automute':
sound/pci/hda/patch_via.c:2074: internal compiler error: in do_SUBST, at combine.c:462
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

[added a comment by tiwai]

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-14 09:53:06 +01:00
Takashi Iwai
e2e527ae7f ALSA: hda - Add another Nvidia HDMI codec id (10de:0005)
Found on Nvidia 9800M GTS.

Reported-by: Chris Balcum <sherl0k@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-13 08:28:03 +01:00
Takashi Iwai
7288561af9 ALSA: hda - Fix build error without CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_POWER_SAVE is independent from CONFIG_SND_HDA_HWDEP.
Thus snd_hda_hwdep_add_power_sysfs() needs the check of both kconfigs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-12 10:01:18 +01:00
Takashi Iwai
f8b7163529 ALSA: hda - Don't access invalid substream in proc file
The commit e330323520
"ALSA: hda - proc - show which I/O NID is associated to PCM device"
introduces the access to substream pointer.  But, PCMs may have no
substreams in one or both directions, and this results in NULL
dereference.  Also, print the first substream number doesn't make
sense.

This patch removes the access to the substream pointer, and reformat
to fit to the standard coding style.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-12 09:50:28 +01:00
Daniel T Chen
46ef6ec9da ALSA: hda: Use model=mb5 for MacBookPro 5,2
BugLink: https://bugs.launchpad.net/bugs/462098

Until we can look closer at the verbs, let's use ALC885_MB5 for
codec SSID 0x106b4600 to enable playback and capture for MacBookPro
5,2s.

Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-12 07:38:14 +01:00
Takashi Iwai
a2f6309e83 ALSA: hda - Add power on/off counter
Added the power on/off counter and expose via sysfs files.
The sysfs files, power_on_acct and power_off_acct, are created under
each codec hwdep sysfs directory (e.g. /sys/class/sound/hwC0D0).
The files show the msec length of the codec power-on and power-off,
respectively.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-11 09:37:08 +01:00
Roel Kluin
71121d9fcc ALSA: hda - possible read past array alc88[02]_parse_auto_config()
The test of index `i' is after the read - too late - and
unsafe: if snd_hda_get_connections() fails in the last
iteration a read beyond the array is possible.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-11 08:07:05 +01:00
Takashi Iwai
8f217a226c ALSA: hda - Add missing export for snd_hda_bus_reboot_notify
... forgot to add for modules.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-10 18:26:12 +01:00
Takashi Iwai
4ac5598290 ALSA: hda - Avoid quirk for HP dc5750
The present quirk for HP dc5750 seems broken and maps the pins wrongly.
Since the auto-parser works well for this device, set the default entry
to use model=auto.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-10 16:11:00 +01:00
Jaroslav Kysela
e330323520 ALSA: hda - proc - show which I/O NID is associated to PCM device
Output something like:

Node 0x02 [Audio Output] wcaps 0x11: Stereo
  Device: name="ALC888 Analog", type="Audio", device=0, substream=0
  Converter: stream=0, channel=0
  ...

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-10 16:06:57 +01:00
Takashi Iwai
fb8d1a344d ALSA: hda - Add reboot notifier to each codec
Add reboot notifier to each codec so that it can do some workarounds
needed for reboot.

So far, patch_sigmatel.c calls its shutup routine for avoiding noises
at reboot on some HP machines.

References: Novell bnc#544779
	http://bugzilla.novell.com/show_bug.cgi?id=544779

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-10 16:02:29 +01:00
Daniel Drake
dbaccc0cca ALSA: hda - Tweak OLPC XO-1.5 microphone bias
Our contacts at Conexant suggested that we reduce the external
microphone bias to 50% in order to center the input signal with
the DC input range of the codec. This is because the microphone
port is DC coupled for potential use with sensors.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-10 08:36:26 +01:00
Daniel T Chen
95491d902b ALSA: hda: Use model=auto quirk for Sony VAIO VGN-FW170J using ALC262
BugLink: https://bugs.launchpad.net/bugs/478309

The internal microphone on this VAIO model does not work unless the
"auto" quirk is used.

Signed-off-by: Daniel T Chen <crimsun@ubuntu.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-09 21:07:13 +01:00
Takashi Iwai
1a6969788e ALSA: hda - Don't initialize CORB/RIRB for single_cmd mode
So far, CORB/RIRB still remains even if the driver is switched to the
single_cmd mode.  The specification says that this should be disabled,
but I hoped this isn't the case; indeed most devices worked together with
CORB/RIRB.

However, Poulsbo (US15W) seems problematic with this setup, and it
requires to disable CORB/RIRB when single_cmd is used.

Now this patch disables CORB/RIRB initialization when the single_cmd
mode is used.  Also the unsolicited event is disabled because it can't
work without RIRB.

Reported-and-tested-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-07 09:49:04 +01:00
Takashi Iwai
167eae5a17 ALSA: hda - Reset pins of IDT/STAC codecs at free
Some laptops cause annoying clicks or noises at shutdown/reboot since
the speaker pin is set still high.  Apply the same procedure used for
the suspend to avoid such clicks/noises for freeing the codec, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-06 15:47:50 +01:00
Takashi Iwai
9ad6a46b64 Merge branch 'fix/hda' into topic/hda 2009-11-06 15:45:59 +01:00
Randy Dunlap
78987bdc4e ALSA: hda, move hp_bseries_system
Function hp_bseries_system() is always used, outside of
CONFIG_ boundaries/controls, so move it.

sound/pci/hda/patch_sigmatel.c:5458: error: implicit declaration of function 'hp_bseries_system'

Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2009-11-05 18:30:53 +01:00