• F
    GenWQE Character device and DDCB queue · eaf4722d
    Frank Haverkamp 提交于
    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: NFrank 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: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    eaf4722d
card_dev.c 37.3 KB