aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>2015-02-20 05:24:52 -0500
committerMark Brown <broonie@kernel.org>2015-03-07 10:04:29 -0500
commit7277911c87ba85436600f5b7aab15de112416795 (patch)
treeca91f9db9cf40bd11f35669a3e4aa773f2f80762
parent4ce3b17bd43b4f0136b1d0c7782d06fe9d3addfb (diff)
ASoC: rsnd: enable to get resource by name
rsnd driver needs to support Audio DMAC peri peri inside sound driver. getting resource by name is useful for it 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/gen.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/sound/soc/sh/rcar/gen.c b/sound/soc/sh/rcar/gen.c
index de0685f2abae..d08bcd3dbfbf 100644
--- a/sound/soc/sh/rcar/gen.c
+++ b/sound/soc/sh/rcar/gen.c
@@ -118,11 +118,12 @@ void rsnd_bset(struct rsnd_priv *priv, struct rsnd_mod *mod,
118 mask, data); 118 mask, data);
119} 119}
120 120
121#define rsnd_gen_regmap_init(priv, id_size, reg_id, conf) \ 121#define rsnd_gen_regmap_init(priv, id_size, reg_id, name, conf) \
122 _rsnd_gen_regmap_init(priv, id_size, reg_id, conf, ARRAY_SIZE(conf)) 122 _rsnd_gen_regmap_init(priv, id_size, reg_id, name, conf, ARRAY_SIZE(conf))
123static int _rsnd_gen_regmap_init(struct rsnd_priv *priv, 123static int _rsnd_gen_regmap_init(struct rsnd_priv *priv,
124 int id_size, 124 int id_size,
125 int reg_id, 125 int reg_id,
126 const char *name,
126 struct rsnd_regmap_field_conf *conf, 127 struct rsnd_regmap_field_conf *conf,
127 int conf_size) 128 int conf_size)
128{ 129{
@@ -142,7 +143,9 @@ static int _rsnd_gen_regmap_init(struct rsnd_priv *priv,
142 regc.val_bits = 32; 143 regc.val_bits = 32;
143 regc.reg_stride = 4; 144 regc.reg_stride = 4;
144 145
145 res = platform_get_resource(pdev, IORESOURCE_MEM, reg_id); 146 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, name);
147 if (!res)
148 res = platform_get_resource(pdev, IORESOURCE_MEM, reg_id);
146 if (!res) 149 if (!res)
147 return -ENODEV; 150 return -ENODEV;
148 151
@@ -368,10 +371,10 @@ static int rsnd_gen2_probe(struct platform_device *pdev,
368 int ret_adg; 371 int ret_adg;
369 int ret_ssi; 372 int ret_ssi;
370 373
371 ret_ssiu = rsnd_gen_regmap_init(priv, 10, RSND_GEN2_SSIU, conf_ssiu); 374 ret_ssiu = rsnd_gen_regmap_init(priv, 10, RSND_GEN2_SSIU, "ssiu", conf_ssiu);
372 ret_scu = rsnd_gen_regmap_init(priv, 10, RSND_GEN2_SCU, conf_scu); 375 ret_scu = rsnd_gen_regmap_init(priv, 10, RSND_GEN2_SCU, "scu", conf_scu);
373 ret_adg = rsnd_gen_regmap_init(priv, 10, RSND_GEN2_ADG, conf_adg); 376 ret_adg = rsnd_gen_regmap_init(priv, 10, RSND_GEN2_ADG, "adg", conf_adg);
374 ret_ssi = rsnd_gen_regmap_init(priv, 10, RSND_GEN2_SSI, conf_ssi); 377 ret_ssi = rsnd_gen_regmap_init(priv, 10, RSND_GEN2_SSI, "ssi", conf_ssi);
375 if (ret_ssiu < 0 || 378 if (ret_ssiu < 0 ||
376 ret_scu < 0 || 379 ret_scu < 0 ||
377 ret_adg < 0 || 380 ret_adg < 0 ||
@@ -440,9 +443,9 @@ static int rsnd_gen1_probe(struct platform_device *pdev,
440 int ret_adg; 443 int ret_adg;
441 int ret_ssi; 444 int ret_ssi;
442 445
443 ret_sru = rsnd_gen_regmap_init(priv, 9, RSND_GEN1_SRU, conf_sru); 446 ret_sru = rsnd_gen_regmap_init(priv, 9, RSND_GEN1_SRU, "sru", conf_sru);
444 ret_adg = rsnd_gen_regmap_init(priv, 9, RSND_GEN1_ADG, conf_adg); 447 ret_adg = rsnd_gen_regmap_init(priv, 9, RSND_GEN1_ADG, "adg", conf_adg);
445 ret_ssi = rsnd_gen_regmap_init(priv, 9, RSND_GEN1_SSI, conf_ssi); 448 ret_ssi = rsnd_gen_regmap_init(priv, 9, RSND_GEN1_SSI, "ssi", conf_ssi);
446 if (ret_sru < 0 || 449 if (ret_sru < 0 ||
447 ret_adg < 0 || 450 ret_adg < 0 ||
448 ret_ssi < 0) 451 ret_ssi < 0)