openwrt/staging/blogic.git
15 years agoALSA: hda - Fix input source selection of IDT92HD73xx
Takashi Iwai [Tue, 1 Sep 2009 23:00:05 +0000 (01:00 +0200)]
ALSA: hda - Fix input source selection of IDT92HD73xx

Fix the mux_nids to select directly the input source instead of mux
mixers so that it works with the current mux enum handler for IDT
92HD73xx codecs.

Also, clean up useless / unnecessary mixer controls and init verbs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix obsolete CONFIG_SND_DEBUG_DETECT
Takashi Iwai [Tue, 1 Sep 2009 22:20:21 +0000 (00:20 +0200)]
ALSA: hda - Fix obsolete CONFIG_SND_DEBUG_DETECT

Fix the old dead CONFIG_SND_DEBUG_DETECT to CONFIG_SND_DEBUG_VERBOSE.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Unmute docking line-out as default with AD1984A codec
Takashi Iwai [Tue, 1 Sep 2009 07:09:26 +0000 (09:09 +0200)]
ALSA: hda - Unmute docking line-out as default with AD1984A codec

Unmute the docking-station line-out as default on machines with
AD1984A codec chip.  It can be still muted via "Dock" mixer switch.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add another entry for Nvidia HDMI device
Takashi Iwai [Tue, 1 Sep 2009 06:53:19 +0000 (08:53 +0200)]
ALSA: hda - Add another entry for Nvidia HDMI device

Added another entry for Nvidia HDMI device (10de:0003).

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add missing GPIO initialization for AD1984A laptop model
Takashi Iwai [Mon, 31 Aug 2009 06:37:46 +0000 (08:37 +0200)]
ALSA: hda - Add missing GPIO initialization for AD1984A laptop model

A similar initialization of GPIO1 pin like mobile model is needed
for laptop model, too.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add support of docking auto-mute/mic for AD1984A laptop model
Takashi Iwai [Sun, 30 Aug 2009 10:15:59 +0000 (12:15 +0200)]
ALSA: hda - Add support of docking auto-mute/mic for AD1984A laptop model

Add the support of automatic mute and mic-switching of the docking
station HP and mic plugs for AD1984A laptop model for some HP machines.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Mon, 31 Aug 2009 06:27:10 +0000 (08:27 +0200)]
Merge branch 'fix/hda' into topic/hda

Conflicts:
sound/pci/hda/patch_realtek.c

15 years agoALSA: hda - Fix ALC268/ALC269 headphone pin routing
Takashi Iwai [Sat, 29 Aug 2009 21:23:08 +0000 (23:23 +0200)]
ALSA: hda - Fix ALC268/ALC269 headphone pin routing

Fix the headphone pin routing of ALC268/ALC269 codecs.  Using alc882
routine doesn't work because alc268/alc269 parser assumes the
independent DACs for both HP and speaker outputs.  Need to assign the
DAC depending on the pin.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix MacBookPro 3,1/4,1 quirk with ALC889A
Takashi Iwai [Mon, 31 Aug 2009 06:15:26 +0000 (08:15 +0200)]
ALSA: hda - Fix MacBookPro 3,1/4,1 quirk with ALC889A

This patch fixes the wrong headphone output routing for MacBookPro 3,1/4,1
quirk with ALC889A codec, which caused the silent headphone output.
Also, this gives the individual Headphone and Speaker volume controls.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
15 years agoALSA: hda - Add missing mux check for VT1708
Takashi Iwai [Mon, 31 Aug 2009 06:12:29 +0000 (08:12 +0200)]
ALSA: hda - Add missing mux check for VT1708

In patch_vt1708(), the check of MUX nids is missing and this results in
the -EINVAL error in accessing Input Source mixer element.  Simpliy
adding the call of get_mux_nids() fixes the problem.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Create "Digital Mic Capture Volume" correctly for IDT codecs
Takashi Iwai [Fri, 28 Aug 2009 22:49:36 +0000 (00:49 +0200)]
ALSA: hda - Create "Digital Mic Capture Volume" correctly for IDT codecs

So far, the digital mic capture volume wasn't created.  This is because
IDT codecs have output amps for digital mics, not input amps, while
input amps should be used for other analog pins.  Thus the automatic
capture volume creation should check both directions for digital mics.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add more quirk for HP laptops with AD1984A
Takashi Iwai [Thu, 27 Aug 2009 12:37:51 +0000 (14:37 +0200)]
ALSA: hda - Add more quirk for HP laptops with AD1984A

More entries for HP laptops to get them working properly.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add / fix model entries for HD-audio driver
Takashi Iwai [Tue, 25 Aug 2009 16:25:30 +0000 (18:25 +0200)]
ALSA: hda - Add / fix model entries for HD-audio driver

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add full audio support on Acer Aspire 7730G notebook
Denis Kuplyakov [Tue, 25 Aug 2009 16:15:59 +0000 (18:15 +0200)]
ALSA: hda - Add full audio support on Acer Aspire 7730G notebook

1) Added support of internal subwoofer (it sounds!!!)
2) Auto muting front speakers and internal subwoofer on headphones plug.
3) Internal mic works.
4) 3 channel mods (jack maps):
       black  pink         blue
