diff options
Diffstat (limited to 'sound/soc')
-rw-r--r-- | sound/soc/codecs/wm8731.c | 11 | ||||
-rw-r--r-- | sound/soc/codecs/wm8750.c | 12 | ||||
-rw-r--r-- | sound/soc/soc-dapm.c | 10 |
3 files changed, 8 insertions, 25 deletions
diff --git a/sound/soc/codecs/wm8731.c b/sound/soc/codecs/wm8731.c index e6b990507df2..7ca0b5268289 100644 --- a/sound/soc/codecs/wm8731.c +++ b/sound/soc/codecs/wm8731.c | |||
@@ -543,14 +543,10 @@ static int wm8731_init(struct snd_soc_device *socdev) | |||
543 | codec->dapm_event = wm8731_dapm_event; | 543 | codec->dapm_event = wm8731_dapm_event; |
544 | codec->dai = &wm8731_dai; | 544 | codec->dai = &wm8731_dai; |
545 | codec->num_dai = 1; | 545 | codec->num_dai = 1; |
546 | codec->reg_cache_size = ARRAY_SIZE(wm8731_reg); | 546 | codec->reg_cache_size = sizeof(wm8731_reg); |
547 | codec->reg_cache = | 547 | codec->reg_cache = kmemdup(wm8731_reg, sizeof(wm8731_reg), GFP_KERNEL); |
548 | kzalloc(sizeof(u16) * ARRAY_SIZE(wm8731_reg), GFP_KERNEL); | ||
549 | if (codec->reg_cache == NULL) | 548 | if (codec->reg_cache == NULL) |
550 | return -ENOMEM; | 549 | return -ENOMEM; |
551 | memcpy(codec->reg_cache, | ||
552 | wm8731_reg, sizeof(u16) * ARRAY_SIZE(wm8731_reg)); | ||
553 | codec->reg_cache_size = sizeof(u16) * ARRAY_SIZE(wm8731_reg); | ||
554 | 550 | ||
555 | wm8731_reset(codec); | 551 | wm8731_reset(codec); |
556 | 552 | ||
@@ -627,12 +623,11 @@ static int wm8731_codec_probe(struct i2c_adapter *adap, int addr, int kind) | |||
627 | client_template.adapter = adap; | 623 | client_template.adapter = adap; |
628 | client_template.addr = addr; | 624 | client_template.addr = addr; |
629 | 625 | ||
630 | i2c = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); | 626 | i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); |
631 | if (i2c == NULL) { | 627 | if (i2c == NULL) { |
632 | kfree(codec); | 628 | kfree(codec); |
633 | return -ENOMEM; | 629 | return -ENOMEM; |
634 | } | 630 | } |
635 | memcpy(i2c, &client_template, sizeof(struct i2c_client)); | ||
636 | i2c_set_clientdata(i2c, codec); | 631 | i2c_set_clientdata(i2c, codec); |
637 | codec->control_data = i2c; | 632 | codec->control_data = i2c; |
638 | 633 | ||
diff --git a/sound/soc/codecs/wm8750.c b/sound/soc/codecs/wm8750.c index c1ffb61ef7f7..7073e8e294fc 100644 --- a/sound/soc/codecs/wm8750.c +++ b/sound/soc/codecs/wm8750.c | |||
@@ -807,15 +807,10 @@ static int wm8750_init(struct snd_soc_device *socdev) | |||
807 | codec->dapm_event = wm8750_dapm_event; | 807 | codec->dapm_event = wm8750_dapm_event; |
808 | codec->dai = &wm8750_dai; | 808 | codec->dai = &wm8750_dai; |
809 | codec->num_dai = 1; | 809 | codec->num_dai = 1; |
810 | codec->reg_cache_size = ARRAY_SIZE(wm8750_reg); | 810 | codec->reg_cache_size = sizeof(wm8750_reg); |
811 | 811 | codec->reg_cache = kmemdup(wm8750_reg, sizeof(wm8750_reg), GFP_KRENEL); | |
812 | codec->reg_cache = | ||
813 | kzalloc(sizeof(u16) * ARRAY_SIZE(wm8750_reg), GFP_KERNEL); | ||
814 | if (codec->reg_cache == NULL) | 812 | if (codec->reg_cache == NULL) |
815 | return -ENOMEM; | 813 | return -ENOMEM; |
816 | memcpy(codec->reg_cache, wm8750_reg, | ||
817 | sizeof(u16) * ARRAY_SIZE(wm8750_reg)); | ||
818 | codec->reg_cache_size = sizeof(u16) * ARRAY_SIZE(wm8750_reg); | ||
819 | 814 | ||
820 | wm8750_reset(codec); | 815 | wm8750_reset(codec); |
821 | 816 | ||
@@ -900,12 +895,11 @@ static int wm8750_codec_probe(struct i2c_adapter *adap, int addr, int kind) | |||
900 | client_template.adapter = adap; | 895 | client_template.adapter = adap; |
901 | client_template.addr = addr; | 896 | client_template.addr = addr; |
902 | 897 | ||
903 | i2c = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); | 898 | i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); |
904 | if (i2c == NULL) { | 899 | if (i2c == NULL) { |
905 | kfree(codec); | 900 | kfree(codec); |
906 | return -ENOMEM; | 901 | return -ENOMEM; |
907 | } | 902 | } |
908 | memcpy(i2c, &client_template, sizeof(struct i2c_client)); | ||
909 | i2c_set_clientdata(i2c, codec); | 903 | i2c_set_clientdata(i2c, codec); |
910 | codec->control_data = i2c; | 904 | codec->control_data = i2c; |
911 | 905 | ||
diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index d0162a4cb7fd..7caf8c7b0ac5 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c | |||
@@ -87,16 +87,10 @@ module_param(dapm_status, int, 0); | |||
87 | MODULE_PARM_DESC(dapm_status, "enable DPM sysfs entries"); | 87 | MODULE_PARM_DESC(dapm_status, "enable DPM sysfs entries"); |
88 | 88 | ||
89 | /* create a new dapm widget */ | 89 | /* create a new dapm widget */ |
90 | static struct snd_soc_dapm_widget *dapm_cnew_widget( | 90 | static inline struct snd_soc_dapm_widget *dapm_cnew_widget( |
91 | const struct snd_soc_dapm_widget *_widget) | 91 | const struct snd_soc_dapm_widget *_widget) |
92 | { | 92 | { |
93 | struct snd_soc_dapm_widget* widget; | 93 | return kmemdup(_widget, sizeof(*_widget), GFP_KERNEL); |
94 | widget = kmalloc(sizeof(struct snd_soc_dapm_widget), GFP_KERNEL); | ||
95 | if (!widget) | ||
96 | return NULL; | ||
97 | |||
98 | memcpy(widget, _widget, sizeof(struct snd_soc_dapm_widget)); | ||
99 | return widget; | ||
100 | } | 94 | } |
101 | 95 | ||
102 | /* set up initial codec paths */ | 96 | /* set up initial codec paths */ |