• Cyrille Pitchen's avatar
    crypto: atmel-sha - update request queue management to make it more generic · a29af939
    Cyrille Pitchen authored
    This patch is a transitional patch. It splits the atmel_sha_handle_queue()
    function. Now atmel_sha_handle_queue() only manages the request queue and
    calls a new .start() hook from the atmel_sha_ctx structure.
    This hook allows to implement different kind of requests still handled by
    a single queue.
    
    Also when the req parameter of atmel_sha_handle_queue() refers to the very
    same request as the one returned by crypto_dequeue_request(), the queue
    management now gives a chance to this crypto request to be handled
    synchronously, hence reducing latencies. The .start() hook returns 0 if
    the crypto request was handled synchronously and -EINPROGRESS if the
    crypto request still need to be handled asynchronously.
    
    Besides, the new .is_async member of the atmel_sha_dev structure helps
    tagging this asynchronous state. Indeed, the req->base.complete() callback
    should not be called if the crypto request is handled synchronously.
    Signed-off-by: default avatarCyrille Pitchen <cyrille.pitchen@atmel.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    a29af939
atmel-sha.c 39.1 KB