2ch: front   ext mic     line in
4ch: front   ext mic     surround
6ch: front   CLFE        surround
  Can be changed in mixer.
5) Sound can be recorded from:
 Internal mic
 Ext mic
 Cd
 Line in
6) 2 separate capture channels.

Signed-off-by: Denis Kuplyakov <dener.kup@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Improve auto-cfg mixer name for ALC662
Takashi Iwai [Tue, 25 Aug 2009 14:14:35 +0000 (16:14 +0200)]
ALSA: hda - Improve auto-cfg mixer name for ALC662

The last patch in this series is for ALC662; pretty similar as the
previous patch for ALC861-VD.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Improve auto-cfg mixer name for ALC861-VD
Takashi Iwai [Tue, 25 Aug 2009 14:12:15 +0000 (16:12 +0200)]
ALSA: hda - Improve auto-cfg mixer name for ALC861-VD

One more patch to give a better name for the primary output controls,
this time for ALC861-VD codec.  The change is simple, just checking the
pin connection whether it's a speaker-out.  When both speaker and HP
are assigned, we name the volume as "PCM" as this influences on both
outputs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Improve auto-cfg mixer name for ALC262
Takashi Iwai [Tue, 25 Aug 2009 14:08:47 +0000 (16:08 +0200)]
ALSA: hda - Improve auto-cfg mixer name for ALC262

Similar improvements for ALC262 codec like previous two commits:
assign a better name, either Master or Speaker, for the primary output
controls.

However, in the case of ALC262 codec, the necessary changes are larger
than others because we need to check the possibility of different mixer
amps depending on the pins.  The pin 0x16 is mono, and bound with the
dedicated mixer 0x0e while other pins are bound with 0x0c.  Thus, there
are two possible volumes.

When only one of them is used, we can name it as "Master".  OTOH, when
both are used at the same time, they have to be named uniquely.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Improve auto-cfg mixer name for ALC260
Takashi Iwai [Tue, 25 Aug 2009 14:07:08 +0000 (16:07 +0200)]
ALSA: hda - Improve auto-cfg mixer name for ALC260

Instead of fixed "Front" mixer name, try to assign a better name, e.g.
"Master" or "Speaker" fot the primary output volume controls of ALC260
codec.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Improve auto-cfg mixer name for ALC880
Takashi Iwai [Tue, 25 Aug 2009 14:05:03 +0000 (16:05 +0200)]
ALSA: hda - Improve auto-cfg mixer name for ALC880

When there is only one DAC is used for ALC880, try to assign a better
name, either Speaker or Front, depending on the output pin type.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Generalize input pin parsing in patch_realtek.c
Takashi Iwai [Tue, 25 Aug 2009 11:10:18 +0000 (13:10 +0200)]
ALSA: hda - Generalize input pin parsing in patch_realtek.c

Provide a standard parser for input pins to create the input mixer
and input source controls instead of having a difference one for each
Realtek codec.  The new helper parses the codec connections dynamically
isntead of fixed indicies.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Reuse ALC268 parser for ALC269
Takashi Iwai [Mon, 24 Aug 2009 12:10:30 +0000 (14:10 +0200)]
ALSA: hda - Reuse ALC268 parser for ALC269

Reuse a part of the code of ALC268 parser for ALC269.
This will change the default output volume either to Front or Speaker
depending on the pin configuration.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: move open coded tricks into get_wcaps_channels()
Wu Fengguang [Mon, 24 Aug 2009 01:50:46 +0000 (09:50 +0800)]
ALSA: hda: move open coded tricks into get_wcaps_channels()

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Wed, 19 Aug 2009 18:10:24 +0000 (20:10 +0200)]
Merge branch 'fix/hda' into topic/hda

15 years agoALSA: hda - Fix probe of Toshiba laptops with ALC268 codec
Takashi Iwai [Wed, 19 Aug 2009 18:05:02 +0000 (20:05 +0200)]
ALSA: hda - Fix probe of Toshiba laptops with ALC268 codec

There are many variants of Toshiba laptops with ALC268 codec, and
it seems that a few of them don't work with model=toshiba preset
since they have the secondary ALC268 codec just for HDMI output.
This is a regression due to the previous clean-up work to merge all
Toshiba quirk entries into a single check.

This patch adds the identification of such laptops to apply the
standard BIOS-probing method.  Unfortunately, Toshiba laptops have
all the same PCI SSID, so we need to check the codec SSID to identify
each device.

Tested-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Wed, 19 Aug 2009 10:11:06 +0000 (12:11 +0200)]
Merge branch 'fix/hda' into topic/hda

15 years agoALSA: hda: add model for Intel DG45ID/DG45FC boards
Wu Fengguang [Wed, 19 Aug 2009 09:05:11 +0000 (17:05 +0800)]
ALSA: hda: add model for Intel DG45ID/DG45FC boards

The BIOS pin configs are in fact correct and shall not be overwritten.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: enable speaker output for Compaq 6530s/6531s
Wu Fengguang [Wed, 19 Aug 2009 08:58:59 +0000 (16:58 +0800)]
ALSA: hda: enable speaker output for Compaq 6530s/6531s

