[PATCH 2/3] Revert "ALSA: hda/realtek - Use a common helper for hp pin reference"
Chris Wilson
chris at chris-wilson.co.uk
Mon Feb 4 09:11:40 UTC 2019
This reverts commit 35a39f98567d8d3f1cea48f0f30de1a7e736b644.
---
sound/pci/hda/patch_realtek.c | 96 ++++++++++++++++++++++++++---------
1 file changed, 72 insertions(+), 24 deletions(-)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 1212955f7ab5..04b1e2900035 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -515,15 +515,6 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type)
}
}
-/* get a primary headphone pin if available */
-static hda_nid_t alc_get_hp_pin(struct alc_spec *spec)
-{
- if (spec->gen.autocfg.hp_pins[0])
- return spec->gen.autocfg.hp_pins[0];
- if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
- return spec->gen.autocfg.line_out_pins[0];
- return 0;
-}
/*
* Realtek SSID verification
@@ -734,7 +725,9 @@ static int alc_subsystem_id(struct hda_codec *codec, const hda_nid_t *ports)
* 15 : 1 --> enable the function "Mute internal speaker
* when the external headphone out jack is plugged"
*/
- if (!alc_get_hp_pin(spec)) {
+ if (!spec->gen.autocfg.hp_pins[0] &&
+ !(spec->gen.autocfg.line_out_pins[0] &&
+ spec->gen.autocfg.line_out_type == AUTO_PIN_HP_OUT)) {
hda_nid_t nid;
tmp = (ass >> 11) & 0x3; /* HP to chassis */
nid = ports[tmp];
@@ -2966,10 +2959,15 @@ static void alc282_restore_default_value(struct hda_codec *codec)
static void alc282_init(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp_pin_sense;
int coef78;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
alc282_restore_default_value(codec);
if (!hp_pin)
@@ -3003,10 +3001,15 @@ static void alc282_init(struct hda_codec *codec)
static void alc282_shutup(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp_pin_sense;
int coef78;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin) {
alc269_shutup(codec);
return;
@@ -3081,9 +3084,14 @@ static void alc283_restore_default_value(struct hda_codec *codec)
static void alc283_init(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp_pin_sense;
+ if (!spec->gen.autocfg.hp_outs) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
alc283_restore_default_value(codec);
if (!hp_pin)
@@ -3117,9 +3125,14 @@ static void alc283_init(struct hda_codec *codec)
static void alc283_shutup(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp_pin_sense;
+ if (!spec->gen.autocfg.hp_outs) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin) {
alc269_shutup(codec);
return;
@@ -3153,9 +3166,14 @@ static void alc283_shutup(struct hda_codec *codec)
static void alc256_init(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp_pin_sense;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin)
return;
@@ -3189,9 +3207,14 @@ static void alc256_init(struct hda_codec *codec)
static void alc256_shutup(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp_pin_sense;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin) {
alc269_shutup(codec);
return;
@@ -3225,9 +3248,14 @@ static void alc256_shutup(struct hda_codec *codec)
static void alc225_init(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp1_pin_sense, hp2_pin_sense;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin)
return;
@@ -3268,9 +3296,14 @@ static void alc225_init(struct hda_codec *codec)
static void alc225_shutup(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp1_pin_sense, hp2_pin_sense;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin) {
alc269_shutup(codec);
return;
@@ -3312,9 +3345,14 @@ static void alc225_shutup(struct hda_codec *codec)
static void alc_default_init(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp_pin_sense;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin)
return;
@@ -3341,9 +3379,14 @@ static void alc_default_init(struct hda_codec *codec)
static void alc_default_shutup(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
bool hp_pin_sense;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin) {
alc269_shutup(codec);
return;
@@ -3373,9 +3416,14 @@ static void alc_default_shutup(struct hda_codec *codec)
static void alc294_hp_init(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
int i, val;
+ if (!spec->gen.autocfg.hp_outs && spec->gen.suppress_auto_mute) {
+ if (spec->gen.autocfg.line_out_type == AC_JACK_HP_OUT)
+ hp_pin = spec->gen.autocfg.line_out_pins[0];
+ }
+
if (!hp_pin)
return;
@@ -4779,7 +4827,7 @@ static void alc_update_headset_mode(struct hda_codec *codec)
struct alc_spec *spec = codec->spec;
hda_nid_t mux_pin = spec->gen.imux_pins[spec->gen.cur_mux[0]];
- hda_nid_t hp_pin = alc_get_hp_pin(spec);
+ hda_nid_t hp_pin = spec->gen.autocfg.hp_pins[0];
int new_headset_mode;
@@ -5058,7 +5106,7 @@ static void alc_fixup_tpt470_dock(struct hda_codec *codec,
static void alc_shutup_dell_xps13(struct hda_codec *codec)
{
struct alc_spec *spec = codec->spec;
- int hp_pin = alc_get_hp_pin(spec);
+ int hp_pin = spec->gen.autocfg.hp_pins[0];
/* Prevent pop noises when headphones are plugged in */
snd_hda_codec_write(codec, hp_pin, 0,
@@ -5151,7 +5199,7 @@ static void alc271_hp_gate_mic_jack(struct hda_codec *codec,
if (action == HDA_FIXUP_ACT_PROBE) {
int mic_pin = find_ext_mic_pin(codec);
- int hp_pin = alc_get_hp_pin(spec);
+ int hp_pin = spec->gen.autocfg.hp_pins[0];
if (snd_BUG_ON(!mic_pin || !hp_pin))
return;
--
2.20.1
More information about the Intel-gfx-trybot
mailing list