Skip to content

Commit

Permalink
Merge branch 'fix/asoc' into for-linus
Browse files Browse the repository at this point in the history
  • Loading branch information
Takashi Iwai committed Sep 25, 2010
2 parents e68d3b3 + 0077ca0 commit b614e38
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 4 deletions.
15 changes: 13 additions & 2 deletions sound/soc/sh/migor.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include <linux/firmware.h>
#include <linux/module.h>

#include <asm/clkdev.h>
#include <asm/clock.h>

#include <cpu/sh7722.h>
Expand Down Expand Up @@ -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)
{
Expand Down Expand Up @@ -180,6 +181,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) {
Expand All @@ -200,12 +208,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);
}
Expand Down
5 changes: 3 additions & 2 deletions sound/soc/soc-cache.c
Original file line number Diff line number Diff line change
Expand Up @@ -203,8 +203,9 @@ static int snd_soc_8_16_write(struct snd_soc_codec *codec, unsigned int reg,
data[1] = (value >> 8) & 0xff;
data[2] = value & 0xff;

if (!snd_soc_codec_volatile_register(codec, reg))
reg_cache[reg] = value;
if (!snd_soc_codec_volatile_register(codec, reg)
&& reg < codec->reg_cache_size)
reg_cache[reg] = value;

if (codec->cache_only) {
codec->cache_sync = 1;
Expand Down

0 comments on commit b614e38

Please sign in to comment.