From patchwork Thu Oct 27 09:58:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Martin_Povi=C5=A1er?= X-Patchwork-Id: 11708 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp137223wru; Thu, 27 Oct 2022 03:02:01 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4SeIMZuGXReaUXsL8EzgCupDb69+OdkuP1E0UPeox7/ibwvc9ahNh/kwobVy10EFHTQiQ1 X-Received: by 2002:a17:907:802:b0:781:8017:b2df with SMTP id wv2-20020a170907080200b007818017b2dfmr41282884ejb.606.1666864920813; Thu, 27 Oct 2022 03:02:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666864920; cv=none; d=google.com; s=arc-20160816; b=xcQ+NWKY+T2DOH5kGDTMbv+HerBckLhwQYjTt1oVvygyNB9wAOEjVtQZqZN/AEzWBF sG1Xrn23nJJUK7EAj+V7mD+6uXcK584tE20GRTn/n5gUrP08KZpzd7YwdVerSg09nnc5 lPwYXXfavFMuXIOuoswu57xNPHhJpq7vqKkJzS0GbfXTESrpkZqpofnXejdx2+9JSmOz kX/xar7hlFVDOf9qi1wgFinOkfPHEv8lyPxLvr/CegcMgt+1DaxhPDgymS8lpIoIvQqe yFMaUlMCfGDrJg2t3GpA6bNIUzjqB6Ueune0XQjYx9pjr87sxLCRj+7Oar5gbpRLGRGZ cWrw== 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=2Fc+yisSwfIomFrwc/B3SPRno9UwMqdBRdReCF0H+cU=; b=dspkAesd8DbFD6gTW1FYDMAy2r2SFp9ZKyyibYZH6jFQqIBz5VP8ZtY+Q01ID0afHH dD+TMDyhRZC2mvrrGLlwqWcfneoEZjqGHTO5Y45NPkHB1cSWHwwgI/Kk9EZFUn1NL9ez 2aCyQsvt85kSCBtKBtmx1Jv7mx7J4iUajgm5l8awOyGzEuOvvfl5WQR1dc4m7O86pfJD bgLhb1XOR6zBfMmGPzdbYzpL66zhVtFJ87pOXqZ1lnm8o3mgjK80S9rnsud8F4udktYh gB/hFUz3UxrH5olU+EqiMSjARhvBI2WSUZSSGkUj6x7j8mIvWJoFme9wOTL4oiQNZg95 nyRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cutebit.org header.s=mail header.b=Yy6o+PYY; 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: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id w21-20020a170906385500b007ad7a46a4b7si908039ejc.454.2022.10.27.03.01.36; Thu, 27 Oct 2022 03:02:00 -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=Yy6o+PYY; 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 S235154AbiJ0KAP (ORCPT + 99 others); Thu, 27 Oct 2022 06:00:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234997AbiJ0J7Z (ORCPT ); Thu, 27 Oct 2022 05:59:25 -0400 Received: from hutie.ust.cz (hutie.ust.cz [185.8.165.127]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 966DCA6C03 for ; Thu, 27 Oct 2022 02:58:47 -0700 (PDT) From: =?utf-8?q?Martin_Povi=C5=A1er?= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cutebit.org; s=mail; t=1666864725; bh=2Fc+yisSwfIomFrwc/B3SPRno9UwMqdBRdReCF0H+cU=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Yy6o+PYYi8oZ3I31rDpzKVL1SdeZHBdl66Nya8PTgGaSZ2vLqtl7m/cMeLkAJax9D PbuJVZB1unK+byWC+IIfwqpKvHFngT9LrP3fUn1yg7iZI0Zp5SE1TLjvRg+KjjUQbp Ej4kzqEICrdFpaX+62ZM3M0BMCKzpdGTfZqKwS3I= 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_Povi?= =?utf-8?q?=C5=A1er?= Subject: [PATCH 3/3] ASoC: tas2780: Fix set_tdm_slot in case of single slot Date: Thu, 27 Oct 2022 11:58:00 +0200 Message-Id: <20221027095800.16094-3-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 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747834551014170290?= X-GMAIL-MSGID: =?utf-8?q?1747834551014170290?= 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: eae9f9ce181b ("ASoC: add tas2780 driver") Suggested-by: Jos Dehaes Signed-off-by: Martin PoviĊĦer --- sound/soc/codecs/tas2780.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/sound/soc/codecs/tas2780.c b/sound/soc/codecs/tas2780.c index a6db6f0e5431..afdf0c863aa1 100644 --- a/sound/soc/codecs/tas2780.c +++ b/sound/soc/codecs/tas2780.c @@ -380,20 +380,13 @@ static int tas2780_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)