* [PATCH V3 00/29] bitops: add parity functions
@ 2016-04-14 2:36 zengzhaoxiu
2016-04-14 3:05 ` [PATCH V3 06/29] Tile and MIPS (if has usable __builtin_popcount) use popcount " zengzhaoxiu
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: zengzhaoxiu @ 2016-04-14 2:36 UTC (permalink / raw)
To: linux-kernel
Cc: Zhaoxiu Zeng, adi-buildroot-devel, Andrew Morton, Anton Blanchard,
Arnd Bergmann, Benjamin Tissoires, Borislav Petkov, Bruce Allan,
Christophe Leroy, David Herrmann, David S. Miller, Denys Vlasenko,
Dmitry Torokhov, Duson Lin, Guenter Roeck, Hans de Goede,
Hans Verkuil, Hartmut Knaack, Heiko Carstens, Hendrik Brueckner,
Herbert Xu, Ingo Molnar, Jiri Pirko, Joonsoo Kim, Julian Calaby,
Krzysztof Kozlowski, Lars-Peter Clausen, Leonid Yegoshin,
linux-alpha, linux-am33-list, linux-arch, linux-arm-kernel,
linux-c6x-dev, linux-cris-kernel, linux-crypto, linux-hexagon,
linux-ia64, linux-iio, linux-input, linux, linux-m68k,
linux-media, linux-metag, linux-mips, linux-mtd, linux-nfs,
linux-parisc, linuxppc-dev, linux-s390, linux-scsi, linux-serial,
linux-sh, linux-snps-arc, linux-xtensa, Martin Kepplinger,
Martin Schwidefsky, Masahiro Yamada, Mauro Carvalho Chehab,
Michael Ellerman, Michal Nazarewicz, netdev, Peter Hutterer,
Peter Meerwald, Peter Zijlstra (Intel), Pingchao Yang, qat-linux,
Ralf Baechle, Rasmus Villemoes, Russell King, Sasha Levin,
Scott Wood, sparclinux, Tadeusz Struk, Takashi Iwai,
Thomas Gleixner, Torsten Duwe, uclinux-h8-devel, Ulrik De Bie,
Vineet Gupta, Vlastimil Babka, wim.coekaerts@oracle.com,
Yoshinori Sato, Yury Norov, 洪一竹
From: Zhaoxiu Zeng <zhaoxiu.zeng@gmail.com>
When I do "grep parity -r linux", I found many parity calculations
distributed in many drivers.
This patch series does:
1. provide generic and architecture-specific parity calculations
2. remove drivers' local parity calculations, use bitops' parity
functions instead
3. replace "hweightN(x) & 1" with "parityN(x)" to improve readability,
and improve performance on some CPUs that without popcount support
I did not use GCC's __builtin_parity* functions, based on the following reasons:
1. I don't know where to identify which version of GCC from the beginning
supported __builtin_parity for the architecture.
2. For the architecture that doesn't has popcount instruction, GCC instead use
"call __paritysi2" (__paritydi2 for 64-bits). So if use __builtin_parity, we must
provide __paritysi2 and __paritydi2 functions for these architectures.
Additionally, parity4,8,16 might be "__builtin_parity(x & mask)", but the "& mask"
operation is totally unnecessary.
3. For the architecture that has popcount instruction, we do the same things.
4. For powerpc, sparc, and x86, we do runtime patching to use popcount instruction
if the CPU support.
I have compiled successfully with x86_64_defconfig, i386_defconfig, pseries_defconfig
and sparc64_defconfig.
Changes to v2:
- Add constant PARITY_MAGIC (proposals by Sam Ravnborg)
- Add include/asm-generic/bitops/popc-parity.h (proposals by Chris Metcalf)
- Tile uses popc-parity.h directly
- Mips uses popc-parity.h if has usable __builtin_popcount
- Add few comments in powerpc's and sparc's parity.S
- X86, remove custom calling convention
Changes to v1:
- Add runtime patching for powerpc, sparc, and x86
- Avr32 use grenric parity too
- Fix error in ssfdc's patch, and add commit message
- Don't change the original code composition of drivers/iio/gyro/adxrs450.c
- Directly assignement to phy_cap.parity in drivers/scsi/isci/phy.c
Regards,
=== diffstat ===
Zhaoxiu Zeng (29):
bitops: add parity functions
Include generic parity.h in some architectures' bitops.h
Add alpha-specific parity functions
Add blackfin-specific parity functions
Add ia64-specific parity functions
Tile and MIPS (if has usable __builtin_popcount) use popcount parity
functions
Add powerpc-specific parity functions
Add sparc-specific parity functions
Add x86-specific parity functions
sunrpc: use parity8
mips: use parity functions in cerr-sb1.c
bch: use parity32
media: use parity8 in vivid-vbi-gen.c
media: use parity functions in saa7115
input: use parity32 in grip_mp
input: use parity64 in sidewinder
input: use parity16 in ams_delta_serio
scsi: use parity32 in isci's phy
mtd: use parity16 in ssfdc
mtd: use parity functions in inftlcore
crypto: use parity functions in qat_hal
mtd: use parity16 in sm_ftl
ethernet: use parity8 in sun/niu.c
input: use parity8 in pcips2
input: use parity8 in sa1111ps2
iio: use parity32 in adxrs450
serial: use parity32 in max3100
input: use parity8 in elantech
ethernet: use parity8 in broadcom/tg3.c
arch/alpha/include/asm/bitops.h | 27 +++++
arch/arc/include/asm/bitops.h | 1 +
arch/arm/include/asm/bitops.h | 1 +
arch/arm64/include/asm/bitops.h | 1 +
arch/avr32/include/asm/bitops.h | 1 +
arch/blackfin/include/asm/bitops.h | 31 ++++++
arch/c6x/include/asm/bitops.h | 1 +
arch/cris/include/asm/bitops.h | 1 +
arch/frv/include/asm/bitops.h | 1 +
arch/h8300/include/asm/bitops.h | 1 +
arch/hexagon/include/asm/bitops.h | 1 +
arch/ia64/include/asm/bitops.h | 31 ++++++
arch/m32r/include/asm/bitops.h | 1 +
arch/m68k/include/asm/bitops.h | 1 +
arch/metag/include/asm/bitops.h | 1 +
arch/mips/include/asm/bitops.h | 7 ++
arch/mips/mm/cerr-sb1.c | 67 ++++---------
arch/mn10300/include/asm/bitops.h | 1 +
arch/openrisc/include/asm/bitops.h | 1 +
arch/parisc/include/asm/bitops.h | 1 +
arch/powerpc/include/asm/bitops.h | 11 +++
arch/powerpc/lib/Makefile | 2 +-
arch/powerpc/lib/parity_64.S | 142 +++++++++++++++++++++++++++
arch/powerpc/lib/ppc_ksyms.c | 5 +
arch/s390/include/asm/bitops.h | 1 +
arch/sh/include/asm/bitops.h | 1 +
arch/sparc/include/asm/bitops_32.h | 1 +
arch/sparc/include/asm/bitops_64.h | 18 ++++
arch/sparc/kernel/sparc_ksyms_64.c | 6 ++
arch/sparc/lib/Makefile | 2 +-
arch/sparc/lib/parity.S | 128 ++++++++++++++++++++++++
arch/tile/include/asm/bitops.h | 2 +
arch/x86/include/asm/arch_hweight.h | 5 +
arch/x86/include/asm/arch_parity.h | 117 ++++++++++++++++++++++
arch/x86/include/asm/bitops.h | 4 +-
arch/xtensa/include/asm/bitops.h | 1 +
drivers/crypto/qat/qat_common/qat_hal.c | 32 ++----
drivers/iio/gyro/adxrs450.c | 4 +-
drivers/input/joystick/grip_mp.c | 16 +--
drivers/input/joystick/sidewinder.c | 24 +----
drivers/input/mouse/elantech.c | 10 +-
drivers/input/mouse/elantech.h | 1 -
drivers/input/serio/ams_delta_serio.c | 8 +-
drivers/input/serio/pcips2.c | 2 +-
drivers/input/serio/sa1111ps2.c | 2 +-
drivers/media/i2c/saa7115.c | 17 +---
drivers/media/platform/vivid/vivid-vbi-gen.c | 9 +-
drivers/mtd/inftlcore.c | 17 +---
drivers/mtd/sm_ftl.c | 5 +-
drivers/mtd/ssfdc.c | 31 ++----
drivers/net/ethernet/broadcom/tg3.c | 6 +-
drivers/net/ethernet/sun/niu.c | 10 +-
drivers/scsi/isci/phy.c | 15 +--
drivers/tty/serial/max3100.c | 2 +-
include/asm-generic/bitops.h | 1 +
include/asm-generic/bitops/arch_parity.h | 39 ++++++++
include/asm-generic/bitops/const_parity.h | 36 +++++++
include/asm-generic/bitops/parity.h | 7 ++
include/asm-generic/bitops/popc-parity.h | 32 ++++++
include/linux/bitops.h | 10 ++
lib/bch.c | 14 +--
net/sunrpc/auth_gss/gss_krb5_keys.c | 6 +-
62 files changed, 745 insertions(+), 235 deletions(-)
create mode 100644 arch/powerpc/lib/parity_64.S
create mode 100644 arch/sparc/lib/parity.S
create mode 100644 arch/x86/include/asm/arch_parity.h
create mode 100644 include/asm-generic/bitops/arch_parity.h
create mode 100644 include/asm-generic/bitops/const_parity.h
create mode 100644 include/asm-generic/bitops/parity.h
create mode 100644 include/asm-generic/bitops/popc-parity.h
--
2.5.0
^ permalink raw reply [flat|nested] 7+ messages in thread* [PATCH V3 06/29] Tile and MIPS (if has usable __builtin_popcount) use popcount parity functions 2016-04-14 2:36 [PATCH V3 00/29] bitops: add parity functions zengzhaoxiu @ 2016-04-14 3:05 ` zengzhaoxiu 2016-04-15 19:26 ` Chris Metcalf 2016-04-14 3:09 ` [PATCH V3 11/29] mips: use parity functions in cerr-sb1.c zengzhaoxiu ` (2 subsequent siblings) 3 siblings, 1 reply; 7+ messages in thread From: zengzhaoxiu @ 2016-04-14 3:05 UTC (permalink / raw) To: linux-kernel Cc: Zhaoxiu Zeng, Ralf Baechle, Chris Metcalf, Leonid Yegoshin, linux-mips From: Zhaoxiu Zeng <zhaoxiu.zeng@gmail.com> Signed-off-by: Zhaoxiu Zeng <zhaoxiu.zeng@gmail.com> --- arch/mips/include/asm/bitops.h | 7 +++++++ arch/tile/include/asm/bitops.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/arch/mips/include/asm/bitops.h b/arch/mips/include/asm/bitops.h index ce9666c..4192068 100644 --- a/arch/mips/include/asm/bitops.h +++ b/arch/mips/include/asm/bitops.h @@ -626,6 +626,13 @@ static inline int ffs(int word) #include <asm/arch_hweight.h> #include <asm-generic/bitops/const_hweight.h> +#ifdef ARCH_HAS_USABLE_BUILTIN_POPCOUNT +#include <asm-generic/bitops/popc-parity.h> +#else +#include <asm-generic/bitops/arch_parity.h> +#endif +#include <asm-generic/bitops/const_parity.h> + #include <asm-generic/bitops/le.h> #include <asm-generic/bitops/ext2-atomic.h> diff --git a/arch/tile/include/asm/bitops.h b/arch/tile/include/asm/bitops.h index 20caa34..4dd89d8 100644 --- a/arch/tile/include/asm/bitops.h +++ b/arch/tile/include/asm/bitops.h @@ -85,6 +85,8 @@ static inline unsigned long __arch_hweight64(__u64 w) #include <asm-generic/bitops/builtin-__fls.h> #include <asm-generic/bitops/builtin-ffs.h> #include <asm-generic/bitops/const_hweight.h> +#include <asm-generic/bitops/popc-parity.h> +#include <asm-generic/bitops/const_parity.h> #include <asm-generic/bitops/lock.h> #include <asm-generic/bitops/find.h> #include <asm-generic/bitops/sched.h> -- 2.5.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH V3 06/29] Tile and MIPS (if has usable __builtin_popcount) use popcount parity functions 2016-04-14 3:05 ` [PATCH V3 06/29] Tile and MIPS (if has usable __builtin_popcount) use popcount " zengzhaoxiu @ 2016-04-15 19:26 ` Chris Metcalf 2016-04-15 19:26 ` Chris Metcalf 0 siblings, 1 reply; 7+ messages in thread From: Chris Metcalf @ 2016-04-15 19:26 UTC (permalink / raw) To: zengzhaoxiu, linux-kernel Cc: Zhaoxiu Zeng, Ralf Baechle, Leonid Yegoshin, linux-mips On 4/13/2016 11:05 PM, zengzhaoxiu@163.com wrote: > From: Zhaoxiu Zeng<zhaoxiu.zeng@gmail.com> > > Signed-off-by: Zhaoxiu Zeng<zhaoxiu.zeng@gmail.com> > --- > arch/mips/include/asm/bitops.h | 7 +++++++ > arch/tile/include/asm/bitops.h | 2 ++ > 2 files changed, 9 insertions(+) Acked-by: Chris Metcalf <cmetcalf@mellanox.com> [for tile] -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V3 06/29] Tile and MIPS (if has usable __builtin_popcount) use popcount parity functions 2016-04-15 19:26 ` Chris Metcalf @ 2016-04-15 19:26 ` Chris Metcalf 0 siblings, 0 replies; 7+ messages in thread From: Chris Metcalf @ 2016-04-15 19:26 UTC (permalink / raw) To: zengzhaoxiu, linux-kernel Cc: Zhaoxiu Zeng, Ralf Baechle, Leonid Yegoshin, linux-mips On 4/13/2016 11:05 PM, zengzhaoxiu@163.com wrote: > From: Zhaoxiu Zeng<zhaoxiu.zeng@gmail.com> > > Signed-off-by: Zhaoxiu Zeng<zhaoxiu.zeng@gmail.com> > --- > arch/mips/include/asm/bitops.h | 7 +++++++ > arch/tile/include/asm/bitops.h | 2 ++ > 2 files changed, 9 insertions(+) Acked-by: Chris Metcalf <cmetcalf@mellanox.com> [for tile] -- Chris Metcalf, Mellanox Technologies http://www.mellanox.com ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH V3 11/29] mips: use parity functions in cerr-sb1.c 2016-04-14 2:36 [PATCH V3 00/29] bitops: add parity functions zengzhaoxiu 2016-04-14 3:05 ` [PATCH V3 06/29] Tile and MIPS (if has usable __builtin_popcount) use popcount " zengzhaoxiu @ 2016-04-14 3:09 ` zengzhaoxiu 2016-04-14 4:18 ` [PATCH V3 00/29] bitops: add parity functions zengzhaoxiu 2016-04-17 12:38 ` Dmitry Torokhov 3 siblings, 0 replies; 7+ messages in thread From: zengzhaoxiu @ 2016-04-14 3:09 UTC (permalink / raw) To: linux-kernel; +Cc: Zhaoxiu Zeng, Ralf Baechle, linux-mips From: Zhaoxiu Zeng <zhaoxiu.zeng@gmail.com> Signed-off-by: Zhaoxiu Zeng <zhaoxiu.zeng@gmail.com> --- arch/mips/mm/cerr-sb1.c | 67 +++++++++++++------------------------------------ 1 file changed, 17 insertions(+), 50 deletions(-) diff --git a/arch/mips/mm/cerr-sb1.c b/arch/mips/mm/cerr-sb1.c index ee5c1ff..2e7d660 100644 --- a/arch/mips/mm/cerr-sb1.c +++ b/arch/mips/mm/cerr-sb1.c @@ -264,27 +264,6 @@ asmlinkage void sb1_cache_error(void) #endif } - -/* Parity lookup table. */ -static const uint8_t parity[256] = { - 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, - 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, - 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, - 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, - 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, - 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, - 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, - 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, - 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, - 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, - 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, - 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0 -}; - /* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */ static const uint64_t mask_72_64[8] = { 0x0738C808099264FFULL, @@ -298,34 +277,28 @@ static const uint64_t mask_72_64[8] = { }; /* Calculate the parity on a range of bits */ -static char range_parity(uint64_t dword, int max, int min) +static inline char range_parity(uint64_t dword, int max, int min) { - char parity = 0; - int i; - dword >>= min; - for (i=max-min; i>=0; i--) { - if (dword & 0x1) - parity = !parity; - dword >>= 1; + int n = max - min + 1; + if (__builtin_constant_p(n)) { + if (n <= 8) + return parity8((unsigned int)(dword >> min) & ((1U << n) - 1)); + if (n <= 16) + return parity16((unsigned int)(dword >> min) & ((1U << n) - 1)); + if (n <= 32) + return parity32((unsigned int)(dword >> min) & ((1U << n) - 1)); } - return parity; + return parity64((dword >> min) & ((1ULL << n) - 1)); } /* Calculate the 4-bit even byte-parity for an instruction */ -static unsigned char inst_parity(uint32_t word) +static inline unsigned char inst_parity(uint32_t word) { - int i, j; - char parity = 0; - for (j=0; j<4; j++) { - char byte_parity = 0; - for (i=0; i<8; i++) { - if (word & 0x80000000) - byte_parity = !byte_parity; - word <<= 1; - } - parity <<= 1; - parity |= byte_parity; - } + char parity; + parity = parity8(word >> 24) << 3; + parity |= parity8(word >> 16) << 2; + parity |= parity8(word >> 8) << 1; + parity |= parity8(word); return parity; } @@ -436,7 +409,6 @@ static uint32_t extract_ic(unsigned short addr, int data) static uint8_t dc_ecc(uint64_t dword) { uint64_t t; - uint32_t w; uint8_t p; int i; @@ -445,12 +417,7 @@ static uint8_t dc_ecc(uint64_t dword) { p <<= 1; t = dword & mask_72_64[i]; - w = (uint32_t)(t >> 32); - p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF] - ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]); - w = (uint32_t)(t & 0xFFFFFFFF); - p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF] - ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]); + p |= parity64(t); } return p; } -- 2.5.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH V3 00/29] bitops: add parity functions 2016-04-14 2:36 [PATCH V3 00/29] bitops: add parity functions zengzhaoxiu 2016-04-14 3:05 ` [PATCH V3 06/29] Tile and MIPS (if has usable __builtin_popcount) use popcount " zengzhaoxiu 2016-04-14 3:09 ` [PATCH V3 11/29] mips: use parity functions in cerr-sb1.c zengzhaoxiu @ 2016-04-14 4:18 ` zengzhaoxiu 2016-04-17 12:38 ` Dmitry Torokhov 3 siblings, 0 replies; 7+ messages in thread From: zengzhaoxiu @ 2016-04-14 4:18 UTC (permalink / raw) To: linux-kernel Cc: Zhaoxiu Zeng, Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald, linux-alpha, linux-snps-arc, linux-arm-kernel, adi-buildroot-devel, linux-c6x-dev, linux-cris-kernel, uclinux-h8-devel, linux-hexagon, linux-ia64, linux-m68k, linux-metag, linux-mips, linux-am33-list, linux, linux-parisc, linuxppc-dev, linux-s390, linux-sh, sparclinux, linux-xtensa, qat-linux, linux-crypto, linux-iio, linux-input, linux-media, linux-mtd, netdev, linux-scsi, linux-serial, linux-arch, linux-nfs From: Zhaoxiu Zeng <zhaoxiu.zeng@gmail.com> When I do "grep parity -r linux", I found many parity calculations distributed in many drivers. This patch series does: 1. provide generic and architecture-specific parity calculations 2. remove drivers' local parity calculations, use bitops' parity functions instead 3. replace "hweightN(x) & 1" with "parityN(x)" to improve readability, and improve performance on some CPUs that without popcount support I did not use GCC's __builtin_parity* functions, based on the following reasons: 1. I don't know where to identify which version of GCC from the beginning supported __builtin_parity for the architecture. 2. For the architecture that doesn't has popcount instruction, GCC instead use "call __paritysi2" (__paritydi2 for 64-bits). So if use __builtin_parity, we must provide __paritysi2 and __paritydi2 functions for these architectures. Additionally, parity4,8,16 might be "__builtin_parity(x & mask)", but the "& mask" operation is totally unnecessary. 3. For the architecture that has popcount instruction, we do the same things. 4. For powerpc, sparc, and x86, we do runtime patching to use popcount instruction if the CPU support. I have compiled successfully with x86_64_defconfig, i386_defconfig, pseries_defconfig and sparc64_defconfig. Changes to v2: - Add constant PARITY_MAGIC (proposals by Sam Ravnborg) - Add include/asm-generic/bitops/popc-parity.h (proposals by Chris Metcalf) - Tile uses popc-parity.h directly - Mips uses popc-parity.h if has usable __builtin_popcount - Add few comments in powerpc's and sparc's parity.S - X86, remove custom calling convention Changes to v1: - Add runtime patching for powerpc, sparc, and x86 - Avr32 use grenric parity too - Fix error in ssfdc's patch, and add commit message - Don't change the original code composition of drivers/iio/gyro/adxrs450.c - Directly assignement to phy_cap.parity in drivers/scsi/isci/phy.c Regards, === diffstat === Zhaoxiu Zeng (29): bitops: add parity functions Include generic parity.h in some architectures' bitops.h Add alpha-specific parity functions Add blackfin-specific parity functions Add ia64-specific parity functions Tile and MIPS (if has usable __builtin_popcount) use popcount parity functions Add powerpc-specific parity functions Add sparc-specific parity functions Add x86-specific parity functions sunrpc: use parity8 mips: use parity functions in cerr-sb1.c bch: use parity32 media: use parity8 in vivid-vbi-gen.c media: use parity functions in saa7115 input: use parity32 in grip_mp input: use parity64 in sidewinder input: use parity16 in ams_delta_serio scsi: use parity32 in isci's phy mtd: use parity16 in ssfdc mtd: use parity functions in inftlcore crypto: use parity functions in qat_hal mtd: use parity16 in sm_ftl ethernet: use parity8 in sun/niu.c input: use parity8 in pcips2 input: use parity8 in sa1111ps2 iio: use parity32 in adxrs450 serial: use parity32 in max3100 input: use parity8 in elantech ethernet: use parity8 in broadcom/tg3.c arch/alpha/include/asm/bitops.h | 27 +++++ arch/arc/include/asm/bitops.h | 1 + arch/arm/include/asm/bitops.h | 1 + arch/arm64/include/asm/bitops.h | 1 + arch/avr32/include/asm/bitops.h | 1 + arch/blackfin/include/asm/bitops.h | 31 ++++++ arch/c6x/include/asm/bitops.h | 1 + arch/cris/include/asm/bitops.h | 1 + arch/frv/include/asm/bitops.h | 1 + arch/h8300/include/asm/bitops.h | 1 + arch/hexagon/include/asm/bitops.h | 1 + arch/ia64/include/asm/bitops.h | 31 ++++++ arch/m32r/include/asm/bitops.h | 1 + arch/m68k/include/asm/bitops.h | 1 + arch/metag/include/asm/bitops.h | 1 + arch/mips/include/asm/bitops.h | 7 ++ arch/mips/mm/cerr-sb1.c | 67 ++++--------- arch/mn10300/include/asm/bitops.h | 1 + arch/openrisc/include/asm/bitops.h | 1 + arch/parisc/include/asm/bitops.h | 1 + arch/powerpc/include/asm/bitops.h | 11 +++ arch/powerpc/lib/Makefile | 2 +- arch/powerpc/lib/parity_64.S | 142 +++++++++++++++++++++++++++ arch/powerpc/lib/ppc_ksyms.c | 5 + arch/s390/include/asm/bitops.h | 1 + arch/sh/include/asm/bitops.h | 1 + arch/sparc/include/asm/bitops_32.h | 1 + arch/sparc/include/asm/bitops_64.h | 18 ++++ arch/sparc/kernel/sparc_ksyms_64.c | 6 ++ arch/sparc/lib/Makefile | 2 +- arch/sparc/lib/parity.S | 128 ++++++++++++++++++++++++ arch/tile/include/asm/bitops.h | 2 + arch/x86/include/asm/arch_hweight.h | 5 + arch/x86/include/asm/arch_parity.h | 117 ++++++++++++++++++++++ arch/x86/include/asm/bitops.h | 4 +- arch/xtensa/include/asm/bitops.h | 1 + drivers/crypto/qat/qat_common/qat_hal.c | 32 ++---- drivers/iio/gyro/adxrs450.c | 4 +- drivers/input/joystick/grip_mp.c | 16 +-- drivers/input/joystick/sidewinder.c | 24 +---- drivers/input/mouse/elantech.c | 10 +- drivers/input/mouse/elantech.h | 1 - drivers/input/serio/ams_delta_serio.c | 8 +- drivers/input/serio/pcips2.c | 2 +- drivers/input/serio/sa1111ps2.c | 2 +- drivers/media/i2c/saa7115.c | 17 +--- drivers/media/platform/vivid/vivid-vbi-gen.c | 9 +- drivers/mtd/inftlcore.c | 17 +--- drivers/mtd/sm_ftl.c | 5 +- drivers/mtd/ssfdc.c | 31 ++---- drivers/net/ethernet/broadcom/tg3.c | 6 +- drivers/net/ethernet/sun/niu.c | 10 +- drivers/scsi/isci/phy.c | 15 +-- drivers/tty/serial/max3100.c | 2 +- include/asm-generic/bitops.h | 1 + include/asm-generic/bitops/arch_parity.h | 39 ++++++++ include/asm-generic/bitops/const_parity.h | 36 +++++++ include/asm-generic/bitops/parity.h | 7 ++ include/asm-generic/bitops/popc-parity.h | 32 ++++++ include/linux/bitops.h | 10 ++ lib/bch.c | 14 +-- net/sunrpc/auth_gss/gss_krb5_keys.c | 6 +- 62 files changed, 745 insertions(+), 235 deletions(-) create mode 100644 arch/powerpc/lib/parity_64.S create mode 100644 arch/sparc/lib/parity.S create mode 100644 arch/x86/include/asm/arch_parity.h create mode 100644 include/asm-generic/bitops/arch_parity.h create mode 100644 include/asm-generic/bitops/const_parity.h create mode 100644 include/asm-generic/bitops/parity.h create mode 100644 include/asm-generic/bitops/popc-parity.h -- 2.5.0 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH V3 00/29] bitops: add parity functions 2016-04-14 2:36 [PATCH V3 00/29] bitops: add parity functions zengzhaoxiu ` (2 preceding siblings ...) 2016-04-14 4:18 ` [PATCH V3 00/29] bitops: add parity functions zengzhaoxiu @ 2016-04-17 12:38 ` Dmitry Torokhov 3 siblings, 0 replies; 7+ messages in thread From: Dmitry Torokhov @ 2016-04-17 12:38 UTC (permalink / raw) To: zengzhaoxiu Cc: linux-kernel, Zhaoxiu Zeng, adi-buildroot-devel, Andrew Morton, Anton Blanchard, Arnd Bergmann, Benjamin Tissoires, Borislav Petkov, Bruce Allan, Christophe Leroy, David Herrmann, David S. Miller, Denys Vlasenko, Duson Lin, Guenter Roeck, Hans de Goede, Hans Verkuil, Hartmut Knaack, Heiko Carstens, Hendrik Brueckner, Herbert Xu, Ingo Molnar, Jiri Pirko, Joonsoo Kim, Julian Calaby, Krzysztof Kozlowski, Lars-Peter Clausen, Leonid Yegoshin, linux-alpha, linux-am33-list, linux-arch, linux-arm-kernel, linux-c6x-dev, linux-cris-kernel, linux-crypto, linux-hexagon, linux-ia64, linux-iio, linux-input, linux, linux-m68k, linux-media, linux-metag, linux-mips, linux-mtd, linux-nfs, linux-parisc, linuxppc-dev, linux-s390, linux-scsi, linux-serial, linux-sh, linux-snps-arc, linux-xtensa, Martin Kepplinger, Martin Schwidefsky, Masahiro Yamada, Mauro Carvalho Chehab, Michael Ellerman, Michal Nazarewicz, netdev, Peter Hutterer, Peter Meerwald, Peter Zijlstra (Intel), Pingchao Yang, qat-linux, Ralf Baechle, Rasmus Villemoes, Russell King, Sasha Levin, Scott Wood, sparclinux, Tadeusz Struk, Takashi Iwai, Thomas Gleixner, Torsten Duwe, uclinux-h8-devel, Ulrik De Bie, Vineet Gupta, Vlastimil Babka, wim.coekaerts@oracle.com, Yoshinori Sato, Yury Norov, 洪一竹 On Thu, Apr 14, 2016 at 10:36:41AM +0800, zengzhaoxiu@163.com wrote: > drivers/input/joystick/grip_mp.c | 16 +-- > drivers/input/joystick/sidewinder.c | 24 +---- > drivers/input/mouse/elantech.c | 10 +- > drivers/input/mouse/elantech.h | 1 - > drivers/input/serio/ams_delta_serio.c | 8 +- > drivers/input/serio/pcips2.c | 2 +- > drivers/input/serio/sa1111ps2.c | 2 +- For input bits: Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-04-17 12:39 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-04-14 2:36 [PATCH V3 00/29] bitops: add parity functions zengzhaoxiu 2016-04-14 3:05 ` [PATCH V3 06/29] Tile and MIPS (if has usable __builtin_popcount) use popcount " zengzhaoxiu 2016-04-15 19:26 ` Chris Metcalf 2016-04-15 19:26 ` Chris Metcalf 2016-04-14 3:09 ` [PATCH V3 11/29] mips: use parity functions in cerr-sb1.c zengzhaoxiu 2016-04-14 4:18 ` [PATCH V3 00/29] bitops: add parity functions zengzhaoxiu 2016-04-17 12:38 ` Dmitry Torokhov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox