WM8962_DAC_MUTE, val);
}
----#define WM8962_RATES SNDRV_PCM_RATE_8000_96000
++++#define WM8962_RATES (SNDRV_PCM_RATE_8000_48000 |\
++++ SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000)
#define WM8962_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
ret = snd_soc_register_codec(&i2c->dev,
&soc_codec_dev_wm8962, &wm8962_dai, 1);
if (ret < 0)
---- goto err_enable;
++++ goto err_pm_runtime;
regcache_cache_only(wm8962->regmap, true);
return 0;
++++err_pm_runtime:
++++ pm_runtime_disable(&i2c->dev);
err_enable:
regulator_bulk_disable(ARRAY_SIZE(wm8962->supplies), wm8962->supplies);
err:
static int wm8962_i2c_remove(struct i2c_client *client)
{
snd_soc_unregister_codec(&client->dev);
++++ pm_runtime_disable(&client->dev);
return 0;
}
wm8962_reset(wm8962);
++++ regcache_mark_dirty(wm8962->regmap);
++++
/* SYSCLK defaults to on; make sure it is off so we can safely
* write to registers if the device is declocked.
*/