HP Compaq 6530s and 6531s internal speaker is silence or becomes silence
within 1 minute after fresh boot. It is found that pin 0x1c must be set to
PIN_OUT mode to make the speaker work. This is weird - line-in pin 0x1c and
speaker pin 0x16 seem to be unrelated.

The codec differences before/after patch are:

@@ Node 0x17 [Pin Complex] wcaps 0x40020b:
   Pin Default 0x41a6e130: [N/A] Mic at Ext Rear
     Conn = Digital, Color = White
     DefAssociation = 0x3, Sequence = 0x0
     Misc = NO_PRESENCE
-  Pin-ctls: 0x24: IN
+  Pin-ctls: 0x40: OUT
@@ Node 0x1c [Pin Complex] wcaps 0x40018d:
   Pin Default 0x41813021: [N/A] Line In at Ext Rear
     Conn = 1/8, Color = Blue
     DefAssociation = 0x2, Sequence = 0x1
-  Pin-ctls: 0x24: IN VREF_80
+  Pin-ctls: 0x40: OUT VREF_HIZ
   Unsolicited: tag=00, enabled=0
   Connection: 1
      0x24

Tests show that it won't impact (external) Mic recording.

Reported-by: "Lin, Ming M" <ming.m.lin@intel.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix invalid capture mixers with some ALC268 models
Takashi Iwai [Tue, 18 Aug 2009 22:18:10 +0000 (00:18 +0200)]
ALSA: hda - Fix invalid capture mixers with some ALC268 models

The auto-mic clean-up patches caused regressions on some ALC268 models
that have no proper input_mux but with "Input Source" mixer elements.
Such a combination results in Oops when accessed.

[A reason why set_capture_mixer() isn't used in patch_alc268() is that
ALC268 codec have HDA_OUTPUT direction for capture volumes unlike other
codecs.  Thus it needs own definitions of capture elements.]

This patch fixes the issues:
- Add a capture mixer definition without input-source
- Use the new capture mixer appropriately

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add missing num_adc_nids definition for IDT92HD8xxx
Takashi Iwai [Sat, 15 Aug 2009 09:57:53 +0000 (11:57 +0200)]
ALSA: hda - Add missing num_adc_nids definition for IDT92HD8xxx

The previous fix removed the definition of num_adc_nids wrongly, and
this resulted in the missing input-source control.  Now readded again.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix / clean up IDT92HD83xxx codec parser
Takashi Iwai [Thu, 13 Aug 2009 16:14:42 +0000 (18:14 +0200)]
ALSA: hda - Fix / clean up IDT92HD83xxx codec parser

A few improvements for IDT 92HD83xxx codec pareser:
- Remove unused / deprecated mixer-amp controls
- Handle d-mics as normal inputs since this codec has no separate
  MUXes for analog and digital
- Don't create duplicated controls for capture volumes with Mux
  capture volumes

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'topic/hda-dmic-fix' into topic/hda
Takashi Iwai [Thu, 13 Aug 2009 16:14:02 +0000 (18:14 +0200)]
Merge branch 'topic/hda-dmic-fix' into topic/hda

15 years agoALSA: hda - Enable line-out detection only with speakers
Takashi Iwai [Thu, 13 Aug 2009 06:23:24 +0000 (08:23 +0200)]
ALSA: hda - Enable line-out detection only with speakers

Enable line-out detection for IDT/STAC codecs only when speaker pins
exist.  In some cases, the speaker itself is identified as line-out,
and this confuses the situation.  Only the extra line-outs should do
auto-muting.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - fix noise issue when recording from digital mic with alc268
Herton Ronaldo Krzesinski [Wed, 12 Aug 2009 01:33:09 +0000 (22:33 -0300)]
ALSA: hda - fix noise issue when recording from digital mic with alc268

With auto config model of alc268 realtek codec, it allows to select any
of possible available digital microphone inputs when only one is
available. For example, when only digital mic in nid 0x12 is available,
on second input source it will allow you to select unavailable digital
mic in nid 0x13. The problem is that selecting unavailable digital mic
creates a source of noise when recording (I'm not sure if this happens
on all machines with alc268 and only one digital mic input, but testing
on a quanta uw1 netbook a lot of noise is introduced in recording from
digital mic 0x12/first input source, when you select the unavailable
digital mic 0x13 for capture source 0x24 in the second input source in
mixer).

Then to avoid noise when recording from digital mic with auto model in
this case, prevent a digital mic input source to be selected if
microphone is not available.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Clean up init and setup hooks for Realtek codecs
Takashi Iwai [Tue, 11 Aug 2009 16:17:46 +0000 (18:17 +0200)]
ALSA: hda - Clean up init and setup hooks for Realtek codecs

Move static codes to setup from init_hook for each model.

Also, use the common auto-mic selection helper for devices that support
auto-mic selection.  They just need to set up ext_mic, int_mic and
auto_mic flag in the setup section.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add setup hook to ALC preset struct
Takashi Iwai [Tue, 11 Aug 2009 15:16:13 +0000 (17:16 +0200)]
ALSA: hda - Add setup hook to ALC preset struct

