Fix bug in switching between dmic and mic when both use the same mux.
Signed-off-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The SPDIF in audio widget must be searched through the list as the widget
that contains the given pin as the connection source. The current code
was implemented in a reverse way.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
I've found the following patch is necessary to enable line-in on
my MacBookPro 5,3 machine. With the patch applied I've successfully
recorded audio from the line-in jack. This is based on the existing
5,5 support.
Signed-off-by: Vince Weaver <vweaver1@eecs.utk.edu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
We've applied a fix-up for ALC269 VAIO only for two models. But all
Sony VAIO models with ALC269 codec seem to require the similar fix.
Let's apply it with vendor-id mask.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The headphone and external-mic pin NIDs can be null, and the jack input
elements should be skipped in such a case.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Replace the explicit ifdef check and call of check_power_status ops with
a new helper function, hda_call_check_power_status().
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Channel 2 and channel 3 were all wrongly mapped to HDMI slot 4.
This shows up as a bug that one channel is "lost" when playing in
surround41 mode.
Signed-off-by: Jerry Zhou <jerry.zhou@intel.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
DisplayPort works mostly in the same way as HDMI, except that it expects
a slightly different audio infoframe format.
Citations from "HDA036-A: Display Port Support and HDMI Miscellaneous
Corrections":
The HDMI specification defines a data island packet with a header of 4
bytes (3 bytes content + 1 byte ECC) and packet body of 32 bytes (28
bytes content and 4 bytes ECC). Display Port specification on the other
hand defines a data island packet (secondary data packet) with header of
4 bytes protected by 4 bytes of parity, and data of theoretically up to
1024 bytes with each 16 bytes chunk of data protected by 4 bytes of
parity. Note that the ECC or parity bytes are not present in the DIP
content populated by software and are hardware generated.
It tests DP connection based on the ELD conn_type field, which will be
set by the graphics driver and can be overriden manually by users
through the /proc/asound/card0/eld* interface.
The DP infoframe is tested OK on Intel SandyBridge/CougarPoint platform.
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Create a helper function to simplify the code.
Also, cleaned up the ifdef SND_HDA_NEEDS_RESUME and
CONFIG_SND_HDA_POWER_SAVE. The former is always defined when the latter
is set.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
ALC269vb and other variants don't use the widgets 0x24 but prefer the
widget 0x22 instead. We need to fix the input parser.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Don't call the COEF check for checking ACL269 codec variants at each
time in init but remember the type at the initialization.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
When quirks are applied, the numbers of output pins in autocfg aren't
set up properly but only pin arrays are changed. Let's fix it up so that
the rest of the parser can use autocfg.line_outs & co safely.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch merges all three patch_*hdmi variants to the single HDMI
parser. There is only one snd-hda-codec-hdmi module now.
In this patch, the behavior of each parser isn't changed much.
The old ATI parser still doesn't use the dynamic parser yet.
In later patches, they'll be cleaned up.
Also, this patch gets rid of the individual snd-hda-eld module and
builds into snd-hda-codec-hdmi, since this is referred only from the
HDMI parser.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
The external mic jack for auto-mic switch must be really an external
jack and with a presense-detection capability. This patch makes the
check more paranoia.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Make the helper function to give the input-pin attribute for jack
connectivity and location. This simplifies checks of input-pin jacks
a bit in some places.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Through the transition of autocfg to individual inputs array, I forgot
to rewrite the argument passed to alc_set_input_pin(). This resulted in
wrongly setup input pins. Fixed now.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
BugLink: http://launchpad.net/bugs/640254
In some cases a magic processing coefficient is needed to enable
the internal speaker on Dell M101z. According to Realtek, this
processing coefficient is only present on ALC269vb.
Cc: stable@kernel.org
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Most of Intel controllers work as generic HD-audio without quirks,
and it'll be hopefully so in future. Let's mark pci id with the
PCI_CLASS_MULTIMEDIA_HD_AUDIO for Intel so that the driver will work
with any new control chips in future.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch adds the preliminary support for new Conexant audio codecs with
14f1:5097, 14f1:5098, 14f1:50a1, 14f1:50a2, 14f1:50ab, 14f1:50ac,
14f1:50b8 and 14f1:50b9.
Unlike other Conexant parsers, this is designed to be mostly automatic,
parsing from BIOS pin configurations.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
For avoiding the click noises at power-saving, set some COEF values
for ALC269* codecs.
Signed-off-by: Kailang Yang <kailang@realtek.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Add a quirk for laptop Toshiba Satellite C650D to have proper external HP and
external Mic support.
Signed-off-by: Anisse Astier <anisse@astier.eu>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
When the mic pins are assigned to the same location, we can omit the
redundant location prefix like "Front" or "Rear".
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch improves the input-source label strings to be generated from
the pin information instead of fixed strings per AUTO_PIN_* type.
This gives more suitable labels, especially for mic and line-in pins.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
We can assign multiple pins to a single role now, let's reduce the
redundant FRONT_MIC and FRONT_LINE. Also, autocfg->input_pins[] is
no longer used, so this is removed as well.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Keep char array in the input_mux item itself instead of pointing to
an external string. This is a preliminary work for improving the
input-mux name based on the pin role.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
By adding the subwoofer as a speaker pin, it is treated correctly when auto-muting.
BugLink: https://launchpad.net/bugs/611803
Signed-off-by: David Henningsson <david.henningsson@canonical.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Added a fixup table for ALC262 codec containing the entry for FSC
Celsius H270. Now both headphone jacks are detected properly as
headphones.
Reference: Novell bnc637263
https://bugzilla.novell.com/show_bug.cgi?id=637263
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This patch changes the alc262 auto-parser to allow multiple pins
assigned for a single purpose (line-out, headphone or speaker).
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Currently headphone auto-mute using alc_automute_pin() assumes only
the single pin used for the headphone output. Since there are devices
with multiple headphone jacks, we need to check all these pins there,
too.
Also this patch merges the common code between alc_automute_pin() and
alc_automute_amp() helper functions.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
In snd_hda_parse_def_config(), some unused values may remain in hp_pins[]
array during the headphone-reassignment workaround. This patch clears
the unused array members.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
snd_hda_parse_pin_def_config() has some workaround for re-assigning
some pins declared as headphones to line-outs. This didn't work properly
for some cases because it used memmove() stupidly wrongly.
Reference: Novell bnc#637263
https://bugzilla.novell.com/show_bug.cgi?id=637263
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Changing the way the input controls are named using port connection
type and jack location info.
Signed-off-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>