1
Commit Graph

110584 Commits

Author SHA1 Message Date
Yang, Libin
c4da29ca08 ALSA: hda - support detecting HD Audio devices with PCI class code
The patch uses HD Audio PCI class code to detect AMD HD Audio cards.

Signed-off-by: Libin Yang <libin.yang@amd.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-13 11:07:07 +01:00
Wu Fengguang
3a95cb972b ALSA: handle SiI1392 HDMI codec in patch_intelhdmi.c
Move the handling of SiI1392 HDMI codec from patch_atihdmi.c to
patch_intelhdmi.c, which makes our ASUS P5E-VM HDMI board work.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-13 07:55:40 +01:00
Takashi Iwai
90d0be2fc3 Merge branch 'topic/fix/hda' into topic/hda
Conflicts:
	sound/pci/hda/patch_sigmatel.c
2008-11-12 10:02:04 +01:00
Takashi Iwai
d7a8943635 ALSA: hda - Fix IDT/STAC multiple HP detection
Due to the recent change for multiple HP as line-out switch, only
one of the multiple headphons (usually a wrong one) is toggled
and the other pins are still disabled.  This causes the silent output
problem on some Dell laptops.

Also, the hp_switch check is screwed up when a line-in or a mic-in
jack exists.  This is added as an additional output, but hp_switch
check doesn't take it into account.

This patch fixes these issues: simplify hp_switch check by using
the NID instead of bool, and clean up / fix the toggle of HP pins
in unsol event handler code.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-12 10:00:56 +01:00
Takashi Iwai
4f1e6bc364 ALSA: hda - Fix input pin initialization for STAC/IDT codecs
The input pins are sometimes not initialized properly because
of the optimization check of the current pinctl code.

Force to initialize the mic input pins so that they can be set up
properly even if they were in a weird state.  But keep other input
pins if already set up as input, since this could be an extra mic
pin.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-11 18:00:53 +01:00
Takashi Iwai
355a0ec471 ALSA: hda - Add missing analog-mux mixer creation for STAC9200
The creation of analog-mux mixer element is missing in
patch_stac9200() due to the dynamic allocation patch.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-11 16:46:19 +01:00
Travis Place
254248313a 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>
2008-11-10 17:57:14 +01:00
Takashi Iwai
f43aa025b7 ALSA: hda - Fix another cache list management
Fix another silly bug in the amp cache list management.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-10 16:24:26 +01:00
Michel Marti
65b92e5cbc 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>
2008-11-09 12:47:12 +01:00
Takashi Iwai
0edb945430 ALSA: hda - Fix probe errors on Dell Studio Desktop
BIOS on Dell Studio Desktop tells wrong codec probe masks.
This patch gives the preset mask value to avoid invalid access.
Reference: Novell bug#440907
	https://bugzilla.novell.com/show_bug.cgi?id=440907

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07 14:53:09 +01:00
Takashi Iwai
30cde0aacc ALSA: hda - Fix ALC260 hp3013 master switch
The master switch doesn't influence on NID 0x15, the headphone jack
on HP 3013 model because alc260_hp_master_update() ignores the passed
arguments.

Also, corrected the wrong arguments of hp3013 (0x10 and 0x15) although
this doesn't change any behavior.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07 14:51:15 +01:00
Takashi Iwai
0774023172 Merge branch 'topic/fix/hda' into topic/hda 2008-11-07 09:06:45 +01:00
Takashi Iwai
ea2da6e898 ALSA: hda - Fix broken hash chain allocation
The chaining for amp hash got broken due to the rewrite with
snd_array.  Fixed now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07 00:51:36 +01:00
Takashi Iwai
b910d9ae5b ALSA: hda - Add max allocation check in array allocator
Added a check for max allocation size in snd_array_new() for a
debugging purpose.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07 00:26:52 +01:00
Takashi Iwai
c217429b14 ALSA: hda - Add missing NULL check in amp hash allocation
Added the missing NULL check from allocator in get_alloc_hash().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-07 00:23:30 +01:00
Tony Vroon
64154835c5 ALSA: hda - Add lifebook model for Realtek ALC269
The widget layout of the Fujitsu Lifebook S6420 (which is ICH9M-based
and uses an ALC269) is similar but not identical to the Lifebook
S6410/E8410 (which are ICH8M-based and use an ALC262).

It is named lifebook as fujitsu is in use for Amilo machines. This builds
on the Quanta FL1 work and supports all analog inputs & outputs that I am
aware of.  Microphone autoswitch is implemented. The laptop mic port takes
precedence over the dock mic port if both happen to have a jack plugged in.
This made sense to me as a design decision (imagine a presentation
environment with the dock fully wired in and the presenter quickly wanting
to override the mic with a headset).

There is mention of a digital audio path on the codec graph, so perhaps
the headphone socket is dual-function analog/digital. I will follow up
with another patch if I can acquire equipment to test this.

Signed-off-by: Tony Vroon <tony@linx.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-06 17:32:34 +01:00
Takashi Iwai
6ce4a3bc1b ALSA: hda - Make codec-probing more robust
When an error occurs during the codec probing, typically accessing to an
non-existing codec slot, the controller chip gets often screwed up and
can no longer communicate with the codecs.

