|
@@ -41,7 +41,6 @@ static const char *wm8523_supply_names[WM8523_NUM_SUPPLIES] = {
|
|
|
/* codec private data */
|
|
|
struct wm8523_priv {
|
|
|
enum snd_soc_control_type control_type;
|
|
|
- u16 reg_cache[WM8523_REGISTER_COUNT];
|
|
|
struct regulator_bulk_data supplies[WM8523_NUM_SUPPLIES];
|
|
|
unsigned int sysclk;
|
|
|
unsigned int rate_constraint_list[WM8523_NUM_RATES];
|
|
@@ -314,6 +313,7 @@ static int wm8523_set_bias_level(struct snd_soc_codec *codec,
|
|
|
enum snd_soc_bias_level level)
|
|
|
{
|
|
|
struct wm8523_priv *wm8523 = snd_soc_codec_get_drvdata(codec);
|
|
|
+ u16 *reg_cache = codec->reg_cache;
|
|
|
int ret, i;
|
|
|
|
|
|
switch (level) {
|
|
@@ -344,7 +344,7 @@ static int wm8523_set_bias_level(struct snd_soc_codec *codec,
|
|
|
/* Sync back default/cached values */
|
|
|
for (i = WM8523_AIF_CTRL1;
|
|
|
i < WM8523_MAX_REGISTER; i++)
|
|
|
- snd_soc_write(codec, i, wm8523->reg_cache[i]);
|
|
|
+ snd_soc_write(codec, i, reg_cache[i]);
|
|
|
|
|
|
|
|
|
msleep(100);
|
|
@@ -414,6 +414,7 @@ static int wm8523_resume(struct snd_soc_codec *codec)
|
|
|
static int wm8523_probe(struct snd_soc_codec *codec)
|
|
|
{
|
|
|
struct wm8523_priv *wm8523 = snd_soc_codec_get_drvdata(codec);
|
|
|
+ u16 *reg_cache = codec->reg_cache;
|
|
|
int ret, i;
|
|
|
|
|
|
codec->hw_write = (hw_write_t)i2c_master_send;
|
|
@@ -470,8 +471,8 @@ static int wm8523_probe(struct snd_soc_codec *codec)
|
|
|
}
|
|
|
|
|
|
/* Change some default settings - latch VU and enable ZC */
|
|
|
- wm8523->reg_cache[WM8523_DAC_GAINR] |= WM8523_DACR_VU;
|
|
|
- wm8523->reg_cache[WM8523_DAC_CTRL3] |= WM8523_ZC;
|
|
|
+ reg_cache[WM8523_DAC_GAINR] |= WM8523_DACR_VU;
|
|
|
+ reg_cache[WM8523_DAC_CTRL3] |= WM8523_ZC;
|
|
|
|
|
|
wm8523_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
|
|
|
|