aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2015-01-15 03:07:19 -0500
committerMark Brown <broonie@kernel.org>2015-01-15 06:37:48 -0500
commitf708d944fee384961f5ab7df3463760099c9d69c (patch)
tree519ae6649b81380d4109dc1ebc694054ff85ec59
parent985a4f6e61560c4cba19d910a0d81757a1063571 (diff)
ASoC: rsnd: remove unsed rdai parameter from each function
Current rsnd driver's many functions requests struct rsnd_dai (= rdai), but, 1) we can get rdai from rsnd_io_to_rsnd(), 2) almost all rdai is not used. Let's remove these rdai. Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r--sound/soc/sh/rcar/adg.c12
-rw-r--r--sound/soc/sh/rcar/core.c19
-rw-r--r--sound/soc/sh/rcar/dvc.c12
-rw-r--r--sound/soc/sh/rcar/rsnd.h18
-rw-r--r--sound/soc/sh/rcar/src.c54
-rw-r--r--sound/soc/sh/rcar/ssi.c28
6 files changed, 56 insertions, 87 deletions
diff --git a/sound/soc/sh/rcar/adg.c b/sound/soc/sh/rcar/adg.c
index 9d22c75b9b32..7ac35c9d1cb8 100644
--- a/sound/soc/sh/rcar/adg.c
+++ b/sound/soc/sh/rcar/adg.c
@@ -57,8 +57,7 @@ static u32 rsnd_adg_ssi_ws_timing_gen2(struct rsnd_dai_stream *io)
57 return (0x6 + ws) << 8; 57 return (0x6 + ws) << 8;
58} 58}
59 59
60int rsnd_adg_set_cmd_timsel_gen2(struct rsnd_dai *rdai, 60int rsnd_adg_set_cmd_timsel_gen2(struct rsnd_mod *mod,
61 struct rsnd_mod *mod,
62 struct rsnd_dai_stream *io) 61 struct rsnd_dai_stream *io)
63{ 62{
64 int id = rsnd_mod_id(mod); 63 int id = rsnd_mod_id(mod);
@@ -75,8 +74,7 @@ int rsnd_adg_set_cmd_timsel_gen2(struct rsnd_dai *rdai,
75 return 0; 74 return 0;
76} 75}
77 76
78static int rsnd_adg_set_src_timsel_gen2(struct rsnd_dai *rdai, 77static int rsnd_adg_set_src_timsel_gen2(struct rsnd_mod *mod,
79 struct rsnd_mod *mod,
80 struct rsnd_dai_stream *io, 78 struct rsnd_dai_stream *io,
81 u32 timsel) 79 u32 timsel)
82{ 80{
@@ -122,7 +120,6 @@ static int rsnd_adg_set_src_timsel_gen2(struct rsnd_dai *rdai,
122} 120}
123 121
124int rsnd_adg_set_convert_clk_gen2(struct rsnd_mod *mod, 122int rsnd_adg_set_convert_clk_gen2(struct rsnd_mod *mod,
125 struct rsnd_dai *rdai,
126 struct rsnd_dai_stream *io, 123 struct rsnd_dai_stream *io,
127 unsigned int src_rate, 124 unsigned int src_rate,
128 unsigned int dst_rate) 125 unsigned int dst_rate)
@@ -178,7 +175,7 @@ int rsnd_adg_set_convert_clk_gen2(struct rsnd_mod *mod,
178 return -EIO; 175 return -EIO;
179 } 176 }
180 177
181 ret = rsnd_adg_set_src_timsel_gen2(rdai, mod, io, val); 178 ret = rsnd_adg_set_src_timsel_gen2(mod, io, val);
182 if (ret < 0) { 179 if (ret < 0) {
183 dev_err(dev, "timsel error\n"); 180 dev_err(dev, "timsel error\n");
184 return ret; 181 return ret;
@@ -190,12 +187,11 @@ int rsnd_adg_set_convert_clk_gen2(struct rsnd_mod *mod,
190} 187}
191 188
192int rsnd_adg_set_convert_timing_gen2(struct rsnd_mod *mod, 189int rsnd_adg_set_convert_timing_gen2(struct rsnd_mod *mod,
193 struct rsnd_dai *rdai,
194 struct rsnd_dai_stream *io) 190 struct rsnd_dai_stream *io)
195{ 191{
196 u32 val = rsnd_adg_ssi_ws_timing_gen2(io); 192 u32 val = rsnd_adg_ssi_ws_timing_gen2(io);
197 193
198 return rsnd_adg_set_src_timsel_gen2(rdai, mod, io, val); 194 return rsnd_adg_set_src_timsel_gen2(mod, io, val);
199} 195}
200 196
201int rsnd_adg_set_convert_clk_gen1(struct rsnd_priv *priv, 197int rsnd_adg_set_convert_clk_gen1(struct rsnd_priv *priv,
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index c1f577da41fe..74e2c4214058 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -1025,7 +1025,6 @@ static int rsnd_kctrl_put(struct snd_kcontrol *kctrl,
1025} 1025}
1026 1026
1027static int __rsnd_kctrl_new(struct rsnd_mod *mod, 1027static int __rsnd_kctrl_new(struct rsnd_mod *mod,
1028 struct rsnd_dai *rdai,
1029 struct snd_soc_pcm_runtime *rtd, 1028 struct snd_soc_pcm_runtime *rtd,
1030 const unsigned char *name, 1029 const unsigned char *name,
1031 struct rsnd_kctrl_cfg *cfg, 1030 struct rsnd_kctrl_cfg *cfg,
@@ -1057,7 +1056,6 @@ static int __rsnd_kctrl_new(struct rsnd_mod *mod,
1057} 1056}
1058 1057
1059int rsnd_kctrl_new_m(struct rsnd_mod *mod, 1058int rsnd_kctrl_new_m(struct rsnd_mod *mod,
1060 struct rsnd_dai *rdai,
1061 struct snd_soc_pcm_runtime *rtd, 1059 struct snd_soc_pcm_runtime *rtd,
1062 const unsigned char *name, 1060 const unsigned char *name,
1063 void (*update)(struct rsnd_mod *mod), 1061 void (*update)(struct rsnd_mod *mod),
@@ -1067,11 +1065,10 @@ int rsnd_kctrl_new_m(struct rsnd_mod *mod,
1067 _cfg->cfg.max = max; 1065 _cfg->cfg.max = max;
1068 _cfg->cfg.size = RSND_DVC_CHANNELS; 1066 _cfg->cfg.size = RSND_DVC_CHANNELS;
1069 _cfg->cfg.val = _cfg->val; 1067 _cfg->cfg.val = _cfg->val;
1070 return __rsnd_kctrl_new(mod, rdai, rtd, name, &_cfg->cfg, update); 1068 return __rsnd_kctrl_new(mod, rtd, name, &_cfg->cfg, update);
1071} 1069}
1072 1070
1073int rsnd_kctrl_new_s(struct rsnd_mod *mod, 1071int rsnd_kctrl_new_s(struct rsnd_mod *mod,
1074 struct rsnd_dai *rdai,
1075 struct snd_soc_pcm_runtime *rtd, 1072 struct snd_soc_pcm_runtime *rtd,
1076 const unsigned char *name, 1073 const unsigned char *name,
1077 void (*update)(struct rsnd_mod *mod), 1074 void (*update)(struct rsnd_mod *mod),
@@ -1081,11 +1078,10 @@ int rsnd_kctrl_new_s(struct rsnd_mod *mod,
1081 _cfg->cfg.max = max; 1078 _cfg->cfg.max = max;
1082 _cfg->cfg.size = 1; 1079 _cfg->cfg.size = 1;
1083 _cfg->cfg.val = &_cfg->val; 1080 _cfg->cfg.val = &_cfg->val;
1084 return __rsnd_kctrl_new(mod, rdai, rtd, name, &_cfg->cfg, update); 1081 return __rsnd_kctrl_new(mod, rtd, name, &_cfg->cfg, update);
1085} 1082}
1086 1083
1087int rsnd_kctrl_new_e(struct rsnd_mod *mod, 1084int rsnd_kctrl_new_e(struct rsnd_mod *mod,
1088 struct rsnd_dai *rdai,
1089 struct snd_soc_pcm_runtime *rtd, 1085 struct snd_soc_pcm_runtime *rtd,
1090 const unsigned char *name, 1086 const unsigned char *name,
1091 struct rsnd_kctrl_cfg_s *_cfg, 1087 struct rsnd_kctrl_cfg_s *_cfg,
@@ -1097,7 +1093,7 @@ int rsnd_kctrl_new_e(struct rsnd_mod *mod,
1097 _cfg->cfg.size = 1; 1093 _cfg->cfg.size = 1;
1098 _cfg->cfg.val = &_cfg->val; 1094 _cfg->cfg.val = &_cfg->val;
1099 _cfg->cfg.texts = texts; 1095 _cfg->cfg.texts = texts;
1100 return __rsnd_kctrl_new(mod, rdai, rtd, name, &_cfg->cfg, update); 1096 return __rsnd_kctrl_new(mod, rtd, name, &_cfg->cfg, update);
1101} 1097}
1102 1098
1103/* 1099/*
@@ -1138,10 +1134,9 @@ static const struct snd_soc_component_driver rsnd_soc_component = {
1138}; 1134};
1139 1135
1140static int rsnd_rdai_continuance_probe(struct rsnd_priv *priv, 1136static int rsnd_rdai_continuance_probe(struct rsnd_priv *priv,
1141 struct rsnd_dai *rdai, 1137 struct rsnd_dai_stream *io)
1142 int is_play)
1143{ 1138{
1144 struct rsnd_dai_stream *io = is_play ? &rdai->playback : &rdai->capture; 1139 struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
1145 int ret; 1140 int ret;
1146 1141
1147 ret = rsnd_dai_call(probe, io, rdai); 1142 ret = rsnd_dai_call(probe, io, rdai);
@@ -1241,11 +1236,11 @@ static int rsnd_probe(struct platform_device *pdev)
1241 } 1236 }
1242 1237
1243 for_each_rsnd_dai(rdai, priv, i) { 1238 for_each_rsnd_dai(rdai, priv, i) {
1244 ret = rsnd_rdai_continuance_probe(priv, rdai, 1); 1239 ret = rsnd_rdai_continuance_probe(priv, &rdai->playback);
1245 if (ret) 1240 if (ret)
1246 goto exit_snd_probe; 1241 goto exit_snd_probe;
1247 1242
1248 ret = rsnd_rdai_continuance_probe(priv, rdai, 0); 1243 ret = rsnd_rdai_continuance_probe(priv, &rdai->capture);
1249 if (ret) 1244 if (ret)
1250 goto exit_snd_probe; 1245 goto exit_snd_probe;
1251 } 1246 }
diff --git a/sound/soc/sh/rcar/dvc.c b/sound/soc/sh/rcar/dvc.c
index 225baa32bf0b..e24db9e4ee25 100644
--- a/sound/soc/sh/rcar/dvc.c
+++ b/sound/soc/sh/rcar/dvc.c
@@ -171,7 +171,7 @@ static int rsnd_dvc_init(struct rsnd_mod *dvc_mod,
171 171
172 rsnd_mod_write(dvc_mod, DVC_DVUIR, 0); 172 rsnd_mod_write(dvc_mod, DVC_DVUIR, 0);
173 173
174 rsnd_adg_set_cmd_timsel_gen2(rdai, dvc_mod, io); 174 rsnd_adg_set_cmd_timsel_gen2(dvc_mod, io);
175 175
176 return 0; 176 return 0;
177} 177}
@@ -210,7 +210,7 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
210 int ret; 210 int ret;
211 211
212 /* Volume */ 212 /* Volume */
213 ret = rsnd_kctrl_new_m(mod, rdai, rtd, 213 ret = rsnd_kctrl_new_m(mod, rtd,
214 is_play ? 214 is_play ?
215 "DVC Out Playback Volume" : "DVC In Capture Volume", 215 "DVC Out Playback Volume" : "DVC In Capture Volume",
216 rsnd_dvc_volume_update, 216 rsnd_dvc_volume_update,
@@ -219,7 +219,7 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
219 return ret; 219 return ret;
220 220
221 /* Mute */ 221 /* Mute */
222 ret = rsnd_kctrl_new_m(mod, rdai, rtd, 222 ret = rsnd_kctrl_new_m(mod, rtd,
223 is_play ? 223 is_play ?
224 "DVC Out Mute Switch" : "DVC In Mute Switch", 224 "DVC Out Mute Switch" : "DVC In Mute Switch",
225 rsnd_dvc_volume_update, 225 rsnd_dvc_volume_update,
@@ -228,7 +228,7 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
228 return ret; 228 return ret;
229 229
230 /* Ramp */ 230 /* Ramp */
231 ret = rsnd_kctrl_new_s(mod, rdai, rtd, 231 ret = rsnd_kctrl_new_s(mod, rtd,
232 is_play ? 232 is_play ?
233 "DVC Out Ramp Switch" : "DVC In Ramp Switch", 233 "DVC Out Ramp Switch" : "DVC In Ramp Switch",
234 rsnd_dvc_volume_update, 234 rsnd_dvc_volume_update,
@@ -236,7 +236,7 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
236 if (ret < 0) 236 if (ret < 0)
237 return ret; 237 return ret;
238 238
239 ret = rsnd_kctrl_new_e(mod, rdai, rtd, 239 ret = rsnd_kctrl_new_e(mod, rtd,
240 is_play ? 240 is_play ?
241 "DVC Out Ramp Up Rate" : "DVC In Ramp Up Rate", 241 "DVC Out Ramp Up Rate" : "DVC In Ramp Up Rate",
242 &dvc->rup, 242 &dvc->rup,
@@ -245,7 +245,7 @@ static int rsnd_dvc_pcm_new(struct rsnd_mod *mod,
245 if (ret < 0) 245 if (ret < 0)
246 return ret; 246 return ret;
247 247
248 ret = rsnd_kctrl_new_e(mod, rdai, rtd, 248 ret = rsnd_kctrl_new_e(mod, rtd,
249 is_play ? 249 is_play ?
250 "DVC Out Ramp Down Rate" : "DVC In Ramp Down Rate", 250 "DVC Out Ramp Down Rate" : "DVC In Ramp Down Rate",
251 &dvc->rdown, 251 &dvc->rdown,
diff --git a/sound/soc/sh/rcar/rsnd.h b/sound/soc/sh/rcar/rsnd.h
index 83eb46c35e94..aaba717b8fd3 100644
--- a/sound/soc/sh/rcar/rsnd.h
+++ b/sound/soc/sh/rcar/rsnd.h
@@ -351,15 +351,12 @@ int rsnd_adg_set_convert_clk_gen1(struct rsnd_priv *priv,
351 unsigned int src_rate, 351 unsigned int src_rate,
352 unsigned int dst_rate); 352 unsigned int dst_rate);
353int rsnd_adg_set_convert_clk_gen2(struct rsnd_mod *mod, 353int rsnd_adg_set_convert_clk_gen2(struct rsnd_mod *mod,
354 struct rsnd_dai *rdai,
355 struct rsnd_dai_stream *io, 354 struct rsnd_dai_stream *io,
356 unsigned int src_rate, 355 unsigned int src_rate,
357 unsigned int dst_rate); 356 unsigned int dst_rate);
358int rsnd_adg_set_convert_timing_gen2(struct rsnd_mod *mod, 357int rsnd_adg_set_convert_timing_gen2(struct rsnd_mod *mod,
359 struct rsnd_dai *rdai,
360 struct rsnd_dai_stream *io); 358 struct rsnd_dai_stream *io);
361int rsnd_adg_set_cmd_timsel_gen2(struct rsnd_dai *rdai, 359int rsnd_adg_set_cmd_timsel_gen2(struct rsnd_mod *mod,
362 struct rsnd_mod *mod,
363 struct rsnd_dai_stream *io); 360 struct rsnd_dai_stream *io);
364 361
365/* 362/*
@@ -453,21 +450,18 @@ struct rsnd_kctrl_cfg_s {
453}; 450};
454 451
455int rsnd_kctrl_new_m(struct rsnd_mod *mod, 452int rsnd_kctrl_new_m(struct rsnd_mod *mod,
456 struct rsnd_dai *rdai,
457 struct snd_soc_pcm_runtime *rtd, 453 struct snd_soc_pcm_runtime *rtd,
458 const unsigned char *name, 454 const unsigned char *name,
459 void (*update)(struct rsnd_mod *mod), 455 void (*update)(struct rsnd_mod *mod),
460 struct rsnd_kctrl_cfg_m *_cfg, 456 struct rsnd_kctrl_cfg_m *_cfg,
461 u32 max); 457 u32 max);
462int rsnd_kctrl_new_s(struct rsnd_mod *mod, 458int rsnd_kctrl_new_s(struct rsnd_mod *mod,
463 struct rsnd_dai *rdai,
464 struct snd_soc_pcm_runtime *rtd, 459 struct snd_soc_pcm_runtime *rtd,
465 const unsigned char *name, 460 const unsigned char *name,
466 void (*update)(struct rsnd_mod *mod), 461 void (*update)(struct rsnd_mod *mod),
467 struct rsnd_kctrl_cfg_s *_cfg, 462 struct rsnd_kctrl_cfg_s *_cfg,
468 u32 max); 463 u32 max);
469int rsnd_kctrl_new_e(struct rsnd_mod *mod, 464int rsnd_kctrl_new_e(struct rsnd_mod *mod,
470 struct rsnd_dai *rdai,
471 struct snd_soc_pcm_runtime *rtd, 465 struct snd_soc_pcm_runtime *rtd,
472 const unsigned char *name, 466 const unsigned char *name,
473 struct rsnd_kctrl_cfg_s *_cfg, 467 struct rsnd_kctrl_cfg_s *_cfg,
@@ -486,14 +480,10 @@ unsigned int rsnd_src_get_ssi_rate(struct rsnd_priv *priv,
486 struct rsnd_dai_stream *io, 480 struct rsnd_dai_stream *io,
487 struct snd_pcm_runtime *runtime); 481 struct snd_pcm_runtime *runtime);
488int rsnd_src_ssiu_start(struct rsnd_mod *ssi_mod, 482int rsnd_src_ssiu_start(struct rsnd_mod *ssi_mod,
489 struct rsnd_dai *rdai,
490 int use_busif); 483 int use_busif);
491int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod, 484int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod);
492 struct rsnd_dai *rdai); 485int rsnd_src_ssi_irq_enable(struct rsnd_mod *ssi_mod);
493int rsnd_src_ssi_irq_enable(struct rsnd_mod *ssi_mod, 486int rsnd_src_ssi_irq_disable(struct rsnd_mod *ssi_mod);
494 struct rsnd_dai *rdai);
495int rsnd_src_ssi_irq_disable(struct rsnd_mod *ssi_mod,
496 struct rsnd_dai *rdai);
497 487
498#define rsnd_src_nr(priv) ((priv)->src_nr) 488#define rsnd_src_nr(priv) ((priv)->src_nr)
499 489
diff --git a/sound/soc/sh/rcar/src.c b/sound/soc/sh/rcar/src.c
index d4f9cccfff55..31e19a00655f 100644
--- a/sound/soc/sh/rcar/src.c
+++ b/sound/soc/sh/rcar/src.c
@@ -114,10 +114,10 @@ struct rsnd_src {
114 * Gen1/Gen2 common functions 114 * Gen1/Gen2 common functions
115 */ 115 */
116int rsnd_src_ssiu_start(struct rsnd_mod *ssi_mod, 116int rsnd_src_ssiu_start(struct rsnd_mod *ssi_mod,
117 struct rsnd_dai *rdai,
118 int use_busif) 117 int use_busif)
119{ 118{
120 struct rsnd_dai_stream *io = rsnd_mod_to_io(ssi_mod); 119 struct rsnd_dai_stream *io = rsnd_mod_to_io(ssi_mod);
120 struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
121 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); 121 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
122 int ssi_id = rsnd_mod_id(ssi_mod); 122 int ssi_id = rsnd_mod_id(ssi_mod);
123 123
@@ -181,8 +181,7 @@ int rsnd_src_ssiu_start(struct rsnd_mod *ssi_mod,
181 return 0; 181 return 0;
182} 182}
183 183
184int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod, 184int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod)
185 struct rsnd_dai *rdai)
186{ 185{
187 /* 186 /*
188 * DMA settings for SSIU 187 * DMA settings for SSIU
@@ -192,8 +191,7 @@ int rsnd_src_ssiu_stop(struct rsnd_mod *ssi_mod,
192 return 0; 191 return 0;
193} 192}
194 193
195int rsnd_src_ssi_irq_enable(struct rsnd_mod *ssi_mod, 194int rsnd_src_ssi_irq_enable(struct rsnd_mod *ssi_mod)
196 struct rsnd_dai *rdai)
197{ 195{
198 struct rsnd_priv *priv = rsnd_mod_to_priv(ssi_mod); 196 struct rsnd_priv *priv = rsnd_mod_to_priv(ssi_mod);
199 197
@@ -209,8 +207,7 @@ int rsnd_src_ssi_irq_enable(struct rsnd_mod *ssi_mod,
209 return 0; 207 return 0;
210} 208}
211 209
212int rsnd_src_ssi_irq_disable(struct rsnd_mod *ssi_mod, 210int rsnd_src_ssi_irq_disable(struct rsnd_mod *ssi_mod)
213 struct rsnd_dai *rdai)
214{ 211{
215 struct rsnd_priv *priv = rsnd_mod_to_priv(ssi_mod); 212 struct rsnd_priv *priv = rsnd_mod_to_priv(ssi_mod);
216 213
@@ -247,8 +244,7 @@ unsigned int rsnd_src_get_ssi_rate(struct rsnd_priv *priv,
247 return rate; 244 return rate;
248} 245}
249 246
250static int rsnd_src_set_convert_rate(struct rsnd_mod *mod, 247static int rsnd_src_set_convert_rate(struct rsnd_mod *mod)
251 struct rsnd_dai *rdai)
252{ 248{
253 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); 249 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
254 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); 250 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
@@ -280,8 +276,7 @@ static int rsnd_src_set_convert_rate(struct rsnd_mod *mod,
280 return 0; 276 return 0;
281} 277}
282 278
283static int rsnd_src_init(struct rsnd_mod *mod, 279static int rsnd_src_init(struct rsnd_mod *mod)
284 struct rsnd_dai *rdai)
285{ 280{
286 struct rsnd_src *src = rsnd_mod_to_src(mod); 281 struct rsnd_src *src = rsnd_mod_to_src(mod);
287 282
@@ -333,8 +328,7 @@ static int rsnd_src_stop(struct rsnd_mod *mod)
333/* 328/*
334 * Gen1 functions 329 * Gen1 functions
335 */ 330 */
336static int rsnd_src_set_route_gen1(struct rsnd_mod *mod, 331static int rsnd_src_set_route_gen1(struct rsnd_mod *mod)
337 struct rsnd_dai *rdai)
338{ 332{
339 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); 333 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
340 struct src_route_config { 334 struct src_route_config {
@@ -371,8 +365,7 @@ static int rsnd_src_set_route_gen1(struct rsnd_mod *mod,
371 return 0; 365 return 0;
372} 366}
373 367
374static int rsnd_src_set_convert_timing_gen1(struct rsnd_mod *mod, 368static int rsnd_src_set_convert_timing_gen1(struct rsnd_mod *mod)
375 struct rsnd_dai *rdai)
376{ 369{
377 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); 370 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
378 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); 371 struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
@@ -430,13 +423,12 @@ static int rsnd_src_set_convert_timing_gen1(struct rsnd_mod *mod,
430 return 0; 423 return 0;
431} 424}
432 425
433static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod, 426static int rsnd_src_set_convert_rate_gen1(struct rsnd_mod *mod)
434 struct rsnd_dai *rdai)
435{ 427{
436 struct rsnd_src *src = rsnd_mod_to_src(mod); 428 struct rsnd_src *src = rsnd_mod_to_src(mod);
437 int ret; 429 int ret;
438 430
439 ret = rsnd_src_set_convert_rate(mod, rdai); 431 ret = rsnd_src_set_convert_rate(mod);
440 if (ret < 0) 432 if (ret < 0)
441 return ret; 433 return ret;
442 434
@@ -473,19 +465,19 @@ static int rsnd_src_init_gen1(struct rsnd_mod *mod,
473{ 465{
474 int ret; 466 int ret;
475 467
476 ret = rsnd_src_init(mod, rdai); 468 ret = rsnd_src_init(mod);
477 if (ret < 0) 469 if (ret < 0)
478 return ret; 470 return ret;
479 471
480 ret = rsnd_src_set_route_gen1(mod, rdai); 472 ret = rsnd_src_set_route_gen1(mod);
481 if (ret < 0) 473 if (ret < 0)
482 return ret; 474 return ret;
483 475
484 ret = rsnd_src_set_convert_rate_gen1(mod, rdai); 476 ret = rsnd_src_set_convert_rate_gen1(mod);
485 if (ret < 0) 477 if (ret < 0)
486 return ret; 478 return ret;
487 479
488 ret = rsnd_src_set_convert_timing_gen1(mod, rdai); 480 ret = rsnd_src_set_convert_timing_gen1(mod);
489 if (ret < 0) 481 if (ret < 0)
490 return ret; 482 return ret;
491 483
@@ -628,8 +620,7 @@ static irqreturn_t rsnd_src_interrupt_gen2(int irq, void *data)
628 return IRQ_HANDLED; 620 return IRQ_HANDLED;
629} 621}
630 622
631static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod, 623static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod)
632 struct rsnd_dai *rdai)
633{ 624{
634 struct rsnd_priv *priv = rsnd_mod_to_priv(mod); 625 struct rsnd_priv *priv = rsnd_mod_to_priv(mod);
635 struct device *dev = rsnd_priv_to_dev(priv); 626 struct device *dev = rsnd_priv_to_dev(priv);
@@ -653,7 +644,7 @@ static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod,
653 return -EINVAL; 644 return -EINVAL;
654 } 645 }
655 646
656 ret = rsnd_src_set_convert_rate(mod, rdai); 647 ret = rsnd_src_set_convert_rate(mod);
657 if (ret < 0) 648 if (ret < 0)
658 return ret; 649 return ret;
659 650
@@ -681,8 +672,7 @@ static int rsnd_src_set_convert_rate_gen2(struct rsnd_mod *mod,
681 return 0; 672 return 0;
682} 673}
683 674
684static int rsnd_src_set_convert_timing_gen2(struct rsnd_mod *mod, 675static int rsnd_src_set_convert_timing_gen2(struct rsnd_mod *mod)
685 struct rsnd_dai *rdai)
686{ 676{
687 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); 677 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
688 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io); 678 struct snd_pcm_runtime *runtime = rsnd_io_to_runtime(io);
@@ -691,11 +681,11 @@ static int rsnd_src_set_convert_timing_gen2(struct rsnd_mod *mod,
691 int ret; 681 int ret;
692 682
693 if (convert_rate) 683 if (convert_rate)
694 ret = rsnd_adg_set_convert_clk_gen2(mod, rdai, io, 684 ret = rsnd_adg_set_convert_clk_gen2(mod, io,
695 runtime->rate, 685 runtime->rate,
696 convert_rate); 686 convert_rate);
697 else 687 else
698 ret = rsnd_adg_set_convert_timing_gen2(mod, rdai, io); 688 ret = rsnd_adg_set_convert_timing_gen2(mod, io);
699 689
700 return ret; 690 return ret;
701} 691}
@@ -755,15 +745,15 @@ static int rsnd_src_init_gen2(struct rsnd_mod *mod,
755{ 745{
756 int ret; 746 int ret;
757 747
758 ret = rsnd_src_init(mod, rdai); 748 ret = rsnd_src_init(mod);
759 if (ret < 0) 749 if (ret < 0)
760 return ret; 750 return ret;
761 751
762 ret = rsnd_src_set_convert_rate_gen2(mod, rdai); 752 ret = rsnd_src_set_convert_rate_gen2(mod);
763 if (ret < 0) 753 if (ret < 0)
764 return ret; 754 return ret;
765 755
766 ret = rsnd_src_set_convert_timing_gen2(mod, rdai); 756 ret = rsnd_src_set_convert_timing_gen2(mod);
767 if (ret < 0) 757 if (ret < 0)
768 return ret; 758 return ret;
769 759
diff --git a/sound/soc/sh/rcar/ssi.c b/sound/soc/sh/rcar/ssi.c
index b9d33b985845..6e36c53e7b8f 100644
--- a/sound/soc/sh/rcar/ssi.c
+++ b/sound/soc/sh/rcar/ssi.c
@@ -64,7 +64,6 @@ struct rsnd_ssi {
64 struct rsnd_ssi *parent; 64 struct rsnd_ssi *parent;
65 struct rsnd_mod mod; 65 struct rsnd_mod mod;
66 66
67 struct rsnd_dai *rdai;
68 u32 cr_own; 67 u32 cr_own;
69 u32 cr_clk; 68 u32 cr_clk;
70 int err; 69 int err;
@@ -178,10 +177,10 @@ static void rsnd_ssi_master_clk_stop(struct rsnd_ssi *ssi)
178} 177}
179 178
180static void rsnd_ssi_hw_start(struct rsnd_ssi *ssi, 179static void rsnd_ssi_hw_start(struct rsnd_ssi *ssi,
181 struct rsnd_dai *rdai,
182 struct rsnd_dai_stream *io) 180 struct rsnd_dai_stream *io)
183{ 181{
184 struct rsnd_priv *priv = rsnd_mod_to_priv(&ssi->mod); 182 struct rsnd_priv *priv = rsnd_mod_to_priv(&ssi->mod);
183 struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
185 struct device *dev = rsnd_priv_to_dev(priv); 184 struct device *dev = rsnd_priv_to_dev(priv);
186 u32 cr_mode; 185 u32 cr_mode;
187 u32 cr; 186 u32 cr;
@@ -191,7 +190,7 @@ static void rsnd_ssi_hw_start(struct rsnd_ssi *ssi,
191 190
192 if (rsnd_rdai_is_clk_master(rdai)) { 191 if (rsnd_rdai_is_clk_master(rdai)) {
193 if (rsnd_ssi_clk_from_parent(ssi)) 192 if (rsnd_ssi_clk_from_parent(ssi))
194 rsnd_ssi_hw_start(ssi->parent, rdai, io); 193 rsnd_ssi_hw_start(ssi->parent, io);
195 else 194 else
196 rsnd_ssi_master_clk_start(ssi, io); 195 rsnd_ssi_master_clk_start(ssi, io);
197 } 196 }
@@ -222,10 +221,11 @@ static void rsnd_ssi_hw_start(struct rsnd_ssi *ssi,
222 rsnd_mod_name(&ssi->mod), rsnd_mod_id(&ssi->mod)); 221 rsnd_mod_name(&ssi->mod), rsnd_mod_id(&ssi->mod));
223} 222}
224 223
225static void rsnd_ssi_hw_stop(struct rsnd_ssi *ssi, 224static void rsnd_ssi_hw_stop(struct rsnd_ssi *ssi)
226 struct rsnd_dai *rdai)
227{ 225{
228 struct rsnd_priv *priv = rsnd_mod_to_priv(&ssi->mod); 226 struct rsnd_priv *priv = rsnd_mod_to_priv(&ssi->mod);
227 struct rsnd_dai_stream *io = rsnd_mod_to_io(&ssi->mod);
228 struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
229 struct device *dev = rsnd_priv_to_dev(priv); 229 struct device *dev = rsnd_priv_to_dev(priv);
230 u32 cr; 230 u32 cr;
231 231
@@ -254,7 +254,7 @@ static void rsnd_ssi_hw_stop(struct rsnd_ssi *ssi,
254 254
255 if (rsnd_rdai_is_clk_master(rdai)) { 255 if (rsnd_rdai_is_clk_master(rdai)) {
256 if (rsnd_ssi_clk_from_parent(ssi)) 256 if (rsnd_ssi_clk_from_parent(ssi))
257 rsnd_ssi_hw_stop(ssi->parent, rdai); 257 rsnd_ssi_hw_stop(ssi->parent);
258 else 258 else
259 rsnd_ssi_master_clk_stop(ssi); 259 rsnd_ssi_master_clk_stop(ssi);
260 } 260 }
@@ -313,7 +313,6 @@ static int rsnd_ssi_init(struct rsnd_mod *mod,
313 /* 313 /*
314 * set ssi parameter 314 * set ssi parameter
315 */ 315 */
316 ssi->rdai = rdai;
317 ssi->cr_own = cr; 316 ssi->cr_own = cr;
318 ssi->err = -1; /* ignore 1st error */ 317 ssi->err = -1; /* ignore 1st error */
319 318
@@ -330,7 +329,6 @@ static int rsnd_ssi_quit(struct rsnd_mod *mod,
330 if (ssi->err > 0) 329 if (ssi->err > 0)
331 dev_warn(dev, "ssi under/over flow err = %d\n", ssi->err); 330 dev_warn(dev, "ssi under/over flow err = %d\n", ssi->err);
332 331
333 ssi->rdai = NULL;
334 ssi->cr_own = 0; 332 ssi->cr_own = 0;
335 ssi->err = 0; 333 ssi->err = 0;
336 334
@@ -354,11 +352,11 @@ static int rsnd_ssi_start(struct rsnd_mod *mod,
354 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); 352 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
355 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); 353 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
356 354
357 rsnd_src_ssiu_start(mod, rdai, rsnd_ssi_use_busif(mod)); 355 rsnd_src_ssiu_start(mod, rsnd_ssi_use_busif(mod));
358 356
359 rsnd_ssi_hw_start(ssi, rdai, io); 357 rsnd_ssi_hw_start(ssi, io);
360 358
361 rsnd_src_ssi_irq_enable(mod, rdai); 359 rsnd_src_ssi_irq_enable(mod);
362 360
363 return 0; 361 return 0;
364} 362}
@@ -368,13 +366,13 @@ static int rsnd_ssi_stop(struct rsnd_mod *mod,
368{ 366{
369 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod); 367 struct rsnd_ssi *ssi = rsnd_mod_to_ssi(mod);
370 368
371 rsnd_src_ssi_irq_disable(mod, rdai); 369 rsnd_src_ssi_irq_disable(mod);
372 370
373 rsnd_ssi_record_error(ssi, rsnd_mod_read(mod, SSISR)); 371 rsnd_ssi_record_error(ssi, rsnd_mod_read(mod, SSISR));
374 372
375 rsnd_ssi_hw_stop(ssi, rdai); 373 rsnd_ssi_hw_stop(ssi);
376 374
377 rsnd_src_ssiu_stop(mod, rdai); 375 rsnd_src_ssiu_stop(mod);
378 376
379 return 0; 377 return 0;
380} 378}
@@ -382,9 +380,9 @@ static int rsnd_ssi_stop(struct rsnd_mod *mod,
382static irqreturn_t rsnd_ssi_interrupt(int irq, void *data) 380static irqreturn_t rsnd_ssi_interrupt(int irq, void *data)
383{ 381{
384 struct rsnd_ssi *ssi = data; 382 struct rsnd_ssi *ssi = data;
385 struct rsnd_dai *rdai = ssi->rdai;
386 struct rsnd_mod *mod = &ssi->mod; 383 struct rsnd_mod *mod = &ssi->mod;
387 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod); 384 struct rsnd_dai_stream *io = rsnd_mod_to_io(mod);
385 struct rsnd_dai *rdai = rsnd_io_to_rdai(io);
388 u32 status = rsnd_mod_read(mod, SSISR); 386 u32 status = rsnd_mod_read(mod, SSISR);
389 387
390 if (!io) 388 if (!io)