|
1 | 1 | // SPDX-License-Identifier: GPL-2.0
|
2 | 2 | // Copyright (c) 2019, Linaro Limited
|
3 | 3 |
|
| 4 | +#include <linux/cleanup.h> |
4 | 5 | #include <linux/clk.h>
|
5 | 6 | #include <linux/clk-provider.h>
|
6 | 7 | #include <linux/interrupt.h>
|
@@ -4973,42 +4974,38 @@ static int wcd934x_codec_enable_dec(struct snd_soc_dapm_widget *w,
|
4973 | 4974 | struct snd_soc_component *comp = snd_soc_dapm_to_component(w->dapm);
|
4974 | 4975 | unsigned int decimator;
|
4975 | 4976 | char *dec_adc_mux_name = NULL;
|
4976 |
| - char *widget_name = NULL; |
4977 |
| - char *wname; |
| 4977 | + char *widget_name; |
4978 | 4978 | int ret = 0, amic_n;
|
4979 | 4979 | u16 tx_vol_ctl_reg, pwr_level_reg = 0, dec_cfg_reg, hpf_gate_reg;
|
4980 | 4980 | u16 tx_gain_ctl_reg;
|
4981 | 4981 | char *dec;
|
4982 | 4982 | u8 hpf_coff_freq;
|
4983 | 4983 |
|
4984 |
| - widget_name = kstrndup(w->name, 15, GFP_KERNEL); |
4985 |
| - if (!widget_name) |
| 4984 | + char *wname __free(kfree) = kstrndup(w->name, 15, GFP_KERNEL); |
| 4985 | + if (!wname) |
4986 | 4986 | return -ENOMEM;
|
4987 | 4987 |
|
4988 |
| - wname = widget_name; |
| 4988 | + widget_name = wname; |
4989 | 4989 | dec_adc_mux_name = strsep(&widget_name, " ");
|
4990 | 4990 | if (!dec_adc_mux_name) {
|
4991 | 4991 | dev_err(comp->dev, "%s: Invalid decimator = %s\n",
|
4992 | 4992 | __func__, w->name);
|
4993 |
| - ret = -EINVAL; |
4994 |
| - goto out; |
| 4993 | + return -EINVAL; |
4995 | 4994 | }
|
4996 | 4995 | dec_adc_mux_name = widget_name;
|
4997 | 4996 |
|
4998 | 4997 | dec = strpbrk(dec_adc_mux_name, "012345678");
|
4999 | 4998 | if (!dec) {
|
5000 | 4999 | dev_err(comp->dev, "%s: decimator index not found\n",
|
5001 | 5000 | __func__);
|
5002 |
| - ret = -EINVAL; |
5003 |
| - goto out; |
| 5001 | + return -EINVAL; |
5004 | 5002 | }
|
5005 | 5003 |
|
5006 | 5004 | ret = kstrtouint(dec, 10, &decimator);
|
5007 | 5005 | if (ret < 0) {
|
5008 | 5006 | dev_err(comp->dev, "%s: Invalid decimator = %s\n",
|
5009 | 5007 | __func__, wname);
|
5010 |
| - ret = -EINVAL; |
5011 |
| - goto out; |
| 5008 | + return -EINVAL; |
5012 | 5009 | }
|
5013 | 5010 |
|
5014 | 5011 | tx_vol_ctl_reg = WCD934X_CDC_TX0_TX_PATH_CTL + 16 * decimator;
|
@@ -5101,8 +5098,7 @@ static int wcd934x_codec_enable_dec(struct snd_soc_dapm_widget *w,
|
5101 | 5098 | WCD934X_DEC_PWR_LVL_DF);
|
5102 | 5099 | break;
|
5103 | 5100 | }
|
5104 |
| -out: |
5105 |
| - kfree(wname); |
| 5101 | + |
5106 | 5102 | return ret;
|
5107 | 5103 | }
|
5108 | 5104 |
|
|
0 commit comments