diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-09-19 16:03:16 +0100 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-09-19 16:03:16 +0100 |
commit | 382e30200244a80358b65dcc63ccba4424bf752a (patch) | |
tree | f52e563bde5aa5cdb22255a66c0f9fd2f58dd395 /sound/soc/sh/migor.c | |
parent | d85a6d7bdc4eb88b31ca3c276ee5f0f1c8696795 (diff) | |
parent | cbfa5184cc5f58627f08c7fad225424f565b439d (diff) |
Merge branch 'for-2.6.36' into for-2.6.37
Diffstat (limited to 'sound/soc/sh/migor.c')
-rw-r--r-- | sound/soc/sh/migor.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/sound/soc/sh/migor.c b/sound/soc/sh/migor.c index 866d78fb8398..f4620176a3ff 100644 --- a/sound/soc/sh/migor.c +++ b/sound/soc/sh/migor.c @@ -12,6 +12,7 @@ #include <linux/firmware.h> #include <linux/module.h> +#include <asm/clkdev.h> #include <asm/clock.h> #include <cpu/sh7722.h> @@ -40,12 +41,12 @@ static struct clk_ops siumckb_clk_ops = { }; static struct clk siumckb_clk = { - .name = "siumckb_clk", - .id = -1, .ops = &siumckb_clk_ops, .rate = 0, /* initialised at run-time */ }; +static struct clk_lookup *siumckb_lookup; + static int migor_hw_params(struct snd_pcm_substream *substream, struct snd_pcm_hw_params *params) { @@ -177,6 +178,13 @@ static int __init migor_init(void) if (ret < 0) return ret; + siumckb_lookup = clkdev_alloc(&siumckb_clk, "siumckb_clk", NULL); + if (!siumckb_lookup) { + ret = -ENOMEM; + goto eclkdevalloc; + } + clkdev_add(siumckb_lookup); + /* Port number used on this machine: port B */ migor_snd_device = platform_device_alloc("soc-audio", 1); if (!migor_snd_device) { @@ -195,12 +203,15 @@ static int __init migor_init(void) epdevadd: platform_device_put(migor_snd_device); epdevalloc: + clkdev_drop(siumckb_lookup); +eclkdevalloc: clk_unregister(&siumckb_clk); return ret; } static void __exit migor_exit(void) { + clkdev_drop(siumckb_lookup); clk_unregister(&siumckb_clk); platform_device_unregister(migor_snd_device); } |