Commit 220c8f67 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-fix-v6.5-rc6' of...

Merge tag 'asoc-fix-v6.5-rc6' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.5

A fairly large collection of fixes here, mostly SOF and Intel related.
The one core fix is Hans' change which reduces the log spam when working
out new use cases for DPCM.
parents 7c761166 37aba319
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -185,10 +185,10 @@ static int max98363_io_init(struct sdw_slave *slave)
	pm_runtime_get_noresume(dev);

	ret = regmap_read(max98363->regmap, MAX98363_R21FF_REV_ID, &reg);
	if (!ret) {
	if (!ret)
		dev_info(dev, "Revision ID: %X\n", reg);
		return ret;
	}
	else
		goto out;

	if (max98363->first_hw_init) {
		regcache_cache_bypass(max98363->regmap, false);
@@ -198,10 +198,11 @@ static int max98363_io_init(struct sdw_slave *slave)
	max98363->first_hw_init = true;
	max98363->hw_init = true;

out:
	pm_runtime_mark_last_busy(dev);
	pm_runtime_put_autosuspend(dev);

	return 0;
	return ret;
}

#define MAX98363_RATES SNDRV_PCM_RATE_8000_192000
+12 −1
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ static bool rt1308_volatile_register(struct device *dev, unsigned int reg)
	case 0x300a:
	case 0xc000:
	case 0xc710:
	case 0xcf01:
	case 0xc860 ... 0xc863:
	case 0xc870 ... 0xc873:
		return true;
@@ -213,7 +214,7 @@ static int rt1308_io_init(struct device *dev, struct sdw_slave *slave)
{
	struct rt1308_sdw_priv *rt1308 = dev_get_drvdata(dev);
	int ret = 0;
	unsigned int tmp;
	unsigned int tmp, hibernation_flag;

	if (rt1308->hw_init)
		return 0;
@@ -242,6 +243,10 @@ static int rt1308_io_init(struct device *dev, struct sdw_slave *slave)

	pm_runtime_get_noresume(&slave->dev);

	regmap_read(rt1308->regmap, 0xcf01, &hibernation_flag);
	if ((hibernation_flag != 0x00) && rt1308->first_hw_init)
		goto _preset_ready_;

	/* sw reset */
	regmap_write(rt1308->regmap, RT1308_SDW_RESET, 0);

@@ -282,6 +287,12 @@ static int rt1308_io_init(struct device *dev, struct sdw_slave *slave)
	regmap_write(rt1308->regmap, 0xc100, 0xd7);
	regmap_write(rt1308->regmap, 0xc101, 0xd7);

	/* apply BQ params */
	rt1308_apply_bq_params(rt1308);

	regmap_write(rt1308->regmap, 0xcf01, 0x01);

_preset_ready_:
	if (rt1308->first_hw_init) {
		regcache_cache_bypass(rt1308->regmap, false);
		regcache_mark_dirty(rt1308->regmap);
+2 −0
Original line number Diff line number Diff line
@@ -4472,6 +4472,8 @@ static void rt5665_remove(struct snd_soc_component *component)
	struct rt5665_priv *rt5665 = snd_soc_component_get_drvdata(component);

	regmap_write(rt5665->regmap, RT5665_RESET, 0);

	regulator_bulk_disable(ARRAY_SIZE(rt5665->supplies), rt5665->supplies);
}

#ifdef CONFIG_PM
+1 −1
Original line number Diff line number Diff line
@@ -476,7 +476,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
			DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"),
			DMI_MATCH(DMI_PRODUCT_NAME, "Lunar Lake Client Platform"),
		},
		.driver_data = (void *)(RT711_JD2_100K),
		.driver_data = (void *)(RT711_JD2),
	},
	{}
};
+3 −3
Original line number Diff line number Diff line
@@ -99,9 +99,9 @@ static int cs42l42_rtd_init(struct snd_soc_pcm_runtime *rtd)
	jack = &ctx->sdw_headset;

	snd_jack_set_key(jack->jack, SND_JACK_BTN_0, KEY_PLAYPAUSE);
	snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOICECOMMAND);
	snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEUP);
	snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOLUMEDOWN);
	snd_jack_set_key(jack->jack, SND_JACK_BTN_1, KEY_VOLUMEUP);
	snd_jack_set_key(jack->jack, SND_JACK_BTN_2, KEY_VOLUMEDOWN);
	snd_jack_set_key(jack->jack, SND_JACK_BTN_3, KEY_VOICECOMMAND);

	ret = snd_soc_component_set_jack(component, jack, NULL);

Loading