This patch adds a preparation phase just to probe codec addresses before
actually creating codec instances.  If any error occurs during this
probing phase, the driver resets the controller to recover.

This will (hopefully) fix the famous "single_cmd" errors.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-06 17:29:48 +01:00
Takashi Iwai
33fa35ed0d ALSA: hda - simplify hda_bus ops callbacks
The hda_bus ops callback take struct hda_bus pointer.
Also, the command callback takes the composed command word, instead of
each small bits in arguments.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-06 16:50:40 +01:00
Takashi Iwai
c238b4f403 ALSA: hda - Split ALC268 acer model
There are actually two variants of ALC268 Acer implementation, one
with an analog built-in mic (pin 0x19) and another with a digital
mic (pin 0x12).  Created a new model, acer-dmic, for the latter case
now.

So far, all known models are assigned to be analog-mic, according to
the BIOS setup.  If this doesn't match with the actual case, one needs
to try model=acer-dmic, and fix the entry to point ALC268_ACER_DMIC
if it works.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-05 14:57:20 +01:00
Takashi Iwai
959973b92d ALSA: hda - Add a quirk for MEDION MD96630
Use model=lenovo-ms7195-dig for MEDION MD96630 laptop (17c0:4085)
with ALC888 codec.
Reference: Novell bnc#412548
	https://bugzilla.novell.com/show_bug.cgi?id=412528

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-05 11:30:56 +01:00
Takashi Iwai
13c947444f ALSA: hda - Add ASUS V1Sn support
Asus V1s series laptops have an ALC660VD with PCI id: 0x1043, 0x1633.
1.) remove the previous behaviour of mapping that to the ALC861VD_LENOVO
    device.
2.) add a new ALC660VD_V1S device based on ALC861VD_LENOVO, with an
    added digital out.

Signed-off-by: Tristan Aston <astrotris@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-05 08:09:10 +01:00
Takashi Iwai
beb0b9cf78 ALSA: hda - Fix unused function in patch_intelhdmi.c
Add a proper ifdef to shut out a compile warning:
   CC [M]  sound/pci/hda/patch_intelhdmi.o
sound/pci/hda/patch_intelhdmi.c:286: warning: ‘hdmi_get_dip_index’ defined but \
not used

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-05 07:58:25 +01:00
Wu, Fengguang
91504877c5 ALSA: hda - Intel HDMI audio support
Add support for Intel G45 integrated HDMI audio codecs.

This initial release supports:
	- 2 channel stereo sound output
	- report monitor's ELD information

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-05 07:54:03 +01:00
Takashi Iwai
bfc5c26fb6 ALSA: hda - Don't create empty PCM streams
Due to the hda-reconfiguration patches, the check of empty stream
is gone, and this results in an error with the codec setup with empty
streams.

This patch adds the check again to avoid the error at probing.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-04 17:48:39 +01:00
Takashi Iwai
c4dc507185 ALSA: hda - Limit the number of GPIOs show in proc
Limit the number of GPIOs shown in proc.  Otherwise it gets too long
unnecessarily, and hard to analyze.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-04 13:30:57 +01:00
Takashi Iwai
b91f080f51 ALSA: hda - Fix possible NULL dereference
Add NULL-check of the return value of snd_kctl_new1() before
accessing it.  Also, make a sanity NULL check to snd_BUG_ON()
for debugging only.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-04 08:43:08 +01:00
Takashi Iwai
4ef0ef1966 ALSA: hda - Fix missing ADC list in ALC260 auto-probe mode
The commit f9e336f65b
    ALSA: hda - Unify capture mixer creation in realtek codes
removed the ADC check for ALC260 auto-probe mode accidentally.
Re-added to patch_alc260() again.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-03 17:50:48 +01:00
Takashi Iwai
26f5df265f ALSA: hda - Add ALC299 fujitsu preset model
Added a preset model for FSC Amilo with ALC269 codec chip.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-03 17:39:46 +01:00
Matthew Ranostay
6b3ab21ef1 ALSA: hda: make a STAC_DELL_EQ option
Add support for explicitly enabling the EQ distortion hack for
systems without software biquad support.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-03 14:29:47 +01:00
Takashi Iwai
69e50282b7 ALSA: hda - Add a quirk for another Acer Aspire (1025:0090)
Added a quirk for another Acer Aspier laptop (1025:0090) with ALC883
codec.  Reported in Novell bnc#426935:
    https://bugzilla.novell.com/show_bug.cgi?id=426935

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-11-03 10:07:43 +01:00
Takashi Iwai
3c3e9892a1 ALSA: hda - Re-add input-source control for Realtek
Re-added again "Input Source" control that was removed mistakenly
in the previous patchset.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-31 17:48:56 +01:00
Takashi Iwai
f9e336f65b ALSA: hda - Unify capture mixer creation in realtek codes
Unified the capture mixer creation in patch_realtek.c.

