Skip to content

Commit

Permalink
powerpc/vas: Move VAS API to book3s common platform
Browse files Browse the repository at this point in the history
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.

Signed-off-by: Haren Myneni <haren@linux.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/e05c8db17b9eabe3545b902d034238e4c6c08180.camel@linux.ibm.com
  • Loading branch information
Haren Myneni authored and Michael Ellerman committed Jun 20, 2021
1 parent 91cdbb9 commit 413d6ed
Show file tree
Hide file tree
Showing 9 changed files with 24 additions and 18 deletions.
3 changes: 3 additions & 0 deletions arch/powerpc/include/asm/vas.h
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,9 @@ int vas_copy_crb(void *crb, int offset);
*/
int vas_paste_crb(struct vas_window *win, int offset, bool re);

void vas_win_paste_addr(struct vas_window *window, u64 *addr,
int *len);

/*
* Register / unregister coprocessor type to VAS API which will be exported
* to user space. Applications can use this API to open / close window
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/platforms/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/platforms/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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/
15 changes: 15 additions & 0 deletions arch/powerpc/platforms/book3s/Kconfig
Original file line number Diff line number Diff line change
@@ -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".
2 changes: 2 additions & 0 deletions arch/powerpc/platforms/book3s/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_PPC_VAS) += vas-api.o
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
14 changes: 0 additions & 14 deletions arch/powerpc/platforms/powernv/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion arch/powerpc/platforms/powernv/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 0 additions & 2 deletions arch/powerpc/platforms/powernv/vas.h
Original file line number Diff line number Diff line change
Expand Up @@ -438,8 +438,6 @@ extern irqreturn_t vas_fault_handler(int irq, void *dev_id);
extern void vas_return_credit(struct vas_window *window, bool tx);
extern struct vas_window *vas_pswid_to_window(struct vas_instance *vinst,
uint32_t pswid);
extern void vas_win_paste_addr(struct vas_window *window, u64 *addr,
int *len);

static inline int vas_window_pid(struct vas_window *window)
{
Expand Down

0 comments on commit 413d6ed

Please sign in to comment.