From nobody Thu Oct 31 00:23:43 2024 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 42FE9CD54AF for ; Tue, 19 Sep 2023 11:05:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232139AbjISLGB (ORCPT ); Tue, 19 Sep 2023 07:06:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53736 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232160AbjISLFn (ORCPT ); Tue, 19 Sep 2023 07:05:43 -0400 Received: from out28-124.mail.aliyun.com (out28-124.mail.aliyun.com [115.124.28.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3E94EE4C; Tue, 19 Sep 2023 03:58:01 -0700 (PDT) X-Alimail-AntiSpam: AC=CONTINUE;BC=0.06712914|-1;CH=green;DM=|CONTINUE|false|;DS=CONTINUE|ham_system_inform|0.0110995-0.00248983-0.986411;FP=0|0|0|0|0|-1|-1|-1;HT=ay29a033018047199;MF=wangweidong.a@awinic.com;NM=1;PH=DS;RN=27;RT=27;SR=0;TI=SMTPD_---.Uj4ES2K_1695121070; Received: from ubuntu-VirtualBox..(mailfrom:wangweidong.a@awinic.com fp:SMTPD_---.Uj4ES2K_1695121070) by smtp.aliyun-inc.com; Tue, 19 Sep 2023 18:57:57 +0800 From: wangweidong.a@awinic.com To: lgirdwood@gmail.com, broonie@kernel.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, perex@perex.cz, tiwai@suse.com, wangweidong.a@awinic.com, rf@opensource.cirrus.com, herve.codina@bootlin.com, shumingf@realtek.com, ryans.lee@analog.com, 13916275206@139.com, linus.walleij@linaro.org, ckeepax@opensource.cirrus.com, povik+lin@cutebit.org, harshit.m.mogalapalli@oracle.com, arnd@arndb.de, yijiangtao@awinic.com, yang.lee@linux.alibaba.com, liweilei@awinic.com, u.kleine-koenig@pengutronix.de, colin.i.king@gmail.com, trix@redhat.com, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH V4 3/7] ASoC: codecs: Modify the transmission method of parameters and property node Date: Tue, 19 Sep 2023 18:57:20 +0800 Message-ID: <20230919105724.105624-4-wangweidong.a@awinic.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20230919105724.105624-1-wangweidong.a@awinic.com> References: <20230919105724.105624-1-wangweidong.a@awinic.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Weidong Wang Remove the fade-enable property because other properties already implement this functionality. Modify the transmission method of parameters. Rename "sound-channel" to "awinic,audio-channel" Signed-off-by: Weidong Wang --- sound/soc/codecs/aw88395/aw88395_device.c | 47 ++++++----------------- sound/soc/codecs/aw88395/aw88395_device.h | 6 +-- 2 files changed, 13 insertions(+), 40 deletions(-) diff --git a/sound/soc/codecs/aw88395/aw88395_device.c b/sound/soc/codecs/a= w88395/aw88395_device.c index 33eda3741464..fd1f67d5f22f 100644 --- a/sound/soc/codecs/aw88395/aw88395_device.c +++ b/sound/soc/codecs/aw88395/aw88395_device.c @@ -297,9 +297,6 @@ static void aw_dev_fade_in(struct aw_device *aw_dev) int fade_step =3D aw_dev->fade_step; int i; =20 - if (!aw_dev->fade_en) - return; - if (fade_step =3D=3D 0 || aw_dev->fade_in_time =3D=3D 0) { aw_dev_set_volume(aw_dev, fade_in_vol); return; @@ -320,9 +317,6 @@ static void aw_dev_fade_out(struct aw_device *aw_dev) int fade_step =3D aw_dev->fade_step; int i; =20 - if (!aw_dev->fade_en) - return; - if (fade_step =3D=3D 0 || aw_dev->fade_out_time =3D=3D 0) { aw_dev_set_volume(aw_dev, AW88395_MUTE_VOL); return; @@ -1062,10 +1056,6 @@ static int aw_dev_update_reg_container(struct aw_dev= ice *aw_dev, aw_dev_set_volume(aw_dev, vol_desc->ctl_volume); } =20 - /* keep min volume */ - if (aw_dev->fade_en) - aw_dev_set_volume(aw_dev, AW88395_MUTE_VOL); - aw_dev_get_dsp_config(aw_dev, &aw_dev->dsp_cfg); =20 return ret; @@ -1306,7 +1296,9 @@ int aw88395_dev_fw_update(struct aw_device *aw_dev, b= ool up_dsp_fw_en, bool forc return -EPERM; } =20 - prof_name =3D aw88395_dev_get_prof_name(aw_dev, aw_dev->prof_index); + ret =3D aw88395_dev_get_prof_name(aw_dev, aw_dev->prof_index, &prof_name); + if (ret) + return ret; =20 dev_dbg(aw_dev->dev, "start update %s", prof_name); =20 @@ -1594,37 +1586,19 @@ static void aw88395_parse_channel_dt(struct aw_devi= ce *aw_dev) u32 channel_value; int ret; =20 - ret =3D of_property_read_u32(np, "sound-channel", &channel_value); + ret =3D of_property_read_u32(np, "awinic,audio-channel", &channel_value); if (ret) { dev_dbg(aw_dev->dev, - "read sound-channel failed,use default 0"); + "read audio-channel failed,use default 0"); aw_dev->channel =3D AW88395_DEV_DEFAULT_CH; return; } =20 - dev_dbg(aw_dev->dev, "read sound-channel value is: %d", + dev_dbg(aw_dev->dev, "read audio-channel value is: %d", channel_value); aw_dev->channel =3D channel_value; } =20 -static void aw88395_parse_fade_enable_dt(struct aw_device *aw_dev) -{ - struct device_node *np =3D aw_dev->dev->of_node; - u32 fade_en; - int ret; - - ret =3D of_property_read_u32(np, "fade-enable", &fade_en); - if (ret) { - dev_dbg(aw_dev->dev, - "read fade-enable failed, close fade_in_out"); - fade_en =3D AW88395_FADE_IN_OUT_DEFAULT; - } - - dev_dbg(aw_dev->dev, "read fade-enable value is: %d", fade_en); - - aw_dev->fade_en =3D fade_en; -} - static int aw_dev_init(struct aw_device *aw_dev) { aw_dev->chip_id =3D AW88395_CHIP_ID; @@ -1639,7 +1613,6 @@ static int aw_dev_init(struct aw_device *aw_dev) aw_dev->fade_step =3D AW88395_VOLUME_STEP_DB; aw_dev->volume_desc.ctl_volume =3D AW88395_VOL_DEFAULT_VALUE; aw88395_parse_channel_dt(aw_dev); - aw88395_parse_fade_enable_dt(aw_dev); =20 return 0; } @@ -1673,7 +1646,7 @@ int aw88395_dev_set_profile_index(struct aw_device *a= w_dev, int index) } EXPORT_SYMBOL_GPL(aw88395_dev_set_profile_index); =20 -char *aw88395_dev_get_prof_name(struct aw_device *aw_dev, int index) +int aw88395_dev_get_prof_name(struct aw_device *aw_dev, int index, char **= prof_name) { struct aw_prof_info *prof_info =3D &aw_dev->prof_info; struct aw_prof_desc *prof_desc; @@ -1681,12 +1654,14 @@ char *aw88395_dev_get_prof_name(struct aw_device *a= w_dev, int index) if ((index >=3D aw_dev->prof_info.count) || (index < 0)) { dev_err(aw_dev->dev, "index[%d] overflow count[%d]", index, aw_dev->prof_info.count); - return NULL; + return -EINVAL; } =20 prof_desc =3D &aw_dev->prof_info.prof_desc[index]; =20 - return prof_info->prof_name_list[prof_desc->id]; + *prof_name =3D prof_info->prof_name_list[prof_desc->id]; + + return 0; } EXPORT_SYMBOL_GPL(aw88395_dev_get_prof_name); =20 diff --git a/sound/soc/codecs/aw88395/aw88395_device.h b/sound/soc/codecs/a= w88395/aw88395_device.h index caf730753167..791c8c106557 100644 --- a/sound/soc/codecs/aw88395/aw88395_device.h +++ b/sound/soc/codecs/aw88395/aw88395_device.h @@ -141,6 +141,7 @@ struct aw_device { unsigned char prof_cur; unsigned char prof_index; unsigned char dsp_crc_st; + unsigned char dsp_cfg; u16 chip_id; =20 unsigned int channel; @@ -151,9 +152,6 @@ struct aw_device { struct regmap *regmap; char *acf; =20 - u32 fade_en; - unsigned char dsp_cfg; - u32 dsp_fw_len; u32 dsp_cfg_len; u8 platform; @@ -183,7 +181,7 @@ int aw88395_dev_fw_update(struct aw_device *aw_dev, boo= l up_dsp_fw_en, bool forc void aw88395_dev_set_volume(struct aw_device *aw_dev, unsigned short set_v= ol); int aw88395_dev_get_prof_data(struct aw_device *aw_dev, int index, struct aw_prof_desc **prof_desc); -char *aw88395_dev_get_prof_name(struct aw_device *aw_dev, int index); +int aw88395_dev_get_prof_name(struct aw_device *aw_dev, int index, char **= prof_name); int aw88395_dev_set_profile_index(struct aw_device *aw_dev, int index); int aw88395_dev_get_profile_index(struct aw_device *aw_dev); int aw88395_dev_get_profile_count(struct aw_device *aw_dev); --=20 2.41.0