ALC268 is still an exception since it has no AMP in ADC but in
MUX widget.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-31 17:24:39 +01:00
Takashi Iwai
54cbc9abe5 ALSA: hda - Unify capture callbacks in realtek codes
Unify the capture callbacks in patch_realtek.c.
The difference of matrix or mux style is checked via spec->is_mix_capture
flag.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-31 17:24:30 +01:00
Takashi Iwai
d88897eaea ALSA: hda - Use macros to check array overflow
Use macro to add mixer and verb elements to check the possible
array overflow.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-31 17:24:21 +01:00
Takashi Iwai
afecd78cd2 Merge branch 'topic/fix/hda' into topic/hda 2008-10-31 17:24:01 +01:00
Takashi Iwai
ee956e090e ALSA: hda - Add digital-mic for ALC269 auto-probe mode
The digital mic wasn't detected properly for ALC269 auto-probing mode
because of its widget number.  Fixed now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-31 17:23:24 +01:00
Takashi Iwai
4605b718e8 ALSA: hda - Disable broken mic auto-muting in Realtek codes
The recent addition of automatic mic-muting is broken in some cases.
The code assumes that the pin nids <= 0x18, but the digital pins can
be less than 0x18.
Also, it assumes the front-mic being the internal mic, but it depends
on the hardware implementation actually.

Instead of complex case-fixes, better to disable the code as now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-31 17:21:08 +01:00
Takashi Iwai
0cbf00980f ALSA: hda - Add reboot notifier
The current snd-hda-intel driver seems blocking the power-off on some
devices like eeepc.  Although this is likely a BIOS problem, we can add
a workaround by disabling IRQ lines before power-off operation.
This patch adds the reboot notifier to achieve it.

The detailed problem description is found in bug#11889:
    http://bugme.linux-foundation.org/show_bug.cgi?id=11889

Tested-by: Luiz Fernando N. Capitulino <lcapitulino@mandriva.com.br>
Cc: stable@kernel.org
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-29 16:21:16 +01:00
Takashi Iwai
1b063c3d09 Merge branch 'topic/fix/hda' into topic/hda 2008-10-29 08:17:05 +01:00
Takashi Iwai
d301fc320f ALSA: hda - Fix indentation in hda_local.h
Just cosmetic fixes of spacing that annoyed me.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-29 08:16:22 +01:00
Takashi Iwai
c1e99bd9d6 ALSA: hda - Fix SPDIF mute on IDT/STAC codecs
The SPDIF mute switch code seems broken.  It doesn't set unmute bits
properly.  Also it contains the duplicated lines (merge error?) to be
cleaned up.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-29 08:03:42 +01:00
Mark Brown
8199de3b29 ALSA: hda: Add HDA vendor ID for Wolfson Microelectronics
Add Wolfson Microelectronics to the HDA vendor ID table.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-28 16:15:42 +01:00
Takashi Iwai
5695ff4416 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>
2008-10-28 15:39:26 +01:00
Takashi Iwai
163d4c53e3 Merge branch 'topic/fix/hda' into topic/hda 2008-10-28 11:44:45 +01:00
Takashi Iwai
34c25350ac ALSA: hda - Remove old codec-probe limitation
Removed the old workaround to avoid the non-existing codec slot.
The current code should work without that workaround.  If any,
we can add a quirk table.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-28 11:44:34 +01:00
Takashi Iwai
e044c39ae2 ALSA: hda - Restore default pin configs for realtek codecs
Some machines have broken BIOS resume that doesn't restore the default
pin configuration properly, which results in a wrong detection of HP
pin.  This causes a silent speaker output due to missing HP detection.
Related bug: Novell bug#406101
	https://bugzilla.novell.com/show_bug.cgi?id=406101

This patch fixes the issue by saving/restoring the default pin configs
by the driver itself.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-27 16:56:24 +01:00
Takashi Iwai
42dc2378b5 Merge branch 'topic/hda-next' into topic/hda 2008-10-27 08:36:48 +01:00
Matthew Ranostay
74aeaabc3e ALSA: hda: add support for jack detection on IDT codecs.
This patch adds support to the IDT codec families to report jack status
to the jack abstraction layer. This required some reorganization in the
stac92xx_unsol_event function in which the index value is changed to
reporting the nid with the event.

Also adds an sigmatel_jack struct to keep track of the nid relation
to the jack abstraction layer instance. Also adds functions to set and
retrieve data values for each nid, this is used in stac92xx_unsol_event
to retrieve the GPIO mask for STAC_VREF_EVENT.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-27 08:15:15 +01:00
Matthew Ranostay
50a9f7905f ALSA: hda: add snd_hda_get_jack* functions
This patch adds snd_hda_get_jack* functions for reporting jack location,
device, and connectivity type.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-27 08:15:15 +01:00
Matthew Ranostay
282cd76ffc ALSA: hda: dynamic jack id
This patch duplicates the jack->id pointer with kstrdup() to prevent
scoping issues from calling autoprobing functions from the HDA section.

Signed-off-by: Matthew Ranostay <mranostay@embeddedalley.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2008-10-27 08:15:14 +01:00