Added setup hook to ALC preset struct to be called at in the parser
but not at each init callback.
This can be used for setting up the static pins, etc, while the
init hook should be used for updating the status again.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add a white-list for MSI option
Takashi Iwai [Tue, 11 Aug 2009 12:21:26 +0000 (14:21 +0200)]
ALSA: hda - Add a white-list for MSI option

Created a white-list to enable MSI since some devices require MSI
explicitly due to BIOS/ACPI problems.  Simply using a quirk list.
As the first case, take HP Compaq CQ40.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Check connectivity for auto-mic of Realtek codecs
Takashi Iwai [Tue, 11 Aug 2009 07:47:30 +0000 (09:47 +0200)]
ALSA: hda - Check connectivity for auto-mic of Realtek codecs

Some Realtek codecs don't provide the full connections for certain pins
from each ADC; e.g. ACL662/ALC272 gives only one of two digital-mic pins
for each ADC.  Thus, depending on the digital mic pin, the ADC/MUX to be
used has to be chosen properly.

This patch adds the check of the connectivity of pins at auto-mic mode.
If no proper connectivity is found, auto_mic flag is turned off to be
sure.

Also the mux_idx is determined during this check so it won't be checked
in the unsol event any more.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Tue, 11 Aug 2009 06:47:38 +0000 (08:47 +0200)]
Merge branch 'fix/hda' into topic/hda

15 years agoALSA: hda - Don't override ADC definitions for ALC codecs
Takashi Iwai [Tue, 11 Aug 2009 06:45:11 +0000 (08:45 +0200)]
ALSA: hda - Don't override ADC definitions for ALC codecs

ALC269 and ALC861-VD parsers override the ADC definitions
unconditionally without checking the spec definition.  This causes
the problem when any inconsistent ADC is set up in the device quirk
(like ALC272 with digital-mic).

This patch avoids the overriding by adding the proper checks.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Use only one capture stream for auto-mic
Takashi Iwai [Mon, 10 Aug 2009 16:54:38 +0000 (18:54 +0200)]
ALSA: hda - Use only one capture stream for auto-mic

When the auto-mic feature is enabled, we should support only one
capture stream.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add auto-mic support for Realtek codecs
Takashi Iwai [Mon, 10 Aug 2009 16:47:44 +0000 (18:47 +0200)]
ALSA: hda - Add auto-mic support for Realtek codecs

Added the support for automatic mic selection via plugging for
Realtek codecs (in auto-probing mode).  The auto-mic mode is enabled
only when one internal mic and one external mic are present.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Mon, 10 Aug 2009 09:58:09 +0000 (11:58 +0200)]
Merge branch 'fix/hda' into topic/hda

15 years agoALSA: hda - Add missing vmaster initialization for ALC269
Takashi Iwai [Mon, 10 Aug 2009 09:55:51 +0000 (11:55 +0200)]
ALSA: hda - Add missing vmaster initialization for ALC269

Without the initialization of vmaster NID, the dB information got
confused for ALC269 codec.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
15 years agoALSA: hda - Fix Oops due to STAC/IDT auto-mic changes
Takashi Iwai [Mon, 10 Aug 2009 05:44:09 +0000 (07:44 +0200)]
ALSA: hda - Fix Oops due to STAC/IDT auto-mic changes

The previous auto-mic patch for STAC/IDT codecs causes the Oops on
machines without digital mic pins.  This patch fixes the problem.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add quirks for some HP laptops
Takashi Iwai [Thu, 6 Aug 2009 06:44:43 +0000 (08:44 +0200)]
ALSA: hda - Add quirks for some HP laptops

The new HP laptops have PCI SSID 103c:701x and requires model=hp-dv5.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix line-out jack handling with STAC/IDT codec
Takashi Iwai [Tue, 4 Aug 2009 11:40:54 +0000 (13:40 +0200)]
ALSA: hda - Fix line-out jack handling with STAC/IDT codec

When the line-out jack is plugged/unplugged, the driver needs to check
the headphone plug, not only the line-out jack itself.  Otherwise the
headphone or the speaker may be wrongly muted/unmuted.

As a result, both STAC_HP_EVENT and STAC_LO_EVENT need to call the
same function, stac92xx_hp_detect().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix line-out jack detection
Takashi Iwai [Mon, 3 Aug 2009 12:23:33 +0000 (14:23 +0200)]
ALSA: hda - Fix line-out jack detection

The commit fefd67f31ee7f5259344e36a237d59b47e8715cf
    ALSA: hda - Add line-out jack detection on IDT/STAC codecs
enabled wrong pins for jack detections.  Fixed to the correct ones.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Mon, 3 Aug 2009 06:37:17 +0000 (08:37 +0200)]
Merge branch 'fix/hda' into topic/hda

15 years agoALSA: hda: add IbexPeak/Clarkdale HDMI model with static cvt/pin number
Wu Fengguang [Sun, 2 Aug 2009 08:48:55 +0000 (16:48 +0800)]
ALSA: hda: add IbexPeak/Clarkdale HDMI model with static cvt/pin number

The new IbexPeak HDMI codec has 3 pin nodes and 2 converter nodes.
Here we assume only the first ones will be used.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Read buffer overflow
Roel Kluin [Sun, 2 Aug 2009 11:30:45 +0000 (13:30 +0200)]
ALSA: hda - Read buffer overflow

