diff options
-rw-r--r-- | sound/soc/codecs/si476x.c | 46 |
1 files changed, 1 insertions, 45 deletions
diff --git a/sound/soc/codecs/si476x.c b/sound/soc/codecs/si476x.c index 38f3b105c17d..03645ce42063 100644 --- a/sound/soc/codecs/si476x.c +++ b/sound/soc/codecs/si476x.c | |||
@@ -60,48 +60,6 @@ enum si476x_pcm_format { | |||
60 | SI476X_PCM_FORMAT_S24_LE = 6, | 60 | SI476X_PCM_FORMAT_S24_LE = 6, |
61 | }; | 61 | }; |
62 | 62 | ||
63 | static unsigned int si476x_codec_read(struct snd_soc_codec *codec, | ||
64 | unsigned int reg) | ||
65 | { | ||
66 | int err; | ||
67 | unsigned int val; | ||
68 | struct si476x_core *core = codec->control_data; | ||
69 | |||
70 | si476x_core_lock(core); | ||
71 | if (!si476x_core_is_powered_up(core)) | ||
72 | regcache_cache_only(core->regmap, true); | ||
73 | |||
74 | err = regmap_read(core->regmap, reg, &val); | ||
75 | |||
76 | if (!si476x_core_is_powered_up(core)) | ||
77 | regcache_cache_only(core->regmap, false); | ||
78 | si476x_core_unlock(core); | ||
79 | |||
80 | if (err < 0) | ||
81 | return err; | ||
82 | |||
83 | return val; | ||
84 | } | ||
85 | |||
86 | static int si476x_codec_write(struct snd_soc_codec *codec, | ||
87 | unsigned int reg, unsigned int val) | ||
88 | { | ||
89 | int err; | ||
90 | struct si476x_core *core = codec->control_data; | ||
91 | |||
92 | si476x_core_lock(core); | ||
93 | if (!si476x_core_is_powered_up(core)) | ||
94 | regcache_cache_only(core->regmap, true); | ||
95 | |||
96 | err = regmap_write(core->regmap, reg, val); | ||
97 | |||
98 | if (!si476x_core_is_powered_up(core)) | ||
99 | regcache_cache_only(core->regmap, false); | ||
100 | si476x_core_unlock(core); | ||
101 | |||
102 | return err; | ||
103 | } | ||
104 | |||
105 | static const struct snd_soc_dapm_widget si476x_dapm_widgets[] = { | 63 | static const struct snd_soc_dapm_widget si476x_dapm_widgets[] = { |
106 | SND_SOC_DAPM_OUTPUT("LOUT"), | 64 | SND_SOC_DAPM_OUTPUT("LOUT"), |
107 | SND_SOC_DAPM_OUTPUT("ROUT"), | 65 | SND_SOC_DAPM_OUTPUT("ROUT"), |
@@ -239,7 +197,7 @@ static int si476x_codec_hw_params(struct snd_pcm_substream *substream, | |||
239 | 197 | ||
240 | static int si476x_codec_probe(struct snd_soc_codec *codec) | 198 | static int si476x_codec_probe(struct snd_soc_codec *codec) |
241 | { | 199 | { |
242 | codec->control_data = i2c_mfd_cell_to_core(codec->dev); | 200 | codec->control_data = dev_get_regmap(codec->dev->parent, NULL); |
243 | return 0; | 201 | return 0; |
244 | } | 202 | } |
245 | 203 | ||
@@ -268,8 +226,6 @@ static struct snd_soc_dai_driver si476x_dai = { | |||
268 | 226 | ||
269 | static struct snd_soc_codec_driver soc_codec_dev_si476x = { | 227 | static struct snd_soc_codec_driver soc_codec_dev_si476x = { |
270 | .probe = si476x_codec_probe, | 228 | .probe = si476x_codec_probe, |
271 | .read = si476x_codec_read, | ||
272 | .write = si476x_codec_write, | ||
273 | .dapm_widgets = si476x_dapm_widgets, | 229 | .dapm_widgets = si476x_dapm_widgets, |
274 | .num_dapm_widgets = ARRAY_SIZE(si476x_dapm_widgets), | 230 | .num_dapm_widgets = ARRAY_SIZE(si476x_dapm_widgets), |
275 | .dapm_routes = si476x_dapm_routes, | 231 | .dapm_routes = si476x_dapm_routes, |