|
@@ -578,6 +578,10 @@ static void alc_line_automute(struct hda_codec *codec)
|
|
{
|
|
{
|
|
struct alc_spec *spec = codec->spec;
|
|
struct alc_spec *spec = codec->spec;
|
|
|
|
|
|
|
|
+ /* check LO jack only when it's different from HP */
|
|
|
|
+ if (spec->autocfg.line_out_pins[0] == spec->autocfg.hp_pins[0])
|
|
|
|
+ return;
|
|
|
|
+
|
|
spec->line_jack_present =
|
|
spec->line_jack_present =
|
|
detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins),
|
|
detect_jacks(codec, ARRAY_SIZE(spec->autocfg.line_out_pins),
|
|
spec->autocfg.line_out_pins);
|
|
spec->autocfg.line_out_pins);
|
|
@@ -1321,7 +1325,9 @@ do_sku:
|
|
* 15 : 1 --> enable the function "Mute internal speaker
|
|
* 15 : 1 --> enable the function "Mute internal speaker
|
|
* when the external headphone out jack is plugged"
|
|
* when the external headphone out jack is plugged"
|
|
*/
|
|
*/
|
|
- if (!spec->autocfg.hp_pins[0]) {
|
|
|
|
|
|
+ if (!spec->autocfg.hp_pins[0] &&
|
|
|
|
+ !(spec->autocfg.line_out_pins[0] &&
|
|
|
|
+ spec->autocfg.line_out_type == AUTO_PIN_HP_OUT)) {
|
|
hda_nid_t nid;
|
|
hda_nid_t nid;
|
|
tmp = (ass >> 11) & 0x3; /* HP to chassis */
|
|
tmp = (ass >> 11) & 0x3; /* HP to chassis */
|
|
if (tmp == 0)
|
|
if (tmp == 0)
|