Commit 02dc9b96 authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge tag 'asoc-fix-v6.15-merge-window' of...

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

ASoC: Fixes for v6.15

A relatively large set of fixes that came in since the release, mostly
for Qualcomm platforms.  The biggest block of fixes is the set from
Srini which fixes various quality and glitching issues on AudioReach
systems.
parents 8983dc1b 93d34608
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1631,6 +1631,7 @@ static int cs_dsp_load(struct cs_dsp *dsp, const struct firmware *firmware,

	cs_dsp_debugfs_save_wmfwname(dsp, file);

	ret = 0;
out_fw:
	cs_dsp_buf_free(&buf_list);

@@ -2338,6 +2339,7 @@ static int cs_dsp_load_coeff(struct cs_dsp *dsp, const struct firmware *firmware

	cs_dsp_debugfs_save_binname(dsp, file);

	ret = 0;
out_fw:
	cs_dsp_buf_free(&buf_list);

+4 −20
Original line number Diff line number Diff line
@@ -31,9 +31,7 @@
#include "rl6231.h"
#include "rt5665.h"

#define RT5665_NUM_SUPPLIES 3

static const char *rt5665_supply_names[RT5665_NUM_SUPPLIES] = {
static const char * const rt5665_supply_names[] = {
	"AVDD",
	"MICVDD",
	"VBAT",
@@ -46,7 +44,6 @@ struct rt5665_priv {
	struct gpio_desc *gpiod_ldo1_en;
	struct gpio_desc *gpiod_reset;
	struct snd_soc_jack *hs_jack;
	struct regulator_bulk_data supplies[RT5665_NUM_SUPPLIES];
	struct delayed_work jack_detect_work;
	struct delayed_work calibrate_work;
	struct delayed_work jd_check_work;
@@ -4471,8 +4468,6 @@ 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
@@ -4758,7 +4753,7 @@ static int rt5665_i2c_probe(struct i2c_client *i2c)
{
	struct rt5665_platform_data *pdata = dev_get_platdata(&i2c->dev);
	struct rt5665_priv *rt5665;
	int i, ret;
	int ret;
	unsigned int val;

	rt5665 = devm_kzalloc(&i2c->dev, sizeof(struct rt5665_priv),
@@ -4774,24 +4769,13 @@ static int rt5665_i2c_probe(struct i2c_client *i2c)
	else
		rt5665_parse_dt(rt5665, &i2c->dev);

	for (i = 0; i < ARRAY_SIZE(rt5665->supplies); i++)
		rt5665->supplies[i].supply = rt5665_supply_names[i];

	ret = devm_regulator_bulk_get(&i2c->dev, ARRAY_SIZE(rt5665->supplies),
				      rt5665->supplies);
	ret = devm_regulator_bulk_get_enable(&i2c->dev, ARRAY_SIZE(rt5665_supply_names),
					     rt5665_supply_names);
	if (ret != 0) {
		dev_err(&i2c->dev, "Failed to request supplies: %d\n", ret);
		return ret;
	}

	ret = regulator_bulk_enable(ARRAY_SIZE(rt5665->supplies),
				    rt5665->supplies);
	if (ret != 0) {
		dev_err(&i2c->dev, "Failed to enable supplies: %d\n", ret);
		return ret;
	}


	rt5665->gpiod_ldo1_en = devm_gpiod_get_optional(&i2c->dev,
							"realtek,ldo1-en",
							GPIOD_OUT_HIGH);
+2 −9
Original line number Diff line number Diff line
@@ -1705,7 +1705,7 @@ static void sma1307_check_fault_worker(struct work_struct *work)
static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *file)
{
	const struct firmware *fw;
	int *data, size, offset, num_mode;
	int size, offset, num_mode;
	int ret;

	ret = request_firmware(&fw, file, sma1307->dev);
@@ -1722,7 +1722,7 @@ static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *fil
		return;
	}

	data = kzalloc(fw->size, GFP_KERNEL);
	int *data __free(kfree) = kzalloc(fw->size, GFP_KERNEL);
	if (!data) {
		release_firmware(fw);
		sma1307->set.status = false;
@@ -1742,7 +1742,6 @@ static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *fil
					   sma1307->set.header_size,
					   GFP_KERNEL);
	if (!sma1307->set.header) {
		kfree(data);
		sma1307->set.status = false;
		return;
	}
@@ -1763,8 +1762,6 @@ static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *fil
	    = devm_kzalloc(sma1307->dev,
			   sma1307->set.def_size * sizeof(int), GFP_KERNEL);
	if (!sma1307->set.def) {
		kfree(data);
		kfree(sma1307->set.header);
		sma1307->set.status = false;
		return;
	}
@@ -1782,9 +1779,6 @@ static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *fil
				   sma1307->set.mode_size * 2 * sizeof(int),
				   GFP_KERNEL);
		if (!sma1307->set.mode_set[i]) {
			kfree(data);
			kfree(sma1307->set.header);
			kfree(sma1307->set.def);
			for (int j = 0; j < i; j++)
				kfree(sma1307->set.mode_set[j]);
			sma1307->set.status = false;
@@ -1799,7 +1793,6 @@ static void sma1307_setting_loaded(struct sma1307_priv *sma1307, const char *fil
		}
	}

	kfree(data);
	sma1307->set.status = true;

}
+1 −1
Original line number Diff line number Diff line
@@ -568,7 +568,7 @@ static const struct sdw_port_config wsa883x_pconfig[WSA883X_MAX_SWR_PORTS] = {
	},
	[WSA883X_PORT_VISENSE] = {
		.num = WSA883X_PORT_VISENSE + 1,
		.ch_mask = 0x3,
		.ch_mask = 0x1,
	},
};

+1 −1
Original line number Diff line number Diff line
@@ -891,7 +891,7 @@ static const struct sdw_port_config wsa884x_pconfig[WSA884X_MAX_SWR_PORTS] = {
	},
	[WSA884X_PORT_VISENSE] = {
		.num = WSA884X_PORT_VISENSE + 1,
		.ch_mask = 0x3,
		.ch_mask = 0x1,
	},
	[WSA884X_PORT_CPS] = {
		.num = WSA884X_PORT_CPS + 1,
Loading