Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp410455rwi; Thu, 27 Oct 2022 03:03:06 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5NH95jqaOW34Rxt9CXrPU2aKkeF2T0NkcLWMR+YcHi/JtLQGBPQe55tULKpXnc370se5ct X-Received: by 2002:a05:6402:4301:b0:461:96bb:b238 with SMTP id m1-20020a056402430100b0046196bbb238mr22822398edc.328.1666864986184; Thu, 27 Oct 2022 03:03:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666864986; cv=none; d=google.com; s=arc-20160816; b=t+rxAdz9MOotYr47f/9vcHGFaywsEn8e/9F76/WqdAhhyG6hgyfzL3vSk3HzaqWx5X wB5YAZWJrUr0JLHCWOk/ZMYLdhCqg9i5KnzjcJym6vNGfLCdALvXiP4Df4tZosH2JJ7n JKJw4yL/oJb37LRxDbHRDWOis5Z4nQ9zMvQRxmU2M+EjklCgsrd3Cubx09RSUztyi6o2 562Ty0LFECMajqYjv7wJtymcCN6FolqplhB4Ec7qTpB/sbCO8H7+2F/yUjL4OOVlp67a vdrc0SiJlG4kmX31O6JMjbLBppcRA00R8T+ow0nps0KyUiD6xfac8XAyIl6cDMjEH3ve 7lZw== 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 Return-Path: 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.02.33; Thu, 27 Oct 2022 03:03:06 -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=20Povi=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=20Povi=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 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_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 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) -- 2.33.0