Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit d47f9580 authored by Mark Brown's avatar Mark Brown
Browse files

Merge branch 'asoc-4.19' into asoc-4.20 for rcar dep

parents 2e66d523 4d230d12
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -960,8 +960,10 @@ static int msm_routing_probe(struct snd_soc_component *c)
{
	int i;

	for (i = 0; i < MAX_SESSIONS; i++)
	for (i = 0; i < MAX_SESSIONS; i++) {
		routing_data->sessions[i].port_id = -1;
		routing_data->sessions[i].fedai_id = -1;
	}

	return 0;
}
+11 −0
Original line number Diff line number Diff line
@@ -955,12 +955,23 @@ static void rsnd_soc_dai_shutdown(struct snd_pcm_substream *substream,
	rsnd_dai_stream_quit(io);
}

static int rsnd_soc_dai_prepare(struct snd_pcm_substream *substream,
				struct snd_soc_dai *dai)
{
	struct rsnd_priv *priv = rsnd_dai_to_priv(dai);
	struct rsnd_dai *rdai = rsnd_dai_to_rdai(dai);
	struct rsnd_dai_stream *io = rsnd_rdai_to_io(rdai, substream);

	return rsnd_dai_call(prepare, io, priv);
}

static const struct snd_soc_dai_ops rsnd_soc_dai_ops = {
	.startup	= rsnd_soc_dai_startup,
	.shutdown	= rsnd_soc_dai_shutdown,
	.trigger	= rsnd_soc_dai_trigger,
	.set_fmt	= rsnd_soc_dai_set_fmt,
	.set_tdm_slot	= rsnd_soc_set_dai_tdm_slot,
	.prepare	= rsnd_soc_dai_prepare,
};

void rsnd_parse_connect_common(struct rsnd_dai *rdai,
+7 −0
Original line number Diff line number Diff line
@@ -301,6 +301,9 @@ struct rsnd_mod_ops {
	int (*nolock_stop)(struct rsnd_mod *mod,
		    struct rsnd_dai_stream *io,
		    struct rsnd_priv *priv);
	int (*prepare)(struct rsnd_mod *mod,
		       struct rsnd_dai_stream *io,
		       struct rsnd_priv *priv);
};

struct rsnd_dai_stream;
@@ -330,6 +333,7 @@ struct rsnd_mod {
 * H	0: fallback
 * H	0: hw_params
 * H	0: pointer
 * H	0: prepare
 */
#define __rsnd_mod_shift_nolock_start	0
#define __rsnd_mod_shift_nolock_stop	0
@@ -344,6 +348,7 @@ struct rsnd_mod {
#define __rsnd_mod_shift_fallback	28 /* always called */
#define __rsnd_mod_shift_hw_params	28 /* always called */
#define __rsnd_mod_shift_pointer	28 /* always called */
#define __rsnd_mod_shift_prepare	28 /* always called */

#define __rsnd_mod_add_probe		0
#define __rsnd_mod_add_remove		0
@@ -358,6 +363,7 @@ struct rsnd_mod {
#define __rsnd_mod_add_fallback		0
#define __rsnd_mod_add_hw_params	0
#define __rsnd_mod_add_pointer		0
#define __rsnd_mod_add_prepare		0

#define __rsnd_mod_call_probe		0
#define __rsnd_mod_call_remove		0
@@ -372,6 +378,7 @@ struct rsnd_mod {
#define __rsnd_mod_call_pointer		0
#define __rsnd_mod_call_nolock_start	0
#define __rsnd_mod_call_nolock_stop	1
#define __rsnd_mod_call_prepare		0

#define rsnd_mod_to_priv(mod)	((mod)->priv)
#define rsnd_mod_name(mod)	((mod)->ops->name)
+10 −6
Original line number Diff line number Diff line
@@ -306,7 +306,7 @@ static int rsnd_ssi_master_clk_start(struct rsnd_mod *mod,
	if (rsnd_ssi_is_multi_slave(mod, io))
		return 0;

	if (ssi->usrcnt > 1) {
	if (ssi->rate) {
		if (ssi->rate != rate) {
			dev_err(dev, "SSI parent/child should use same rate\n");
			return -EINVAL;
@@ -464,7 +464,6 @@ static int rsnd_ssi_init(struct rsnd_mod *mod,
			 struct rsnd_priv *priv)
{
	struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
	int ret;

	if (!rsnd_ssi_is_run_mods(mod, io))
		return 0;
@@ -473,10 +472,6 @@ static int rsnd_ssi_init(struct rsnd_mod *mod,

	rsnd_mod_power_on(mod);

	ret = rsnd_ssi_master_clk_start(mod, io);
	if (ret < 0)
		return ret;

	rsnd_ssi_config_init(mod, io);

	rsnd_ssi_register_setup(mod);
@@ -872,6 +867,13 @@ static int rsnd_ssi_pio_pointer(struct rsnd_mod *mod,
	return 0;
}

static int rsnd_ssi_prepare(struct rsnd_mod *mod,
			    struct rsnd_dai_stream *io,
			    struct rsnd_priv *priv)
{
	return rsnd_ssi_master_clk_start(mod, io);
}

static struct rsnd_mod_ops rsnd_ssi_pio_ops = {
	.name	= SSI_NAME,
	.probe	= rsnd_ssi_common_probe,
@@ -884,6 +886,7 @@ static struct rsnd_mod_ops rsnd_ssi_pio_ops = {
	.pointer = rsnd_ssi_pio_pointer,
	.pcm_new = rsnd_ssi_pcm_new,
	.hw_params = rsnd_ssi_hw_params,
	.prepare = rsnd_ssi_prepare,
};

static int rsnd_ssi_dma_probe(struct rsnd_mod *mod,
@@ -959,6 +962,7 @@ static struct rsnd_mod_ops rsnd_ssi_dma_ops = {
	.pcm_new = rsnd_ssi_pcm_new,
	.fallback = rsnd_ssi_fallback,
	.hw_params = rsnd_ssi_hw_params,
	.prepare = rsnd_ssi_prepare,
};

int rsnd_ssi_is_dma_mode(struct rsnd_mod *mod)