Check whether index is within bounds before testing the element.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: Correct EAPD for Dell Inspiron 1525
Chengu Wang [Thu, 30 Jul 2009 11:43:55 +0000 (19:43 +0800)]
ALSA: hda: Correct EAPD for Dell Inspiron 1525

The commit 24918b61b55c21e09a3e07cd82e1b3a8154782dc statically changes
the model from dell-bios to dell-3stack to solve the sound decreasing
regression (http://lkml.org/lkml/2008/9/12/203), however it leads to another
problem that the 2nd headphone jack doesn't work
(https://bugtrack.alsa-project.org/alsa-bug/view.php?id=3987). So I think
the commit 249**2dc is just a workaround. I would like to give a true solution
here.

The datasheet for STAC9228 says, GPIO2 is the same pin as VOL DOWN, and
the EAPD pin is GPIO0. This is why the sound decreases if we set EAPD as
GPIO2. This patch changes EAPD to GPIO0 to solve the problem.

Signed-off-by: Chengu Wang <wangchengu@gmail.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: warn on spurious response
Wu Fengguang [Sat, 1 Aug 2009 11:18:45 +0000 (19:18 +0800)]
ALSA: hda: warn on spurious response

To help disclose hardware bugs.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: remember last command for each codec
Wu Fengguang [Sat, 1 Aug 2009 11:17:14 +0000 (19:17 +0800)]
ALSA: hda: remember last command for each codec

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: read CORBWP inside reg_lock
Wu Fengguang [Sat, 1 Aug 2009 10:48:12 +0000 (18:48 +0800)]
ALSA: hda: read CORBWP inside reg_lock

This converts the last CORBWP access outside of reg_lock.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: take reg_lock in azx_init_cmd_io/azx_free_cmd_io
Wu Fengguang [Sat, 1 Aug 2009 10:47:41 +0000 (18:47 +0800)]
ALSA: hda: take reg_lock in azx_init_cmd_io/azx_free_cmd_io

Just for safety.  azx_init_cmd_io() and azx_free_cmd_io() may be
called when switching to single command mode.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: take cmd_mutex in probe_codec()
Wu Fengguang [Sat, 1 Aug 2009 10:46:46 +0000 (18:46 +0800)]
ALSA: hda: take cmd_mutex in probe_codec()

Now that each codec will have its own module, it is possible
for the user to load one codec while another one is running.

So cmd_mutex would be a safe addition to probe_codec().

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: track CIRB/CORB command/response states for each codec
Wu Fengguang [Sat, 1 Aug 2009 10:45:16 +0000 (18:45 +0800)]
ALSA: hda: track CIRB/CORB command/response states for each codec

Recently we hit a bug in our dev board, whose HDMI codec#3 may emit
redundant/spurious responses, which were then taken as responses to
command for another onboard Realtek codec#2, and mess up both codecs.

Extend the azx_rb.cmds and azx_rb.res to array and track each codec's
commands/responses separately. This helps keep good codec safe from
broken ones.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix quirk for Toshiba Satellite A135-S4527
Takashi Iwai [Mon, 3 Aug 2009 06:23:52 +0000 (08:23 +0200)]
ALSA: hda - Fix quirk for Toshiba Satellite A135-S4527

Use model=lenovo instead of model=dallas for Toshiba Satellite A135-S4527
with ALC861-VD codec.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Increase PCM stream name buf in patch_realtek.c
Takashi Iwai [Fri, 31 Jul 2009 08:05:11 +0000 (10:05 +0200)]
ALSA: hda - Increase PCM stream name buf in patch_realtek.c

The name buf with size 16 is too short for some codec names, e.g.
truncated like "ALC861-VD Analo".  Now the size is doubled.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'topic/hda-cirrus' into topic/hda
Takashi Iwai [Thu, 30 Jul 2009 16:09:04 +0000 (18:09 +0200)]
Merge branch 'topic/hda-cirrus' into topic/hda

15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Thu, 30 Jul 2009 16:08:54 +0000 (18:08 +0200)]
Merge branch 'fix/hda' into topic/hda

15 years agoALSA: hda - Add line-out jack detection on IDT/STAC codecs
Takashi Iwai [Thu, 30 Jul 2009 16:03:05 +0000 (18:03 +0200)]
ALSA: hda - Add line-out jack detection on IDT/STAC codecs

Add the automatic mute of speakers via line-out jack plugging on
STAC/IDT codecs.  The feature is enabled when the HP detect is present.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Enable HP output with Macbook Pro 5, 5
Stelian Pop [Thu, 30 Jul 2009 12:44:27 +0000 (14:44 +0200)]
ALSA: hda - Enable HP output with Macbook Pro 5, 5

The patch below, to be applied on the latest sound-unstable-2.6.git,
enables headphones output on my MacBookPro 5,5, together with the
automuting feature.

Here is the exact soundcard id:
Vendor Id: 0x10134206
Subsystem Id: 0x106b4d00
Revision Id: 0x100301

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Integrate Digital Input Source to Input Source
Takashi Iwai [Thu, 30 Jul 2009 11:09:08 +0000 (13:09 +0200)]
ALSA: hda - Integrate Digital Input Source to Input Source

STAC/IDT codecs provide both "Input Source" and "Digital Input Source"
controls to choose the analog input source and the digital input source.
But this is far user-unfriendly.

This patch merges the input source selections into one "Input Source"
control.  To have separate digital and analog input source controls,
you can pass "separate_dmux = 1 " hint string.

At the same time, this patch gets rid of analog mixer stuff that was
already disabled in previous patches.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix typos of Capture controls.
Takashi Iwai [Thu, 30 Jul 2009 07:24:29 +0000 (09:24 +0200)]
ALSA: hda - Fix typos of Capture controls.

The commit 6479c63188290beae83ade3243b9d6eb47d394b6
    ALSA: hda - Create Capture controls dynamically
introduced typos of "Capture".  Fixed now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: add HP automute support to Intel ALC889/ALC889A models
Wu Fengguang [Thu, 30 Jul 2009 07:19:14 +0000 (09:19 +0200)]
ALSA: hda: add HP automute support to Intel ALC889/ALC889A models

It auto mutes all 8-channel outputs at rear panel when
the front panel headphone is connected.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: add 2-channel mode to Intel ALC889/ALC889A models
Wu Fengguang [Thu, 30 Jul 2009 06:36:35 +0000 (14:36 +0800)]
ALSA: hda: add 2-channel mode to Intel ALC889/ALC889A models

This 2-channel mode is useful in that it will broadcast
a 2-channel audio stream to all front/side/... ports.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - No analog mix input source as default for IDT92HD71bxx
Takashi Iwai [Wed, 29 Jul 2009 16:41:29 +0000 (18:41 +0200)]
ALSA: hda - No analog mix input source as default for IDT92HD71bxx

The analog mix is disabled now as default (unless "analog_mixer" hint
is given), so it shoudn't appear in the digital input source as well.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add missing DMUX initialization for auto-mic with STAC/IDT
Takashi Iwai [Wed, 29 Jul 2009 14:32:55 +0000 (16:32 +0200)]
ALSA: hda - Add missing DMUX initialization for auto-mic with STAC/IDT

Added the missing initialization of DMUX connection (to analog input)
for auto-mic mode with STAC/IDT codecs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Remove static connection in IDT 92HD71bxx
Takashi Iwai [Wed, 29 Jul 2009 14:28:09 +0000 (16:28 +0200)]
ALSA: hda - Remove static connection in IDT 92HD71bxx

We don't need any more static connection to the port F (which is often
used for docking stations) since its connection is done dynamically via
DAC assignment now.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda: fix out-of-bound hdmi_eld.sad[] write
Roel Kluin [Wed, 29 Jul 2009 12:35:20 +0000 (14:35 +0200)]
ALSA: hda: fix out-of-bound hdmi_eld.sad[] write

