linux-stable/drivers/crypto/caam
Steffen Trumtrar f657f82cc9 crypto: caam - fix non-64-bit write/read access
The patch

	crypto: caam - Add definition of rd/wr_reg64 for little endian platform

added support for little endian platforms to the CAAM driver. Namely a
write and read function for 64 bit registers.
The only user of this functions is the Job Ring driver (drivers/crypto/caam/jr.c).
It uses the functions to set the DMA addresses for the input/output rings.
However, at least in the default configuration, the least significant 32 bits are
always in the base+0x0004 address; independent of the endianness of the bytes itself.
That means the addresses do not change with the system endianness.

DMA addresses are only 32 bits wide on non-64-bit systems, writing the upper 32 bits
of this value to the register for the least significant bits results in the DMA address
being set to 0.

Fix this by always writing the registers in the same way.

Suggested-by: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2015-06-18 14:45:28 +08:00
..
caamalg.c crypto: caam - Convert GCM to new AEAD interface 2015-06-17 15:35:08 +08:00
caamhash.c crypto: caam - Fix incorrect size when DMA unmapping buffer 2015-06-16 14:35:07 +08:00
caamrng.c hwrng: caam - fix rng_unmap_ctx's DMA_UNMAP size problem 2015-03-09 21:06:17 +11:00
compat.h crypto: caam - Include internal/aead.h 2015-05-13 10:31:28 +08:00
ctrl.c crypto: caam - Provide correct value to iounmap() in controller driver 2015-06-16 14:35:42 +08:00
ctrl.h crypto: caam - fix ERA retrieval function 2014-02-09 09:59:27 +08:00
desc.h crypto: caam - remove duplicate FIFOST_CONT_MASK define 2014-06-20 21:27:57 +08:00
desc_constr.h crypto: caam - add support for ctr(aes) 2014-11-06 23:15:04 +08:00
error.c crypto: caam - don't emit ICV check failures to dmesg 2015-01-26 11:34:23 +11:00
error.h crypto: caam - Contain caam_jr_strstatus() ugliness 2014-05-08 21:58:06 +08:00
intern.h crypto: caam - Dynamic allocation of addresses for various memory blocks in CAAM. 2014-09-15 19:44:11 +08:00
jr.c crypto: caam - fix resource clean-up on error path for caam_jr_init 2015-01-26 11:34:25 +11:00
jr.h crypto: caam - Add API's to allocate/free Job Rings 2013-10-30 12:02:57 +08:00
Kconfig crypto: caam - Add Platform driver for Job Ring 2013-10-30 12:02:57 +08:00
key_gen.c crypto: caam - fix missing dma unmap on error path 2014-11-06 23:10:20 +08:00
key_gen.h crypto: caam - change key gen functions to return signed int 2013-04-25 21:01:43 +08:00
Makefile crypto: caam - Add Platform driver for Job Ring 2013-10-30 12:02:57 +08:00
pdb.h crypto: caam - Add define for Adjust Output Frame Length in PDB 2013-05-28 15:37:08 +08:00
regs.h crypto: caam - fix non-64-bit write/read access 2015-06-18 14:45:28 +08:00
sg_sw_sec4.h crypto: caam - Handle errors in dma_map_sg_chained 2015-06-17 15:35:08 +08:00