From: ulf.hansson@linaro.org (Ulf Hansson)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/7] [media] exynos-gsc: Make driver functional without CONFIG_PM_RUNTIME
Date: Tue, 14 Oct 2014 09:15:36 +0200 [thread overview]
Message-ID: <1413270940-4378-4-git-send-email-ulf.hansson@linaro.org> (raw)
In-Reply-To: <1413270940-4378-1-git-send-email-ulf.hansson@linaro.org>
The driver depended on CONFIG_PM_RUNTIME to be functional, which isn't
necessary.
The solution to the above is to enable all runtime PM resourses during
probe and update the device's runtime PM status to active.
Since driver core invokes pm_request_idle() after ->probe(), unused gsc
devices will be runtime PM suspended and thus we will still benefit
from using CONFIG_PM_RUNTIME.
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
---
drivers/media/platform/exynos-gsc/gsc-core.c | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c
index 13d0226..c3a050e 100644
--- a/drivers/media/platform/exynos-gsc/gsc-core.c
+++ b/drivers/media/platform/exynos-gsc/gsc-core.c
@@ -1085,7 +1085,7 @@ static int gsc_probe(struct platform_device *pdev)
return PTR_ERR(gsc->clock);
}
- ret = clk_prepare(gsc->clock);
+ ret = clk_prepare_enable(gsc->clock);
if (ret) {
dev_err(&gsc->pdev->dev, "clock prepare failed for clock: %s\n",
GSC_CLOCK_GATE_NAME);
@@ -1108,30 +1108,30 @@ static int gsc_probe(struct platform_device *pdev)
goto err_v4l2;
platform_set_drvdata(pdev, gsc);
- pm_runtime_enable(dev);
- ret = pm_runtime_get_sync(&pdev->dev);
- if (ret < 0)
- goto err_m2m;
+
+ gsc_hw_set_sw_reset(gsc);
+ gsc_wait_reset(gsc);
+ gsc_m2m_resume(gsc);
/* Initialize continious memory allocator */
gsc->alloc_ctx = vb2_dma_contig_init_ctx(dev);
if (IS_ERR(gsc->alloc_ctx)) {
ret = PTR_ERR(gsc->alloc_ctx);
- goto err_pm;
+ goto err_m2m;
}
dev_dbg(dev, "gsc-%d registered successfully\n", gsc->id);
- pm_runtime_put(dev);
+ pm_runtime_set_active(dev);
+ pm_runtime_enable(dev);
+
return 0;
-err_pm:
- pm_runtime_put(dev);
err_m2m:
gsc_unregister_m2m_device(gsc);
err_v4l2:
v4l2_device_unregister(&gsc->v4l2_dev);
err_clk:
- clk_unprepare(gsc->clock);
+ clk_disable_unprepare(gsc->clock);
return ret;
}
--
1.9.1
next prev parent reply other threads:[~2014-10-14 7:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-14 7:15 [PATCH 0/7] [media] exynos-gsc: Fixup PM support Ulf Hansson
2014-10-14 7:15 ` [PATCH 1/7] [media] exynos-gsc: Simplify clock management Ulf Hansson
2014-10-14 7:15 ` [PATCH 2/7] [media] exynos-gsc: Convert gsc_m2m_resume() from int to void Ulf Hansson
2014-10-14 7:15 ` Ulf Hansson [this message]
2014-10-14 7:15 ` [PATCH 4/7] [media] exynos-gsc: Make runtime PM callbacks available for CONFIG_PM Ulf Hansson
2014-10-14 7:15 ` [PATCH 5/7] [media] exynos-gsc: Fixup system PM Ulf Hansson
2014-10-14 7:15 ` [PATCH 6/7] [media] exynos-gsc: Fixup clock management at ->remove() Ulf Hansson
2014-10-14 7:15 ` [PATCH 7/7] [media] exynos-gsc: Do full clock gating at runtime PM suspend Ulf Hansson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1413270940-4378-4-git-send-email-ulf.hansson@linaro.org \
--to=ulf.hansson@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).