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 e6b9905..7ca0b52 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) codec->dapm_event = wm8731_dapm_event; codec->dai = &wm8731_dai; codec->num_dai = 1; - codec->reg_cache_size = ARRAY_SIZE(wm8731_reg); - codec->reg_cache = - kzalloc(sizeof(u16) * ARRAY_SIZE(wm8731_reg), GFP_KERNEL); + codec->reg_cache_size = sizeof(wm8731_reg); + codec->reg_cache = kmemdup(wm8731_reg, sizeof(wm8731_reg), GFP_KERNEL); if (codec->reg_cache == NULL) return -ENOMEM; - memcpy(codec->reg_cache, - wm8731_reg, sizeof(u16) * ARRAY_SIZE(wm8731_reg)); - codec->reg_cache_size = sizeof(u16) * ARRAY_SIZE(wm8731_reg); wm8731_reset(codec); @@ -627,12 +623,11 @@ static int wm8731_codec_probe(struct i2c_adapter *adap, int addr, int kind) client_template.adapter = adap; client_template.addr = addr; - i2c = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); + i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); if (i2c == NULL) { kfree(codec); return -ENOMEM; } - memcpy(i2c, &client_template, sizeof(struct i2c_client)); i2c_set_clientdata(i2c, codec); codec->control_data = i2c; diff --git a/sound/soc/codecs/wm8750.c b/sound/soc/codecs/wm8750.c index c1ffb61..7073e8e 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) codec->dapm_event = wm8750_dapm_event; codec->dai = &wm8750_dai; codec->num_dai = 1; - codec->reg_cache_size = ARRAY_SIZE(wm8750_reg); - - codec->reg_cache = - kzalloc(sizeof(u16) * ARRAY_SIZE(wm8750_reg), GFP_KERNEL); + codec->reg_cache_size = sizeof(wm8750_reg); + codec->reg_cache = kmemdup(wm8750_reg, sizeof(wm8750_reg), GFP_KRENEL); if (codec->reg_cache == NULL) return -ENOMEM; - memcpy(codec->reg_cache, wm8750_reg, - sizeof(u16) * ARRAY_SIZE(wm8750_reg)); - codec->reg_cache_size = sizeof(u16) * ARRAY_SIZE(wm8750_reg); wm8750_reset(codec); @@ -900,12 +895,11 @@ static int wm8750_codec_probe(struct i2c_adapter *adap, int addr, int kind) client_template.adapter = adap; client_template.addr = addr; - i2c = kzalloc(sizeof(struct i2c_client), GFP_KERNEL); + i2c = kmemdup(&client_template, sizeof(client_template), GFP_KERNEL); if (i2c == NULL) { kfree(codec); return -ENOMEM; } - memcpy(i2c, &client_template, sizeof(struct i2c_client)); i2c_set_clientdata(i2c, codec); codec->control_data = i2c; diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c index d0162a4..7caf8c7 100644 --- a/sound/soc/soc-dapm.c +++ b/sound/soc/soc-dapm.c @@ -87,16 +87,10 @@ module_param(dapm_status, int, 0); MODULE_PARM_DESC(dapm_status, "enable DPM sysfs entries"); /* create a new dapm widget */ -static struct snd_soc_dapm_widget *dapm_cnew_widget( +static inline struct snd_soc_dapm_widget *dapm_cnew_widget( const struct snd_soc_dapm_widget *_widget) { - struct snd_soc_dapm_widget* widget; - widget = kmalloc(sizeof(struct snd_soc_dapm_widget), GFP_KERNEL); - if (!widget) - return NULL; - - memcpy(widget, _widget, sizeof(struct snd_soc_dapm_widget)); - return widget; + return kmemdup(_widget, sizeof(*_widget), GFP_KERNEL); } /* set up initial codec paths */ |