Re: [PATCH v5 02/17] powerpc/vas: Move VAS API to book3s common platform

Nicholas Piggin
2021-06-14T02:10:44Z

Excerpts from Haren Myneni's message of June 13, 2021 8:55 pm:
>
> Using the same /dev/crypto/nx-gzip interface for both powerNV and
> pseries. So this patch creates platforms/book3s/ and moves VAS API
> to that directory. The actual functionality is not changed.
>
> Signed-off-by: Haren Myneni <haren@linux.ibm.com>

Just a minor nit with the wording of the changelog.

The pseries platform will share vas and nx code and interfaces with the
powernv platform, so create the arch/powerpc/platforms/book3s/ directory
and move VAS API code there. Functionality is not changed.

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>

> ---
> arch/powerpc/platforms/Kconfig | 1 +
> arch/powerpc/platforms/Makefile | 1 +
> arch/powerpc/platforms/book3s/Kconfig | 15 +++++++++++++++
> arch/powerpc/platforms/book3s/Makefile | 2 ++
> .../platforms/{powernv => book3s}/vas-api.c | 2 +-
> arch/powerpc/platforms/powernv/Kconfig | 14 --------------
> arch/powerpc/platforms/powernv/Makefile | 2 +-
> 7 files changed, 21 insertions(+), 16 deletions(-)
> create mode 100644 arch/powerpc/platforms/book3s/Kconfig
> create mode 100644 arch/powerpc/platforms/book3s/Makefile
> rename arch/powerpc/platforms/{powernv => book3s}/vas-api.c (99%)
>
> diff --git a/arch/powerpc/platforms/Kconfig b/arch/powerpc/platforms/Kconfig
> index 7a5e8f4541e3..594544a65b02 100644
> --- a/arch/powerpc/platforms/Kconfig
> +++ b/arch/powerpc/platforms/Kconfig
> @@ -20,6 +20,7 @@ source "arch/powerpc/platforms/embedded6xx/Kconfig"
> source "arch/powerpc/platforms/44x/Kconfig"
> source "arch/powerpc/platforms/40x/Kconfig"
> source "arch/powerpc/platforms/amigaone/Kconfig"
> +source "arch/powerpc/platforms/book3s/Kconfig"
>
> config KVM_GUEST
> bool "KVM Guest support"
> diff --git a/arch/powerpc/platforms/Makefile b/arch/powerpc/platforms/Makefile
> index 143d4417f6cc..0e75d7df387b 100644
> --- a/arch/powerpc/platforms/Makefile
> +++ b/arch/powerpc/platforms/Makefile
> @@ -22,3 +22,4 @@ obj-$(CONFIG_PPC_CELL) += cell/
> obj-$(CONFIG_PPC_PS3) += ps3/
> obj-$(CONFIG_EMBEDDED6xx) += embedded6xx/
> obj-$(CONFIG_AMIGAONE) += amigaone/
> +obj-$(CONFIG_PPC_BOOK3S) += book3s/
> diff --git a/arch/powerpc/platforms/book3s/Kconfig b/arch/powerpc/platforms/book3s/Kconfig
> new file mode 100644
> index 000000000000..34c931592ef0
> --- /dev/null
> +++ b/arch/powerpc/platforms/book3s/Kconfig
> @@ -0,0 +1,15 @@
> +# SPDX-License-Identifier: GPL-2.0
> +config PPC_VAS
> + bool "IBM Virtual Accelerator Switchboard (VAS)"
> + depends on (PPC_POWERNV || PPC_PSERIES) && PPC_64K_PAGES
> + default y
> + help
> + This enables support for IBM Virtual Accelerator Switchboard (VAS).
> +
> + VAS devices are found in POWER9-based and later systems, they
> + provide access to accelerator coprocessors such as NX-GZIP and
> + NX-842. This config allows the kernel to use NX-842 accelerators,
> + and user-mode APIs for the NX-GZIP accelerator on POWER9 PowerNV
> + and POWER10 PowerVM platforms.
> +
> + If unsure, say "N".
> diff --git a/arch/powerpc/platforms/book3s/Makefile b/arch/powerpc/platforms/book3s/Makefile
> new file mode 100644
> index 000000000000..e790f1910f61
> --- /dev/null
> +++ b/arch/powerpc/platforms/book3s/Makefile
> @@ -0,0 +1,2 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +obj-$(CONFIG_PPC_VAS) += vas-api.o
> diff --git a/arch/powerpc/platforms/powernv/vas-api.c b/arch/powerpc/platforms/book3s/vas-api.c
> similarity index 99%
> rename from arch/powerpc/platforms/powernv/vas-api.c
> rename to arch/powerpc/platforms/book3s/vas-api.c
> index 98ed5d8c5441..cfc9d7dd65ab 100644
> --- a/arch/powerpc/platforms/powernv/vas-api.c
> +++ b/arch/powerpc/platforms/book3s/vas-api.c
> @@ -10,9 +10,9 @@
> #include <linux/fs.h>
> #include <linux/slab.h>
> #include <linux/uaccess.h>
> +#include <linux/io.h>
> #include <asm/vas.h>
> #include <uapi/asm/vas-api.h>
> -#include "vas.h"
>
> /*
> * The driver creates the device node that can be used as follows:
> diff --git a/arch/powerpc/platforms/powernv/Kconfig b/arch/powerpc/platforms/powernv/Kconfig
> index 619b093a0657..043eefbbdd28 100644
> --- a/arch/powerpc/platforms/powernv/Kconfig
> +++ b/arch/powerpc/platforms/powernv/Kconfig
> @@ -33,20 +33,6 @@ config PPC_MEMTRACE
> Enabling this option allows for runtime allocation of memory (RAM)
> for hardware tracing.
>
> -config PPC_VAS
> - bool "IBM Virtual Accelerator Switchboard (VAS)"
> - depends on PPC_POWERNV && PPC_64K_PAGES
> - default y
> - help
> - This enables support for IBM Virtual Accelerator Switchboard (VAS).
> -
> - VAS allows accelerators in co-processors like NX-GZIP and NX-842
> - to be accessible to kernel subsystems and user processes.
> -
> - VAS adapters are found in POWER9 based systems.
> -
> - If unsure, say N.
> -
> config SCOM_DEBUGFS
> bool "Expose SCOM controllers via debugfs"
> depends on DEBUG_FS
> diff --git a/arch/powerpc/platforms/powernv/Makefile b/arch/powerpc/platforms/powernv/Makefile
> index be2546b96816..dc7b37c23b60 100644
> --- a/arch/powerpc/platforms/powernv/Makefile
> +++ b/arch/powerpc/platforms/powernv/Makefile
> @@ -18,7 +18,7 @@ obj-$(CONFIG_MEMORY_FAILURE) += opal-memory-errors.o
> obj-$(CONFIG_OPAL_PRD) += opal-prd.o
> obj-$(CONFIG_PERF_EVENTS) += opal-imc.o
> obj-$(CONFIG_PPC_MEMTRACE) += memtrace.o
> -obj-$(CONFIG_PPC_VAS) += vas.o vas-window.o vas-debug.o vas-fault.o vas-api.o
> +obj-$(CONFIG_PPC_VAS) += vas.o vas-window.o vas-debug.o vas-fault.o
> obj-$(CONFIG_OCXL_BASE) += ocxl.o
> obj-$(CONFIG_SCOM_DEBUGFS) += opal-xscom.o
> obj-$(CONFIG_PPC_SECURE_BOOT) += opal-secvar.o
> --
> 2.18.2
>
>
>