e->sad[] is declared with size ELD_MAX_SAD=16, but the guard
allows range 0-31.

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Support auto-mic switching with IDT/STAC codec
Takashi Iwai [Wed, 29 Jul 2009 12:32:56 +0000 (14:32 +0200)]
ALSA: hda - Support auto-mic switching with IDT/STAC codec

Support the automatic mic-switching with some devices with IDT/STAC
codecs.  The condition is that the device has only two inputs, one
for an external mic and one for an internal mic.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Avoid overwrite of jack events with STAC/IDT
Takashi Iwai [Wed, 29 Jul 2009 12:23:09 +0000 (14:23 +0200)]
ALSA: hda - Avoid overwrite of jack events with STAC/IDT

Since only one event can be associated to a (pin) widget, it's safer
to avoid the multiple mapping.  This patch fixes the behavior of the
STAC/IDT codec driver.

Now stac_get_event() doesn't take the type argument but simply returns
the first hit element.  Then enable_pin_detect() checks the validity
of the type, and returns non-zero only if a valid entry.  The caller
can call stac_issue_unsol_event() after checking the return value.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Don't create analog mixer for IDT92HD71bxx
Takashi Iwai [Tue, 28 Jul 2009 16:25:29 +0000 (18:25 +0200)]
ALSA: hda - Don't create analog mixer for IDT92HD71bxx

The analog mixer unit on IDT 92HD71Bxx codecs is almost useless
since we use only the direct connections from DAC to pin.

Remove the controls to avoid unneeded confusion as default now.
This can be still back via "analog_mixer = 1" hint.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Create Capture controls dynamically
Takashi Iwai [Tue, 28 Jul 2009 16:20:25 +0000 (18:20 +0200)]
ALSA: hda - Create Capture controls dynamically

Instead of static snd_kcontrol_new arrays, create "Capture Volume"
and "Capture Switch" controls dynamically based on the mixer attr
values (made via HDA_COMPOSE_AMP_VAL()).
This reduces the code size and gives more flexibility to change
the number of controls later.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Don't create unneeded digital input source for IDT 92HD71x
Takashi Iwai [Tue, 28 Jul 2009 15:03:49 +0000 (17:03 +0200)]
ALSA: hda - Don't create unneeded digital input source for IDT 92HD71x

