Message ID | ab39540c383d93a0a4dec847fe21586450decf5f.camel@linux.ibm.com (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Herbert Xu |
Headers | show |
Series | Enable VAS and NX-GZIP support on PowerVM | expand |
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 > > >
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
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> --- 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%)