diff options
author | David S. Miller <davem@davemloft.net> | 2012-09-15 12:46:25 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-09-15 12:46:25 -0400 |
commit | 979e93ca24e8336acb660529676dcda6817d8a1f (patch) | |
tree | 40f854f3b7b0e3e333738cf699d0acfcbfef85bf /arch/sparc/crypto | |
parent | 71741680a9858a7fcba54acf5b321d185abef1e8 (diff) |
sparc64: Add auto-loading mechanism to crypto-opcode drivers.
Just simply provide a device table containing an entry for sun4v cpus,
the capability mask checks in the drivers themselves will take care of
the rest.
This makes the bootup logs on pre-T4 cpus slightly more verbose, with
each driver indicating lack of support for the associated opcode(s).
But this isn't too much of a real problem.
I toyed with the idea of using explicit entries with compatability
fields of "SPARC-T4", "SPARC-T5", etc. but all future cpus will have
some subset of these opcodes available and this would just be one more
pointless thing to do as each new cpu is released with a new string.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/crypto')
-rw-r--r-- | arch/sparc/crypto/Makefile | 16 | ||||
-rw-r--r-- | arch/sparc/crypto/crop_devid.c | 14 |
2 files changed, 22 insertions, 8 deletions
diff --git a/arch/sparc/crypto/Makefile b/arch/sparc/crypto/Makefile index 5d469d81761f..6ae1ad5e502b 100644 --- a/arch/sparc/crypto/Makefile +++ b/arch/sparc/crypto/Makefile | |||
@@ -13,13 +13,13 @@ obj-$(CONFIG_CRYPTO_DES_SPARC64) += camellia-sparc64.o | |||
13 | 13 | ||
14 | obj-$(CONFIG_CRYPTO_CRC32C_SPARC64) += crc32c-sparc64.o | 14 | obj-$(CONFIG_CRYPTO_CRC32C_SPARC64) += crc32c-sparc64.o |
15 | 15 | ||
16 | sha1-sparc64-y := sha1_asm.o sha1_glue.o | 16 | sha1-sparc64-y := sha1_asm.o sha1_glue.o crop_devid.o |
17 | sha256-sparc64-y := sha256_asm.o sha256_glue.o | 17 | sha256-sparc64-y := sha256_asm.o sha256_glue.o crop_devid.o |
18 | sha512-sparc64-y := sha512_asm.o sha512_glue.o | 18 | sha512-sparc64-y := sha512_asm.o sha512_glue.o crop_devid.o |
19 | md5-sparc64-y := md5_asm.o md5_glue.o | 19 | md5-sparc64-y := md5_asm.o md5_glue.o crop_devid.o |
20 | 20 | ||
21 | aes-sparc64-y := aes_asm.o aes_glue.o | 21 | aes-sparc64-y := aes_asm.o aes_glue.o crop_devid.o |
22 | des-sparc64-y := des_asm.o des_glue.o | 22 | des-sparc64-y := des_asm.o des_glue.o crop_devid.o |
23 | camellia-sparc64-y := camellia_asm.o camellia_glue.o | 23 | camellia-sparc64-y := camellia_asm.o camellia_glue.o crop_devid.o |
24 | 24 | ||
25 | crc32c-sparc64-y := crc32c_asm.o crc32c_glue.o | 25 | crc32c-sparc64-y := crc32c_asm.o crc32c_glue.o crop_devid.o |
diff --git a/arch/sparc/crypto/crop_devid.c b/arch/sparc/crypto/crop_devid.c new file mode 100644 index 000000000000..5f5724a0ae22 --- /dev/null +++ b/arch/sparc/crypto/crop_devid.c | |||
@@ -0,0 +1,14 @@ | |||
1 | #include <linux/module.h> | ||
2 | #include <linux/of_device.h> | ||
3 | |||
4 | /* This is a dummy device table linked into all of the crypto | ||
5 | * opcode drivers. It serves to trigger the module autoloading | ||
6 | * mechanisms in userspace which scan the OF device tree and | ||
7 | * load any modules which have device table entries that | ||
8 | * match OF device nodes. | ||
9 | */ | ||
10 | static const struct of_device_id crypto_opcode_match[] = { | ||
11 | { .name = "cpu", .compatible = "sun4v", }, | ||
12 | {}, | ||
13 | }; | ||
14 | MODULE_DEVICE_TABLE(of, crypto_opcode_match); | ||