projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ASoC: rsnd: adds struct rsnd_dai_stream as on each fuction as parameter
[deliverable/linux.git]
/
sound
/
soc
/
sh
/
rcar
/
src.c
diff --git
a/sound/soc/sh/rcar/src.c
b/sound/soc/sh/rcar/src.c
index 3beb32eb412a103db4135a20e96948f4a1c88c80..e28d9f6ddda6801d9e02581b1bba5d99d067dec2 100644
(file)
--- a/
sound/soc/sh/rcar/src.c
+++ b/
sound/soc/sh/rcar/src.c
@@
-316,6
+316,7
@@
static int rsnd_src_set_convert_rate(struct rsnd_mod *mod)
}
static int rsnd_src_hw_params(struct rsnd_mod *mod,
}
static int rsnd_src_hw_params(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *fe_params)
{
struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *fe_params)
{
@@
-372,6
+373,7
@@
static int rsnd_src_init(struct rsnd_mod *mod,
}
static int rsnd_src_quit(struct rsnd_mod *mod,
}
static int rsnd_src_quit(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);
struct rsnd_priv *priv)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);
@@
-532,6
+534,7
@@
static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod)
}
static int rsnd_src_init_gen1(struct rsnd_mod *mod,
}
static int rsnd_src_init_gen1(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
int ret;
struct rsnd_priv *priv)
{
int ret;
@@
-556,6
+559,7
@@
static int rsnd_src_init_gen1(struct rsnd_mod *mod,
}
static int rsnd_src_start_gen1(struct rsnd_mod *mod,
}
static int rsnd_src_start_gen1(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
int id = rsnd_mod_id(mod);
struct rsnd_priv *priv)
{
int id = rsnd_mod_id(mod);
@@
-566,6
+570,7
@@
static int rsnd_src_start_gen1(struct rsnd_mod *mod,
}
static int rsnd_src_stop_gen1(struct rsnd_mod *mod,
}
static int rsnd_src_stop_gen1(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
int id = rsnd_mod_id(mod);
struct rsnd_priv *priv)
{
int id = rsnd_mod_id(mod);
@@
-673,10
+678,13
@@
static int _rsnd_src_stop_gen2(struct rsnd_mod *mod)
static irqreturn_t rsnd_src_interrupt_gen2(int irq, void *data)
{
struct rsnd_mod *mod = data;
static irqreturn_t rsnd_src_interrupt_gen2(int irq, void *data)
{
struct rsnd_mod *mod = data;
- struct rsnd_
dai_stream *io = rsnd_mod_to_io
(mod);
+ struct rsnd_
priv *priv = rsnd_mod_to_priv
(mod);
- if (!io)
- return IRQ_NONE;
+ spin_lock(&priv->lock);
+
+ /* ignore all cases if not working */
+ if (!rsnd_mod_is_working(mod))
+ goto rsnd_src_interrupt_gen2_out;
if (rsnd_src_error_record_gen2(mod)) {
struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
if (rsnd_src_error_record_gen2(mod)) {
struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
@@
-692,6
+700,8
@@
static irqreturn_t rsnd_src_interrupt_gen2(int irq, void *data)
else
dev_warn(dev, "no more SRC restart\n");
}
else
dev_warn(dev, "no more SRC restart\n");
}
+rsnd_src_interrupt_gen2_out:
+ spin_unlock(&priv->lock);
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
@@
-776,6
+786,7
@@
static int rsnd_src_set_convert_timing_gen2(struct rsnd_mod *mod)
}
static int rsnd_src_probe_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_probe_gen2(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);
struct rsnd_priv *priv)
{
struct rsnd_src *src = rsnd_mod_to_src(mod);
@@
-805,6
+816,7
@@
static int rsnd_src_probe_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_remove_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_remove_gen2(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
rsnd_dma_quit(rsnd_mod_to_dma(mod));
struct rsnd_priv *priv)
{
rsnd_dma_quit(rsnd_mod_to_dma(mod));
@@
-813,6
+825,7
@@
static int rsnd_src_remove_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_init_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_init_gen2(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
int ret;
struct rsnd_priv *priv)
{
int ret;
@@
-833,6
+846,7
@@
static int rsnd_src_init_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_start_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_start_gen2(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
rsnd_dma_start(rsnd_mod_to_dma(mod));
struct rsnd_priv *priv)
{
rsnd_dma_start(rsnd_mod_to_dma(mod));
@@
-841,6
+855,7
@@
static int rsnd_src_start_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_stop_gen2(struct rsnd_mod *mod,
}
static int rsnd_src_stop_gen2(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct rsnd_priv *priv)
{
int ret;
struct rsnd_priv *priv)
{
int ret;
@@
-873,10
+888,10
@@
static void rsnd_src_reconvert_update(struct rsnd_mod *mod)
}
static int rsnd_src_pcm_new(struct rsnd_mod *mod,
}
static int rsnd_src_pcm_new(struct rsnd_mod *mod,
+ struct rsnd_dai_stream *io,
struct snd_soc_pcm_runtime *rtd)
{
struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
struct snd_soc_pcm_runtime *rtd)
{
struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
- struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
struct rsnd_src *src = rsnd_mod_to_src(mod);
int ret;
struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
struct rsnd_src *src = rsnd_mod_to_src(mod);
int ret;
@@
-1041,7
+1056,7
@@
int rsnd_src_probe(struct platform_device *pdev,
src->info = &info->src_info[i];
src->info = &info->src_info[i];
- ret = rsnd_mod_init(&src->mod, ops, clk, RSND_MOD_SRC, i);
+ ret = rsnd_mod_init(
priv,
&src->mod, ops, clk, RSND_MOD_SRC, i);
if (ret)
return ret;
}
if (ret)
return ret;
}
This page took
0.026165 seconds
and
5
git commands to generate.