diff options
Diffstat (limited to 'sound/soc/codecs/cs42l52.c')
-rw-r--r-- | sound/soc/codecs/cs42l52.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/sound/soc/codecs/cs42l52.c b/sound/soc/codecs/cs42l52.c index a7109413aef..628daf6a1d9 100644 --- a/sound/soc/codecs/cs42l52.c +++ b/sound/soc/codecs/cs42l52.c | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/moduleparam.h> | 16 | #include <linux/moduleparam.h> |
17 | #include <linux/version.h> | ||
18 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
19 | #include <linux/init.h> | 18 | #include <linux/init.h> |
20 | #include <linux/delay.h> | 19 | #include <linux/delay.h> |
@@ -1217,11 +1216,11 @@ static int cs42l52_i2c_probe(struct i2c_client *i2c_client, | |||
1217 | return -ENOMEM; | 1216 | return -ENOMEM; |
1218 | cs42l52->dev = &i2c_client->dev; | 1217 | cs42l52->dev = &i2c_client->dev; |
1219 | 1218 | ||
1220 | cs42l52->regmap = regmap_init_i2c(i2c_client, &cs42l52_regmap); | 1219 | cs42l52->regmap = devm_regmap_init_i2c(i2c_client, &cs42l52_regmap); |
1221 | if (IS_ERR(cs42l52->regmap)) { | 1220 | if (IS_ERR(cs42l52->regmap)) { |
1222 | ret = PTR_ERR(cs42l52->regmap); | 1221 | ret = PTR_ERR(cs42l52->regmap); |
1223 | dev_err(&i2c_client->dev, "regmap_init() failed: %d\n", ret); | 1222 | dev_err(&i2c_client->dev, "regmap_init() failed: %d\n", ret); |
1224 | goto err; | 1223 | return ret; |
1225 | } | 1224 | } |
1226 | 1225 | ||
1227 | i2c_set_clientdata(i2c_client, cs42l52); | 1226 | i2c_set_clientdata(i2c_client, cs42l52); |
@@ -1243,7 +1242,7 @@ static int cs42l52_i2c_probe(struct i2c_client *i2c_client, | |||
1243 | dev_err(&i2c_client->dev, | 1242 | dev_err(&i2c_client->dev, |
1244 | "CS42L52 Device ID (%X). Expected %X\n", | 1243 | "CS42L52 Device ID (%X). Expected %X\n", |
1245 | devid, CS42L52_CHIP_ID); | 1244 | devid, CS42L52_CHIP_ID); |
1246 | goto err_regmap; | 1245 | return ret; |
1247 | } | 1246 | } |
1248 | 1247 | ||
1249 | regcache_cache_only(cs42l52->regmap, true); | 1248 | regcache_cache_only(cs42l52->regmap, true); |
@@ -1251,23 +1250,13 @@ static int cs42l52_i2c_probe(struct i2c_client *i2c_client, | |||
1251 | ret = snd_soc_register_codec(&i2c_client->dev, | 1250 | ret = snd_soc_register_codec(&i2c_client->dev, |
1252 | &soc_codec_dev_cs42l52, &cs42l52_dai, 1); | 1251 | &soc_codec_dev_cs42l52, &cs42l52_dai, 1); |
1253 | if (ret < 0) | 1252 | if (ret < 0) |
1254 | goto err_regmap; | 1253 | return ret; |
1255 | return 0; | 1254 | return 0; |
1256 | |||
1257 | err_regmap: | ||
1258 | regmap_exit(cs42l52->regmap); | ||
1259 | |||
1260 | err: | ||
1261 | return ret; | ||
1262 | } | 1255 | } |
1263 | 1256 | ||
1264 | static int cs42l52_i2c_remove(struct i2c_client *client) | 1257 | static int cs42l52_i2c_remove(struct i2c_client *client) |
1265 | { | 1258 | { |
1266 | struct cs42l52_private *cs42l52 = i2c_get_clientdata(client); | ||
1267 | |||
1268 | snd_soc_unregister_codec(&client->dev); | 1259 | snd_soc_unregister_codec(&client->dev); |
1269 | regmap_exit(cs42l52->regmap); | ||
1270 | |||
1271 | return 0; | 1260 | return 0; |
1272 | } | 1261 | } |
1273 | 1262 | ||