[PATCH v5 0/3] arch/riscv: Add bitrev.h file to support rev8 and brev8

Jinjie Ruan posted 3 patches 1 month, 2 weeks ago
arch/riscv/Kconfig                    |  2 ++
arch/riscv/include/asm/bitrev.h       | 51 +++++++++++++++++++++++++++
include/asm-generic/bitops/__bitrev.h | 25 +++++++++++++
include/linux/bitrev.h                | 20 +++--------
lib/Kconfig                           | 18 ++++++++++
lib/bitrev.c                          |  4 +--
6 files changed, 102 insertions(+), 18 deletions(-)
create mode 100644 arch/riscv/include/asm/bitrev.h
create mode 100644 include/asm-generic/bitops/__bitrev.h
[PATCH v5 0/3] arch/riscv: Add bitrev.h file to support rev8 and brev8
Posted by Jinjie Ruan 1 month, 2 weeks ago
Add bitrev.h file to support rev8 and brev8 for riscv.

Tested functionally on riscv64 QEMU with:
	"-M virt,acpi=on,zbkb=true,zbb=true"

Changes in v5:
- Rename NEED_BYTE_REV_TABLE to GENERIC_BITREVERSE.
- Add help text and make GENERIC_BITREVERSE depends on BITREVERSE, and
  use def_bool.
- Split into three patches.
- Add suggested-by.

Changes in v4:
- Update the riscv implementation as David suggested.
- Add new config called NEED_BYTE_REV_TABLE as David suggested to avoid
  bloating the .data section for architectures that have full hardware
  bit-reverse support and don't need the table.

Changes in v3:
- Fix the build issue by remving the CONFIG_HAVE_ARCH_BITREVERSE macro
  for byte_rev_table.
- Update the riscv implementation as David suggested.
- Add Reviwed-by.

Changes in v2:
- Define generic __bitrev8/16/32 for reuse in riscv.

Jinjie Ruan (3):
  lib/bitrev: Introduce GENERIC_BITREVERSE and cleanup Kconfig
  bitops: Define generic __bitrev8/16/32 for reuse
  arch/riscv: Add bitrev.h file to support rev8 and brev8

 arch/riscv/Kconfig                    |  2 ++
 arch/riscv/include/asm/bitrev.h       | 51 +++++++++++++++++++++++++++
 include/asm-generic/bitops/__bitrev.h | 25 +++++++++++++
 include/linux/bitrev.h                | 20 +++--------
 lib/Kconfig                           | 18 ++++++++++
 lib/bitrev.c                          |  4 +--
 6 files changed, 102 insertions(+), 18 deletions(-)
 create mode 100644 arch/riscv/include/asm/bitrev.h
 create mode 100644 include/asm-generic/bitops/__bitrev.h

-- 
2.34.1
Re: [PATCH v5 0/3] arch/riscv: Add bitrev.h file to support rev8 and brev8
Posted by Yury Norov 1 month, 2 weeks ago
On Tue, Apr 21, 2026 at 09:07:49PM +0800, Jinjie Ruan wrote:
> Add bitrev.h file to support rev8 and brev8 for riscv.
> 
> Tested functionally on riscv64 QEMU with:
> 	"-M virt,acpi=on,zbkb=true,zbb=true"
 
Applied in bitmap-for-next. Thanks!

> Changes in v5:
> - Rename NEED_BYTE_REV_TABLE to GENERIC_BITREVERSE.
> - Add help text and make GENERIC_BITREVERSE depends on BITREVERSE, and
>   use def_bool.
> - Split into three patches.
> - Add suggested-by.
> 
> Changes in v4:
> - Update the riscv implementation as David suggested.
> - Add new config called NEED_BYTE_REV_TABLE as David suggested to avoid
>   bloating the .data section for architectures that have full hardware
>   bit-reverse support and don't need the table.
> 
> Changes in v3:
> - Fix the build issue by remving the CONFIG_HAVE_ARCH_BITREVERSE macro
>   for byte_rev_table.
> - Update the riscv implementation as David suggested.
> - Add Reviwed-by.
> 
> Changes in v2:
> - Define generic __bitrev8/16/32 for reuse in riscv.
> 
> Jinjie Ruan (3):
>   lib/bitrev: Introduce GENERIC_BITREVERSE and cleanup Kconfig
>   bitops: Define generic __bitrev8/16/32 for reuse
>   arch/riscv: Add bitrev.h file to support rev8 and brev8
> 
>  arch/riscv/Kconfig                    |  2 ++
>  arch/riscv/include/asm/bitrev.h       | 51 +++++++++++++++++++++++++++
>  include/asm-generic/bitops/__bitrev.h | 25 +++++++++++++
>  include/linux/bitrev.h                | 20 +++--------
>  lib/Kconfig                           | 18 ++++++++++
>  lib/bitrev.c                          |  4 +--
>  6 files changed, 102 insertions(+), 18 deletions(-)
>  create mode 100644 arch/riscv/include/asm/bitrev.h
>  create mode 100644 include/asm-generic/bitops/__bitrev.h
> 
> -- 
> 2.34.1