From patchwork Thu Oct 27 09:57:59 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: 11706 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp136969wru; Thu, 27 Oct 2022 03:01:35 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7MFnDG3iyLDxfHqgEvJHT7i7PXQP/PREcuy16T6IN+bcQ+g5ukq5ZNhtbo2UR5Eh3A2X13 X-Received: by 2002:a17:906:fe46:b0:73d:939a:ec99 with SMTP id wz6-20020a170906fe4600b0073d939aec99mr41902134ejb.169.1666864885567; Thu, 27 Oct 2022 03:01:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666864885; cv=none; d=google.com; s=arc-20160816; b=ylebEnApmfLEaQ5Tge8fMnOxNQL7GcYGNdWnCdbq7CcgTnsLWyXCxICaPqj1T623V/ yhAnFVB+jIpERRsNhttgY1UT0+mbbrvrPSlt5Kc2h6ziARjL4FKBVPUcVgVvO+ZcA2/S lW1wUp65YvPy3qhn1sgOEF6AhWFzfuyjBm+Gx/edSuJoiZ7iBr93Yubllt0+LgQl2nnn IT6DUCFV/BeK9hTHF4bbE7VQf5g7Tn6HA9GrMqZLrLZax1YulSLtCKDVZ2xveX1WA4Zv Nrkwt7lLP+o0CKOJ3LlqX0bkY0PCkKPBgUwVNwv9Whl0b38VsQ5kSHAmTFFeMYlK2bVy 7Z4A== 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 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.00.59; Thu, 27 Oct 2022 03:01:25 -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_Povi=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_Povi?= =?utf-8?q?=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 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747834513919026768?= X-GMAIL-MSGID: =?utf-8?q?1747834513919026768?= 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)