Takashi Iwai 056b91
From: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 056b91
Subject: kABI workaround for snd_hda_pick_pin_fixup() changes
Takashi Iwai 056b91
Patch-mainline: Never, kABI workaround
Takashi Iwai 056b91
References: bsc#1051510
Takashi Iwai 056b91
Takashi Iwai 056b91
The recent patch
Takashi Iwai 056b91
  patches.suse/ALSA-hda-Expand-pin_match-function-to-match-upcoming.patch
Takashi Iwai 056b91
added an extra argument to the exported snd_hda_pick_pin_fixup() function.
Takashi Iwai 056b91
Keep the old one while rename to a new function for keeping the kABI.
Takashi Iwai 056b91
Takashi Iwai 056b91
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 056b91
Takashi Iwai 056b91
---
Takashi Iwai 056b91
 sound/pci/hda/hda_auto_parser.c |   11 ++++++++++-
Takashi Iwai 056b91
 sound/pci/hda/hda_local.h       |    5 ++++-
Takashi Iwai 056b91
 sound/pci/hda/patch_realtek.c   |    6 +++---
Takashi Iwai 056b91
 3 files changed, 17 insertions(+), 5 deletions(-)
Takashi Iwai 056b91
Takashi Iwai 056b91
--- a/sound/pci/hda/hda_auto_parser.c
Takashi Iwai 056b91
+++ b/sound/pci/hda/hda_auto_parser.c
Takashi Iwai 056b91
@@ -928,7 +928,7 @@ static bool pin_config_match(struct hda_
Takashi Iwai 056b91
  * @fixlist: the fixup list
Takashi Iwai 056b91
  * @match_all_pins: all valid pins must match with the table entries
Takashi Iwai 056b91
  */
Takashi Iwai 056b91
-void snd_hda_pick_pin_fixup(struct hda_codec *codec,
Takashi Iwai 056b91
+void snd_hda_pick_pin_fixup2(struct hda_codec *codec,
Takashi Iwai 056b91
 			    const struct snd_hda_pin_quirk *pin_quirk,
Takashi Iwai 056b91
 			    const struct hda_fixup *fixlist,
Takashi Iwai 056b91
 			    bool match_all_pins)
Takashi Iwai 056b91
@@ -955,6 +955,15 @@ void snd_hda_pick_pin_fixup(struct hda_c
Takashi Iwai 056b91
 		}
Takashi Iwai 056b91
 	}
Takashi Iwai 056b91
 }
Takashi Iwai 056b91
+EXPORT_SYMBOL_GPL(snd_hda_pick_pin_fixup2);
Takashi Iwai 056b91
+
Takashi Iwai 056b91
+// XXX FIXME: SLE15 kABI compatibility
Takashi Iwai 056b91
+void snd_hda_pick_pin_fixup(struct hda_codec *codec,
Takashi Iwai 056b91
+			    const struct snd_hda_pin_quirk *pin_quirk,
Takashi Iwai 056b91
+			    const struct hda_fixup *fixlist)
Takashi Iwai 056b91
+{
Takashi Iwai 056b91
+	snd_hda_pick_pin_fixup2(codec, pin_quirk, fixlist, true);
Takashi Iwai 056b91
+}
Takashi Iwai 056b91
 EXPORT_SYMBOL_GPL(snd_hda_pick_pin_fixup);
Takashi Iwai 056b91
 
Takashi Iwai 056b91
 /**
Takashi Iwai 056b91
--- a/sound/pci/hda/patch_realtek.c
Takashi Iwai 056b91
+++ b/sound/pci/hda/patch_realtek.c
Takashi Iwai 056b91
@@ -7648,8 +7648,8 @@ static int patch_alc269(struct hda_codec
Takashi Iwai 056b91
 
Takashi Iwai 056b91
 	snd_hda_pick_fixup(codec, alc269_fixup_models,
Takashi Iwai 056b91
 		       alc269_fixup_tbl, alc269_fixups);
Takashi Iwai 056b91
-	snd_hda_pick_pin_fixup(codec, alc269_pin_fixup_tbl, alc269_fixups, true);
Takashi Iwai 056b91
-	snd_hda_pick_pin_fixup(codec, alc269_fallback_pin_fixup_tbl, alc269_fixups, false);
Takashi Iwai 056b91
+	snd_hda_pick_pin_fixup2(codec, alc269_pin_fixup_tbl, alc269_fixups, true);
Takashi Iwai 056b91
+	snd_hda_pick_pin_fixup2(codec, alc269_fallback_pin_fixup_tbl, alc269_fixups, false);
Takashi Iwai 056b91
 	snd_hda_pick_fixup(codec, NULL,	alc269_fixup_vendor_tbl,
Takashi Iwai 056b91
 			   alc269_fixups);
Takashi Iwai 056b91
 	snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
Takashi Iwai 056b91
@@ -8734,7 +8734,7 @@ static int patch_alc662(struct hda_codec
Takashi Iwai 056b91
 
Takashi Iwai 056b91
 	snd_hda_pick_fixup(codec, alc662_fixup_models,
Takashi Iwai 056b91
 		       alc662_fixup_tbl, alc662_fixups);
Takashi Iwai 056b91
-	snd_hda_pick_pin_fixup(codec, alc662_pin_fixup_tbl, alc662_fixups, true);
Takashi Iwai 056b91
+	snd_hda_pick_pin_fixup2(codec, alc662_pin_fixup_tbl, alc662_fixups, true);
Takashi Iwai 056b91
 	snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
Takashi Iwai 056b91
 
Takashi Iwai 056b91
 	alc_auto_parse_customize_define(codec);
Takashi Iwai 056b91
--- a/sound/pci/hda/hda_local.h
Takashi Iwai 056b91
+++ b/sound/pci/hda/hda_local.h
Takashi Iwai 056b91
@@ -372,10 +372,13 @@ void snd_hda_pick_fixup(struct hda_codec
Takashi Iwai 056b91
 			const struct hda_model_fixup *models,
Takashi Iwai 056b91
 			const struct snd_pci_quirk *quirk,
Takashi Iwai 056b91
 			const struct hda_fixup *fixlist);
Takashi Iwai 056b91
-void snd_hda_pick_pin_fixup(struct hda_codec *codec,
Takashi Iwai 056b91
+void snd_hda_pick_pin_fixup2(struct hda_codec *codec,
Takashi Iwai 056b91
 			    const struct snd_hda_pin_quirk *pin_quirk,
Takashi Iwai 056b91
 			    const struct hda_fixup *fixlist,
Takashi Iwai 056b91
 			    bool match_all_pins);
Takashi Iwai 056b91
+void snd_hda_pick_pin_fixup(struct hda_codec *codec,
Takashi Iwai 056b91
+			    const struct snd_hda_pin_quirk *pin_quirk,
Takashi Iwai 056b91
+			    const struct hda_fixup *fixlist);
Takashi Iwai 056b91
 
Takashi Iwai 056b91
 /* helper macros to retrieve pin default-config values */
Takashi Iwai 056b91
 #define get_defcfg_connect(cfg) \