The current driver creates always the digital input source mixer
elements for IDT 92HD71x codecs no matter whether digital mics are
present.  This patch adds the proper check to avoid the creation of
these controls if unnecessary.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Reword information messages for BIOS auto-probing mode
Takashi Iwai [Tue, 28 Jul 2009 14:01:20 +0000 (16:01 +0200)]
ALSA: hda - Reword information messages for BIOS auto-probing mode

The sentense "Unknown model for xxx, ..." makes people too nervous
and drives them to a direction to a wrong "fix" by giving any
mismatching model option.

Let's rephrase the messages to be more nice and easy (at least that
won't make people suspect conspiracies).

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add quirk for Dell Studio 1555
Takashi Iwai [Mon, 27 Jul 2009 22:54:39 +0000 (00:54 +0200)]
ALSA: hda - Add quirk for Dell Studio 1555

Added a quirk entry for Dell Studio 1555.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add exception for volume-knob in snd_hda_get_connections()
Takashi Iwai [Mon, 27 Jul 2009 10:56:26 +0000 (12:56 +0200)]
ALSA: hda - Add exception for volume-knob in snd_hda_get_connections()

Volume-knob widgets may have connections even if they have no CONN_LIST
cap bit.  Allow the query exceptionally in snd_hda_get_connections().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Introduce get_wcaps_type() macro
Takashi Iwai [Mon, 27 Jul 2009 10:54:26 +0000 (12:54 +0200)]
ALSA: hda - Introduce get_wcaps_type() macro

Add a helper macro to retrieve the widget type from wiget cap bits.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Fri, 24 Jul 2009 14:54:59 +0000 (16:54 +0200)]
Merge branch 'fix/hda' into topic/hda

15 years agoALSA: hda - Fix mute control with some ALC262 models
Takashi Iwai [Fri, 24 Jul 2009 14:51:47 +0000 (16:51 +0200)]
ALSA: hda - Fix mute control with some ALC262 models

The master mute switch is wrongly implemented as checking the pointer
instead of its value, thus it can be never muted.  This patch fixes
the issue.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
15 years agoALSA: hda - Add description of new models for ALC889/889A
Takashi Iwai [Thu, 23 Jul 2009 10:25:40 +0000 (12:25 +0200)]
ALSA: hda - Add description of new models for ALC889/889A

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add better Intel IbexPeak platform support
Jaroslav Kysela [Thu, 23 Jul 2009 08:58:29 +0000 (10:58 +0200)]
ALSA: hda - Add better Intel IbexPeak platform support

Here are the new sound enabling patches for IbexPeak.

