From nobody Mon Jun 29 16:02:12 2026 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 E4E8FC433FE for ; Tue, 8 Feb 2022 08:42:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351192AbiBHIms (ORCPT ); Tue, 8 Feb 2022 03:42:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39398 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350719AbiBHImo (ORCPT ); Tue, 8 Feb 2022 03:42:44 -0500 Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 41B49C03FED4 for ; Tue, 8 Feb 2022 00:42:43 -0800 (PST) Received: by mail-lf1-x12b.google.com with SMTP id f10so31845555lfu.8 for ; Tue, 08 Feb 2022 00:42:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zAs8Yatfb5icRPps4ZaWoN14zXIRZ/fIsgdyAPNGOb4=; b=SfuD4cs0uNn4xZ7k3QGNDYawj1deQWy1OQ/+n1lA0GxfdK0Q1uRJB2bg5CtViFAkJ8 icuGxWaJ7CaR8hyZy2JGgU5BKVeUCabeHxN5mCuHSf/f1xHANr+o3XzwBDHbIM6I7EsT UXq6UNMwG5wreMRA8Tj9Bw5jvP4y6S0y09CDEpfXbPEuzmFvyC/Fm0h/aGMj+67HhD2g vhEjZv2aihkNPwK5knvQFdxoxIGS1LUVQKkxiWULZ8qkIj9//0gyXkpSp6BBpyKTkbOS rUuO1rSwTm5r/vnk4Bh4fROhGrycSBPystmyVqUeFfLrszN7qcp2BoDdv6kks9ApsWAd mhRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zAs8Yatfb5icRPps4ZaWoN14zXIRZ/fIsgdyAPNGOb4=; b=ZfvX+SW71fT+QfJTtD55TduGlKFXWKnr6cIaqwbj1wEKyzI+yu5Q71RRLFaY95EwnQ ratpVBc4QR6v0g9QcHSorTtMOKqUdNlZ8Qddnt9BkL7v/NOcpF+h/gEGl14aBG8UnO4H xNJ5U+wcMKcbJ4Ste1yLQZx7KEtjIYf4Fbv6m9qpJ6N7UM1aOash2ga18wZ+5whameDC VaUUlfUM5JLnVIi6pWb95oixT7xJoZee9BQkVsY71PnTdkEe7ZP0RrOVbOKis12mXCaP DEtvm9OvT54rCmYQrpSVqaKAQH91zGLjAnqSC2yxibW1FeNQAnkcoLW1rHCZ6txmxr/o Mtbg== X-Gm-Message-State: AOAM532vXkRqLmy0ymKQMQHaeqgaW5hgWjZUJXhDzpmEIiTOifD+Jywk xDhAv3+G5Clz90THkqVjx7tfmA== X-Google-Smtp-Source: ABdhPJyScCD/zHSIZnBLnovm2lIeHylddool/rNUHBAjMxezHHhiSO5YvqwnGzUQRB10qdhFJgQPnA== X-Received: by 2002:ac2:560a:: with SMTP id v10mr2359890lfd.260.1644309761652; Tue, 08 Feb 2022 00:42:41 -0800 (PST) Received: from cobook.home (nikaet.starlink.ru. [94.141.168.29]) by smtp.gmail.com with ESMTPSA id o12sm1830361lfu.96.2022.02.08.00.42.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Feb 2022 00:42:41 -0800 (PST) From: Nikita Yushchenko To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Nikita Yushchenko Subject: [PATCH 1/4] ASoC: pcm3168a: cleanup unintuitive mask usage Date: Tue, 8 Feb 2022 11:42:17 +0300 Message-Id: <20220208084220.1289836-2-nikita.yoush@cogentembedded.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220208084220.1289836-1-nikita.yoush@cogentembedded.com> References: <20220208084220.1289836-1-nikita.yoush@cogentembedded.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" When checking if the requested parameters are supported, the driver uses PCM3168A_FMT_DSP_MASK to check for PCM3168A_FMT_DSP_* values. However, formally not only PCM3168A_FMT_DSP_* values match that condition, PCM3168A_FMT_I2S_TDM and PCM3168A_FMT_LEFT_J_TDM also do. The check still gives correct result because those extra values can't be in 'fmt' at the check location. Still, to make the code less cryptic, better to compare 'fmt' with PCM3168A_FMT_DSP_* values explicitly. Signed-off-by: Nikita Yushchenko --- sound/soc/codecs/pcm3168a.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/codecs/pcm3168a.c b/sound/soc/codecs/pcm3168a.c index fdf92c8b28e1..987c5845f769 100644 --- a/sound/soc/codecs/pcm3168a.c +++ b/sound/soc/codecs/pcm3168a.c @@ -33,7 +33,6 @@ #define PCM3168A_FMT_DSP_B 0x5 #define PCM3168A_FMT_I2S_TDM 0x6 #define PCM3168A_FMT_LEFT_J_TDM 0x7 -#define PCM3168A_FMT_DSP_MASK 0x4 =20 #define PCM3168A_NUM_SUPPLIES 6 static const char *const pcm3168a_supply_names[PCM3168A_NUM_SUPPLIES] =3D { @@ -511,7 +510,8 @@ static int pcm3168a_hw_params(struct snd_pcm_substream = *substream, fmt =3D PCM3168A_FMT_RIGHT_J_16; break; case 24: - if (master_mode || (fmt & PCM3168A_FMT_DSP_MASK)) { + if (master_mode || (fmt =3D=3D PCM3168A_FMT_DSP_A) || + (fmt =3D=3D PCM3168A_FMT_DSP_B)) { dev_err(component->dev, "24-bit slots not supported in master mode, or = slave mode using DSP\n"); return -EINVAL; } --=20 2.30.2 From nobody Mon Jun 29 16:02:12 2026 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 E6660C433F5 for ; Tue, 8 Feb 2022 08:43:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351344AbiBHInC (ORCPT ); Tue, 8 Feb 2022 03:43:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350981AbiBHImp (ORCPT ); Tue, 8 Feb 2022 03:42:45 -0500 Received: from mail-lj1-x236.google.com (mail-lj1-x236.google.com [IPv6:2a00:1450:4864:20::236]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 379F5C03FEC1 for ; Tue, 8 Feb 2022 00:42:44 -0800 (PST) Received: by mail-lj1-x236.google.com with SMTP id z20so23393909ljo.6 for ; Tue, 08 Feb 2022 00:42:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5SqcXIt39hShtKj54ZerZJEIaFZk+FrZV1s2XWCXxyw=; b=GBxw4kKR0joqbiZYz79uUSB9b2Zp2Zq+1eMvhtf1Ac1BmvTGd6BsEvmwkCkvocSnsS 9xvM6rXbEpDJHmHhuYFQK8iGxjYyygD7x58gMbrhhBdIEUDi7xoX5w/4l4kc6UCnU05S MZ8a2vzicDPPC4w9i0Ugy135JxLJwWR3ZBgpiOhYb8GAcxj3AvUtv4ZMb874OvgabLw+ +7hEEum8vy4INAKgeHb8aaQ/E/F41kVT4jvgClVu/0xFPGiZ8aYiVfTkpoxVPTxo3Nd0 aoynGWCm1BCwlnmvUskt8F5g2EE8uFrUUychYlknnDwWzPQMxWAXRPQIezuBo/ifrD7U NbGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5SqcXIt39hShtKj54ZerZJEIaFZk+FrZV1s2XWCXxyw=; b=CGR7xhmjAZ9OBZIgoAfre2/6CXh5MBYXbm4bmE2AVIj8qIr6rtU4QnsD55F/d8e+lI n80gqfUJtgzO7Y4eyXYMKChVdiQx2TDvFD/NrdLWpFAj9RRx2nxLoQMTafi25ox85uKz 0l0hu801C+LJq1J6Ls1ifWXTjklKz5orMKBu+zOFqJHyoOC8o6vxNNMF8H5fKrk+ChX7 PGqnSpk1e32TO6G7jxbkp6Wwa1imDu+7mn3vhawD7YMBfH47XLz7bWWZX2buIAHdvi/8 Jn3FaiEVCN1r8cFOxnBejndwAVFEI5fpj4XoBQwsBD1xCAwxtuAoLCpEj+wcRczGokFZ jzhg== X-Gm-Message-State: AOAM531AIs/EmD6xD88ywwuwyaxhfXgAPQuAYVv98YsTWtgADHVVm4Ct lsgIfQNq4wtcaTwDZcIbG40mqg== X-Google-Smtp-Source: ABdhPJz4lF2QXG+jryZwq6Ylmt24RIWtcNM+ZFjykyOOoX1MQeeQeKh9mmcRvwrBb5iaC7ORnycxEw== X-Received: by 2002:a2e:a5c3:: with SMTP id n3mr2173139ljp.212.1644309762594; Tue, 08 Feb 2022 00:42:42 -0800 (PST) Received: from cobook.home (nikaet.starlink.ru. [94.141.168.29]) by smtp.gmail.com with ESMTPSA id o12sm1830361lfu.96.2022.02.08.00.42.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Feb 2022 00:42:42 -0800 (PST) From: Nikita Yushchenko To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Nikita Yushchenko Subject: [PATCH 2/4] ASoC: pcm3168a: refactor hw_params routine Date: Tue, 8 Feb 2022 11:42:18 +0300 Message-Id: <20220208084220.1289836-3-nikita.yoush@cogentembedded.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220208084220.1289836-1-nikita.yoush@cogentembedded.com> References: <20220208084220.1289836-1-nikita.yoush@cogentembedded.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" - group together code lines that calculate value for msad/msda field - rename variables to better match their meaning: val -> ms, max_ratio -> num_scki_ratios - update variable types to match exactly parameters or return types of the calls where those variables are used - write two fields of the same register in a single regmap call Signed-off-by: Nikita Yushchenko --- sound/soc/codecs/pcm3168a.c | 67 ++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 38 deletions(-) diff --git a/sound/soc/codecs/pcm3168a.c b/sound/soc/codecs/pcm3168a.c index 987c5845f769..526e4562ccb5 100644 --- a/sound/soc/codecs/pcm3168a.c +++ b/sound/soc/codecs/pcm3168a.c @@ -462,40 +462,45 @@ static int pcm3168a_hw_params(struct snd_pcm_substrea= m *substream, struct pcm3168a_priv *pcm3168a =3D snd_soc_component_get_drvdata(componen= t); struct pcm3168a_io_params *io_params =3D &pcm3168a->io_params[dai->id]; bool master_mode; - u32 val, mask, shift, reg; - unsigned int rate, fmt, ratio, max_ratio; - unsigned int tdm_slots; - int i, slot_width; - - rate =3D params_rate(params); - - ratio =3D pcm3168a->sysclk / rate; + unsigned int reg, mask, ms, ms_shift, fmt, fmt_shift, ratio, tdm_slots; + int i, num_scki_ratios, slot_width; =20 if (dai->id =3D=3D PCM3168A_DAI_DAC) { - max_ratio =3D PCM3168A_NUM_SCKI_RATIOS_DAC; + num_scki_ratios =3D PCM3168A_NUM_SCKI_RATIOS_DAC; reg =3D PCM3168A_DAC_PWR_MST_FMT; - mask =3D PCM3168A_DAC_MSDA_MASK; - shift =3D PCM3168A_DAC_MSDA_SHIFT; + mask =3D PCM3168A_DAC_MSDA_MASK | PCM3168A_DAC_FMT_MASK; + ms_shift =3D PCM3168A_DAC_MSDA_SHIFT; + fmt_shift =3D PCM3168A_DAC_FMT_SHIFT; } else { - max_ratio =3D PCM3168A_NUM_SCKI_RATIOS_ADC; + num_scki_ratios =3D PCM3168A_NUM_SCKI_RATIOS_ADC; reg =3D PCM3168A_ADC_MST_FMT; - mask =3D PCM3168A_ADC_MSAD_MASK; - shift =3D PCM3168A_ADC_MSAD_SHIFT; + mask =3D PCM3168A_ADC_MSAD_MASK | PCM3168A_ADC_FMTAD_MASK; + ms_shift =3D PCM3168A_ADC_MSAD_SHIFT; + fmt_shift =3D PCM3168A_ADC_FMTAD_SHIFT; } =20 master_mode =3D io_params->master_mode; - fmt =3D io_params->fmt; =20 - for (i =3D 0; i < max_ratio; i++) { - if (pcm3168a_scki_ratios[i] =3D=3D ratio) - break; - } + if (master_mode) { + ratio =3D pcm3168a->sysclk / params_rate(params); =20 - if (i =3D=3D max_ratio) { - dev_err(component->dev, "unsupported sysclk ratio\n"); - return -EINVAL; + for (i =3D 0; i < num_scki_ratios; i++) { + if (pcm3168a_scki_ratios[i] =3D=3D ratio) + break; + } + + if (i =3D=3D num_scki_ratios) { + dev_err(component->dev, "unsupported sysclk ratio\n"); + return -EINVAL; + } + + ms =3D (i + 1); + } else { + ms =3D 0; } =20 + fmt =3D io_params->fmt; + if (io_params->slot_width) slot_width =3D io_params->slot_width; else @@ -553,22 +558,8 @@ static int pcm3168a_hw_params(struct snd_pcm_substream= *substream, } } =20 - if (master_mode) - val =3D ((i + 1) << shift); - else - val =3D 0; - - regmap_update_bits(pcm3168a->regmap, reg, mask, val); - - if (dai->id =3D=3D PCM3168A_DAI_DAC) { - mask =3D PCM3168A_DAC_FMT_MASK; - shift =3D PCM3168A_DAC_FMT_SHIFT; - } else { - mask =3D PCM3168A_ADC_FMTAD_MASK; - shift =3D PCM3168A_ADC_FMTAD_SHIFT; - } - - regmap_update_bits(pcm3168a->regmap, reg, mask, fmt << shift); + regmap_update_bits(pcm3168a->regmap, reg, mask, + (ms << ms_shift) | (fmt << fmt_shift)); =20 return 0; } --=20 2.30.2 From nobody Mon Jun 29 16:02:12 2026 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 8AD5DC433F5 for ; Tue, 8 Feb 2022 08:43:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351136AbiBHInK (ORCPT ); Tue, 8 Feb 2022 03:43:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39446 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1350872AbiBHImq (ORCPT ); Tue, 8 Feb 2022 03:42:46 -0500 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 69470C03FEC8 for ; Tue, 8 Feb 2022 00:42:45 -0800 (PST) Received: by mail-lf1-x136.google.com with SMTP id o2so6482669lfd.1 for ; Tue, 08 Feb 2022 00:42:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WW/JZAMcHGwsu/aVKbZpcWKcH0tV5XFvXiTi6TpD/iM=; b=s/dW6xKSwn0E1ynwQfrMtagbanfi8I/MD/YsKH4d1q/ZgoSq04BvtcEI8wkWcxb05v kkW1hhq7jtkkqJKM8XoBQUam6wxWwUXsC9GuqWwGorHmsRJaUVSQHqFR6yYc+dzOVM5o Gs1RNdnxm7CgqnNqX5dL3MWcktyVp1YVuYtbgIGOvPyVbjItwN/73aIFk9CymvENye7F zffWwXb/3TFSQrHmsTo97z/Q1R65+vRDVKMqxx/Ws5CLax/8MGSH7W7xEDElYnDuJ1xF ycHqVTCU/Pm3SWL7+OzymBJVQsYkWh7vb6LRoFusWYDfWYLrvpNCYEIDgzcZ+ZxF+LeR 5SYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WW/JZAMcHGwsu/aVKbZpcWKcH0tV5XFvXiTi6TpD/iM=; b=Lwy8mhxDgMD7WIsdNDlcCtjF2prAD7iJYWgHvDAL5RDvJ+uYIZbzSbXIVNH02Wn3yf UPPlLqazrY//+5xE/nqalq3ZjvlzeRBdlauV3z6qR2GfnIO4mUpPCitcczp59sVTE0cb 9xv4/NRzZo7JOE/9rHDoFCdN92DMH8wR4exp3RXrXhXku7pudJ3NTcmykCvKMsKOA9Kt +84T2kLr+v7Z7MPK4UlyWCyoQ13Nzpm5hVHklk5tbows2YR/FZIFPFTSRYa5zl81cA2W rbihMLF4GZFl/O1xBJYYyfz0Q25tDJolfAk2YlG+ZHVAQ+eCnAsb0XDSqdHMgzih+Cc5 L8og== X-Gm-Message-State: AOAM533FyfyXo+YN3wac94ZkgF8MnlMl4pr7WeHYSv7YoHXj8zYw182+ ZRPLTpsrZp4/hkDeEQE3J6CW5Q== X-Google-Smtp-Source: ABdhPJxRogpGR1JTxiEnIH+idlt+2Csfb5uit/sYazWB9tshUteT6LOqweKxQThophAaMSV7PRVHJg== X-Received: by 2002:a05:6512:3404:: with SMTP id i4mr2266933lfr.389.1644309763770; Tue, 08 Feb 2022 00:42:43 -0800 (PST) Received: from cobook.home (nikaet.starlink.ru. [94.141.168.29]) by smtp.gmail.com with ESMTPSA id o12sm1830361lfu.96.2022.02.08.00.42.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Feb 2022 00:42:43 -0800 (PST) From: Nikita Yushchenko To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Nikita Yushchenko Subject: [PATCH 3/4] ASoC: pcm3168a: refactor format handling Date: Tue, 8 Feb 2022 11:42:19 +0300 Message-Id: <20220208084220.1289836-4-nikita.yoush@cogentembedded.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220208084220.1289836-1-nikita.yoush@cogentembedded.com> References: <20220208084220.1289836-1-nikita.yoush@cogentembedded.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" - drop incomplete (not tdm-aware) calculation/setting of hardware fmt value from pcm3168a_set_dai_fmt(); instead, store original SND_SOC_DAIFMT* setting in io_params - in pcm3168a_hw_params(), do all checks in terms of SND_SOC_DAIFMT*, and convert that to register bitfield values only to write to hardware Signed-off-by: Nikita Yushchenko --- sound/soc/codecs/pcm3168a.c | 84 ++++++++++++++++++------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/sound/soc/codecs/pcm3168a.c b/sound/soc/codecs/pcm3168a.c index 526e4562ccb5..1d3821f2c5f1 100644 --- a/sound/soc/codecs/pcm3168a.c +++ b/sound/soc/codecs/pcm3168a.c @@ -50,7 +50,7 @@ static const char *const pcm3168a_supply_names[PCM3168A_N= UM_SUPPLIES] =3D { /* ADC/DAC side parameters */ struct pcm3168a_io_params { bool master_mode; - unsigned int fmt; + unsigned int format; int tdm_slots; u32 tdm_mask; int slot_width; @@ -328,10 +328,11 @@ static void pcm3168a_update_fixup_pcm_stream(struct s= nd_soc_dai *dai) { struct snd_soc_component *component =3D dai->component; struct pcm3168a_priv *pcm3168a =3D snd_soc_component_get_drvdata(componen= t); + struct pcm3168a_io_params *io_params =3D &pcm3168a->io_params[dai->id]; u64 formats =3D SNDRV_PCM_FMTBIT_S24_3LE | SNDRV_PCM_FMTBIT_S24_LE; unsigned int channel_max =3D dai->id =3D=3D PCM3168A_DAI_DAC ? 8 : 6; =20 - if (pcm3168a->io_params[dai->id].fmt =3D=3D PCM3168A_FMT_RIGHT_J) { + if (io_params->format =3D=3D SND_SOC_DAIFMT_RIGHT_J) { /* S16_LE is only supported in RIGHT_J mode */ formats |=3D SNDRV_PCM_FMTBIT_S16_LE; =20 @@ -339,7 +340,7 @@ static void pcm3168a_update_fixup_pcm_stream(struct snd= _soc_dai *dai) * If multi DIN/DOUT is not selected, RIGHT_J can only support * two channels (no TDM support) */ - if (pcm3168a->io_params[dai->id].tdm_slots !=3D 2) + if (io_params->tdm_slots !=3D 2) channel_max =3D 2; } =20 @@ -356,24 +357,15 @@ static int pcm3168a_set_dai_fmt(struct snd_soc_dai *d= ai, unsigned int format) { struct snd_soc_component *component =3D dai->component; struct pcm3168a_priv *pcm3168a =3D snd_soc_component_get_drvdata(componen= t); - u32 fmt, reg, mask, shift; + struct pcm3168a_io_params *io_params =3D &pcm3168a->io_params[dai->id]; bool master_mode; =20 switch (format & SND_SOC_DAIFMT_FORMAT_MASK) { case SND_SOC_DAIFMT_LEFT_J: - fmt =3D PCM3168A_FMT_LEFT_J; - break; case SND_SOC_DAIFMT_I2S: - fmt =3D PCM3168A_FMT_I2S; - break; case SND_SOC_DAIFMT_RIGHT_J: - fmt =3D PCM3168A_FMT_RIGHT_J; - break; case SND_SOC_DAIFMT_DSP_A: - fmt =3D PCM3168A_FMT_DSP_A; - break; case SND_SOC_DAIFMT_DSP_B: - fmt =3D PCM3168A_FMT_DSP_B; break; default: dev_err(component->dev, "unsupported dai format\n"); @@ -399,20 +391,8 @@ static int pcm3168a_set_dai_fmt(struct snd_soc_dai *da= i, unsigned int format) return -EINVAL; } =20 - if (dai->id =3D=3D PCM3168A_DAI_DAC) { - reg =3D PCM3168A_DAC_PWR_MST_FMT; - mask =3D PCM3168A_DAC_FMT_MASK; - shift =3D PCM3168A_DAC_FMT_SHIFT; - } else { - reg =3D PCM3168A_ADC_MST_FMT; - mask =3D PCM3168A_ADC_FMTAD_MASK; - shift =3D PCM3168A_ADC_FMTAD_SHIFT; - } - - pcm3168a->io_params[dai->id].master_mode =3D master_mode; - pcm3168a->io_params[dai->id].fmt =3D fmt; - - regmap_update_bits(pcm3168a->regmap, reg, mask, fmt << shift); + io_params->master_mode =3D master_mode; + io_params->format =3D format & SND_SOC_DAIFMT_FORMAT_MASK; =20 pcm3168a_update_fixup_pcm_stream(dai); =20 @@ -461,7 +441,8 @@ static int pcm3168a_hw_params(struct snd_pcm_substream = *substream, struct snd_soc_component *component =3D dai->component; struct pcm3168a_priv *pcm3168a =3D snd_soc_component_get_drvdata(componen= t); struct pcm3168a_io_params *io_params =3D &pcm3168a->io_params[dai->id]; - bool master_mode; + bool master_mode, tdm_mode; + unsigned int format; unsigned int reg, mask, ms, ms_shift, fmt, fmt_shift, ratio, tdm_slots; int i, num_scki_ratios, slot_width; =20 @@ -499,7 +480,7 @@ static int pcm3168a_hw_params(struct snd_pcm_substream = *substream, ms =3D 0; } =20 - fmt =3D io_params->fmt; + format =3D io_params->format; =20 if (io_params->slot_width) slot_width =3D io_params->slot_width; @@ -508,15 +489,14 @@ static int pcm3168a_hw_params(struct snd_pcm_substrea= m *substream, =20 switch (slot_width) { case 16: - if (master_mode || (fmt !=3D PCM3168A_FMT_RIGHT_J)) { + if (master_mode || (format !=3D SND_SOC_DAIFMT_RIGHT_J)) { dev_err(component->dev, "16-bit slots are supported only for slave mode= using right justified\n"); return -EINVAL; } - fmt =3D PCM3168A_FMT_RIGHT_J_16; break; case 24: - if (master_mode || (fmt =3D=3D PCM3168A_FMT_DSP_A) || - (fmt =3D=3D PCM3168A_FMT_DSP_B)) { + if (master_mode || (format =3D=3D SND_SOC_DAIFMT_DSP_A) || + (format =3D=3D SND_SOC_DAIFMT_DSP_B)) { dev_err(component->dev, "24-bit slots not supported in master mode, or = slave mode using DSP\n"); return -EINVAL; } @@ -541,15 +521,14 @@ static int pcm3168a_hw_params(struct snd_pcm_substrea= m *substream, * If pcm3168a->tdm_slots is set to 2 then DIN1/2/3/4 and DOUT1/2/3 is * used in normal mode, no need to switch to TDM modes. */ - if (tdm_slots > 2) { - switch (fmt) { - case PCM3168A_FMT_I2S: - case PCM3168A_FMT_DSP_A: - fmt =3D PCM3168A_FMT_I2S_TDM; - break; - case PCM3168A_FMT_LEFT_J: - case PCM3168A_FMT_DSP_B: - fmt =3D PCM3168A_FMT_LEFT_J_TDM; + tdm_mode =3D (tdm_slots > 2); + + if (tdm_mode) { + switch (format) { + case SND_SOC_DAIFMT_I2S: + case SND_SOC_DAIFMT_DSP_A: + case SND_SOC_DAIFMT_LEFT_J: + case SND_SOC_DAIFMT_DSP_B: break; default: dev_err(component->dev, @@ -558,6 +537,27 @@ static int pcm3168a_hw_params(struct snd_pcm_substream= *substream, } } =20 + switch (format) { + case SND_SOC_DAIFMT_I2S: + fmt =3D tdm_mode ? PCM3168A_FMT_I2S_TDM : PCM3168A_FMT_I2S; + break; + case SND_SOC_DAIFMT_LEFT_J: + fmt =3D tdm_mode ? PCM3168A_FMT_LEFT_J_TDM : PCM3168A_FMT_LEFT_J; + break; + case SND_SOC_DAIFMT_RIGHT_J: + fmt =3D (slot_width =3D=3D 16) ? PCM3168A_FMT_RIGHT_J_16 : + PCM3168A_FMT_RIGHT_J; + break; + case SND_SOC_DAIFMT_DSP_A: + fmt =3D tdm_mode ? PCM3168A_FMT_I2S_TDM : PCM3168A_FMT_DSP_A; + break; + case SND_SOC_DAIFMT_DSP_B: + fmt =3D tdm_mode ? PCM3168A_FMT_LEFT_J_TDM : PCM3168A_FMT_DSP_B; + break; + default: + return -EINVAL; + } + regmap_update_bits(pcm3168a->regmap, reg, mask, (ms << ms_shift) | (fmt << fmt_shift)); =20 --=20 2.30.2 From nobody Mon Jun 29 16:02:12 2026 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 35440C433F5 for ; Tue, 8 Feb 2022 08:43:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351348AbiBHInR (ORCPT ); Tue, 8 Feb 2022 03:43:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351157AbiBHImr (ORCPT ); Tue, 8 Feb 2022 03:42:47 -0500 Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 411C4C03FEC1 for ; Tue, 8 Feb 2022 00:42:46 -0800 (PST) Received: by mail-lf1-x129.google.com with SMTP id b9so31872776lfq.6 for ; Tue, 08 Feb 2022 00:42:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cogentembedded-com.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OqsnPBD75OEIg0YKhpWxP7ylQrnXYC+DLarhM8bDSAE=; b=3MWbe0vi62zn/YVDnF5AtSjnMWk8c4SBFKMTP6yKlW3QOxcHBOzJnAJuDxR7FCvAGs Ps1jDNA7iChEK/zGZ7XUHry/uWERzhbiHUYdDpQjU2KjSMsmrlXrCF5s/LcYL3Ixpwoi awrIfufh4k7dLcivn5jOg2y2BbEbiAtCWZ0USyrE9hXvvZON6+yHTGjy9fblj3HTzsEh TiC2cYjWPffoFw3xbdE4jq6adsp2ji2X5N16P/WDZVtc66nlOiRL+WnFAydGbuBquRV7 WP0IEiZjvq7h0IC+JrttRh7CnsEACVKT4o2Rz61YE04PQ/uvfFoeX6Kc0W0kA3jd/gqC /JOQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OqsnPBD75OEIg0YKhpWxP7ylQrnXYC+DLarhM8bDSAE=; b=TCcLZPdDK+8xbQTd5E7HFftowQGGXMrDzLPuXm1m2+y54BxPB/w/GDQabiUYF45l2q u8eAKY0jlJIrmFiqv8CVzD5CDEgQm1dsRzelcjGvUwAQtFMoVt30HIQ08SBu12Nv3h39 4la/TGaE5ylZrN+Rc0bt0tnL2Fa2NZzanlOkKgFAsWRdZoXrB0nIfsjfhVnM8urDeHkH 0yGenrPwj30jE5v1SBteD7SM38BMVLCuXcULpMI2cnUNlvPQI6juwizQ6zJuRqn/NOYl n7ExJFlcrxiHPHbqfGXE/GK3XXDlOVnHzhn+Et+Boq/w3Fj3x+tMSLw4GQch4o8AObr7 3rrg== X-Gm-Message-State: AOAM530RyUUvCm6O00zRjELupUJ6YOUL4xyBso2svfM5lVzkYDfspEpu buT6kzzDzR/ua5XMplH83EDCdA== X-Google-Smtp-Source: ABdhPJyRjmxFsSQKhUcZklAkzKieZBtNVZ0fLTFeF4+lWwQjOFe79DqlC62orWr4LAzCsom/vZ4HFw== X-Received: by 2002:ac2:46ed:: with SMTP id q13mr2283630lfo.99.1644309764661; Tue, 08 Feb 2022 00:42:44 -0800 (PST) Received: from cobook.home (nikaet.starlink.ru. [94.141.168.29]) by smtp.gmail.com with ESMTPSA id o12sm1830361lfu.96.2022.02.08.00.42.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Feb 2022 00:42:44 -0800 (PST) From: Nikita Yushchenko To: Liam Girdwood , Mark Brown , Jaroslav Kysela , Takashi Iwai , Kuninori Morimoto Cc: alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org, Nikita Yushchenko Subject: [PATCH 4/4] ASoC: pcm3168a: remove numeric PCM3168A_NUM_SUPPLIES Date: Tue, 8 Feb 2022 11:42:20 +0300 Message-Id: <20220208084220.1289836-5-nikita.yoush@cogentembedded.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220208084220.1289836-1-nikita.yoush@cogentembedded.com> References: <20220208084220.1289836-1-nikita.yoush@cogentembedded.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" Just use ARRAY_SIZE() instead. Signed-off-by: Nikita Yushchenko --- sound/soc/codecs/pcm3168a.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sound/soc/codecs/pcm3168a.c b/sound/soc/codecs/pcm3168a.c index 1d3821f2c5f1..7417cf45d916 100644 --- a/sound/soc/codecs/pcm3168a.c +++ b/sound/soc/codecs/pcm3168a.c @@ -34,8 +34,7 @@ #define PCM3168A_FMT_I2S_TDM 0x6 #define PCM3168A_FMT_LEFT_J_TDM 0x7 =20 -#define PCM3168A_NUM_SUPPLIES 6 -static const char *const pcm3168a_supply_names[PCM3168A_NUM_SUPPLIES] =3D { +static const char *const pcm3168a_supply_names[] =3D { "VDD1", "VDD2", "VCCAD1", @@ -57,7 +56,7 @@ struct pcm3168a_io_params { }; =20 struct pcm3168a_priv { - struct regulator_bulk_data supplies[PCM3168A_NUM_SUPPLIES]; + struct regulator_bulk_data supplies[ARRAY_SIZE(pcm3168a_supply_names)]; struct regmap *regmap; struct clk *scki; struct gpio_desc *gpio_rst; --=20 2.30.2