| #
76d6685e |
| 17-Dec-2024 |
Etienne Carriere <etienne.carriere@foss.st.com> |
tree-wide: use power-of-2 rounding macros where applicable
Use ROUNDUP2(), ROUNDUP2_OVERFLOW(), ROUNDUP2_DIV() and ROUNDDOWN2() at places where the rounding argument is a variable value and we want
tree-wide: use power-of-2 rounding macros where applicable
Use ROUNDUP2(), ROUNDUP2_OVERFLOW(), ROUNDUP2_DIV() and ROUNDDOWN2() at places where the rounding argument is a variable value and we want to leverage the implementation of these routines optimized for a power-of-2 rounding argument.
Signed-off-by: Etienne Carriere <etienne.carriere@foss.st.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
dfb77f83 |
| 31-Aug-2023 |
Clement Faure <clement.faure@nxp.com> |
drivers: caam: remove dead code
Remove value check as it cannot be true and appears to be dead code.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@li
drivers: caam: remove dead code
Remove value check as it cannot be true and appears to be dead code.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
e2d69ac1 |
| 31-Aug-2023 |
Clement Faure <clement.faure@nxp.com> |
drivers: caam: free resource upon sgtbuf initialization failure
Call caam_dmaobj_free() upon caam_dmaobj_input_sgtbuf() failure to free buffer allocated by caam_dmaobj_input_sgtbuf().
Signed-off-b
drivers: caam: free resource upon sgtbuf initialization failure
Call caam_dmaobj_free() upon caam_dmaobj_input_sgtbuf() failure to free buffer allocated by caam_dmaobj_input_sgtbuf().
Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
e86f18e2 |
| 24-Jul-2023 |
Clement Faure <clement.faure@nxp.com> |
drivers: caam: remove dead code
Remove value check as it cannot be true and appears to be dead code. Use array index syntax instead of pointer arithmetic for better readability.
Signed-off-by: Clem
drivers: caam: remove dead code
Remove value check as it cannot be true and appears to be dead code. Use array index syntax instead of pointer arithmetic for better readability.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
48c28829 |
| 31-Jul-2023 |
Clement Faure <clement.faure@nxp.com> |
drivers: caam: free resource upon dmaobj initialization failure
Call caam_dmaobj_free() upon caam_dmaobj_init_[input|output}() failure to free buffer allocated by allocate_private().
Signed-off-by:
drivers: caam: free resource upon dmaobj initialization failure
Call caam_dmaobj_free() upon caam_dmaobj_init_[input|output}() failure to free buffer allocated by allocate_private().
Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|
| #
1ae3ec2d |
| 24-Mar-2022 |
Clement Faure <clement.faure@nxp.com> |
drivers: caam: avoid arithmetic operation for pointer assignment
To parse the pointer array priv->sgtdata[], use this syntax array[idx] instead of array + idx. The new syntax is easier to read and l
drivers: caam: avoid arithmetic operation for pointer assignment
To parse the pointer array priv->sgtdata[], use this syntax array[idx] instead of array + idx. The new syntax is easier to read and less prone to errors.
Fixes: 38923d48 ("drivers: caam: implement CAAM DMA Object") Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
4278ad18 |
| 25-Aug-2021 |
Clement Faure <clement.faure@nxp.com> |
drivers: caam: dma: fix copy data size
After each crypto operation that involves a DMA output, the content of the SGT buffer is copied to the actual output buffer. Fix the DMA copy function where th
drivers: caam: dma: fix copy data size
After each crypto operation that involves a DMA output, the content of the SGT buffer is copied to the actual output buffer. Fix the DMA copy function where the size of the data to be copied is either the full size of the data processed by the CAAM (obj->sgtbuf.length) or the size of the output buffer.
In some cases, the output buffer is smaller than the CAAM output. The size of data to be copied is the smallest size between the CAAM output data size and the output buffer size.
Fixes: 38923d4 ("drivers: caam: implement CAAM DMA Object") Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jerome Forissier <jerome@forissier.org> Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
1b7b5954 |
| 17-Feb-2021 |
Cedric Neveux <cedric.neveux@nxp.com> |
drivers: caam: fix missing output additional length
CAAM HW Module requires additional bytes in output buffer to perform the requested operation. This is the case for ECDSA operation, signature must
drivers: caam: fix missing output additional length
CAAM HW Module requires additional bytes in output buffer to perform the requested operation. This is the case for ECDSA operation, signature must be 16 bytes aligned. The CAAM DMA object is adding the required bytes if the signature output buffer is too short. The issue is that this additional bytes were not added in the DMA buffer to be allocated.
Fixes: 38923d4 ("drivers: caam: implement CAAM DMA Object") Signed-off-by: Cedric Neveux <cedric.neveux@nxp.com> Acked-by: Jerome Forissier <jerome@forissier.org> Acked-by: Ruchika Gupta <ruchika.gupta@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
show more ...
|
| #
661cea17 |
| 10-Jun-2021 |
Cedric Neveux <cedric.neveux@nxp.com> |
drivers: caam: fix DMA object when only output reallocated
Use case: - cipher block to encrypt/decrypt is more than 1 Kbytes (e.g. 1232 bytes) - input data are accessible from CAAM (no reallocatio
drivers: caam: fix DMA object when only output reallocated
Use case: - cipher block to encrypt/decrypt is more than 1 Kbytes (e.g. 1232 bytes) - input data are accessible from CAAM (no reallocation) - output data is not accessible from CAAM (reallocation of DMA buffer).
In case of cipher operation, the input and output CAAM SGT/Buffer are built in same time through function caam_dmaobj_sgtbuf_inout_build() to ensure that both SGT/Buffer do the same cipher block size. Function caam_dmaobj_sgtbuf_inout_build() calls the function caam_dmaobj_sgtbuf_build(): - first to build the input data SGT/Buffer. Length returned is whole cipher buffer size (i.e. 1232 bytes). - secondly to build the output data SGT/Buffer. Length return is whole cipher buffer size (i.e. 1232 bytes) whereas it must be 1024 bytes because output data must use the reallocation DMA buffer (max 1KBytes).
Fix consist in returning the SGT/Buffer length effectively mapped and not the maximum length that is the input data SGT/Buffer length.
Consequence of this fix, AES CMAC update loop has to be fixed.
Fixes: 38923d487567 ("drivers: caam: implement CAAM DMA Object")
Signed-off-by: Cedric Neveux <cedric.neveux@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| #
fc8c4b4a |
| 19-May-2021 |
Clement Faure <clement.faure@nxp.com> |
drivers: caam: remove faulty DMAOJB_TRACE()
Remove DMA object debug trace that would print a structure variable through a NULL pointer.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Reviewed
drivers: caam: remove faulty DMAOJB_TRACE()
Remove DMA object debug trace that would print a structure variable through a NULL pointer.
Signed-off-by: Clement Faure <clement.faure@nxp.com> Reviewed-by: Jerome Forissier <jerome@forissier.org>
show more ...
|
| #
38923d48 |
| 27-Mar-2020 |
Cedric Neveux <cedric.neveux@nxp.com> |
drivers: caam: implement CAAM DMA Object
Implementation of a CAAM DMA object to: - create a DMA object (SGT/buffer) based on input/output buffers - reallocate a new buffer accessible from the CA
drivers: caam: implement CAAM DMA Object
Implementation of a CAAM DMA object to: - create a DMA object (SGT/buffer) based on input/output buffers - reallocate a new buffer accessible from the CAAM address space - ensure buffer is cache aligned (for the output)
Implementation of CAAM DMA object functions to: - cache maintenance - free CAAM DMA object
Signed-off-by: Cedric Neveux <cedric.neveux@nxp.com> Signed-off-by: Clement Faure <clement.faure@nxp.com> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|