|
@@ -78,6 +78,8 @@
|
|
|
#define FLAGS_INIT BIT(4)
|
|
|
#define FLAGS_BUSY BIT(6)
|
|
|
|
|
|
+#define DEFAULT_AUTOSUSPEND_DELAY 1000
|
|
|
+
|
|
|
struct omap_des_ctx {
|
|
|
struct omap_des_dev *dd;
|
|
|
|
|
@@ -506,8 +508,10 @@ static void omap_des_finish_req(struct omap_des_dev *dd, int err)
|
|
|
|
|
|
pr_debug("err: %d\n", err);
|
|
|
|
|
|
- pm_runtime_put(dd->dev);
|
|
|
crypto_finalize_cipher_request(dd->engine, req, err);
|
|
|
+
|
|
|
+ pm_runtime_mark_last_busy(dd->dev);
|
|
|
+ pm_runtime_put_autosuspend(dd->dev);
|
|
|
}
|
|
|
|
|
|
static int omap_des_crypt_dma_stop(struct omap_des_dev *dd)
|
|
@@ -1044,8 +1048,10 @@ static int omap_des_probe(struct platform_device *pdev)
|
|
|
}
|
|
|
dd->phys_base = res->start;
|
|
|
|
|
|
+ pm_runtime_use_autosuspend(dev);
|
|
|
+ pm_runtime_set_autosuspend_delay(dev, DEFAULT_AUTOSUSPEND_DELAY);
|
|
|
+
|
|
|
pm_runtime_enable(dev);
|
|
|
- pm_runtime_irq_safe(dev);
|
|
|
err = pm_runtime_get_sync(dev);
|
|
|
if (err < 0) {
|
|
|
pm_runtime_put_noidle(dev);
|