ASoC: fix clkdev API usage in sh/migor.c

The clkdev API doesn't use .name and .id members of struct clk for clock
lookup. Instead clocks should be added to a lookup list. Without this patch
audio om the Migo-R board fails silently.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

authored by Guennadi Liakhovetski and committed by Mark Brown cbfa5184 708fafb3

+13 -2
+13 -2
sound/soc/sh/migor.c
··· 12 12 #include <linux/firmware.h> 13 13 #include <linux/module.h> 14 14 15 + #include <asm/clkdev.h> 15 16 #include <asm/clock.h> 16 17 17 18 #include <cpu/sh7722.h> ··· 41 40 }; 42 41 43 42 static struct clk siumckb_clk = { 44 - .name = "siumckb_clk", 45 - .id = -1, 46 43 .ops = &siumckb_clk_ops, 47 44 .rate = 0, /* initialised at run-time */ 48 45 }; 46 + 47 + static struct clk_lookup *siumckb_lookup; 49 48 50 49 static int migor_hw_params(struct snd_pcm_substream *substream, 51 50 struct snd_pcm_hw_params *params) ··· 181 180 if (ret < 0) 182 181 return ret; 183 182 183 + siumckb_lookup = clkdev_alloc(&siumckb_clk, "siumckb_clk", NULL); 184 + if (!siumckb_lookup) { 185 + ret = -ENOMEM; 186 + goto eclkdevalloc; 187 + } 188 + clkdev_add(siumckb_lookup); 189 + 184 190 /* Port number used on this machine: port B */ 185 191 migor_snd_device = platform_device_alloc("soc-audio", 1); 186 192 if (!migor_snd_device) { ··· 208 200 epdevadd: 209 201 platform_device_put(migor_snd_device); 210 202 epdevalloc: 203 + clkdev_drop(siumckb_lookup); 204 + eclkdevalloc: 211 205 clk_unregister(&siumckb_clk); 212 206 return ret; 213 207 } 214 208 215 209 static void __exit migor_exit(void) 216 210 { 211 + clkdev_drop(siumckb_lookup); 217 212 clk_unregister(&siumckb_clk); 218 213 platform_device_unregister(migor_snd_device); 219 214 }