diff options
Diffstat (limited to 'drivers/crypto/geode-aes.c')
-rw-r--r-- | drivers/crypto/geode-aes.c | 36 |
1 files changed, 20 insertions, 16 deletions
diff --git a/drivers/crypto/geode-aes.c b/drivers/crypto/geode-aes.c index c7a5a43ba691..09389dd2f96b 100644 --- a/drivers/crypto/geode-aes.c +++ b/drivers/crypto/geode-aes.c | |||
@@ -15,14 +15,14 @@ | |||
15 | #include <crypto/algapi.h> | 15 | #include <crypto/algapi.h> |
16 | #include <crypto/aes.h> | 16 | #include <crypto/aes.h> |
17 | 17 | ||
18 | #include <asm/io.h> | 18 | #include <linux/io.h> |
19 | #include <asm/delay.h> | 19 | #include <linux/delay.h> |
20 | 20 | ||
21 | #include "geode-aes.h" | 21 | #include "geode-aes.h" |
22 | 22 | ||
23 | /* Static structures */ | 23 | /* Static structures */ |
24 | 24 | ||
25 | static void __iomem * _iobase; | 25 | static void __iomem *_iobase; |
26 | static spinlock_t lock; | 26 | static spinlock_t lock; |
27 | 27 | ||
28 | /* Write a 128 bit field (either a writable key or IV) */ | 28 | /* Write a 128 bit field (either a writable key or IV) */ |
@@ -30,7 +30,7 @@ static inline void | |||
30 | _writefield(u32 offset, void *value) | 30 | _writefield(u32 offset, void *value) |
31 | { | 31 | { |
32 | int i; | 32 | int i; |
33 | for(i = 0; i < 4; i++) | 33 | for (i = 0; i < 4; i++) |
34 | iowrite32(((u32 *) value)[i], _iobase + offset + (i * 4)); | 34 | iowrite32(((u32 *) value)[i], _iobase + offset + (i * 4)); |
35 | } | 35 | } |
36 | 36 | ||
@@ -39,7 +39,7 @@ static inline void | |||
39 | _readfield(u32 offset, void *value) | 39 | _readfield(u32 offset, void *value) |
40 | { | 40 | { |
41 | int i; | 41 | int i; |
42 | for(i = 0; i < 4; i++) | 42 | for (i = 0; i < 4; i++) |
43 | ((u32 *) value)[i] = ioread32(_iobase + offset + (i * 4)); | 43 | ((u32 *) value)[i] = ioread32(_iobase + offset + (i * 4)); |
44 | } | 44 | } |
45 | 45 | ||
@@ -59,7 +59,7 @@ do_crypt(void *src, void *dst, int len, u32 flags) | |||
59 | do { | 59 | do { |
60 | status = ioread32(_iobase + AES_INTR_REG); | 60 | status = ioread32(_iobase + AES_INTR_REG); |
61 | cpu_relax(); | 61 | cpu_relax(); |
62 | } while(!(status & AES_INTRA_PENDING) && --counter); | 62 | } while (!(status & AES_INTRA_PENDING) && --counter); |
63 | 63 | ||
64 | /* Clear the event */ | 64 | /* Clear the event */ |
65 | iowrite32((status & 0xFF) | AES_INTRA_PENDING, _iobase + AES_INTR_REG); | 65 | iowrite32((status & 0xFF) | AES_INTRA_PENDING, _iobase + AES_INTR_REG); |
@@ -317,7 +317,7 @@ geode_cbc_decrypt(struct blkcipher_desc *desc, | |||
317 | err = blkcipher_walk_virt(desc, &walk); | 317 | err = blkcipher_walk_virt(desc, &walk); |
318 | op->iv = walk.iv; | 318 | op->iv = walk.iv; |
319 | 319 | ||
320 | while((nbytes = walk.nbytes)) { | 320 | while ((nbytes = walk.nbytes)) { |
321 | op->src = walk.src.virt.addr, | 321 | op->src = walk.src.virt.addr, |
322 | op->dst = walk.dst.virt.addr; | 322 | op->dst = walk.dst.virt.addr; |
323 | op->mode = AES_MODE_CBC; | 323 | op->mode = AES_MODE_CBC; |
@@ -349,7 +349,7 @@ geode_cbc_encrypt(struct blkcipher_desc *desc, | |||
349 | err = blkcipher_walk_virt(desc, &walk); | 349 | err = blkcipher_walk_virt(desc, &walk); |
350 | op->iv = walk.iv; | 350 | op->iv = walk.iv; |
351 | 351 | ||
352 | while((nbytes = walk.nbytes)) { | 352 | while ((nbytes = walk.nbytes)) { |
353 | op->src = walk.src.virt.addr, | 353 | op->src = walk.src.virt.addr, |
354 | op->dst = walk.dst.virt.addr; | 354 | op->dst = walk.dst.virt.addr; |
355 | op->mode = AES_MODE_CBC; | 355 | op->mode = AES_MODE_CBC; |
@@ -429,7 +429,7 @@ geode_ecb_decrypt(struct blkcipher_desc *desc, | |||
429 | blkcipher_walk_init(&walk, dst, src, nbytes); | 429 | blkcipher_walk_init(&walk, dst, src, nbytes); |
430 | err = blkcipher_walk_virt(desc, &walk); | 430 | err = blkcipher_walk_virt(desc, &walk); |
431 | 431 | ||
432 | while((nbytes = walk.nbytes)) { | 432 | while ((nbytes = walk.nbytes)) { |
433 | op->src = walk.src.virt.addr, | 433 | op->src = walk.src.virt.addr, |
434 | op->dst = walk.dst.virt.addr; | 434 | op->dst = walk.dst.virt.addr; |
435 | op->mode = AES_MODE_ECB; | 435 | op->mode = AES_MODE_ECB; |
@@ -459,7 +459,7 @@ geode_ecb_encrypt(struct blkcipher_desc *desc, | |||
459 | blkcipher_walk_init(&walk, dst, src, nbytes); | 459 | blkcipher_walk_init(&walk, dst, src, nbytes); |
460 | err = blkcipher_walk_virt(desc, &walk); | 460 | err = blkcipher_walk_virt(desc, &walk); |
461 | 461 | ||
462 | while((nbytes = walk.nbytes)) { | 462 | while ((nbytes = walk.nbytes)) { |
463 | op->src = walk.src.virt.addr, | 463 | op->src = walk.src.virt.addr, |
464 | op->dst = walk.dst.virt.addr; | 464 | op->dst = walk.dst.virt.addr; |
465 | op->mode = AES_MODE_ECB; | 465 | op->mode = AES_MODE_ECB; |
@@ -518,11 +518,12 @@ static int __devinit | |||
518 | geode_aes_probe(struct pci_dev *dev, const struct pci_device_id *id) | 518 | geode_aes_probe(struct pci_dev *dev, const struct pci_device_id *id) |
519 | { | 519 | { |
520 | int ret; | 520 | int ret; |
521 | 521 | ret = pci_enable_device(dev); | |
522 | if ((ret = pci_enable_device(dev))) | 522 | if (ret) |
523 | return ret; | 523 | return ret; |
524 | 524 | ||
525 | if ((ret = pci_request_regions(dev, "geode-aes"))) | 525 | ret = pci_request_regions(dev, "geode-aes"); |
526 | if (ret) | ||
526 | goto eenable; | 527 | goto eenable; |
527 | 528 | ||
528 | _iobase = pci_iomap(dev, 0, 0); | 529 | _iobase = pci_iomap(dev, 0, 0); |
@@ -537,13 +538,16 @@ geode_aes_probe(struct pci_dev *dev, const struct pci_device_id *id) | |||
537 | /* Clear any pending activity */ | 538 | /* Clear any pending activity */ |
538 | iowrite32(AES_INTR_PENDING | AES_INTR_MASK, _iobase + AES_INTR_REG); | 539 | iowrite32(AES_INTR_PENDING | AES_INTR_MASK, _iobase + AES_INTR_REG); |
539 | 540 | ||
540 | if ((ret = crypto_register_alg(&geode_alg))) | 541 | ret = crypto_register_alg(&geode_alg); |
542 | if (ret) | ||
541 | goto eiomap; | 543 | goto eiomap; |
542 | 544 | ||
543 | if ((ret = crypto_register_alg(&geode_ecb_alg))) | 545 | ret = crypto_register_alg(&geode_ecb_alg); |
546 | if (ret) | ||
544 | goto ealg; | 547 | goto ealg; |
545 | 548 | ||
546 | if ((ret = crypto_register_alg(&geode_cbc_alg))) | 549 | ret = crypto_register_alg(&geode_cbc_alg); |
550 | if (ret) | ||
547 | goto eecb; | 551 | goto eecb; |
548 | 552 | ||
549 | printk(KERN_NOTICE "geode-aes: GEODE AES engine enabled.\n"); | 553 | printk(KERN_NOTICE "geode-aes: GEODE AES engine enabled.\n"); |