Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp409625rwi; Thu, 27 Oct 2022 03:02:31 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4mjHHcQz6/7m2IF+j6uCO8j38xNP0XO7rNPsV+djyFVrvLtS5ujXL3d2OI8AUTYQIRPcBY X-Received: by 2002:a17:906:3197:b0:73d:5e1a:44ac with SMTP id 23-20020a170906319700b0073d5e1a44acmr41151522ejy.512.1666864950618; Thu, 27 Oct 2022 03:02:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666864950; cv=none; d=google.com; s=arc-20160816; b=Ium2Z4PiykKiJUME5Rpjbpuyav2iuzlGeLFSPo78SGInWoDAWoL4xvwiyBHJv9pa51 hPsZ8kJr9DyfnojvhWfSI/x5mv8f8O0Od8KobZZJGSVUyV2ccVPi78nzPhJafGC2eLQO V0yARfr5q3bS1MLMxsm7YZGva8Op0/OoHxTMuv4XXvKipeRvIKmYmU/ToGybMmCnLD/j 4mdLS7X4TW+FRnzoTcFTtEc3gLOD9EhTEqwO/1DGXmvqFJbS7PQwBD3N2fJs2TN5Gm3J kKwG59axiiRcqtRIjRtVPBzfgWbmyc0scX2PQJGmC9UMQROc0eRG1syz2sJl6C1Wf1tF FExg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:dkim-signature :from; bh=zafY4n3noNNCOhqBie7L/wTVrWC4g1SUal4WI4ax48o=; b=Emqz3eehJPx4s1XC4VtBk+OSQGw6mgxLA0AAVkIawiHfxvZPzDc/3WVZ8BXxoO1gJl k5Wxs8mY8qA2i70rCF86r8TOivur2HQ1C8rHQlBE6V8rtvuvS3mJJKPQyit0WdYA3INN cMN1L3gscAz5k/H6V9hz0vzT1skP8iinFAqAhiENKmbPYPNomeUTlWOWpIBlFeU9ZvIp LmBsMrEbd4lJUUG/xnlsQh8w+TNEOQef/K8XiSxYIH3eEuL5RrJK6C1PU0nC3y3ExId5 6/mD72HkVU2xpY+GLMfqYbIJVCUsjCP4QBPmBStkaLpCeL9+nFIbm8g9EsoQr3dzxMd0 xfDQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cutebit.org header.s=mail header.b="kLA41O/W"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cutebit.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nb37-20020a1709071ca500b0078217f3a033si363003ejc.652.2022.10.27.03.01.53; Thu, 27 Oct 2022 03:02:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@cutebit.org header.s=mail header.b="kLA41O/W"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=cutebit.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233166AbiJ0KAC (ORCPT + 99 others); Thu, 27 Oct 2022 06:00:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41038 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235001AbiJ0J7Z (ORCPT ); Thu, 27 Oct 2022 05:59:25 -0400 Received: from hutie.ust.cz (unknown [IPv6:2a03:3b40:fe:f0::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6D1CF6C1C for ; Thu, 27 Oct 2022 02:58:47 -0700 (PDT) From: =?UTF-8?q?Martin=20Povi=C5=A1er?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cutebit.org; s=mail; t=1666864724; bh=zafY4n3noNNCOhqBie7L/wTVrWC4g1SUal4WI4ax48o=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=kLA41O/WnlKOz+9do3+r5DrO19XcLsdxQ8iPXqdXw3FRvu9sSjESMw7zzz0golJvW f+6ejAdTY7J4q2hK5u77BJOe2IV0fli1G5A4ycL5ZA4w8G+oZtVf/Axxqs9W2yzdyk IghoOdn/L/mDoZgNxMBqmS0OYS1xnff9vWHuL7Ow= To: Liam Girdwood , Mark Brown Cc: Stephen Kitt , Raphael-Xu <13691752556@139.com>, Frank Shi , shenghao-ding@ti.com, kevin-lu@ti.com, Jos Dehaes , alsa-devel@alsa-project.org, asahi@lists.linux.dev, linux-kernel@vger.kernel.org, =?UTF-8?q?Martin=20Povi=C5=A1er?= Subject: [PATCH 2/3] ASoC: tas2764: Fix set_tdm_slot in case of single slot Date: Thu, 27 Oct 2022 11:57:59 +0200 Message-Id: <20221027095800.16094-2-povik+lin@cutebit.org> In-Reply-To: <20221027095800.16094-1-povik+lin@cutebit.org> References: <20221027095800.16094-1-povik+lin@cutebit.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_FAIL,SPF_HELO_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There's a special branch in the set_tdm_slot op for the case of nslots being 1, but: (1) That branch can never work (there's a check for tx_mask being non-zero, later there's another check for it *being* zero; one or the other always throws -EINVAL). (2) The intention of the branch seems to be what the general other branch reduces to in case of nslots being 1. For those reasons remove the 'nslots being 1' special case. Fixes: 827ed8a0fa50 ("ASoC: tas2764: Add the driver for the TAS2764") Suggested-by: Jos Dehaes Signed-off-by: Martin PoviĊĦer --- sound/soc/codecs/tas2764.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/sound/soc/codecs/tas2764.c b/sound/soc/codecs/tas2764.c index 51b87a936179..2e0ed3e68fa5 100644 --- a/sound/soc/codecs/tas2764.c +++ b/sound/soc/codecs/tas2764.c @@ -438,20 +438,13 @@ static int tas2764_set_dai_tdm_slot(struct snd_soc_dai *dai, if (tx_mask == 0 || rx_mask != 0) return -EINVAL; - if (slots == 1) { - if (tx_mask != 1) - return -EINVAL; - left_slot = 0; - right_slot = 0; + left_slot = __ffs(tx_mask); + tx_mask &= ~(1 << left_slot); + if (tx_mask == 0) { + right_slot = left_slot; } else { - left_slot = __ffs(tx_mask); - tx_mask &= ~(1 << left_slot); - if (tx_mask == 0) { - right_slot = left_slot; - } else { - right_slot = __ffs(tx_mask); - tx_mask &= ~(1 << right_slot); - } + right_slot = __ffs(tx_mask); + tx_mask &= ~(1 << right_slot); } if (tx_mask != 0 || left_slot >= slots || right_slot >= slots) -- 2.33.0