crypto/nx: Add P9 NX support for 842 compression engine
authorHaren Myneni <haren@linux.vnet.ibm.com>
Thu, 31 Aug 2017 07:19:07 +0000 (00:19 -0700)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 1 Sep 2017 06:42:51 +0000 (16:42 +1000)
commitb0d6c9bab5e41d07f2bece1ef8c81cd2175b5f88
treee1e08fa7da25a2e00ad60548ece8e8214480b063
parent146e9f1b65478643f2729a97ccb8be60bb4492e5
crypto/nx: Add P9 NX support for 842 compression engine

This patch adds P9 NX support for 842 compression engine. Virtual
Accelerator Switchboard (VAS) is used to access 842 engine on P9.

For each NX engine per chip, setup receive window using
vas_rx_win_open() which configures RxFIFo with FIFO address, lpid,
pid and tid values. This unique (lpid, pid, tid) combination will
be used to identify the target engine.

For crypto open request, open send window on the NX engine for
the corresponding chip / cpu where the open request is executed.
This send window will be closed upon crypto close request.

NX provides high and normal priority FIFOs. For compression /
decompression requests, we use only hight priority FIFOs in kernel.

Each NX request will be communicated to VAS using copy/paste
instructions with vas_copy_crb() / vas_paste_crb() functions.

Signed-off-by: Haren Myneni <haren@us.ibm.com>
Reviewed-by: Ram Pai <linuxram@us.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
drivers/crypto/nx/Kconfig
drivers/crypto/nx/nx-842-powernv.c