Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 418f2a8c authored by Tero Kristo's avatar Tero Kristo Committed by Herbert Xu
Browse files

crypto: omap-des - use runtime_pm autosuspend for clock handling



Convert the driver to use autosuspend for runtime_pm. This boosts the
performance, and optimizes the power consumption for the driver. By
default, the timeout value for autosuspend is set to one second.

Signed-off-by: default avatarTero Kristo <t-kristo@ti.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent a636fdce
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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);