[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-am335x-3.2.0-psp04.06.00.08 / 0002-am335x-Add-suspend-resume-routines-to-crypto-driver.patch
1 From 0fb328ec0a5ba8a1440336c8dc7a029cfffa4529 Mon Sep 17 00:00:00 2001
2 From: Greg Turner <gregturner@ti.com>
3 Date: Thu, 19 Jul 2012 15:27:59 -0500
4 Subject: [PATCH 2/2] [am335x]: Add suspend resume routines to crypto driver
6 * Add suspend resume routines to AES crypto driver
7 * Add suspend resume routines to SHA crypto driver
8 * Cleaned up some build warnings
9 ---
10 drivers/crypto/omap4-aes.c | 31 ++++++++++++++++++++++++++++---
11 drivers/crypto/omap4-sham.c | 32 +++++++++++++++++++++++++++-----
12 2 files changed, 55 insertions(+), 8 deletions(-)
14 diff --git a/drivers/crypto/omap4-aes.c b/drivers/crypto/omap4-aes.c
15 index 76f988a..c7d08df 100755
16 --- a/drivers/crypto/omap4-aes.c
17 +++ b/drivers/crypto/omap4-aes.c
18 @@ -878,9 +878,9 @@ err_io:
19 udelay(1);
22 -err_res:
23 - kfree(dd);
24 - dd = NULL;
25 +//err_res:
26 + //kfree(dd);
27 + //dd = NULL;
28 err_data:
29 dev_err(dev, "initialization failed.\n");
30 return err;
31 @@ -916,12 +916,35 @@ static int omap4_aes_remove(struct platform_device *pdev)
32 return 0;
33 }
35 +static int omap4_aes_suspend(struct device *dev)
36 +{
37 + pr_debug("#### Crypto: Suspend call ####\n");
38 +
39 + return 0;
40 +}
41 +
42 +
43 +static int omap4_aes_resume(struct device *dev)
44 +{
45 + pr_debug("#### Crypto: resume call ####\n");
46 +
47 + return 0;
48 +}
49 +
50 +static struct dev_pm_ops omap4_aes_dev_pm_ops = {
51 + .suspend = omap4_aes_suspend,
52 + .resume = omap4_aes_resume,
53 + .runtime_suspend = omap4_aes_suspend,
54 + .runtime_resume = omap4_aes_resume,
55 +};
56 +
57 static struct platform_driver omap4_aes_driver = {
58 .probe = omap4_aes_probe,
59 .remove = omap4_aes_remove,
60 .driver = {
61 .name = "omap4-aes",
62 .owner = THIS_MODULE,
63 + .pm = &omap4_aes_dev_pm_ops
64 },
65 };
67 @@ -944,6 +967,8 @@ static void __exit omap4_aes_mod_exit(void)
68 platform_driver_unregister(&omap4_aes_driver);
69 }
71 +
72 +
73 module_init(omap4_aes_mod_init);
74 module_exit(omap4_aes_mod_exit);
76 diff --git a/drivers/crypto/omap4-sham.c b/drivers/crypto/omap4-sham.c
77 index 21f1b48..2fb71b9 100755
78 --- a/drivers/crypto/omap4-sham.c
79 +++ b/drivers/crypto/omap4-sham.c
80 @@ -239,7 +239,7 @@ static void omap4_sham_copy_ready_hash(struct ahash_request *req)
81 struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
82 u32 *in = (u32 *)ctx->digest;
83 u32 *hash = (u32 *)req->result;
84 - int i, d;
85 + int i, d = 0;
87 if (!hash)
88 return;
89 @@ -1224,8 +1224,6 @@ static void omap4_sham_dma_callback(unsigned int lch, u16 ch_status, void *data)
91 static int omap4_sham_dma_init(struct omap4_sham_dev *dd)
92 {
93 - int err;
94 -
95 dd->dma_lch = -1;
97 dd->dma_lch = edma_alloc_channel(dd->dma, omap4_sham_dma_callback, dd, EVENTQ_2);
98 @@ -1349,8 +1347,9 @@ io_err:
99 pm_runtime_disable(dev);
100 udelay(1);
102 -clk_err:
103 - omap4_sham_dma_cleanup(dd);
104 +//clk_err:
105 +// omap4_sham_dma_cleanup(dd);
106 +
107 dma_err:
108 if (dd->irq >= 0)
109 free_irq(dd->irq, dd);
110 @@ -1392,12 +1391,35 @@ static int __devexit omap4_sham_remove(struct platform_device *pdev)
111 return 0;
112 }
114 +static int omap4_sham_suspend(struct device *dev)
115 +{
116 + pr_debug("#### Crypto: Suspend call ####\n");
117 +
118 + return 0;
119 +}
120 +
121 +
122 +static int omap4_sham_resume(struct device *dev)
123 +{
124 + pr_debug("#### Crypto: resume call ####\n");
125 +
126 + return 0;
127 +}
128 +
129 +static struct dev_pm_ops omap4_sham_dev_pm_ops = {
130 + .suspend = omap4_sham_suspend,
131 + .resume = omap4_sham_resume,
132 + .runtime_suspend = omap4_sham_suspend,
133 + .runtime_resume = omap4_sham_resume,
134 +};
135 +
136 static struct platform_driver omap4_sham_driver = {
137 .probe = omap4_sham_probe,
138 .remove = omap4_sham_remove,
139 .driver = {
140 .name = "omap4-sham",
141 .owner = THIS_MODULE,
142 + .pm = &omap4_sham_dev_pm_ops
143 },
144 };
146 --
147 1.7.0.4