From patchwork Thu Oct 27 09:57:58 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: 11707 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp136995wru; Thu, 27 Oct 2022 03:01:38 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5ron0oOwBTMHwpvgCWiTEv5WCg8hTIYBEMEOD1piTZKzB02I/fb96qSRxrvaAjRdP/F5cx X-Received: by 2002:a05:6402:5107:b0:462:3014:3d73 with SMTP id m7-20020a056402510700b0046230143d73mr10541499edd.177.1666864898212; Thu, 27 Oct 2022 03:01:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666864898; cv=none; d=google.com; s=arc-20160816; b=WpJf3ywM99XKZTPDFSYrZIftBX2Xrtk2RRCKNbveL3LVUW8d6fOa8/QP9pMOTRYVX7 w528JCq/mhhn3PQKliIZtkbc47Dw+g8NPt2NwPX+SBuItz5bRvvP98/3RMMm5T0Xwq+g WYBOu4Yp5h73JWnGSyF1yIFN5p35fGIrnqpUhdja3HH3mWdr+lzuUuMOTLRF8R5vOuj2 u/U67AwmeuRCdpHnEeM6EWi/bh5kJ8oo4zq7uH8jJyiJUuhkRn6CEpSLBpFCgVa3Nn0S a7/JpGFt1KKZgX7A0E1iJMAY7iHN6RaRVcdZr64mzD7NyybGKRCJfz4/MpwdZHyxoZJ/ R43A== 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 :message-id:date:subject:cc:to:dkim-signature:from; bh=v+OR8wmZOIyovuDfyWeiLKf+QGSEMk6EcfThh0NrItQ=; b=iYyB4IMCFWrBwcFcNfi8exHGv5/IIZXdydiBfJv38lp1Ngz4jPI/Wzj5rMu5YadR4g FwAWVZGhV0lf63AuEq7j5WEpzYjaP0BNm+OV6ZBZisCozbo0lRe1U6Vhv2FuRfJU03mv a+byRcG/RhYedxSjswK07W9fPeHHemlxozwP69Ae3tpKt5oVHSSqz4lASaYnPG9uwLv2 puuCUOqeCT04LKL3mFYljwN5YySUG8ZGtSS+xMvgXMQQxyTjdiOgpg6bI7sagl9FEYi+ YuTSYXH/3yFEFjD8b6WJ256IjeXCxxSsk0OHKaw3eyMmmSzafafeF9YqI9THh+8Azzeq sxsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cutebit.org header.s=mail header.b=PDjj5tIH; 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 dt16-20020a170907729000b0077d26491a9csi1049472ejc.141.2022.10.27.03.01.13; Thu, 27 Oct 2022 03:01:38 -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=PDjj5tIH; 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 S234375AbiJ0KAG (ORCPT + 99 others); Thu, 27 Oct 2022 06:00:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234838AbiJ0J7Z (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 961B196203 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=1666864724; bh=v+OR8wmZOIyovuDfyWeiLKf+QGSEMk6EcfThh0NrItQ=; h=From:To:Cc:Subject:Date; b=PDjj5tIHERq38p5UkEbRwLtCxradDm2f7h9sxBb6AvbPSwVitnC3JaaFdhg+3wiwO VEe+GFIhFHI1ltppU24s4MkjJhNb1lW56ZBGVInqqHXRjwfPcYZd9IdS7ZDW8loYqB 1V3cWumqiXT2Bs9EO7gbLbZ2JfzeOd+vMmbinbcs= 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 1/3] ASoC: tas2770: Fix set_tdm_slot in case of single slot Date: Thu, 27 Oct 2022 11:57:58 +0200 Message-Id: <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?1747834527350084089?= X-GMAIL-MSGID: =?utf-8?q?1747834527350084089?= 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: 1a476abc723e ("tas2770: add tas2770 smart PA kernel driver") Suggested-by: Jos Dehaes Signed-off-by: Martin PoviĊĦer --- sound/soc/codecs/tas2770.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/sound/soc/codecs/tas2770.c b/sound/soc/codecs/tas2770.c index b6765235a4b3..8557759acb1f 100644 --- a/sound/soc/codecs/tas2770.c +++ b/sound/soc/codecs/tas2770.c @@ -395,21 +395,13 @@ static int tas2770_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)