Hi Herbert, This series adds support for hardware accelerated compression & decompression as found on ThunderX (arm64) SOCs. As per your suggestion, we've switched to the new crypto acomp/scomp interface. To test the ZIP driver, we modified the kernel's ZSWAP to use acomp API's. Performance numbers from ZSWAP look promising. The "average time" for compressing a 4KB page: Compression Software : 278 usec Compression HW deflate : 17 usec Compression HW LZS : 11 usec Decompression Software : 20 usec Decompression HW deflate: 8 usec Decompression HW LZS : 6 usec Addressed the review comments from the RFC v1. - Added acomp/scomp crypto interface support. - Improved the error handling. - ZIP command completion codes are renamed suitably. - Removed some un-used code. - raw_smp_processor_id() replaced with smp_processor_id(). - Some more miscellaneous changes. Patches are on top of "kernel/git/herbert/crypto-2.6.git" repository Please provide your feedback. Regards, Mahipal ------------ Mahipal Challa (3): crypto: zip - Add ThunderX ZIP driver core crypto: zip - Wire-up Compression / decompression HW offload crypto: zip - Add Compression/Decompression statistics drivers/crypto/Kconfig | 7 + drivers/crypto/Makefile | 1 + drivers/crypto/cavium/Makefile | 4 + drivers/crypto/cavium/zip/Makefile | 11 + drivers/crypto/cavium/zip/common.h | 202 +++++ drivers/crypto/cavium/zip/zip_crypto.c | 314 +++++++ drivers/crypto/cavium/zip/zip_crypto.h | 79 ++ drivers/crypto/cavium/zip/zip_deflate.c | 200 +++++ drivers/crypto/cavium/zip/zip_deflate.h | 62 ++ drivers/crypto/cavium/zip/zip_device.c | 202 +++++ drivers/crypto/cavium/zip/zip_device.h | 108 +++ drivers/crypto/cavium/zip/zip_inflate.c | 223 +++++ drivers/crypto/cavium/zip/zip_inflate.h | 62 ++ drivers/crypto/cavium/zip/zip_main.c | 729 +++++++++++++++++ drivers/crypto/cavium/zip/zip_main.h | 121 +++ drivers/crypto/cavium/zip/zip_mem.c | 114 +++ drivers/crypto/cavium/zip/zip_mem.h | 78 ++ drivers/crypto/cavium/zip/zip_regs.h | 1347 +++++++++++++++++++++++++++++++ 18 files changed, 3864 insertions(+) create mode 100644 drivers/crypto/cavium/Makefile create mode 100644 drivers/crypto/cavium/zip/Makefile create mode 100644 drivers/crypto/cavium/zip/common.h create mode 100644 drivers/crypto/cavium/zip/zip_crypto.c create mode 100644 drivers/crypto/cavium/zip/zip_crypto.h create mode 100644 drivers/crypto/cavium/zip/zip_deflate.c create mode 100644 drivers/crypto/cavium/zip/zip_deflate.h create mode 100644 drivers/crypto/cavium/zip/zip_device.c create mode 100644 drivers/crypto/cavium/zip/zip_device.h create mode 100644 drivers/crypto/cavium/zip/zip_inflate.c create mode 100644 drivers/crypto/cavium/zip/zip_inflate.h create mode 100644 drivers/crypto/cavium/zip/zip_main.c create mode 100644 drivers/crypto/cavium/zip/zip_main.h create mode 100644 drivers/crypto/cavium/zip/zip_mem.c create mode 100644 drivers/crypto/cavium/zip/zip_mem.h create mode 100644 drivers/crypto/cavium/zip/zip_regs.h -- 1.8.3.1