This series of patches will add command descriptor support to read/write crypto engine register via BAM/DMA We need this support because if there is multiple EE's (Execution Environment) accessing the same CE even with different BAM pipe , then there will be race condition. To avoid this race condition BAM HW having LOCK/UNLOCK feature on BAM pipes and this LOCK/UNLOCK will be set via command descriptor only. Since each EE's having their dedicated BAM pipe, BAM allows Locking and Unlocking on BAM pipe. So if one EE's requesting for CE5 access then that EE's first has to LOCK the BAM pipe while setting LOCK bit on command descriptor and then access it. After finishing the request EE's has to UNLOCK the BAM pipe so in this way we race condition will not happen. Md Sadre Alam (11): crypto: qce - Add support for crypto address read crypto: qce - Add bam dma support for crypto register r/w crypto: qce - Convert register r/w for skcipher via BAM/DMA crypto: qce - Convert register r/w for sha via BAM/DMA crypto: qce - Convert register r/w for aead via BAM/DMA drivers: bam_dma: Add LOCK & UNLOCK flag support crypto: qce - Add LOCK and UNLOCK flag support crypto: qce - Add support for lock aquire,lock release api. crypto: qce - Add support for lock/unlock in skcipher crypto: qce - Add support for lock/unlock in sha crypto: qce - Add support for lock/unlock in aead drivers/crypto/qce/aead.c | 16 +++ drivers/crypto/qce/common.c | 144 +++++++++++++------ drivers/crypto/qce/core.c | 9 ++ drivers/crypto/qce/core.h | 12 ++ drivers/crypto/qce/dma.c | 238 +++++++++++++++++++++++++++++++ drivers/crypto/qce/dma.h | 26 +++- drivers/crypto/qce/sha.c | 16 +++ drivers/crypto/qce/skcipher.c | 16 +++ drivers/dma/qcom/bam_dma.c | 10 ++ include/linux/dma/qcom_bam_dma.h | 2 + 10 files changed, 447 insertions(+), 42 deletions(-) -- 2.34.1