Blob Blame History Raw
From: Takashi Iwai <tiwai@suse.de>
Subject: kABI workaround for snd_hda_pick_pin_fixup() changes
Patch-mainline: Never, kABI workaround
References: bsc#1051510

The recent patch
  patches.suse/ALSA-hda-Expand-pin_match-function-to-match-upcoming.patch
added an extra argument to the exported snd_hda_pick_pin_fixup() function.
Keep the old one while rename to a new function for keeping the kABI.

Signed-off-by: Takashi Iwai <tiwai@suse.de>

---
 sound/pci/hda/hda_auto_parser.c |   11 ++++++++++-
 sound/pci/hda/hda_local.h       |    5 ++++-
 sound/pci/hda/patch_realtek.c   |    6 +++---
 3 files changed, 17 insertions(+), 5 deletions(-)

--- a/sound/pci/hda/hda_auto_parser.c
+++ b/sound/pci/hda/hda_auto_parser.c
@@ -928,7 +928,7 @@ static bool pin_config_match(struct hda_
  * @fixlist: the fixup list
  * @match_all_pins: all valid pins must match with the table entries
  */
-void snd_hda_pick_pin_fixup(struct hda_codec *codec,
+void snd_hda_pick_pin_fixup2(struct hda_codec *codec,
 			    const struct snd_hda_pin_quirk *pin_quirk,
 			    const struct hda_fixup *fixlist,
 			    bool match_all_pins)
@@ -955,6 +955,15 @@ void snd_hda_pick_pin_fixup(struct hda_c
 		}
 	}
 }
+EXPORT_SYMBOL_GPL(snd_hda_pick_pin_fixup2);
+
+// XXX FIXME: SLE15 kABI compatibility
+void snd_hda_pick_pin_fixup(struct hda_codec *codec,
+			    const struct snd_hda_pin_quirk *pin_quirk,
+			    const struct hda_fixup *fixlist)
+{
+	snd_hda_pick_pin_fixup2(codec, pin_quirk, fixlist, true);
+}
 EXPORT_SYMBOL_GPL(snd_hda_pick_pin_fixup);
 
 /**
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -7648,8 +7648,8 @@ static int patch_alc269(struct hda_codec
 
 	snd_hda_pick_fixup(codec, alc269_fixup_models,
 		       alc269_fixup_tbl, alc269_fixups);
-	snd_hda_pick_pin_fixup(codec, alc269_pin_fixup_tbl, alc269_fixups, true);
-	snd_hda_pick_pin_fixup(codec, alc269_fallback_pin_fixup_tbl, alc269_fixups, false);
+	snd_hda_pick_pin_fixup2(codec, alc269_pin_fixup_tbl, alc269_fixups, true);
+	snd_hda_pick_pin_fixup2(codec, alc269_fallback_pin_fixup_tbl, alc269_fixups, false);
 	snd_hda_pick_fixup(codec, NULL,	alc269_fixup_vendor_tbl,
 			   alc269_fixups);
 	snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
@@ -8734,7 +8734,7 @@ static int patch_alc662(struct hda_codec
 
 	snd_hda_pick_fixup(codec, alc662_fixup_models,
 		       alc662_fixup_tbl, alc662_fixups);
-	snd_hda_pick_pin_fixup(codec, alc662_pin_fixup_tbl, alc662_fixups, true);
+	snd_hda_pick_pin_fixup2(codec, alc662_pin_fixup_tbl, alc662_fixups, true);
 	snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE);
 
 	alc_auto_parse_customize_define(codec);
--- a/sound/pci/hda/hda_local.h
+++ b/sound/pci/hda/hda_local.h
@@ -372,10 +372,13 @@ void snd_hda_pick_fixup(struct hda_codec
 			const struct hda_model_fixup *models,
 			const struct snd_pci_quirk *quirk,
 			const struct hda_fixup *fixlist);
-void snd_hda_pick_pin_fixup(struct hda_codec *codec,
+void snd_hda_pick_pin_fixup2(struct hda_codec *codec,
 			    const struct snd_hda_pin_quirk *pin_quirk,
 			    const struct hda_fixup *fixlist,
 			    bool match_all_pins);
+void snd_hda_pick_pin_fixup(struct hda_codec *codec,
+			    const struct snd_hda_pin_quirk *pin_quirk,
+			    const struct hda_fixup *fixlist);
 
 /* helper macros to retrieve pin default-config values */
 #define get_defcfg_connect(cfg) \