From patchwork Sat Mar 1 14:23:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869782 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA2881E0DEB; Sat, 1 Mar 2025 14:25:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839128; cv=none; b=paA+xThdKQ+OhIt/BY1JvDcnA9tZmR/1MdFwZDDSqHm7c/ci3CzhWa7Vgpq7bZnhwCK2kOfCT4olCXzOTkTPvYzlOuUzjlJufAN2Ak0oZSkDYpTATSGzOJ/j0sAPaU9lIWJDofhby0hUABKs4NOdJEPr2kvLfZyQjGAStBQMn4c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839128; c=relaxed/simple; bh=ba2kUP6U2nQhwPc/YT5wm25vzRDR53W9pxGrlJ+24E4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hwPQu8U12uYNRyu9E20Ax1nYFnRRmO0Y/7/C03KXd71K5slr3OVjtsqzYnXbuHww2TNVrqk1GbvKyHcdnASvzEwZuzHOtaHJfvMGgym5KDj/SAy+Ao6bKPthTv/Q4CsVCjFT6fhoggzwMIgXn3cMkuo/pbhMLBj+Fwwy8Y00JdY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Udp6PF9O; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Udp6PF9O" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-22374f56453so33955975ad.0; Sat, 01 Mar 2025 06:25:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839126; x=1741443926; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JXn6GKhF5PCrQUxpPI6cKx6cLS6wqLkAI6AcaLhK77k=; b=Udp6PF9OBFT4BFNijpgFvxxM/4YjjDk1D3/aVSTk8BKAg83UKEU403QZO/GWUu0LIZ FklY35ZaS3TkjZpYoVpL90hXLGJbwRnt9ooSlC4NI7HT4SMJouK+zWPMCBgQ8ZK9nxj2 66LwRxzPcnSxQn66srJxzqbzY0mhGApR02ZXPJBp8odLLVk4rp5y/++4sE44OxkYkW46 P1AHzseNS/xxxOnJlS4HaYsB9bFg2g1UXJmzmUsUeCwW4C3x2IZhiss7dfpdYctJOEez qhITyWBBpka2ItJU80U4M1zHxKhubgX6O2GmU5JBANjM01VkonaHjYvdwLnWmlm/ovEr 2SDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839126; x=1741443926; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JXn6GKhF5PCrQUxpPI6cKx6cLS6wqLkAI6AcaLhK77k=; b=h2w9mUoeNEQuXRsn2MIlrOi01lh1B5qfHcQ2jr8B1f3VlBNbxuF7VJbpqH+B3H71Ya kcJpzFH58pRRssoRYneittz7hbcBl2HmcrVpNIJPaU8II/R5dfmTIm0qIXIQC5JytBOi MibxiJnlZWwjcKweVHdlUtvKW7g4cbRRwiY/sM5I31lRNroLQrb0N6Q717YiY/gzNp5C g1fnY74pry2J5m+cVBpO/TYpI9a9zNqrNBzOXKyzSqpFmXBr/8nKB8+syMBIxssqrRu3 Ocjq811i2C8EJRhtvV0QYPlmDRWGOzY3+8DXhoGVXv39qb60Yt2xjFwkSjeapqBvVBpP H2nA== X-Forwarded-Encrypted: i=1; AJvYcCUOSNDYOcGjdx3hv046YnHhmSVKF8t25tDzbv168AoikVvZiXtnFURXWcFtWXUsea6zvIU=@vger.kernel.org, AJvYcCVA48pG0eQt5IRe6xiWTSk4m6DB6iPVHjxDpGuEz+D+9LVu0/E58ELK3qjaB1/rKxq1Ttt/9gRP8yvP9DepkOc=@vger.kernel.org, AJvYcCW2AJJVOVCe/JNt8r+nQ4KkQoI1eWK1PtAfenyMid/UAWcOy8GKHvGH3FbktAd+OGBHBPQhXx157wMCnXQ=@vger.kernel.org, AJvYcCWelHCpHxGo8jNZuEJw8ko2s+i6wOfNhbrzo1hlkw5PRqlv/83coRzoE9Gq5vhOnLe7tcD916e2Muclobao@vger.kernel.org, AJvYcCXESg+tl1nOp6QkkvtZrocbKkyoLe2Hgx7wobGabfShskSwOJllPefA7WvieoEF5W/wsdJLLwqV@vger.kernel.org, AJvYcCXFZE7HFd33tneczSLiYTGj0lTEF+6bNl11e6aqL3sQy3VN82+p9g1tc2Vf2dvFU3fOgSE/hTecDg945gI/@vger.kernel.org, AJvYcCXfyRf1dyMAggMocE0g4GFQe5crAvNSXboISqwX+9GXNeqOR/291VOM9+lD+SHDGrcvyre37CMnC68vBm4=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/ITDaIDcFhG6stfcK24Ksi2beCeTbZVOOcIwmEXy17kUUhmGi lObUHdcL7erw2RRjXsidVt0eRPs3Uj/kJFnuLNpfP+BrLv6Xhwtp X-Gm-Gg: ASbGnctwsndmh3eKYrEIHv+w3EADDf77BIea+NVr2BSzBfbRxa3x8xb2HE/7brK28ec fzPWZgHZ71WXJoMtqZkZsctS3UlYpLqp6E2Bc0S0NXhYRjoaX69IyiWeKKkfKB9t1GKe3TlG105 dBApKu9f+v2luYAwJ9JjkRAUC3XOElN2ZhNrhZ8Uv1OPyqHiBPPZxhA/sHMDufIB14VugYMn69c uboFURWvD5wRHzX5HeCGSFSMH17zMSHlmJg/Xtl5jfFFBheqFJMgGSCdDyTDGFa+RotPPLBtDLl m2JQmLcHCNemHSRoKw28wT9SHpmsjGLmqhuxPw7QgL2xRqBO+jOGQbIHdmmYioGYP4f6ZJdrE1g = X-Google-Smtp-Source: AGHT+IF5pURPLoHQQUwY6iobOMXaj/n4QtZUV4ZbycQ+e8lZRNMONMXX28RkgoVRrFQeanZPW34ebQ== X-Received: by 2002:a17:903:2346:b0:223:635d:3e38 with SMTP id d9443c01a7336-22368fa24bemr111392555ad.15.1740839125810; Sat, 01 Mar 2025 06:25:25 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.25.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:25:25 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 01/18] lib/parity: Add __builtin_parity() fallback implementations Date: Sat, 1 Mar 2025 22:23:52 +0800 Message-Id: <20250301142409.2513835-2-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Add generic C implementations of __paritysi2(), __paritydi2(), and __parityti2() as fallback functions in lib/parity.c. These functions compute the parity of a given integer using a bitwise approach and are marked with __weak, allowing architecture-specific implementations to override them. This patch serves as preparation for using __builtin_parity() by ensuring a fallback mechanism is available when the compiler does not inline the __builtin_parity(). Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu --- lib/Makefile | 2 +- lib/parity.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 lib/parity.c diff --git a/lib/Makefile b/lib/Makefile index 7bab71e59019..45affad85ee4 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -51,7 +51,7 @@ obj-y += bcd.o sort.o parser.o debug_locks.o random32.o \ bsearch.o find_bit.o llist.o lwq.o memweight.o kfifo.o \ percpu-refcount.o rhashtable.o base64.o \ once.o refcount.o rcuref.o usercopy.o errseq.o bucket_locks.o \ - generic-radix-tree.o bitmap-str.o + generic-radix-tree.o bitmap-str.o parity.o obj-y += string_helpers.o obj-y += hexdump.o obj-$(CONFIG_TEST_HEXDUMP) += test_hexdump.o diff --git a/lib/parity.c b/lib/parity.c new file mode 100644 index 000000000000..a83ff8d96778 --- /dev/null +++ b/lib/parity.c @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * lib/parity.c + * + * Copyright (C) 2025 Kuan-Wei Chiu + * Copyright (C) 2025 Yu-Chun Lin + * + * __parity[sdt]i2 can be overridden by linking arch-specific versions. + */ + +#include +#include + +/* + * One explanation of this algorithm: + * https://funloop.org/codex/problem/parity/README.html + */ +int __weak __paritysi2(u32 val); +int __weak __paritysi2(u32 val) +{ + val ^= val >> 16; + val ^= val >> 8; + val ^= val >> 4; + return (0x6996 >> (val & 0xf)) & 1; +} +EXPORT_SYMBOL(__paritysi2); + +int __weak __paritydi2(u64 val); +int __weak __paritydi2(u64 val) +{ + val ^= val >> 32; + val ^= val >> 16; + val ^= val >> 8; + val ^= val >> 4; + return (0x6996 >> (val & 0xf)) & 1; +} +EXPORT_SYMBOL(__paritydi2); + +int __weak __parityti2(u64 val); +int __weak __parityti2(u64 val) +{ + val ^= val >> 32; + val ^= val >> 16; + val ^= val >> 8; + val ^= val >> 4; + return (0x6996 >> (val & 0xf)) & 1; +} +EXPORT_SYMBOL(__parityti2); From patchwork Sat Mar 1 14:23:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869781 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 23E891E0DCE; Sat, 1 Mar 2025 14:25:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839149; cv=none; b=PCDYDJdzHvJDXkSW2cOhifbh1DZJWIXU3xLKmmnDh3KZ8bkkvvG4S38wU4kF+yrAT1lTLkDixvbSGXe0xJFMSYSmJmDn3+im37ZalKtGZnMGToGM+7E4iUtauQlIxss+BYEZfjPjqhAZ+IFuA1l7stVcBGOaQE+X6gS2G1QghLE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839149; c=relaxed/simple; bh=SGs/08YH9pzcyzj8Hy5T07XyaLzA+LXAm2VV8KsMYOU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=m3Eu4rLfgRMKd/bFgl6wyjefxd5jmubZFAQ701fF5BY6aOq2Ng5Y2iwsJx5tb5sSnIjON3alRF4uSPFfwkZcLQQe2BkEhrglcP4l469exhNlw7SPDy8hNSm7+84Sr6BuMZKZAmXedy7hIro+ir3RQa73fqaijRsGvOS3ki2YtWI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QhpUguZd; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QhpUguZd" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-2239f8646f6so61335ad.2; Sat, 01 Mar 2025 06:25:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839147; x=1741443947; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kWaUwtVpZP3UXTpS/tFZiOQ6e7YZSypzh2SSq6Q5dUY=; b=QhpUguZd9kmmpvDh7rbmgc+XGPjBhRA4UJgqzF90rXoRb/mv/c6dPtLLlgZqmBeCd7 HXlN0ngiCT63NX2YiaGZM+X97APmpymqh9Wl5ydCe2JJQBtAbs9CfMmHMqPutUZSyBiy 0qm0n4YyQ1xNWits1cayGiZeiUFZhKHYRqgrr8CgZ47n97xvC/plzGgPOUoklJwsp3oz oADoMHJ9zcVNotGlFmeYiuceJC09zYBM40pd8Gk12f6CmuYm/HCKid0+q3z93XPENXu5 NjkzYjzgnOPWIJP+ms5f/uvVJ5bZjPQ2tvU0RdnryZVqYTy38HSodCixidK73qxkJ7MP iIfw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839147; x=1741443947; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kWaUwtVpZP3UXTpS/tFZiOQ6e7YZSypzh2SSq6Q5dUY=; b=WBHiYdfXl/3K2igRsHakhZF4OnWbmfKaQiXHsWe5p7msTUjtp2HLrKf4QbgeHNjSZR TgRJ3iUrWO4UTD423Ra+gpJ00RtIycCz0Ev2dFdkoanbX8W6i7kdD1+UmZysq502vMkS Z3gElhcand9CmlSUsAS1ajxDWAgCkr9Mci4xQYkIkPihJCKPMF/JHTcIjDz7pg/XHb2U W5terPf9yznjBmTpnLEf8106dqbzSvOqWBquXGkbHn+yT9ZBJCKZErFsWy39GNa56ja9 u8wIB93BhTle9ShYDhAf9iPV0SxS3nZjT1S1mdh+eDRbdAkiPWGu7mOp7T5fbyyI5ZU3 38xw== X-Forwarded-Encrypted: i=1; AJvYcCU8qkCBK7AJwM3gTlSjlKyMvUqw7DDZHE0cOrnORn/W2jpYujAd3sGnWBwfOM3asOPVgIlWrN8274wDWiKZfXg=@vger.kernel.org, AJvYcCUlXAS76cbOIr/U0WrwEn7Bogf0AVERhfaHZYz8BZmyEHHBD7MwPnCAiNZjU1QN4gnKqmY=@vger.kernel.org, AJvYcCUwHFHaFQ0156X6Y2M0PQnjbwu0axmjT8H/436Mza/PebzLXoCBMwlqPVdEO2rxh+5XSKFfc+rvwOl5V0A=@vger.kernel.org, AJvYcCVWvSn2Hpl2zZZ9kjOs9YzUFYuGwxnzKmJWYQxG8WFVKIJhVPxbLB+fh8oJktFyZVAK96aOk92r3V9K8mvI@vger.kernel.org, AJvYcCWv7FpoH5hB5RDW/bdKVpifcxV6TwByUIs8II4CRbd0l7GEV0C4QbNsn8zPCmJrF5bjrIUgME22@vger.kernel.org, AJvYcCX4cAmM63I/eiwjXh5C0NGjyqcfx8pWZx6Pxqyp9aTCOzl3DgrWeSs+WYItftvp+XIJlxo+8sSSF7BAW8LN@vger.kernel.org, AJvYcCXADq7eT951texCVNKLyn5fs1+PzZyiwqL2aSGhJDczibgnXoJ4x9T1SJK51YrGjHv1y7qagq2AFgNiFLs=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9g7BaaZH9a3vZu9DeXQu0MT5kUCrESJUeBNYB9tFYktUjXMHg Ot1GiIiqx+UTuF5C8iE2yHIGNIZYUCEQTT/ZOjpyM7M016UMBD5w X-Gm-Gg: ASbGncuJ5AXzYgNFJ3OZtEXfWJHutDdqSxcG0TCGlQN0GDqbdxtX0fQ4vJd90vbxPnZ gKV900RGz/SpxYlW94sjCgYbyfZqJ5N3kGP2UsyqhtRuPH1+mY1/H7cHTRZ+9C9O8bGi/q8r93t wzTsSYvrfDN/GZWnxU5t1HJLyybF0o/9p/I4sDFdjusKvkmEkXst5plijTX9Sh/trrFuEjpoudt 9PP34n+ld8gvrn92kpgvm/uf7HMR0V7+QzDmjS1Hl/INagh0JjZqVyz+4jVu48OU5SHisoSZHu6 98Fro1/nFOkld133WIqUJoNeIyydj7ncUr3aD565O5rSfXExt6r2+/JWajAUGafdCa86p0k7xoA = X-Google-Smtp-Source: AGHT+IG6ecfCPGcNZUMHBfcPl8yc5atQiQ27orXscqjAcai4Vvxl2x3xemsSJ5TeQh/ex0SazOZMFA== X-Received: by 2002:a17:902:d48f:b0:21f:507b:9ad7 with SMTP id d9443c01a7336-22368fa8f1bmr107105175ad.25.1740839147356; Sat, 01 Mar 2025 06:25:47 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.25.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:25:46 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 03/18] bitops: Add parity16(), parity32(), and parity64() helpers Date: Sat, 1 Mar 2025 22:23:54 +0800 Message-Id: <20250301142409.2513835-4-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Introduce parity16(), parity32(), and parity64() functions for computing parity on 16-bit, 32-bit, and 64-bit integers, respectively. These functions use __builtin_parity() or __builtin_parityll() when available, ensuring efficient computation. If the input is a compile-time constant, they expand using the _parity_const() macro to allow constant folding. These additions provide parity computation helpers for larger integer types, ensuring consistency and performance across different bit-widths. Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu --- include/linux/bitops.h | 63 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/include/linux/bitops.h b/include/linux/bitops.h index 4c307d9c1545..41e9e7fb894b 100644 --- a/include/linux/bitops.h +++ b/include/linux/bitops.h @@ -276,6 +276,69 @@ static inline __attribute_const__ int parity8(u8 val) return __builtin_constant_p(val) ? _parity_const(val) : _parity8(val); } +#ifndef _parity16 +static inline __attribute_const__ int _parity16(u16 val) +{ + return __builtin_parity(val); +} +#endif + +/** + * parity16 - get the parity of an u16 value + * @value: the value to be examined + * + * Determine the parity of the u16 argument. + * + * Returns: + * 0 for even parity, 1 for odd parity + */ +static inline __attribute_const__ int parity16(u16 val) +{ + return __builtin_constant_p(val) ? _parity_const(val) : _parity16(val); +} + +#ifndef _parity32 +static inline __attribute_const__ int _parity32(u32 val) +{ + return __builtin_parity(val); +} +#endif + +/** + * parity32 - get the parity of an u32 value + * @value: the value to be examined + * + * Determine the parity of the u32 argument. + * + * Returns: + * 0 for even parity, 1 for odd parity + */ +static inline __attribute_const__ int parity32(u32 val) +{ + return __builtin_constant_p(val) ? _parity_const(val) : _parity32(val); +} + +#ifndef _parity64 +static inline __attribute_const__ int _parity64(u64 val) +{ + return __builtin_parityll(val); +} +#endif + +/** + * parity64 - get the parity of an u64 value + * @value: the value to be examined + * + * Determine the parity of the u64 argument. + * + * Returns: + * 0 for even parity, 1 for odd parity + */ +static inline __attribute_const__ int parity64(u64 val) +{ + return __builtin_constant_p(val) ? _parity_const(val) : _parity64(val); +} + /** * __ffs64 - find first set bit in a 64 bit word * @word: The 64 bit word From patchwork Sat Mar 1 14:23:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869780 Received: from mail-pl1-f170.google.com (mail-pl1-f170.google.com [209.85.214.170]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 44F9E1E0E0D; Sat, 1 Mar 2025 14:26:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.170 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839169; cv=none; b=E3ml4ecgTeF3lchlGi18702Vw0RKiyGAiVtvb+dAl/0jrSt6A2CQV4Zjp3DoL42yr61c0zi4thIvu7RKdS3Wc+Rc+icT87uXKk+a6wmXrXdtYWDh/YV19AW6e9xEwTMSfJgzTm7pDfsMVaU7FI6GrJQOEiFaqipXJX3UeU48qbY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839169; c=relaxed/simple; bh=JIGbdj519hBofglwm1x6Wa4PWHJoF7xJSHZGDTpyM6Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kyMkD9ARmK1eJNItUVzTAk2CZk/LSWz78ShhE5kP+v7fbHLWB0dgSvZwlAthO0NV8RBWFpUF+ULIwjYeaEfmoLpWYu55XEzPOUD2dkPeB0+pIcEn+uUfvSY5+sc4ZbjO9gtHkkhjKtwGoASMVm+Mxz/ZxTETzEcmkXVhcB2rQAE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nfMxiw7A; arc=none smtp.client-ip=209.85.214.170 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nfMxiw7A" Received: by mail-pl1-f170.google.com with SMTP id d9443c01a7336-223378e2b0dso44908215ad.0; Sat, 01 Mar 2025 06:26:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839167; x=1741443967; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=r0Ho2aCKNYfg5T/o22fFzxZ+UyjSx6Fm0wn6W8o8Gr8=; b=nfMxiw7A6eBAG/6id1Gu8ZeAT4PW3mnHIZb4/nvo7+Bo2JVVnl0s+JZEKekzh9dbBb cSd9Zf9ZjqdwCuhdNS/yIDCCSBycxCKs/lBAYPaNkdKLDFT6nM3wt8y6MH4nrv3+quN3 ggMYzg5wFsbuVdOAFgL3gGPeaKCiGf4lfhdSiGZxpgA1nWjRwcOTo31f8p5B7IfOk4iz GFveQf2B/ddgch6H3+eF4HlnP/vuWo7SQHIhiZ7n/P3R94ZGNw/SuR6JzQhMmGf2psPK 8k9w0+0nvAadUDp49syY3Od5Ky+vOquzeIqite25jwYkaEd43jaSFTVPsbKIlmgATeOH 7KbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839167; x=1741443967; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r0Ho2aCKNYfg5T/o22fFzxZ+UyjSx6Fm0wn6W8o8Gr8=; b=FYfPO3hy47f2aVwB+D7QRKKltYMRVGDwiXDTBJGR5bcTB3sIBkERSQchXiLkRp6Imp aUSEjEvAu5LmxNAqoznVlELszWAukkejF1rMcvVSqFXwhQZokfdX11kf1dSTCejxKkdg 7KuilEQ9r9Wd88AiMNyAsGhRaFMzVV/t2HupHqGlsgARZ1Mw3ytsjRC832bfNWzqkus2 lwU9ICcSTk5yBz1csSBjXGZ4w+Lt8UfCa2V3C25kt0syMcVkf6Y4Wbd8eMLQNIbIo/3q +csHqHIQXOVifc1ZSUFAD4kUE0xUDrOcGe620IN9AHsXi2H2kCacd1a4kYRHBpwCF8Jj T5CA== X-Forwarded-Encrypted: i=1; AJvYcCUSqheUYDnTgSThS1KV6u4PvsO5qQfuntXz+kvbM2ru1NRURX3QkjiBErJD+IobOy3ZaxR+2q3H5kmX8NM=@vger.kernel.org, AJvYcCUdhVHi8jnIyuMtrFZmFAg8nFavai5PoskqVPqCm/g2++RVEbn4PuttEDadpxnAzhtSREwN4uefn8x/1j8=@vger.kernel.org, AJvYcCUrLM1j7ywN1Ue0XgX1uu6GVEAW3wIEFNztV1kPfzPnPVPmmWOi39ps1gMZ3FnHTVpnHYdtbW/A@vger.kernel.org, AJvYcCVtdak7p4Dp2o+qvPLbckLsl9Hp3JVuTr7QFda2DB0+2ixeYfcObyCnlvnpNzpg3iJR/eaQwY19oc2mbGlm@vger.kernel.org, AJvYcCW/NpnEB4OzQpIgTQwBTeyPlBrTmEWKhz0BmXyvANwwr+iWZNshmv4awBdQDqKRB7gT+/c=@vger.kernel.org, AJvYcCXsjaQ8Vmw2A7pmHN7p5Ixm8eBF1flDojD30Nv4uoUhDDX7u7lE1Mc4yOJKhuiVCgF/GSdgMJZN8opz3OFE@vger.kernel.org, AJvYcCXzLA6poHH+A8sc8x1GqZtyjYuritTxBagjpA3IvXR3MFahM1nf1E6cy8puMDPoICTvM6fX/Pst2jFHvVonbh4=@vger.kernel.org X-Gm-Message-State: AOJu0Ywz8DPpZi2SK9Ogmm74e+zpNd/WijD4+T1SvJ8g5csxEWUM0dHv +f5QvY6r4lHhdE444tbYQA1wsuA7xXV/PLZ8R+QEoJCXfbdF0YA+ X-Gm-Gg: ASbGncu2cLa95eURmesHsUvziYuWAxeye5KJgmzNuBDHAvyQ92X+dVLIXQRU19KW/v+ uGwSbepy2W0XOGGDYkEiRUCFLCn3ZE7t4k5F1tT/f4av4rS94rqbkNh+7K6kUWU+Lr4aqH0/Hjg 1Ro2PXFJWYzSkbf26FXiMy0ACiWhn6OsunORkj9cMtlP8m1q2vML4VNXHad7M1hn7gw1KBYyPdp dfUwbgNeNEJxgM7WjUZ9fDyyFUNvyYyxDoFDuo63XsA9nB8O/7pCk72k3JsqG0xdxD0J726J9CM nabw1UcmUR/1rAIEiKh+xBp9toIA5EVKK9w+nHF2E2GQE1NfmXajo5ZCcC4JqRwGDUNGxt5m3gs = X-Google-Smtp-Source: AGHT+IFTfohTxN61KiiUMR75yyegIVFtOgTpaXboBycWTn/wkpOLO86TKXx34bh6gLZ1DoKzx8tYbQ== X-Received: by 2002:a17:903:fb0:b0:220:e7ae:dbcf with SMTP id d9443c01a7336-22368fc9332mr106296855ad.23.1740839167480; Sat, 01 Mar 2025 06:26:07 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.25.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:26:06 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 05/18] media: pci: cx18-av-vbi: Replace open-coded parity calculation with parity8() Date: Sat, 1 Mar 2025 22:23:56 +0800 Message-Id: <20250301142409.2513835-6-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Refactor parity calculations to use the standard parity8() helper. This change eliminates redundant implementations and improves code efficiency. Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu --- drivers/media/pci/cx18/cx18-av-vbi.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/drivers/media/pci/cx18/cx18-av-vbi.c b/drivers/media/pci/cx18/cx18-av-vbi.c index 65281d40c681..1a113aad9cd4 100644 --- a/drivers/media/pci/cx18/cx18-av-vbi.c +++ b/drivers/media/pci/cx18/cx18-av-vbi.c @@ -8,6 +8,7 @@ */ +#include #include "cx18-driver.h" /* @@ -56,15 +57,6 @@ struct vbi_anc_data { /* u8 fill[]; Variable number of fill bytes */ }; -static int odd_parity(u8 c) -{ - c ^= (c >> 4); - c ^= (c >> 2); - c ^= (c >> 1); - - return c & 1; -} - static int decode_vps(u8 *dst, u8 *p) { static const u8 biphase_tbl[] = { @@ -278,7 +270,7 @@ int cx18_av_decode_vbi_line(struct v4l2_subdev *sd, break; case 6: sdid = V4L2_SLICED_CAPTION_525; - err = !odd_parity(p[0]) || !odd_parity(p[1]); + err = !parity8(p[0]) || !parity8(p[1]); break; case 9: sdid = V4L2_SLICED_VPS; From patchwork Sat Mar 1 14:23:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869779 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E7FF21E0E0D; Sat, 1 Mar 2025 14:26:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839189; cv=none; b=fVSuUrshaoaa2bETxesUi1Naf1Rrhb6HO73a8MZCgEtHOSlWmbDtlnvtYesL93at28gy8LY+y5Wnz/3MmWPxgcJocF/5WBqt+Ib98kh6XoHbshIg9uGdB+tFPczYVs/U/8SDT9rd5fsVhuLUeuszkEc3RJcy4RoloiRGIYh4fiI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839189; c=relaxed/simple; bh=fpYEQHVmom7fh6D/Q1MDqtnrl6Xu5v8oqKaAQat+kYI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=nGZDiBHcor02l3yiXYy2zCRF6WXhLFvZoat/ELshWUCNsNcDG21p0DpjlpxVaRqQEKhTCMq8Ot+MvJQBDoa/tHyh/W9Ehlzm2Rhy+kD1+V7XW5xgAgm3A/2fXv/vvQhDId9eTdh0E4DKCfJx8p0GdeZ629Iuk5HbzLtX2Q6ROGU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=XDkziE3I; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="XDkziE3I" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-223594b3c6dso51918675ad.2; Sat, 01 Mar 2025 06:26:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839187; x=1741443987; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=hp3kGqc16FF01of4e/8WmkeqsdCblTk7qrBu9qHKlh8=; b=XDkziE3IP4A6E64xMhr765g/non2Ln+M5KjDeulP2jUAEdwTi2V/apuQyL5IZ7rRjX je1pgVKz7D4zoUJcbUhcdZDgNvbkB2SLYFwLZ3pxuc93vhcTdUsKMU/lzuokTHZDsY2w 3/hYCpjXBppFP/4O9n/tTc1kGbDTK5bKh+EsjO5fUV4LxnsXNsQTzZQhHEZ4szRreVh9 8Ke+WtLnH5p0Q6cxk3mL7ivDtbGBbzEC27IWajiQlgf7Duo5+BtWvccL9h48ZPlgyIHO rePmYS4hoFmgYgx6EjMC4C3rcuM4sk0jQzJDz/zmG0obQzU3TlWs0hRjterF39Z7WS9v GMdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839187; x=1741443987; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hp3kGqc16FF01of4e/8WmkeqsdCblTk7qrBu9qHKlh8=; b=aecsUtuVl3rkJwBP/Gcle1cpsLHuRsoDR+/8fyflYSBtPU8OMQFGLiYPM1dKu2VT5x qZhZyi4dvgj4fHGSIja79pCxfxirEohQ+wbktGeLf7LDhGdrYSbab6UXFksccXoDWPrE cMMai61ZgjCivbhCVTPhI6+03uLyGTHxx2Cxpf51Nprsfz11FUBOzFWB136y8mkwGPE+ lXX4RxacWGW90om2roGJ0Le8Zvq0YcnNZXgElh5KK/tXIuKFW8yuf5TYuD4C6MMQVscv jzZM4u1Jcax8n8K0zw3zpY2W/SpoV4+W7DgpSkqEaMFRfWyiyBE6L+GfYEBeBz2OG9b6 Ib8A== X-Forwarded-Encrypted: i=1; AJvYcCU71szTG6jnxFkT5EBQaOdCiZHLLN7LLc7Ii+mjwyxN8oc+ywzvDST7kYkt4EGhd0MyuhSHgAlkoYQF9e04@vger.kernel.org, AJvYcCVAtR1PBBoFhC507j2wBMkYOWms+z94V6wtqqNXBKIgjzGaq1Hm7qsDxRnOuN/GhtnryMGXnLSS20lHscJYZgM=@vger.kernel.org, AJvYcCWXQaVtRutCNAc+a118rVFGsYwqOUXoRnmgO+w1yvxhL8qXcOxIEsQOXNSIPAMufva1VRI=@vger.kernel.org, AJvYcCX57v38CWyptd/G2op6swXdhOiiNkcBezDlCKfEoChibCSH43abbLX1ki7NhJaxkHNTzRTyPhok@vger.kernel.org, AJvYcCX5NyWUtEaIn4JzkEjcji9fyvCUphPEtrPmgYxqfcp8BDmVUp2TLWuD4mbSHIEzaEz9BHvtUJ70RgvR1G0=@vger.kernel.org, AJvYcCXCwaLsTtjQNco9Zxv/ZCnFsFHQ/6+kSuEOksHYtzuefOVMNmnJpuhoHTW8lQ470c06AWZezwccXkD7WjQK@vger.kernel.org, AJvYcCXReJHVcrfUHL9CaL3qLAYFwuDly+QDzkIGV8+EnmzGXsQdVdJz4w6othP4vLcymSHkZg2n1EvJVcKrFZE=@vger.kernel.org X-Gm-Message-State: AOJu0YzktQrzboXZ0PmbLSgSR9I6xb+u7WYoKYWioqjh16BqUr7I53N0 dgtLe7Tycud+oSRs3YRPIjWyHTTOPnioYmpk4UYJt52TxjMSG8s3 X-Gm-Gg: ASbGncszr7xph+POQgLi9Mj6kus7tHhtnChONsdwIq4a35BBrXZbm1Ax7VlNtAkR/Rd z5wznhoYuaTlnXUD5xcIGVIfjdWLyCqHyaDftKFuO443kTkZXS6O2snXH62ldys8LOA+cfRRV6+ eUKCJG6S4shRVQufOeeLimbvJt6weM4dZrN4qR2WwX3/bWBbfS1jc5ccaM2kmLAzEgKY9W+h0+I DjxY6f9bYAlSLvmt7kLyJ606+BMWLuClS9cGYywQ5T8vbaeCxNW9PYZ/eFEhTskjS5la/meDbhw SRrvD5ytXTjSSkaE/Fmn6FdUJ4twmXIq8OrVX7VcLtpBYMvx9N6ocFcJhllF5sYg0X/ao1pPW44 = X-Google-Smtp-Source: AGHT+IGHEYprq9u4C7FchZ9I6Y/Ibnse4qNPj1GVk/AdnINX25zgN7NgXyYUydYVyaa9stUlYFgdnA== X-Received: by 2002:a17:903:198c:b0:220:e1e6:4457 with SMTP id d9443c01a7336-22368fc987fmr121177295ad.26.1740839187181; Sat, 01 Mar 2025 06:26:27 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.26.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:26:26 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 07/18] serial: max3100: Replace open-coded parity calculation with parity8() Date: Sat, 1 Mar 2025 22:23:58 +0800 Message-Id: <20250301142409.2513835-8-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Refactor parity calculations to use the standard parity8() helper. This change eliminates redundant implementations and improves code efficiency. Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu --- drivers/tty/serial/max3100.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/max3100.c b/drivers/tty/serial/max3100.c index cde5f1c86353..3b05ed113a67 100644 --- a/drivers/tty/serial/max3100.c +++ b/drivers/tty/serial/max3100.c @@ -16,6 +16,7 @@ /* 4 MAX3100s should be enough for everyone */ #define MAX_MAX3100 4 +#include #include #include #include @@ -133,7 +134,7 @@ static int max3100_do_parity(struct max3100_port *s, u16 c) else c &= 0xff; - parity = parity ^ (hweight8(c) & 1); + parity = parity ^ parity8(c); return parity; } From patchwork Sat Mar 1 14:24:00 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869778 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 580411E1A17; Sat, 1 Mar 2025 14:26:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839211; cv=none; b=JW64SOVPmrTzZdQZaYZHniZ5ATmnFGf621hD1NCKg2gHBZ5DbnhRLNZXE9pGWzJtR9723HyUabe8Q6TzxG24T4L3xxbxD99jUFuptcCfk9WcMicwnzrtM6kC+w+oAZChIY4RfWjEZ1pF+bJfu5lVW0gfhlKKlzKFZaM2pdEHvFM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839211; c=relaxed/simple; bh=1i40o1s3Vqdk2RW0JIo3piubrRjz0Cy5aa5u5siB9VI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=oca3wzNcyQeW6mSPqnd5wN+7/pjiu2JFC7u+J8qgPPBOTbK+77sqgpU5Kxonc/Nr8pV9NYAUUzulg/FBP3KswaFPN638AqgROtZxZo7QCRnB/ByYc2QIRPZFTENsrTxnhSdo5ae4tkFU9ssXwvJ+Nc0TOjtl0HRWXpRupfCScKU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=EqOVUYIa; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EqOVUYIa" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-22359001f1aso67247295ad.3; Sat, 01 Mar 2025 06:26:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839209; x=1741444009; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=U4Bkihj4DGACHQctYAnhtp6nEz1RGAPDBfirVsTzUzk=; b=EqOVUYIae3gMpaGYvOBKkUlHYkUTqwad9THvO6MgAXPVm1mLvahNKYCAN+pKq5jLEO xjakz7OXMSvZFrtd/O+0DwBZDC/7561ydpV0OssDU+MVdiKOkgQ/AkG1Lo8PS6USzZ58 C21BqmTXtSbE9VFw55mosgguh94Ri6/xXG9v1DlosQ7F5Yu+m1YpOGuzB+FKR4HmfXgl cCCrP0auRgHw/lIlzi9IosDALf6Y0uzyDss0oYJ/VeaHZWkSQ6X0bJU+d8ySTAD4JdP3 ItLKAQwkjpc8AUDxjwPFI6VoD6DZTKpzpy0rqG3zCyzmvHLRTLAfUNWvoL5ES/M/lvTn TIHQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839209; x=1741444009; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=U4Bkihj4DGACHQctYAnhtp6nEz1RGAPDBfirVsTzUzk=; b=D/eXUQjuGoJSN3zUq7Ys8nZOgl1Dy2bZAlmesa+AMQIn8ATwFth3tn06R0GWJ9UlRt uV0EbDCUerb2mRTK+lLhGloylRnVs1aSlRO1chG+CnBpUabE6rEHpyh3aIr/60kkU/Za ogsgv95IXdTBR19JeliKUM5W5EWBgCHoWYvRvBosHkSWGSBB+fDp8VstnZ7IztsHswOb YFnEPV3j+ysHB8X5E8aUlrMZcpa7VtBr9uUGCxWwmpOt8WKDgZMwA5NEsKko22JJZ39B QRyo6x+/eEQxJlmKjGlhZu8t7PAF7a22iJ15n+Xeh5RXtwhndrk/n3ga8DCUb+47BIyD nefw== X-Forwarded-Encrypted: i=1; AJvYcCUiSLlUEXRXsPB6ilHN4nCssop1pItraaLuXHguNWs4DYo/VAgZ5RktB3tCBc8qxF7U//E=@vger.kernel.org, AJvYcCV5UcxIG0ynh/TO/OsieaywzpBav4rCo4dE2Be01Iu72P6bBFI/X6u2jeSGDtckFiMD60NRlQdX/+vJp9ps@vger.kernel.org, AJvYcCVRqtgjQK3nFr1FTWldtYO1Z5si6Z36TghBm+S1sfUId1WdyxGGHW+YmBICvTAz+OhMRTDXM/MkGb/A/n0=@vger.kernel.org, AJvYcCWBNeqt8xdshuvAAfbqXc6MbN6jqkZiAAO8XLdXZZ2pzciqZN9w9VWWxi+MPHixi/HRL895fUwuihYmOjk=@vger.kernel.org, AJvYcCWV9LN1J0X4M68+Lyc1qW0j9o5slpLw2SiYf8FOc4ILTioLyi8G8mlZ7oxLbj/zW+z1wy3CWpZrepLWDhH6OKQ=@vger.kernel.org, AJvYcCWoMYPi5Gv9XV8OMwpxmf7cd8TdUKFmviQsUO2j1Zs7bj1XFoKfL86eai2q3IeDWZlQXLstiwkGQL8XSE/4@vger.kernel.org, AJvYcCX+gOJYUAyfkaxTPvuJ3CYbu7mxsFjAztoVXBPZROt6U3GKhvbZ4VhYHacHRWHKuoqIyLaAFpVp@vger.kernel.org X-Gm-Message-State: AOJu0YxlKhtgrp5t2yLHMdQSaB2G/JFXbd3cY6XxeklgODTPB96xw8TR z6yUDR+oDiAJhMFpGzT9kD9MIXBq1WatvdsdIM8zNnXqriPhm5Ep X-Gm-Gg: ASbGncu4lmAkc3XGyGhs51X8jk8XD7cAgSGJ//VIEoAjtYjsUJJdJUxPJ8ooDOUnG7r Jpu2FeRAF5atL56N/NCu3qZGapX527Hp/xlEYwSg5Qx7QaTC9tWl80MarGKYeYj88AxPgvKEwBp wuHszy31Lt8hIOTJ+O0K1loEBpfHzI34rV4AocpfCBFHFr1d5oVfY4XekQGSc3NUyETmJBzrjs9 wvbe6ahveuXJWK/Z9vXayrWhUpQJ+tvIEo3Mo2+/yNr/UJ2IN4QnDyDDBiU07h+2FDadZ8DM/4V XFSgYmY1/g4SPwhIFIinN4+lljhP8MSi5ayfi/uLGRWpF4Ifc0QjgGyjXaoz/XdVD6XxzZMANDg = X-Google-Smtp-Source: AGHT+IFGrjgDJrSlPcepaZbcj3TRgBvaEfqqC0e6onE8P6bMgkRDhKKNubsynOimmjCrDvdqjeVQ6w== X-Received: by 2002:a17:902:cccd:b0:21f:b483:2ad5 with SMTP id d9443c01a7336-22368fa8f6fmr116510795ad.20.1740839209574; Sat, 01 Mar 2025 06:26:49 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.26.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:26:49 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 09/18] Input: joystick - Replace open-coded parity calculation with parity32() Date: Sat, 1 Mar 2025 22:24:00 +0800 Message-Id: <20250301142409.2513835-10-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Refactor parity calculations to use the standard parity32() helper. This change eliminates redundant implementations and improves code efficiency. Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu --- drivers/input/joystick/grip_mp.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/drivers/input/joystick/grip_mp.c b/drivers/input/joystick/grip_mp.c index 5eadb5a3ca37..897ce13753dc 100644 --- a/drivers/input/joystick/grip_mp.c +++ b/drivers/input/joystick/grip_mp.c @@ -18,6 +18,7 @@ #include #include #include +#include #define DRIVER_DESC "Gravis Grip Multiport driver" @@ -112,20 +113,6 @@ static const int axis_map[] = { 5, 9, 1, 5, 6, 10, 2, 6, 4, 8, 0, 4, 5, 9, 1, 5 static int register_slot(int i, struct grip_mp *grip); -/* - * Returns whether an odd or even number of bits are on in pkt. - */ - -static int bit_parity(u32 pkt) -{ - int x = pkt ^ (pkt >> 16); - x ^= x >> 8; - x ^= x >> 4; - x ^= x >> 2; - x ^= x >> 1; - return x & 1; -} - /* * Poll gameport; return true if all bits set in 'onbits' are on and * all bits set in 'offbits' are off. @@ -236,7 +223,7 @@ static int mp_io(struct gameport* gameport, int sendflags, int sendcode, u32 *pa pkt = (pkt >> 2) | 0xf0000000; } - if (bit_parity(pkt) == 1) + if (parity32(pkt) == 1) return IO_RESET; /* Acknowledge packet receipt */ From patchwork Sat Mar 1 14:24:02 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869777 Received: from mail-pl1-f169.google.com (mail-pl1-f169.google.com [209.85.214.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 12B8D1E1A33; Sat, 1 Mar 2025 14:27:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839231; cv=none; b=GITxkXFBA1ZkTEgLiQ4ywCWPriUzawHGwkSgqpkprfPX6jjDWw06QnGPoool4Zjd907N0sG+Fkg4OELbCUiGhPtV0P3CeO4523t64/KYRTX4DKKVh37XY4iy8j15yCXllzDdVO99xi3b/QVQdB0by/i1d9gwVsO4/XRjEUIJbso= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839231; c=relaxed/simple; bh=LKQP83Z0dDVRvLCdrMNAz3pPTpKO+Di7Zsh2SQ1o/Vg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=h1lVMlL3OOa/z2n+cn2Z8rbFHELp/mzZr38gipMrHJoac/10x2+unEbL8jJ/wppxNX7GV4l36nR3bR08ye8Z74IDcO3YKEuR2JCe9dtY1JXC7FbSy2vAk4Bl0vJwRamnMBzXuOT6slC3uVV731fwDmJC3aEBul0E8HcB/v/fSHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PR8b4VAe; arc=none smtp.client-ip=209.85.214.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PR8b4VAe" Received: by mail-pl1-f169.google.com with SMTP id d9443c01a7336-22374f56453so33974835ad.0; Sat, 01 Mar 2025 06:27:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839229; x=1741444029; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Ih00TRqmhmd1Mh0sl7zFiAmpBAeBPMq/8Nno4TrvKu8=; b=PR8b4VAebPDKEvNlDYHQGwovki8tyqWlMq8etsH4lo5bnVGwRDPwnU0KUSKpiLo7/5 Gd8h9tO6w9lCX8FVk2CEQ2qkM8lV27UzMeMVeQcL+bpmGvlGdE+Y49+Zama9uXsYWzmc ICp07UMhpLuabfvpATZ0eDxzXljO7bMq/2H6Wv1lXsTB4ZeODxD+iFaLT7l29gb7rGUP VdAfauYlBvL6PiFpH1zMo0EijoybafDoqyI7k1SqcZ7wurWr8uuc7psXpKcnZjeN9MJH PIeF3i4DFO+LhfLeQFCtXQIpwZ1HcJS8zuJPu2pGlX+SUq/AjVopz5a6Ax6rzfQhPNVW UKMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839229; x=1741444029; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Ih00TRqmhmd1Mh0sl7zFiAmpBAeBPMq/8Nno4TrvKu8=; b=pa7JybYWKj+OGHUlmd1J76JJPZCTjJrUf2WIrZsU0TZG7eMPV00K1jQviDwccjaysh FA21yodnlFsQ21H6igwTBEUF/KRNARf/jMTWMGGa2EOuh3dk7tozE4kNEHL0PH/VsPyT gr0cj5DVCgHecS1o42cOou4Nsn9OUtVpiPLvVfSMLI61wcdOb2K+fuWYmPYhUTEStgWM WvrjVUV2H/SePFp8qOkr99IjYZp47yuhzAgj/N2UipqNN64wFluaA73uuZyiRehilykP wr9dMn2hkEr/UVFZZsr/l2l/y3C6DC05YgfC/SAoj287nWa9bQqUJFNx2E/Nm0H6fMjM TN3A== X-Forwarded-Encrypted: i=1; AJvYcCU/NVypNLE6YrkzE87RCrj3CDgBZBwUVBBTkDiB2lvMFCtbkG9bRncOhuybDdojksxuv4/lDnO5q8pprYr+@vger.kernel.org, AJvYcCUeHTQAn1F9XD7UFBml9JsDMQi6yzSRhKuECkXpeUgW7OdzGa031cw02eABcS8vtoxDxQEBWV6arK/GjO//Ao8=@vger.kernel.org, AJvYcCUxUEWpMzeXv/Va5dtTPmehP8JWRZgf2wZ+C7oD8iMxi/XspXC81mkqhr03KT/fD9sYqyINBnQ4JXizvKk=@vger.kernel.org, AJvYcCUxa031uqT1KDQ9wXi+jhx1fNLAFzjcK5KkdMaSoz9lNXGzXKdKsfS61pfC4iop0wNDg2acIBUu@vger.kernel.org, AJvYcCW7snzzMx3/S6Bi3JudCOZScCbvrtAnd/K1GCs0j/9g7BFo6fLMrdxivJdX/trtqVcejzrm3jt1LViduxU=@vger.kernel.org, AJvYcCX9lk4/OfZdlhPZNb2+hiDT1KOqFVbuZOMZsJbBDsRWT9qnIVb16Jkb8Qj4qAo63KIKqtdgehekwRWi5PXG@vger.kernel.org, AJvYcCXCdUVXrdNLweZsSmXKiijtkjZ+/jXrM2AWNsvG6hsnAUcRkKKVSwCQvBfJwP6V1/OZlZ8=@vger.kernel.org X-Gm-Message-State: AOJu0YxjTNgg9TOY3DpNE+qnuLGPAZieVg05RlXZT3vuZhnsIRH0Hvg1 RLaaAsIY7VYKXp2G8qz+70ArIkFtRO/E3uO06ohDQuoKG+yGccxE X-Gm-Gg: ASbGncsCetTFNJ7GvGq8CNX/OxiqHnLsWHrTfrh5ox4hWr7HRlIYsnNKWQjlQpjN1eV 1uP0obh8KcvdlI5l8xmr/14fMjA8swPD8W1IArDMCdmXSw5CSrmixAjPsdfzGxkFrj0RVjKBEY8 89r9zwX3RUa8ZzQ6c40OEzibZp+ePwx4cWguJxB75BY3YpmlI3IEwTbRXe3GmIg459o09ppf+5r OTC1v2DzwJpzxEB57fCXX5SCjQRJ3+y2VLoLfFvQp493AMvtBdBysoA0JeqIrbfE+lDdwqP0X4E 5oiHWxYI3hBl4LZL99+Aiyhw6EdwnbhDVJRwSqNHtEybhqg/E3HIvQenyN9YEQDdL8JHezSH33Q = X-Google-Smtp-Source: AGHT+IEWIU2a96xKy97Vw2OZbiqRo6ZsV5By1mOyMKGEerXJ25OnWhIdagB26u20PcByLRXKVw2xEw== X-Received: by 2002:a17:903:32c8:b0:223:2744:cb32 with SMTP id d9443c01a7336-22368f732b3mr142906935ad.5.1740839229452; Sat, 01 Mar 2025 06:27:09 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.27.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:27:08 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 11/18] wifi: brcm80211: Replace open-coded parity calculation with parity32() Date: Sat, 1 Mar 2025 22:24:02 +0800 Message-Id: <20250301142409.2513835-12-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Refactor parity calculations to use the standard parity32() helper. This change eliminates redundant implementations and improves code efficiency. Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu Acked-by: Arend van Spriel --- .../wireless/broadcom/brcm80211/brcmsmac/dma.c | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c index 80c35027787a..d1a1ecd97d42 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/dma.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -283,21 +284,6 @@ struct dma_info { bool aligndesc_4k; }; -/* Check for odd number of 1's */ -static u32 parity32(__le32 data) -{ - /* no swap needed for counting 1's */ - u32 par_data = *(u32 *)&data; - - par_data ^= par_data >> 16; - par_data ^= par_data >> 8; - par_data ^= par_data >> 4; - par_data ^= par_data >> 2; - par_data ^= par_data >> 1; - - return par_data & 1; -} - static bool dma64_dd_parity(struct dma64desc *dd) { return parity32(dd->addrlow ^ dd->addrhigh ^ dd->ctrl1 ^ dd->ctrl2); From patchwork Sat Mar 1 14:24:04 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869776 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AEF81E2007; Sat, 1 Mar 2025 14:27:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839252; cv=none; b=DJAzVFisbPRderAEDXxfi7mY2ykNSpfqIJUKCADTuNqSkAdFSeS4b+1UUK/GSCkITupPBqzOu50iF12A1Dt7tbez6ZfIirZIvDUudJhiDMJGBIqd2KhYplx3mkBcpIAu+uVYLWiDF1Ic/zOQlsP9UMNDV1982sRfNUAROR3XLiU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839252; c=relaxed/simple; bh=ZR7k7WuXjWgoiKosaPdwElgny5Md8dRLy7kh+y/t7/4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ku1qHYly6MfxCr5ewWZUZ1R/lw/v+cvXcKMPnf8bmbfmR7JyirkStSGvyLabEQAt3E8KZg1r+UzeNpcrQi5mCzzD9nP+SvUuKLn/s2H1ABNrD0bfzEhum9FjyfiMbZcRna8+XCjrdEscu1ue4xop8yfOVDrf3aHFK9umNcaRxkk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BMXkz7eL; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BMXkz7eL" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-223378e2b0dso44915525ad.0; Sat, 01 Mar 2025 06:27:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839250; x=1741444050; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=M0fPaIWjdscIdDk4T1YIhhdJwaKRFyAzbGum2CZXkTo=; b=BMXkz7eL7c0rZ4gzz/F3UUza0SB+mPrryWEK8BdGCHtYP7who/obq+q2gsVk9dWkgV 2mYnNskQULMN25UXKvM6qRSwhb9uo4idqFp+E6q+1svcTb/j10ZK6lZKKg8pJnd1Fa8j ydppIHU25AurKOe5h3T94+EyR+nKrRfl8PhF5EA5TSo+x3q3wSxnPS3BrBtPK+pCtVK1 78yIM2bcqrzxGXJUBsTnpqR+RQG+LZFIpRXpe4Fr+094ZsXwzdVVvw7di8nyi85Pi5kK hVOC7l92YYXagOVBVZg90W8V3Qx8NdY8HIl3kJ7Pjf5xvuIpNmmO28fg3xyzjW7qd8JK umRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839250; x=1741444050; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=M0fPaIWjdscIdDk4T1YIhhdJwaKRFyAzbGum2CZXkTo=; b=duUBDVUorXNGgvrvKiBYwP0/d9ANz7De8kbt1vHbGQWfLZgjLC5bygnZ7GEAo0WSiM F+hQeGDWiq1ap7x9eIOtb+Heg7ENKyE71bwNEAS10jTpF7ViNA53fYaL815w4XdQLMb6 fcrjKnECT1vRKbWUiIPNXGvsNhw4db+U5SxH6SFj/TjrF6/BmxMYfvSQ5UTt9g11dcsa 7gVOdh6JZ3Mt553NbKfMLBfIOyXcB+BBiQQIC+QRz4RqpxmiTR1ZMjRjkOnrn2J+/w9R U6M9Fflo90dvfIm14aTkrzx7N+eRiozJUF/8u+PAmoU3sng0Xys41FqYa800pqCId3Ef pB4Q== X-Forwarded-Encrypted: i=1; AJvYcCUTC0PZ91RA48hSZAZVRa49hPjsIeuk+ZXia99+/ABQrHAKJ25bTLl8YHPZA+fV+zTz8NN/GyFznX97hVxm@vger.kernel.org, AJvYcCVV5dJg1QSKMLk/Kxkh3IOxbDV6hWE+LnMyJH1997MVxXtyvA+UFXFpo5RQyISiya/kFXU1eXkbSfKHw78=@vger.kernel.org, AJvYcCW2CFkEBPHMmnxF9hCYriWSvUODSxklGCqDMHhPR1pJONNSKL0SVm41wsh0xJiwIaf9d7lsNoZ6Qnykk1w=@vger.kernel.org, AJvYcCWEQSB1VRTsvRvu/7o3L9R+iroL76N4+wn1Xb9BultMBnTukyXrHBdkCvh3ixHxnjjG+y4=@vger.kernel.org, AJvYcCWhXAEcrmBeqMBtqq0iTk3BeJzO6fZLKUeg+mCemXKVwXGfNThoRVc4k5gtwuuhRsZQ55JVOKVZz6meNNbAH6A=@vger.kernel.org, AJvYcCXBPSJoUP1TGorkAsiUWqbAaiOjPvT6PrsmlP/6IRpesbo5Rfvpia9JaYE1EFW/u/sdh1LY0d/p@vger.kernel.org, AJvYcCXjo4KLLYtXSIC/Q8aWob9KhWsDje9zxZKfm5KR4mFY3lzZE3zNDSGq2TrnYw/auSoIffKm71pWMjOhHzlW@vger.kernel.org X-Gm-Message-State: AOJu0YxrXqEIINfHhV5b/XRDOfW739B02+YseP7fcjBJmINLrG00kz7A rTzMDHn7ZYGhATbWNOOapcH9Xm9Xpwe+bvLzVRZNm+qTwqNn8aX0 X-Gm-Gg: ASbGncsuIbBhBG52MC7C6o3ouxZezvRiey/N+u2JrVZuGKvFeNWOealdlqUU4exWElC atAGH4BqHmCdWr4Up6TCM/vidqPcGcF0UFBrAX/QpW6PykHvA2Cur88pyXNWx0OJKKQorxpah+L W6FbSyoazO4k3piTI6XiP1NKzO/RxbCIJMqPHFvBP3Uqj8vHtdsAZeSCeY0Tk82llMFTrw8WIuh wn63nCNfoZVPn7hXUyUm+SF3huiw0l/N9YOSPDlwsEfFM3+HDgGJ5GHwVm5IYhUgOgoUG39gB3x HUjP/jD2Edr4d9kHhkX9e1Mxr3ogqc5vnW7ZHffC6nxNM2PG3mtwL1+MCgxjB4iyT0vNX9y7GD0 = X-Google-Smtp-Source: AGHT+IFMEc8dvlQQuKrdEq7g4EcMsmoDBk21A7+d2Y0BFwhyjxtIIjawJKqlgdflPWZNOKVAtnpI1w== X-Received: by 2002:a17:903:2ca:b0:21f:55e:ed71 with SMTP id d9443c01a7336-22368f6d002mr138003395ad.5.1740839249904; Sat, 01 Mar 2025 06:27:29 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.27.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:27:29 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 13/18] mtd: ssfdc: Replace open-coded parity calculation with parity32() Date: Sat, 1 Mar 2025 22:24:04 +0800 Message-Id: <20250301142409.2513835-14-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Refactor parity calculations to use the standard parity32() helper. This change eliminates redundant implementations and improves code efficiency. Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu --- drivers/mtd/ssfdc.c | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/drivers/mtd/ssfdc.c b/drivers/mtd/ssfdc.c index 46c01fa2ec46..e7f9e73da644 100644 --- a/drivers/mtd/ssfdc.c +++ b/drivers/mtd/ssfdc.c @@ -7,6 +7,7 @@ * Based on NTFL and MTDBLOCK_RO drivers */ +#include #include #include #include @@ -178,20 +179,6 @@ static int read_raw_oob(struct mtd_info *mtd, loff_t offs, uint8_t *buf) return 0; } -/* Parity calculator on a word of n bit size */ -static int get_parity(int number, int size) -{ - int k; - int parity; - - parity = 1; - for (k = 0; k < size; k++) { - parity += (number >> k); - parity &= 1; - } - return parity; -} - /* Read and validate the logical block address field stored in the OOB */ static int get_logical_address(uint8_t *oob_buf) { @@ -215,7 +202,7 @@ static int get_logical_address(uint8_t *oob_buf) block_address &= 0x7FF; block_address >>= 1; - if (get_parity(block_address, 10) != parity) { + if (parity32(block_address & 0x3ff) == parity) { pr_debug("SSFDC_RO: logical address field%d" "parity error(0x%04X)\n", j+1, block_address); From patchwork Sat Mar 1 14:24:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869775 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DEEF71E5018; Sat, 1 Mar 2025 14:27:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839274; cv=none; b=CYP9VECH9bl7336rPnLI02Q45gDNlAZxPzlPCVHBaLcYP32L3jOIQqFu9/dDRl/02zRhYqDIPsdQT8UMqAOwsY2Y2FTz/TNdLRarb1L1guPGvGbunWnv7BXX+NQWCW8au18FKA/+hb72+ZzpKjU2umvaCQZXu+dSq1MjEEecUCA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839274; c=relaxed/simple; bh=9MLeZfNC/T6rZivDo76ukvYaafOdf3Bq52OJ1FPtYmo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=EZwkU5IxOKJvuoIMPXqcSe4u2d75uI3z7P8L3hFYF0F/dm21g4+aTw45rhtR+u053hTPq4eU19QGymq7q75iMZqV5/JzF467uUh9vJFFve0jD8Czi1T4Z6UHeRMHY+wj+LDY7LMRbKDX9a5QWa7pBiOp7aCQxLTLqERLc9q+d3k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=QvVkLMEv; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="QvVkLMEv" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-2232aead377so58833485ad.0; Sat, 01 Mar 2025 06:27:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839272; x=1741444072; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=H92cNXD8ivdLBJu7PZvS/WlFHsCPSxa0jaZByFXEmx4=; b=QvVkLMEvgJlyLtx3shCr6LLrRTsJbCBYR4G8EmZtrChZe4cgb4oslHhp9s/UjTBRlQ fTmDJK0vY/9HvdZcaGrwwUthXhid9T49IYFLwVuyXtO95wZxy3BUVU9JayIvMgrBa9tL TWFASl/XznOsjbnAz8hEZHwH/AQ0wL5/3x32JWx3Jj0I971Fp1RK6yFI8yJOgjXjlt4o RaW04JX1f+b4ABJ3Y4gfNVt54v+u+Hov3O2hBlh/ChgpvGJSjG9uGsoZ/UO99fRauAa2 Vbe3BtKNrH0tzRM97mc2Iyw9Z2sqk7sx6Xabs8Bp9XXdCNAlAtMGkC+4QQqaWDVZQZ83 o3jQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839272; x=1741444072; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H92cNXD8ivdLBJu7PZvS/WlFHsCPSxa0jaZByFXEmx4=; b=h/SIfdWMPLqPVW8ji/eQgpbsGbw82PcnMQzmZyaw4UiMK2ooLWFxGHLO9zZSZbMqpC 6OCmN/g89uOF2IvPD07wqZ8fv6Z/0SNzhawN1NxHc0YD6L3eXUNFK1Y/U6D3SYPIWJin 0f1+0jNBaqeo3+UJCWX14oiMzpjgnqJR531r18cc3qbuJ7/wh/a+Bgx0lhUvw6oRNHrl PQROkcpI5omGwTKYCBph+EQ8muJIV6rzPmcs/dyP6xjePlXywpWv3n+v+Aoj/lpgZC4U +sh5sO9k0h9fU/QY/Xg+DQjiRbmYgJ5c1ATrOTH5G0K3DKcdGHrEoZHNnecJ0i90Cgt/ /5hg== X-Forwarded-Encrypted: i=1; AJvYcCVal4iWnpU5gzCL8Pv6qeiB7ISxo5AKVI2oCKgBo6xBBj/FUYFNrTiCnTCiC9JQmOa+1RoF/3x/EZauGPY=@vger.kernel.org, AJvYcCWrVHarMCHD58cPLlq+BokPHua2oJyFLohsDCDyUVeRT64ZLabJsbF4gXbAJvgHq+eCJTqMxXSXWSGPkPGJ@vger.kernel.org, AJvYcCX5xCkWd2ZK5dvd8MOww3kAHkcjbPbQ5qW/wtCgDDgCZW7gXYByMJqjnBdlf0JOC4KGFaVZ2T/R@vger.kernel.org, AJvYcCXMC+rFarXTlwGEGaSoSDNDGYdWjZPM1+dHiisIR8kliY8akWCx3vogjHh+esXkPJo457UTGliak+xMyPVCnHI=@vger.kernel.org, AJvYcCXSzIQfqnKmrpZggmSDyK9QVYNvse2Lw8ULvOmiJrfGEnCdiiZiXtWFwa1PIppMn5U084KerEyro0NnlfAo@vger.kernel.org, AJvYcCXV1r+4geeBLkEYET42QxMjjbsH9BycydvROu++7wbhWFh4x23kGXkbirEtTb/asiNBYy8=@vger.kernel.org, AJvYcCXhdF4vVq3Msw+EVYcPyFknH+mZlQrM/RyMWlUFOoI5+U+pLbcBQOeL56jfbapw1tsjahtuu3iCx/c15WM=@vger.kernel.org X-Gm-Message-State: AOJu0YyPcUNB5tp0/GBBRi7HXCNrIw573XSmoUfBrXomYSCJ27rs7C2B RwHWYlA40VbXAAcuWhHkasyqJIuvqcxCOvOeWP6snLX5cPBKqrHz X-Gm-Gg: ASbGncvlsyv68J0dvPUxgluqsdGjR9DwBv8qMQ6jOP0bR2xMdHiGR3bbE8yC8bves+C c+vCfQKiIapOh1VyZZQHS+un5mcrw1fAjC/eKNEHQPVV/q3aE+WcWlUyJl7fwsEJE7TQaevM91h 3111X3D6qMnB/W/txGTgcLanRdXQ254vbb7/1QyNn8cXbk/PZSMpGoFT89fKseGkeLt0NMmMK2H 25bGp3v5m2kr2G315xEcAUTijnDjbAP93dtxpVoy2ZAvjXQVKJ8Z+YsM0VS9A2YRC7RlLepaQ7s E3Sk/sJMF2WSA8Aka52+J9nYr5ysKACJQnTNZYm2gQncEOtnwGLKEOFMPrqe7ICkJesq7L2OexI = X-Google-Smtp-Source: AGHT+IFJ7v56//ubfe5SZfIgarRaf2kt414B71bZC0lL5Jm/hhEy1S8FPvdkgRl1jpN6UW8NLO4j1Q== X-Received: by 2002:a17:902:e5ca:b0:223:894e:4376 with SMTP id d9443c01a7336-223894e454dmr21360135ad.43.1740839272112; Sat, 01 Mar 2025 06:27:52 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.27.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:27:51 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 15/18] fsi: i2cr: Replace open-coded parity calculation with parity64() Date: Sat, 1 Mar 2025 22:24:06 +0800 Message-Id: <20250301142409.2513835-16-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Refactor parity calculations to use the standard parity64() helper. This change eliminates redundant implementations and improves code efficiency. Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu --- drivers/fsi/fsi-master-i2cr.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/fsi/fsi-master-i2cr.c b/drivers/fsi/fsi-master-i2cr.c index 8212b99ab2f9..8f558b7c6dbc 100644 --- a/drivers/fsi/fsi-master-i2cr.c +++ b/drivers/fsi/fsi-master-i2cr.c @@ -44,15 +44,9 @@ static bool i2cr_check_parity32(u32 v, bool parity) static bool i2cr_check_parity64(u64 v) { - u32 i; bool parity = I2CR_INITIAL_PARITY; - for (i = 0; i < 64; ++i) { - if (v & (1llu << i)) - parity = !parity; - } - - return parity; + return parity ^ parity64(v); } static u32 i2cr_get_command(u32 address, bool parity) From patchwork Sat Mar 1 14:24:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuan-Wei Chiu X-Patchwork-Id: 869774 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BEBFA1E570A; Sat, 1 Mar 2025 14:28:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839294; cv=none; b=YxfikD4e6KYweklWOnS7GGFtQPO0Twy9gEW1hvtsu6SoSBdPm5XY2NqjC78HQfFQJsZAlycvGV+w2vlWHw3yUfjq5RgkObODOwxzEuPagXsxAx26jzP8h1s6t51SOm6FOCJ+8RYZdNOu4w40mU3Nex5EhJaHh3D7dnSYwptmK94= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740839294; c=relaxed/simple; bh=VpxAbF0iBul4Uw/Lq+mofgkf8czO0+orTD3RsRZ9cYQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=at8cy7kAGT0WiDUKIATPaYmmOWZWO0c1Uz4KSF18RkaTBiDGCSam/si+lRyzLosYIZC7wZxluUuF9pShTw+j+HXohrdfupG/5AXvdwdvWZ2EGTj0MeukCtcCx4+1kKNnyCCiwa34VBRO+E/F++SsManfdjm3aC6wUAG9tpW4tHQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Hoo9Ko7s; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Hoo9Ko7s" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-22355618fd9so51359145ad.3; Sat, 01 Mar 2025 06:28:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740839292; x=1741444092; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nzBrmzWckDIJwY51QBb0mQJ5Dqo6Ldx+jMH0V0Ck8/w=; b=Hoo9Ko7stR0h0zAYidH+zbNBzfnsfFoY5xhAgyaNfr+CcT1jkILbcLCuvYFaFXhjzh E/feNRSAqo7r1vF2a5muAda/iFg6x2InBoX1QnozMNuuT1tCJyDS27Ci9mdKaYf0NazO cnpSkkLkBajs8MJi4S58HrgPotHxF6QEE5no+8fx+5V3zGWrzplNzBF0ky3yDzZprPWw ZyMMaxE/Im2gaVUAUdM1G+GK09lMqJvx663XgSHZdQE2b75kGtKICgqD9btdc74tUomX cu68gR9wrdbGxiDwlZqQxmr4k+eRNDp1KMpD0lFzTgSR5exzwnXHRxBGYay3hsKHJLoe yC/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740839292; x=1741444092; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nzBrmzWckDIJwY51QBb0mQJ5Dqo6Ldx+jMH0V0Ck8/w=; b=RfpkpKYzcwuGEElkaBELn4xnsixSf4KFUybZ6qkCq2F/oTwlNaeV6byy3eZj0PlRGa btal4bCa2TSSyF9yWd67BioVT51fGOMNhvg6Q70rxXDwf8JXlLdqiaWRiU6wsu8zLXD7 XnYX7NZJ2rhDDesqhGUrMK5TN8hMROrTIYJjH3dFO7iQS5u/LBisY4woonW0wBf8rxOd jxDbAIUCjFZfMn0exYCRfPtLaBj2PqpLsMGDBJaFMOO0NTir54Xr/1rLkGZeISrh19cS F9pJIeRRCKo+ezmLXPg9LhjGrcdiiZbqdunzdmdrwkmC2PrV/SAaW/EPebDnoEwuq6Az euow== X-Forwarded-Encrypted: i=1; AJvYcCU9GYM/SlAr/nqOeF4UFi6w7yC3M0+M7XRd/qKWHabemwxj6rr302B/7iGzRNgeX2D5p39ydUCPvu/ozkM=@vger.kernel.org, AJvYcCUIFznEsR/9QIDmmTe5w1jV/0Cq+qdw7Y6OSPIAPSrr9JHlPeam7+ZqNGkFz9mUvw4NWf3pFUN8Mm9dPgtI@vger.kernel.org, AJvYcCVfNNxB+xmeMcLjSmPSnVLD/PZwaNSyPS/uTzLvVdTDanm7gOtKawU4ZBuKXcm+J0YrVos8w9oJ@vger.kernel.org, AJvYcCWzUxR2QeNE9Cl5oT7XuWBwwGdw0igbV1mDKFsZDq3FMht66BMlhzP3NuCAqUKiu+iDSUtSS00qAJ8+0GI=@vger.kernel.org, AJvYcCXCkUj9j6JNQRFrKExP7s0onDCLuVRfgjQ1njImWWBedq+Lx3ChoRC2aAQGSIg0T/ftoqpromH5TSwbiQj0JQU=@vger.kernel.org, AJvYcCXfG6wvV8/L28hcUTJefYqD8lugwFM2MT19HO9XH5WMGG44AP6RlIyvttk17Kv2qXG+ZYo=@vger.kernel.org, AJvYcCXzajDpOd484kGMhoCRbmbYYCxGS1ep4bBTEQrheWB/X6zLt6RLcbdGiopBVF47+b9cyxARQ1aeW2kuQSMl@vger.kernel.org X-Gm-Message-State: AOJu0YzGKsW+/VMx7SUOYmNvEP+ztTAfnFZUkmw9yB7jxmlShjWRGjas IsnFzCoPMENzJbuR01JIuqgaUFakODk/F224N6gWA2cRYryf1Hxf X-Gm-Gg: ASbGncuSnAzr82ltOhaysbycI0bR2q0LEQNCr58S7APk2Agj2irSEGId7FsCOGSVsgC CUAyUaHDW+HGEodsB2We2mtlqoJKNLU1w1CwTjYUZNHhTD1lc+Hcv7NgDCfX7IDMKGKxp/QEKYN XgsgKXUOWsZd9X/j7mio7TkTnB3rzLRyHH+UybpbEx6EmWmNLzWV3kJp784tqXGTpGiTq2bi/Sf I2CGOq0kjhlWdI4MtxIUsHYjW6P2i05f8umAI60p4O5lIW53ZF3JQYtapxkN3ZJXsHnycTNrMTp /6XUzZu6JYyGo3SbHIbMpGlvvVvQo+v2h9JfTLnJ/+wnR8rFxea9ElPiCjyzEbGEIm5RTpo1eKc = X-Google-Smtp-Source: AGHT+IHOy6Wv/sKHhRUGc/3EBAQcCBF/SI4YUeW7LDGDR7+GStKywND2M264p9e2dxtzneP/WiNrxQ== X-Received: by 2002:a17:903:fa5:b0:220:f40c:71e9 with SMTP id d9443c01a7336-22368f71f0dmr96371785ad.9.1740839291945; Sat, 01 Mar 2025 06:28:11 -0800 (PST) Received: from visitorckw-System-Product-Name.. ([140.113.216.168]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-223501fa8f1sm49231965ad.90.2025.03.01.06.28.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 01 Mar 2025 06:28:11 -0800 (PST) From: Kuan-Wei Chiu To: tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, jk@ozlabs.org, joel@jms.id.au, eajames@linux.ibm.com, andrzej.hajda@intel.com, neil.armstrong@linaro.org, rfoss@kernel.org, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch, dmitry.torokhov@gmail.com, mchehab@kernel.org, awalls@md.metrocast.net, hverkuil@xs4all.nl, miquel.raynal@bootlin.com, richard@nod.at, vigneshr@ti.com, louis.peens@corigine.com, andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com, pabeni@redhat.com, parthiban.veerasooran@microchip.com, arend.vanspriel@broadcom.com, johannes@sipsolutions.net, gregkh@linuxfoundation.org, jirislaby@kernel.org, yury.norov@gmail.com, akpm@linux-foundation.org Cc: hpa@zytor.com, alistair@popple.id.au, linux@rasmusvillemoes.dk, Laurent.pinchart@ideasonboard.com, jonas@kwiboo.se, jernej.skrabec@gmail.com, kuba@kernel.org, linux-kernel@vger.kernel.org, linux-fsi@lists.ozlabs.org, dri-devel@lists.freedesktop.org, linux-input@vger.kernel.org, linux-media@vger.kernel.org, linux-mtd@lists.infradead.org, oss-drivers@corigine.com, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, brcm80211@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, linux-serial@vger.kernel.org, bpf@vger.kernel.org, jserv@ccns.ncku.edu.tw, david.laight.linux@gmail.com, andrew.cooper3@citrix.com, Kuan-Wei Chiu , Yu-Chun Lin Subject: [PATCH v2 17/18] nfp: bpf: Replace open-coded parity calculation with parity64() Date: Sat, 1 Mar 2025 22:24:08 +0800 Message-Id: <20250301142409.2513835-18-visitorckw@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250301142409.2513835-1-visitorckw@gmail.com> References: <20250301142409.2513835-1-visitorckw@gmail.com> Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Refactor parity calculations to use the standard parity64() helper. This change eliminates redundant implementations and improves code efficiency. Co-developed-by: Yu-Chun Lin Signed-off-by: Yu-Chun Lin Signed-off-by: Kuan-Wei Chiu --- drivers/net/ethernet/netronome/nfp/nfp_asm.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/net/ethernet/netronome/nfp/nfp_asm.c b/drivers/net/ethernet/netronome/nfp/nfp_asm.c index 154399c5453f..3646f84a6e8c 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_asm.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_asm.c @@ -295,11 +295,6 @@ static const u64 nfp_ustore_ecc_polynomials[NFP_USTORE_ECC_POLY_WORDS] = { 0x0daf69a46910ULL, }; -static bool parity(u64 value) -{ - return hweight64(value) & 1; -} - int nfp_ustore_check_valid_no_ecc(u64 insn) { if (insn & ~GENMASK_ULL(NFP_USTORE_OP_BITS, 0)) @@ -314,7 +309,7 @@ u64 nfp_ustore_calc_ecc_insn(u64 insn) int i; for (i = 0; i < NFP_USTORE_ECC_POLY_WORDS; i++) - ecc |= parity(nfp_ustore_ecc_polynomials[i] & insn) << i; + ecc |= parity64(nfp_ustore_ecc_polynomials[i] & insn) << i; return insn | (u64)ecc << NFP_USTORE_OP_BITS; }