GenWQE Character device and DDCB queue
authorFrank Haverkamp <haver@linux.vnet.ibm.com>
Mon, 9 Dec 2013 12:30:40 +0000 (13:30 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Dec 2013 00:51:15 +0000 (16:51 -0800)
commiteaf4722d4645c6b5a0cacd1f7bbe03ab1af14f6b
treef25a6c74fbbaa9f590b1bbb705982fc5f1de98f8
parent12eb4683251ebfb12afba9c56556fade7a3d7372
GenWQE Character device and DDCB queue

The GenWQE card itself provides access to a generic work queue into
which the work can be put, which should be executed, e.g. compression
or decompression request, or whatever the card was configured to do.

Each request comes with a set of input data (ASV) and will produce some
output data (ASIV). The request will also contain a sequence number,
some timestamps and a command code/subcode plus some fields for hardware-/
software-interaction.

A request can contain references to blocks of memory. Since the card
requires DMA-addresses of that memory, the driver provides two ways to
solve that task:
  1) The drivers mmap() will allocate some DMAable memory for the user.
     The driver has a lookup table such that the virtual userspace
     address can properly be replaced and checked.
  2) The user allocates memory and the driver will pin/unpin that
     memory and setup a scatter gatherlist with matching DMA addresses.

Currently work requests are synchronous.

Signed-off-by: Frank Haverkamp <haver@linux.vnet.ibm.com>
Co-authors: Joerg-Stephan Vogt <jsvogt@de.ibm.com>,
            Michael Jung <MIJUNG@de.ibm.com>,
            Michael Ruettger <michael@ibmra.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/genwqe/card_ddcb.c [new file with mode: 0644]
drivers/misc/genwqe/card_ddcb.h [new file with mode: 0644]
drivers/misc/genwqe/card_dev.c [new file with mode: 0644]