From patchwork Fri Oct 2 09:03:05 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Roman_Smr=C5=BE?= X-Patchwork-Id: 4864 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wr1-f70.google.com (mail-wr1-f70.google.com [209.85.221.70]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 1428B3FA1E for ; Fri, 2 Oct 2026 11:03:21 +0200 (CEST) Received: by mail-wr1-f70.google.com with SMTP id ffacd0b85a97d-48b008137d8sf1093957f8f.0 for ; Fri, 02 Oct 2026 02:03:21 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1790931800; cv=pass; d=google.com; s=arc-20260327; b=CP6LinLZfITGCPx+kjIaow/64VNAD2WAlOvkXFCExZLitIGW0fJn6kHf8EBX7EqYzd JMLiBfPN4/psUhXzTp9w1JVY5AA4Y65Vpmrnqe9RpL25IKNLRjzjmfgAYxG2oaljL9Tl Ki3m61EykMpjGCJeyrkK3tjQ17RFk7hLEK40gR+XtTTe5ybuYQQEm50Gi/9r7VhZFzlq jP8/R8qm54IaAzJZyXjTD5VQj4Ovig+IaNUyFdl4trQtxEyh9KY4z8NGDg64SHmEtlo0 UHoIqouu/nkIK1sH1nY8Y9/WZ2weQ44Qmb/TuG6YOz7IN/Sc9m64WSaHBBmV1Oh2bfSP WXBw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=5DwBLerTDR+HZOctmCo0HsiQNHSLKGDirymPMhxPVSA=; fh=Ucs7XKfkLuw4+RPwNfKbOBdw1VvyIWX0Uf6yuMCqoCM=; b=FrfDtCz0xHIdvCEq2z+4MckrJAQ5ThTU+mnsNZafjcXEMJrxDfwbtLlkcrf8mbji0s 43IeI5/AlRkKXlumj7+mHP2Eo50Gk8ltggG2zaXy5kgFJlQex3TN97zTqblj+6DTXuNZ 71jDWr763UzRsnsyQvmxvozWaQIt8x+Hc8VJC3m2PuDNApS5A+4gkTo3PCiE8GaKfIBj H10Kf0wCplXG6TFOzI46bR7pKH2l7bJt5G6/tUZqngb8Tt/4gK/aVbMQKNhcF0tlRA3P ll487CS/5BNlMY0lVv2Ty0QBAc888na3sWJVwfLp+EI+icLTWd3G9uSqVRYwr/THAspb 1Heg==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=rGXw7s3Z; spf=pass (google.com: domain of roman@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=roman@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1790931800; x=1791536600; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:content-transfer-encoding:content-type :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=5DwBLerTDR+HZOctmCo0HsiQNHSLKGDirymPMhxPVSA=; b=V6d1sRtqa/5T7eoeRQlwoSB0oFDguz08bWk9HzwTytYmcFYYgCAZDMDjoBJ4cc/uuB sYmeREu00YDLmLteaFaothh8gcAJLf6fZZrFxTs3pDM7b2mUuV1g5pvCS6wTPY9FZGhr XE/kn3uTb4cIiN+1kXrmckHy4nsyCew5W2GVY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1790931800; x=1791536600; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender :content-transfer-encoding:content-type:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg:x-beenthere :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=5DwBLerTDR+HZOctmCo0HsiQNHSLKGDirymPMhxPVSA=; b=TjZc4wBMj72EYfs9rxc4HFL0c1KWA7Q2+gH6f3bl99piCuD7zidGBgrOMypskWRkG5 ZKvXkmokWKOCtL6WMno2LV/NsLCzNtd9X530vnFkRdXlGKvAcOwUd5NTGzB2oc1B9B00 CMsVSZ9hG5cbeGcQBTJ9aenVGD0egXM1gdQm36CW5xd6AkgGKsrwJ8ZLN7Vp0rIxtHR/ c0vmkwGiPxFjhk2S4BegwYBFpka75acw43+5pMxZ2FQOYnNpkTbdW30wFFAZdYA/czWV BUOR778F0IF7cf6DCZwzMC3YfA/ucLZOxxRQr35N0e+kFOG2A9L0tU+7sZFy9t8z+ls/ Q7NQ== X-Forwarded-Encrypted: i=2; AKwUvBzMNkSVEzmpXNhXEMvWNIcju9tXcB+i+S660PDUV4BKDG5U5I7bQloDnHbr+ypBHfYOWRwnGZfyeBORti1x@patchwork.amarulasolutions.com X-Gm-Message-State: AFuF++mx5IxTPFpL1/cwEeGxq+8JH3lEmGSexAFIpSirwmdimsJKSqBM 64rYIjAlyddUuWZipCBIZriEnc9ojfbMFzMvVtAjz/Km2Tu0O8oRu+i3zWWIrexAnD/sx7i9D/6 2Ew== X-Received: by 2002:a05:600c:354a:b0:4a0:ec5:46d9 with SMTP id 5b1f17b1804b1-4a027447475mr39452225e9.0.1790931800668; Fri, 02 Oct 2026 02:03:20 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h="ATskLdfRiJOQ9a322fGPmDQ82VE3S3OTdMOxlqp43SVoPmzG9A==" Received: by 2002:a05:600c:4594:b0:49b:4bf4:c7b4 with SMTP id 5b1f17b1804b1-4a02861a57cls2078765e9.2.-pod-prod-00-eu; Fri, 02 Oct 2026 02:03:19 -0700 (PDT) X-Received: by 2002:a05:600c:3b05:b0:49e:715d:95ca with SMTP id 5b1f17b1804b1-4a027561e0fmr35404825e9.13.1790931799116; Fri, 02 Oct 2026 02:03:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1790931799; cv=none; d=google.com; s=arc-20260327; b=lwI6y9eFbXRhLM9eniF/CnvCOfcq1HoTGhatk1oSyjD5d9bhT3ASqqSWHjljxloVvc 9G6J2BcLk+J0addyecRCsKaja455Cin29CIszr4ZIRh1jSY5ta7RMC58UlFAvwk102/+ v/D//wITgdUUwDKiQrYPyEXqWjXhqtjt+XShdDtG4OQuhyXNTSGqfNE7CIg0JhhlRhpF 0V+dyz93w7CZh/s/Iau3sB0IYcSD7hNW6GRU0Oi3poUE2/rHGC2P5mdjhO3p53WKDWBD i7ytZUbAE0rjgBqjHeMDhePdps/1utv0WfwCcUBc0bMNMYZ7UA50zxBNDiMLKbuZWcvI BgEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=GM9YMhOslvIdQjEF9bYRX+AGClVECPGNYTSvw6UAUXo=; fh=zcO6jSbGqbuHOoTp0K0IeZw5VqW80pcyElBkxSxHBZg=; b=dOmvDS1PhdHYdSakNhr2Xd83H+gqKHGorGuK9QgB2LN66b6QdZAAYZDZFWqqBjSeX8 WhCd1M19Cvo9wsBzwlwF7jsyn2jQMP4+NOQF4N7S/uq/dPKGLonmDsoNdBwvYvxqZ16K Wz4j5SqdARJ6+1BFlSaXZnGFGwORm7SIpoW48KQ7AkXkE+KrclKHJ6relenRB/JCjfYP T4u2YiF5td2pgKT1LrSkCc0GlmUJl2qS6XtAquVgDCzT0k9uvqrbUw9ld1IsgTeEp2FR lLSTo1nfaLIs2J9GRo2dFlyhafl8jLnZS/rriyXErUelHjAJKXCPZNU2eLk6L8nkKmNQ rJ0A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=rGXw7s3Z; spf=pass (google.com: domain of roman@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=roman@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-4a027f65a8csor3230065e9.2.2026.10.02.02.03.19 for (Google Transport Security); Fri, 02 Oct 2026 02:03:19 -0700 (PDT) Received-SPF: pass (google.com: domain of roman@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: AYBFou0T2PQX5k8uPnuKgWa5gt6gTlZyYS6Iaps70SuCLnt6AhOlKs5N0uelt3p3l20 vV/DRRj/Vnr/vF/1hJ8Ibcdl3bM9G/yQL0bUzx19i0e2XKcO464keYCRjp0ozAlpLADVfUlkoeO +6UJqfbkT/zGhDhqNzL68sJEPKo3ZFRM2J01Vyb3CwTbDonRjgitLdOqEnWpW9yjPM0hDI2Mjje omjplg8VvX6M1EfKk16nAK6hxm8+3RxtPc6KvQDzGv+H4K1sHNBCMhCwVRvOyvI+jo/MWmrH7II QYQg8fCpYybbOvFs1nYvv6MkYYrg0I1muZePejkS5/KRz5gf1T01grhWf3c0PdRznjxAM8EdFLc lNSEIuAVHM1ilm41mEEQsgVz/vlVV1XLUrT72GwmABIJAuoN5QXp3vlhRN5OVprrUr4t9rLHxvK o8m2q2VG0M7/RZo7PvXMXu7h17MCOzaWr050wyD5DroEP1Q+aROgcBYgdjpmGJTq2ZANC0sGhH1 X2kw7JaJq9a8Q== X-Received: by 2002:a05:600c:3e19:b0:49b:8f5e:51fb with SMTP id 5b1f17b1804b1-4a027534b98mr36951305e9.3.1790931798572; Fri, 02 Oct 2026 02:03:18 -0700 (PDT) Received: from localhost ([93.90.163.238]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4a027725c6asm73723435e9.8.2026.10.02.02.03.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Oct 2026 02:03:18 -0700 (PDT) From: =?utf-8?q?Roman_Smr=C5=BE?= To: linux-amarula@amarulasolutions.com Cc: =?utf-8?q?Roman_Smr=C5=BE?= Subject: [PATCH 2/5] ASoC: pcm179x: Refactor regmap value lookup Date: Fri, 2 Oct 2026 11:03:05 +0200 Message-ID: <20261002090308.941453-3-roman@amarulasolutions.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20261002090308.941453-1-roman@amarulasolutions.com> References: <20261002090308.941453-1-roman@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: roman@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=rGXw7s3Z; spf=pass (google.com: domain of roman@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=roman@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Use a table lookup to find values for fmt register instead of switch statements to prepare for additional codec variants of the same family. Signed-off-by: Roman Smrž Reviewed-by: Dario Binacchi --- sound/soc/codecs/pcm179x.c | 60 +++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/sound/soc/codecs/pcm179x.c b/sound/soc/codecs/pcm179x.c index cb70927872aa..61b87dab3266 100644 --- a/sound/soc/codecs/pcm179x.c +++ b/sound/soc/codecs/pcm179x.c @@ -65,6 +65,31 @@ struct pcm179x_private { unsigned int rate; }; +struct pcm179x_fmt_table { + unsigned int fmt; /* SND_SOC_DAIFMT_* */ + unsigned int width; /* sample width in bits */ + unsigned int value; /* FMT[2:0] */ +}; + +static const struct pcm179x_fmt_table pcm1792a_fmt[] = { + { SND_SOC_DAIFMT_RIGHT_J, 16, 0 }, + { SND_SOC_DAIFMT_RIGHT_J, 24, 2 }, + { SND_SOC_DAIFMT_RIGHT_J, 32, 2 }, + { SND_SOC_DAIFMT_I2S, 16, 4 }, + { SND_SOC_DAIFMT_I2S, 24, 5 }, + { SND_SOC_DAIFMT_I2S, 32, 5 }, +}; + +static int pcm179x_fmt_value(struct pcm179x_private *priv, unsigned int fmt, + unsigned int width) +{ + for (unsigned int i = 0; i < ARRAY_SIZE(pcm1792a_fmt); i++) + if (pcm1792a_fmt[i].fmt == fmt && pcm1792a_fmt[i].width == width) + return pcm1792a_fmt[i].value; + + return -EINVAL; +} + static int pcm179x_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int format) { @@ -96,40 +121,15 @@ static int pcm179x_hw_params(struct snd_pcm_substream *substream, { struct snd_soc_component *component = dai->component; struct pcm179x_private *priv = snd_soc_component_get_drvdata(component); - int val = 0, ret; + int val, ret; priv->rate = params_rate(params); - switch (priv->format & SND_SOC_DAIFMT_FORMAT_MASK) { - case SND_SOC_DAIFMT_RIGHT_J: - switch (params_width(params)) { - case 24: - case 32: - val = 2; - break; - case 16: - val = 0; - break; - default: - return -EINVAL; - } - break; - case SND_SOC_DAIFMT_I2S: - switch (params_width(params)) { - case 24: - case 32: - val = 5; - break; - case 16: - val = 4; - break; - default: - return -EINVAL; - } - break; - default: + val = pcm179x_fmt_value(priv, priv->format & SND_SOC_DAIFMT_FORMAT_MASK, + params_width(params)); + if (val < 0) { dev_err(component->dev, "Invalid DAI format\n"); - return -EINVAL; + return val; } val = val << PCM179X_FMT_SHIFT | PCM179X_ATLD_ENABLE;