summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/omap-crypto.h
diff options
context:
space:
mode:
authorTero Kristo <t-kristo@ti.com>2017-05-24 09:35:26 +0200
committerHerbert Xu <herbert@gondor.apana.org.au>2017-06-10 06:04:15 +0200
commit74ed87e7e7f7197137164738dd0610ccd5ec5ed1 (patch)
tree3d17637e5eb4b650596f880285de5c0c784a5f6b /drivers/crypto/omap-crypto.h
parentcrypto: omap-des - use runtime_pm autosuspend for clock handling (diff)
downloadlinux-74ed87e7e7f7197137164738dd0610ccd5ec5ed1.tar.xz
linux-74ed87e7e7f7197137164738dd0610ccd5ec5ed1.zip
crypto: omap - add base support library for common routines
This contains the generic APIs for aligning SG buffers. Signed-off-by: Tero Kristo <t-kristo@ti.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/omap-crypto.h')
-rw-r--r--drivers/crypto/omap-crypto.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/drivers/crypto/omap-crypto.h b/drivers/crypto/omap-crypto.h
new file mode 100644
index 000000000000..36a230eb87af
--- /dev/null
+++ b/drivers/crypto/omap-crypto.h
@@ -0,0 +1,37 @@
+/*
+ * OMAP Crypto driver common support routines.
+ *
+ * Copyright (c) 2017 Texas Instruments Incorporated
+ * Tero Kristo <t-kristo@ti.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as published
+ * by the Free Software Foundation.
+ */
+
+#ifndef __CRYPTO_OMAP_CRYPTO_H
+#define __CRYPTO_OMAP_CRYPTO_H
+
+enum {
+ OMAP_CRYPTO_NOT_ALIGNED = 1,
+ OMAP_CRYPTO_BAD_DATA_LENGTH,
+};
+
+#define OMAP_CRYPTO_DATA_COPIED BIT(0)
+#define OMAP_CRYPTO_SG_COPIED BIT(1)
+
+#define OMAP_CRYPTO_COPY_MASK 0x3
+
+#define OMAP_CRYPTO_COPY_DATA BIT(0)
+#define OMAP_CRYPTO_FORCE_COPY BIT(1)
+#define OMAP_CRYPTO_ZERO_BUF BIT(2)
+#define OMAP_CRYPTO_FORCE_SINGLE_ENTRY BIT(3)
+
+int omap_crypto_align_sg(struct scatterlist **sg, int total, int bs,
+ struct scatterlist *new_sg, u16 flags,
+ u8 flags_shift, unsigned long *dd_flags);
+void omap_crypto_cleanup(struct scatterlist *sg, struct scatterlist *orig,
+ int offset, int len, u8 flags_shift,
+ unsigned long flags);
+
+#endif