Summary of tested features:

  - playback
    - Front Headphone: OK
    - 8 channel audio: Front/Rear/CLFE/Side all OK

  - recording
    - Front Mic/Rear Mic: both OK
      (front/rear/line mics are selectable in the "Input source" alsamixer control)
    - Line In: not working
      (in 6ch mode, its amp/mute, direction and route all looks fine,
       so I'm a little puzzled)
      (hopefully no one will care this feature)

  - digital SPDIF input/output: not tested (no equipment)

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Restore GPIO1 properly at resume with AD1984A
Takashi Iwai [Wed, 22 Jul 2009 16:15:10 +0000 (18:15 +0200)]
ALSA: hda - Restore GPIO1 properly at resume with AD1984A

The commit 099db17e66294b02814dee01c81d9abbbeece93e introduced a
regression at suspend/resume where the GPIO1 bit isn't properly
restored, thus the speaker output gets muted initially after resume.

The fix is simple, use the cached write for storing GPIO data.

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

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda-intel: Cleanups for widget connection list handling
Jaroslav Kysela [Wed, 22 Jul 2009 14:20:40 +0000 (16:20 +0200)]
ALSA: hda-intel: Cleanups for widget connection list handling

This patch adds a check to snd_hda_get_connections() routine for
presence of AC_WCAP_CONN_LIST. Also, make sure that negative error
codes from noted route are handled on all places as errors.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Use snprintf() to be safer
Takashi Iwai [Wed, 22 Jul 2009 14:02:46 +0000 (16:02 +0200)]
ALSA: hda - Use snprintf() to be safer

Use snprint() for creating the jack name string instead of sprintf()
in patch_sigmatel.c.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda_generic: use AC_WCAP_CONN_LIST check for widget connections
Jaroslav Kysela [Wed, 22 Jul 2009 13:31:03 +0000 (15:31 +0200)]
ALSA: hda_generic: use AC_WCAP_CONN_LIST check for widget connections

Previous patch used widget type, but the presence flag of the connection
list is in the widget capabilities.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda_generic: do not read connections for widged with an unknown type
Jaroslav Kysela [Wed, 22 Jul 2009 12:38:58 +0000 (14:38 +0200)]
ALSA: hda_generic: do not read connections for widged with an unknown type

Reading node connections for an unknown widget can confuse HDA codec bus.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix ALC861 auto-mode parser
Takashi Iwai [Wed, 22 Jul 2009 13:17:45 +0000 (15:17 +0200)]
ALSA: hda - Fix ALC861 auto-mode parser

Fix the logic of ALC861 auto-mode parser for the outputs.
Instead of assuming the fixed DAC list, parse the conection and assign
the DAC dynamically.

Also, unmute the unused output connections to avoid noises on inputs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Reduce click noise at power-saving
Takashi Iwai [Wed, 22 Jul 2009 10:39:24 +0000 (12:39 +0200)]
ALSA: hda - Reduce click noise at power-saving

Add some tricks to reduce the click noise at powering down to D3
in the power saving mode on STAC/IDT codecs.
The key seems to be to reset PINs before the power-down, and some
delay before entering D3.  The needed delay is significantly long,
but I don't know why.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix pin-setup for Sony VAIO with STAC9872 codecs
Takashi Iwai [Mon, 20 Jul 2009 06:01:36 +0000 (08:01 +0200)]
ALSA: hda - Fix pin-setup for Sony VAIO with STAC9872 codecs

The recent rewrite of the codec parser for STAC9872 caused a regression
for some Sony VAIO models that don't give proper pin default configs
by BIOS.  Even using model=vaio doesn't work because the pin definitions
are set after the pin overrides.

This patch fixes the pin definitions in patch_stac9872() to be put
in the right place before the pin overrides.  Also the patch adds the
new quirk entry for VAIO F/S to have the correct pin default configs.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Cc: <stable@kernel.org>
15 years agoALSA: hda - Add quirk for Gateway T6834c laptop
Hao Song [Mon, 20 Jul 2009 07:01:16 +0000 (15:01 +0800)]
ALSA: hda - Add quirk for Gateway T6834c laptop

Gateway T6834c laptops need EAPD always on while the default behavior
for the STAC9205 reference board is to turn it off upon every HP plug.
By using the special "eapd" model, which is first introduced for Gateway
T1616 laptops for this same reason, this peculiarity can be properly
handled.

Signed-off-by: Hao Song <baritono.tux@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoMerge branch 'fix/hda' into topic/hda
Takashi Iwai [Sun, 19 Jul 2009 11:52:31 +0000 (13:52 +0200)]
Merge branch 'fix/hda' into topic/hda

15 years agoALSA: hda_codec: Check for invalid zero connections
Jaroslav Kysela [Sat, 18 Jul 2009 09:48:19 +0000 (11:48 +0200)]
ALSA: hda_codec: Check for invalid zero connections

To prevent "Too many connections" message and the error path for some HDMI
codecs (which makes onboard audio unusable), check for invalid zero
connections for CONNECT_LIST verb.

Signed-off-by: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix ALC268 parser for mono speaker
Takashi Iwai [Fri, 17 Jul 2009 12:36:59 +0000 (14:36 +0200)]
ALSA: hda - Fix ALC268 parser for mono speaker

- Parse the mono output pin 0x16 correctly even as the primary output
- Create "Speaker" volume control if the primary output is a speaker
- Fix the wrong direction of (optional) "Mono" switch

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Fix the previous sanity check in make_codec_cmd()
Takashi Iwai [Fri, 17 Jul 2009 10:47:34 +0000 (12:47 +0200)]
ALSA: hda - Fix the previous sanity check in make_codec_cmd()

The newly added sanity-check for a codec verb can be better written
with logical ORs.  Also, the parameter can be more than 8bit.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - add bounds checking for the codec command fields
Wu Fengguang [Fri, 17 Jul 2009 08:49:19 +0000 (16:49 +0800)]
ALSA: hda - add bounds checking for the codec command fields

A recent bug involves passing auto detected >0x7f NID to codec command,
creating an invalid codec addr field, and finally lead to cmd timeout
and fall back into single command mode. Jaroslav fixed that bug in
alc880_parse_auto_config().

It would be safer to further check the bounds of all cmd fields.

Cc: Jaroslav Kysela <perex@perex.cz>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add support for new AMD HD audio devices
Andiry Brienza [Fri, 17 Jul 2009 03:32:32 +0000 (11:32 +0800)]
ALSA: hda - Add support for new AMD HD audio devices

Add support for new AMD HD audio devices. Use generic driver to detect HD audio
devices with Vendor ID AMD.

Signed-off-by: Andiry Xu <andiry.xu@amd.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
15 years agoALSA: hda - Add CX20582 and OLPC XO-1.5 support
Daniel Drake [Thu, 16 Jul 2009 13:46:57 +0000 (14:46 +0100)]
ALSA: hda - Add CX20582 and OLPC XO-1.5 support

This adds support for the Conexant CX20582 codec, based on code from
http://www.linuxant.com/alsa-driver/alsa-driver-linuxant-1.0.19ppch12-1.noarch.rpm.zip

This is the codec to be shipped in the OLPC XO-1.5, so this patch also
includes an XO-specific profile. Resultant configuration:
http://dev.laptop.org/~dsd/20090713/codec0.txt
http://dev.laptop.org/~dsd/20090713/codec0.svg

As the Linuxant code is structured differently to the other codecs,
I was unable to cleanly reimplement everything in the generic and Dell
profiles as more info is needed (e.g. codec graphs). I simplified those
profiles so that hopefully it will not break anyone's audio. If it does,
it may be worth returning -ENODEV from patch_cx5066 on non-OLPC systems,
and then fixing snd_hda_codec_configure() to fall back on the generic
parser, at least until support for other systems is figured out.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>