浏览代码

Merge tag 'asoc-fix-v4.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v4.13

A couple of fixes, one for a regression in simple-card introduced during
the merge window that was only reported this week and another for a
regression in registration of ACPI GPIOs.
Takashi Iwai 8 年之前
父节点
当前提交
83b033bd33
共有 3 个文件被更改,包括 12 次插入2 次删除
  1. 1 1
      sound/soc/codecs/rt5670.c
  2. 1 1
      sound/soc/generic/simple-card-utils.c
  3. 10 0
      sound/soc/intel/boards/cht_bsw_rt5672.c

+ 1 - 1
sound/soc/codecs/rt5670.c

@@ -567,7 +567,7 @@ int rt5670_set_jack_detect(struct snd_soc_codec *codec,
 
 
 	rt5670->jack = jack;
 	rt5670->jack = jack;
 	rt5670->hp_gpio.gpiod_dev = codec->dev;
 	rt5670->hp_gpio.gpiod_dev = codec->dev;
-	rt5670->hp_gpio.name = "headphone detect";
+	rt5670->hp_gpio.name = "headset";
 	rt5670->hp_gpio.report = SND_JACK_HEADSET |
 	rt5670->hp_gpio.report = SND_JACK_HEADSET |
 		SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_BTN_2;
 		SND_JACK_BTN_0 | SND_JACK_BTN_1 | SND_JACK_BTN_2;
 	rt5670->hp_gpio.debounce_time = 150;
 	rt5670->hp_gpio.debounce_time = 150;

+ 1 - 1
sound/soc/generic/simple-card-utils.c

@@ -132,7 +132,7 @@ int asoc_simple_card_parse_card_name(struct snd_soc_card *card,
 
 
 	/* Parse the card name from DT */
 	/* Parse the card name from DT */
 	ret = snd_soc_of_parse_card_name(card, "label");
 	ret = snd_soc_of_parse_card_name(card, "label");
-	if (ret < 0) {
+	if (ret < 0 || !card->name) {
 		char prop[128];
 		char prop[128];
 
 
 		snprintf(prop, sizeof(prop), "%sname", prefix);
 		snprintf(prop, sizeof(prop), "%sname", prefix);

+ 10 - 0
sound/soc/intel/boards/cht_bsw_rt5672.c

@@ -184,6 +184,13 @@ static int cht_aif1_hw_params(struct snd_pcm_substream *substream,
 	return 0;
 	return 0;
 }
 }
 
 
+static const struct acpi_gpio_params headset_gpios = { 0, 0, false };
+
+static const struct acpi_gpio_mapping cht_rt5672_gpios[] = {
+	{ "headset-gpios", &headset_gpios, 1 },
+	{},
+};
+
 static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
 static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
 {
 {
 	int ret;
 	int ret;
@@ -191,6 +198,9 @@ static int cht_codec_init(struct snd_soc_pcm_runtime *runtime)
 	struct snd_soc_codec *codec = codec_dai->codec;
 	struct snd_soc_codec *codec = codec_dai->codec;
 	struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card);
 	struct cht_mc_private *ctx = snd_soc_card_get_drvdata(runtime->card);
 
 
+	if (devm_acpi_dev_add_driver_gpios(codec->dev, cht_rt5672_gpios))
+		dev_warn(runtime->dev, "Unable to add GPIO mapping table\n");
+
 	/* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */
 	/* TDM 4 slots 24 bit, set Rx & Tx bitmask to 4 active slots */
 	ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xF, 0xF, 4, 24);
 	ret = snd_soc_dai_set_tdm_slot(codec_dai, 0xF, 0xF, 4, 24);
 	if (ret < 0) {
 	if (ret < 0) {