diff options
author | Jyri Sarha <jsarha@ti.com> | 2014-06-13 06:04:36 -0400 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2014-06-21 06:06:53 -0400 |
commit | c7099eb1c19e60251e6725d6302354dfabae5303 (patch) | |
tree | 58b3da62e7e44370639466ef15931ed0e91aeb90 | |
parent | 7171511eaec5bf23fb06078f59784a3a0626b38f (diff) |
ASoC: simple-card: Make u32 DT parameter handling 64-bit proof
Passing unsigned int pointers as u32 ponters may be dangerous on 64-bit
system.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r-- | sound/soc/generic/simple-card.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c index 03a7fdcdf114..159e517fa09a 100644 --- a/sound/soc/generic/simple-card.c +++ b/sound/soc/generic/simple-card.c | |||
@@ -116,6 +116,7 @@ asoc_simple_card_sub_parse_of(struct device_node *np, | |||
116 | { | 116 | { |
117 | struct device_node *node; | 117 | struct device_node *node; |
118 | struct clk *clk; | 118 | struct clk *clk; |
119 | u32 val; | ||
119 | int ret; | 120 | int ret; |
120 | 121 | ||
121 | /* | 122 | /* |
@@ -151,10 +152,8 @@ asoc_simple_card_sub_parse_of(struct device_node *np, | |||
151 | } | 152 | } |
152 | 153 | ||
153 | dai->sysclk = clk_get_rate(clk); | 154 | dai->sysclk = clk_get_rate(clk); |
154 | } else if (of_property_read_bool(np, "system-clock-frequency")) { | 155 | } else if (!of_property_read_u32(np, "system-clock-frequency", &val)) { |
155 | of_property_read_u32(np, | 156 | dai->sysclk = val; |
156 | "system-clock-frequency", | ||
157 | &dai->sysclk); | ||
158 | } else { | 157 | } else { |
159 | clk = of_clk_get(node, 0); | 158 | clk = of_clk_get(node, 0); |
160 | if (!IS_ERR(clk)) | 159 | if (!IS_ERR(clk)) |
@@ -303,6 +302,7 @@ static int asoc_simple_card_parse_of(struct device_node *node, | |||
303 | { | 302 | { |
304 | struct snd_soc_dai_link *dai_link = priv->snd_card.dai_link; | 303 | struct snd_soc_dai_link *dai_link = priv->snd_card.dai_link; |
305 | struct simple_dai_props *dai_props = priv->dai_props; | 304 | struct simple_dai_props *dai_props = priv->dai_props; |
305 | u32 val; | ||
306 | int ret; | 306 | int ret; |
307 | 307 | ||
308 | /* parsing the card name from DT */ | 308 | /* parsing the card name from DT */ |
@@ -325,8 +325,9 @@ static int asoc_simple_card_parse_of(struct device_node *node, | |||
325 | } | 325 | } |
326 | 326 | ||
327 | /* Factor to mclk, used in hw_params() */ | 327 | /* Factor to mclk, used in hw_params() */ |
328 | of_property_read_u32(node, "simple-audio-card,mclk-fs", | 328 | ret = of_property_read_u32(node, "simple-audio-card,mclk-fs", &val); |
329 | &priv->mclk_fs); | 329 | if (ret == 0) |
330 | priv->mclk_fs = val; | ||
330 | 331 | ||
331 | dev_dbg(dev, "New simple-card: %s\n", priv->snd_card.name ? | 332 | dev_dbg(dev, "New simple-card: %s\n", priv->snd_card.name ? |
332 | priv->snd_card.name : ""); | 333 | priv->snd_card.name : ""); |