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
 
  */
 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
 
 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"
 
 obj-$(CONFIG_PPC_PS3)          += ps3/
 obj-$(CONFIG_EMBEDDED6xx)      += embedded6xx/
 obj-$(CONFIG_AMIGAONE)         += amigaone/
+obj-$(CONFIG_PPC_BOOK3S)       += book3s/
 
--- /dev/null
+# 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".
 
--- /dev/null
+# SPDX-License-Identifier: GPL-2.0-only
+obj-$(CONFIG_PPC_VAS)  += vas-api.o
 
 #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:
 
          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
 
 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
 
 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)
 {