Commit eadeb06e authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-fix-v5.15-rc5' of...

Merge tag 'asoc-fix-v5.15-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v5.15

A colletion of smallish mostly driver specific fixes, the biggest thing
here is fixing some of the core code to generate change notifications
properly when writing to controls which will fix issues with UIs not
showing the correct values.

There's one build fix here with a slightly misleading changelog saying
it's adding IRQ config support, it's adding a missing select of the
regmap-irq code rather than adding a feature.
parents d94befbb 6b9b546d
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -1583,6 +1583,7 @@ config SND_SOC_WCD938X_SDW
	tristate "WCD9380/WCD9385 Codec - SDW"
	tristate "WCD9380/WCD9385 Codec - SDW"
	select SND_SOC_WCD938X
	select SND_SOC_WCD938X
	select SND_SOC_WCD_MBHC
	select SND_SOC_WCD_MBHC
	select REGMAP_IRQ
	depends on SOUNDWIRE
	depends on SOUNDWIRE
	select REGMAP_SOUNDWIRE
	select REGMAP_SOUNDWIRE
	help
	help
+3 −13
Original line number Original line Diff line number Diff line
@@ -922,7 +922,6 @@ static int cs42l42_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
	struct snd_soc_component *component = dai->component;
	struct snd_soc_component *component = dai->component;
	struct cs42l42_private *cs42l42 = snd_soc_component_get_drvdata(component);
	struct cs42l42_private *cs42l42 = snd_soc_component_get_drvdata(component);
	unsigned int regval;
	unsigned int regval;
	u8 fullScaleVol;
	int ret;
	int ret;


	if (mute) {
	if (mute) {
@@ -993,20 +992,11 @@ static int cs42l42_mute_stream(struct snd_soc_dai *dai, int mute, int stream)
		cs42l42->stream_use |= 1 << stream;
		cs42l42->stream_use |= 1 << stream;


		if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
		if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
			/* Read the headphone load */
			/* Un-mute the headphone */
			regval = snd_soc_component_read(component, CS42L42_LOAD_DET_RCSTAT);
			if (((regval & CS42L42_RLA_STAT_MASK) >> CS42L42_RLA_STAT_SHIFT) ==
			    CS42L42_RLA_STAT_15_OHM) {
				fullScaleVol = CS42L42_HP_FULL_SCALE_VOL_MASK;
			} else {
				fullScaleVol = 0;
			}

			/* Un-mute the headphone, set the full scale volume flag */
			snd_soc_component_update_bits(component, CS42L42_HP_CTL,
			snd_soc_component_update_bits(component, CS42L42_HP_CTL,
						      CS42L42_HP_ANA_AMUTE_MASK |
						      CS42L42_HP_ANA_AMUTE_MASK |
						      CS42L42_HP_ANA_BMUTE_MASK |
						      CS42L42_HP_ANA_BMUTE_MASK,
						      CS42L42_HP_FULL_SCALE_VOL_MASK, fullScaleVol);
						      0);
		}
		}
	}
	}


+7 −0
Original line number Original line Diff line number Diff line
@@ -305,12 +305,19 @@ static int cs4341_spi_probe(struct spi_device *spi)
	return cs4341_probe(&spi->dev);
	return cs4341_probe(&spi->dev);
}
}


static const struct spi_device_id cs4341_spi_ids[] = {
	{ "cs4341a" },
	{ }
};
MODULE_DEVICE_TABLE(spi, cs4341_spi_ids);

static struct spi_driver cs4341_spi_driver = {
static struct spi_driver cs4341_spi_driver = {
	.driver = {
	.driver = {
		.name = "cs4341-spi",
		.name = "cs4341-spi",
		.of_match_table = of_match_ptr(cs4341_dt_ids),
		.of_match_table = of_match_ptr(cs4341_dt_ids),
	},
	},
	.probe = cs4341_spi_probe,
	.probe = cs4341_spi_probe,
	.id_table = cs4341_spi_ids,
};
};
#endif
#endif


+2 −2
Original line number Original line Diff line number Diff line
@@ -867,8 +867,8 @@ static void nau8824_jdet_work(struct work_struct *work)
	struct regmap *regmap = nau8824->regmap;
	struct regmap *regmap = nau8824->regmap;
	int adc_value, event = 0, event_mask = 0;
	int adc_value, event = 0, event_mask = 0;


	snd_soc_dapm_enable_pin(dapm, "MICBIAS");
	snd_soc_dapm_force_enable_pin(dapm, "MICBIAS");
	snd_soc_dapm_enable_pin(dapm, "SAR");
	snd_soc_dapm_force_enable_pin(dapm, "SAR");
	snd_soc_dapm_sync(dapm);
	snd_soc_dapm_sync(dapm);


	msleep(100);
	msleep(100);
+1 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,7 @@ static const struct of_device_id pcm179x_of_match[] = {
MODULE_DEVICE_TABLE(of, pcm179x_of_match);
MODULE_DEVICE_TABLE(of, pcm179x_of_match);


static const struct spi_device_id pcm179x_spi_ids[] = {
static const struct spi_device_id pcm179x_spi_ids[] = {
	{ "pcm1792a", 0 },
	{ "pcm179x", 0 },
	{ "pcm179x", 0 },
	{ },
	{ },
};
};
Loading