diff options
Diffstat (limited to 'sound/soc/codecs/adau1781.c')
-rw-r--r-- | sound/soc/codecs/adau1781.c | 33 |
1 files changed, 15 insertions, 18 deletions
diff --git a/sound/soc/codecs/adau1781.c b/sound/soc/codecs/adau1781.c index e9fc00fb13dd..35581f43fa6d 100644 --- a/sound/soc/codecs/adau1781.c +++ b/sound/soc/codecs/adau1781.c | |||
@@ -174,7 +174,7 @@ static const struct snd_kcontrol_new adau1781_mono_mixer_controls[] = { | |||
174 | static int adau1781_dejitter_fixup(struct snd_soc_dapm_widget *w, | 174 | static int adau1781_dejitter_fixup(struct snd_soc_dapm_widget *w, |
175 | struct snd_kcontrol *kcontrol, int event) | 175 | struct snd_kcontrol *kcontrol, int event) |
176 | { | 176 | { |
177 | struct snd_soc_codec *codec = w->codec; | 177 | struct snd_soc_codec *codec = snd_soc_dapm_to_codec(w->dapm); |
178 | struct adau *adau = snd_soc_codec_get_drvdata(codec); | 178 | struct adau *adau = snd_soc_codec_get_drvdata(codec); |
179 | 179 | ||
180 | /* After any power changes have been made the dejitter circuit | 180 | /* After any power changes have been made the dejitter circuit |
@@ -385,7 +385,6 @@ static int adau1781_codec_probe(struct snd_soc_codec *codec) | |||
385 | { | 385 | { |
386 | struct adau1781_platform_data *pdata = dev_get_platdata(codec->dev); | 386 | struct adau1781_platform_data *pdata = dev_get_platdata(codec->dev); |
387 | struct adau *adau = snd_soc_codec_get_drvdata(codec); | 387 | struct adau *adau = snd_soc_codec_get_drvdata(codec); |
388 | const char *firmware; | ||
389 | int ret; | 388 | int ret; |
390 | 389 | ||
391 | ret = adau17x1_add_widgets(codec); | 390 | ret = adau17x1_add_widgets(codec); |
@@ -422,25 +421,10 @@ static int adau1781_codec_probe(struct snd_soc_codec *codec) | |||
422 | return ret; | 421 | return ret; |
423 | } | 422 | } |
424 | 423 | ||
425 | switch (adau->type) { | ||
426 | case ADAU1381: | ||
427 | firmware = ADAU1381_FIRMWARE; | ||
428 | break; | ||
429 | case ADAU1781: | ||
430 | firmware = ADAU1781_FIRMWARE; | ||
431 | break; | ||
432 | default: | ||
433 | return -EINVAL; | ||
434 | } | ||
435 | |||
436 | ret = adau17x1_add_routes(codec); | 424 | ret = adau17x1_add_routes(codec); |
437 | if (ret < 0) | 425 | if (ret < 0) |
438 | return ret; | 426 | return ret; |
439 | 427 | ||
440 | ret = adau17x1_load_firmware(adau, codec->dev, firmware); | ||
441 | if (ret) | ||
442 | dev_warn(codec->dev, "Failed to load firmware\n"); | ||
443 | |||
444 | return 0; | 428 | return 0; |
445 | } | 429 | } |
446 | 430 | ||
@@ -488,6 +472,7 @@ const struct regmap_config adau1781_regmap_config = { | |||
488 | .num_reg_defaults = ARRAY_SIZE(adau1781_reg_defaults), | 472 | .num_reg_defaults = ARRAY_SIZE(adau1781_reg_defaults), |
489 | .readable_reg = adau1781_readable_register, | 473 | .readable_reg = adau1781_readable_register, |
490 | .volatile_reg = adau17x1_volatile_register, | 474 | .volatile_reg = adau17x1_volatile_register, |
475 | .precious_reg = adau17x1_precious_register, | ||
491 | .cache_type = REGCACHE_RBTREE, | 476 | .cache_type = REGCACHE_RBTREE, |
492 | }; | 477 | }; |
493 | EXPORT_SYMBOL_GPL(adau1781_regmap_config); | 478 | EXPORT_SYMBOL_GPL(adau1781_regmap_config); |
@@ -495,9 +480,21 @@ EXPORT_SYMBOL_GPL(adau1781_regmap_config); | |||
495 | int adau1781_probe(struct device *dev, struct regmap *regmap, | 480 | int adau1781_probe(struct device *dev, struct regmap *regmap, |
496 | enum adau17x1_type type, void (*switch_mode)(struct device *dev)) | 481 | enum adau17x1_type type, void (*switch_mode)(struct device *dev)) |
497 | { | 482 | { |
483 | const char *firmware_name; | ||
498 | int ret; | 484 | int ret; |
499 | 485 | ||
500 | ret = adau17x1_probe(dev, regmap, type, switch_mode); | 486 | switch (type) { |
487 | case ADAU1381: | ||
488 | firmware_name = ADAU1381_FIRMWARE; | ||
489 | break; | ||
490 | case ADAU1781: | ||
491 | firmware_name = ADAU1781_FIRMWARE; | ||
492 | break; | ||
493 | default: | ||
494 | return -EINVAL; | ||
495 | } | ||
496 | |||
497 | ret = adau17x1_probe(dev, regmap, type, switch_mode, firmware_name); | ||
501 | if (ret) | 498 | if (ret) |
502 | return ret; | 499 | return ret; |
503 | 500 | ||