diff options
author | Kuninori Morimoto <kuninori.morimoto.gx@renesas.com> | 2015-02-20 05:24:52 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-03-07 10:04:29 -0500 |
commit | 7277911c87ba85436600f5b7aab15de112416795 (patch) | |
tree | ca91f9db9cf40bd11f35669a3e4aa773f2f80762 | |
parent | 4ce3b17bd43b4f0136b1d0c7782d06fe9d3addfb (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.c | 23 |
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)) |
123 | static int _rsnd_gen_regmap_init(struct rsnd_priv *priv, | 123 | static 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) |