* [PATCH v2 1/2] [media] exynos-gsc: Fix unbalanced pm_runtime_enable() error
@ 2017-01-19 22:36 Javier Martinez Canillas
2017-01-19 22:36 ` [PATCH v2 2/2] [media] exynos-gsc: Only reset the GSC HW on probe() if !CONFIG_PM Javier Martinez Canillas
0 siblings, 1 reply; 3+ messages in thread
From: Javier Martinez Canillas @ 2017-01-19 22:36 UTC (permalink / raw)
To: linux-kernel
Cc: Inki Dae, Andi Shyti, Shuah Khan, Marek Szyprowski,
Javier Martinez Canillas, Mauro Carvalho Chehab, Kukjin Kim,
linux-samsung-soc, Sylwester Nawrocki, linux-media,
Krzysztof Kozlowski, linux-arm-kernel, Ulf Hansson
Commit a006c04e6218 ("[media] exynos-gsc: Fixup clock management at
->remove()") changed the driver's .remove function logic to fist do
a pm_runtime_get_sync() to make sure the device is powered before
attempting to gate the gsc clock.
But the commit also removed a pm_runtime_disable() call that leads
to an unbalanced pm_runtime_enable() error if the driver is removed
and re-probed:
exynos-gsc 13e00000.video-scaler: Unbalanced pm_runtime_enable!
exynos-gsc 13e10000.video-scaler: Unbalanced pm_runtime_enable!
Fixes: a006c04e6218 ("[media] exynos-gsc: Fixup clock management at ->remove()")
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
---
Changes in v2:
- Added Marek Szyprowski's Acked-by tag.
drivers/media/platform/exynos-gsc/gsc-core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c
index cbf75b6194b4..83272f10722d 100644
--- a/drivers/media/platform/exynos-gsc/gsc-core.c
+++ b/drivers/media/platform/exynos-gsc/gsc-core.c
@@ -1118,6 +1118,7 @@ static int gsc_remove(struct platform_device *pdev)
clk_disable_unprepare(gsc->clock[i]);
pm_runtime_put_noidle(&pdev->dev);
+ pm_runtime_disable(&pdev->dev);
dev_dbg(&pdev->dev, "%s driver unloaded\n", pdev->name);
return 0;
--
2.7.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH v2 2/2] [media] exynos-gsc: Only reset the GSC HW on probe() if !CONFIG_PM
2017-01-19 22:36 [PATCH v2 1/2] [media] exynos-gsc: Fix unbalanced pm_runtime_enable() error Javier Martinez Canillas
@ 2017-01-19 22:36 ` Javier Martinez Canillas
2017-01-20 10:14 ` Javier Martinez Canillas
0 siblings, 1 reply; 3+ messages in thread
From: Javier Martinez Canillas @ 2017-01-19 22:36 UTC (permalink / raw)
To: linux-kernel
Cc: Inki Dae, Andi Shyti, Shuah Khan, Marek Szyprowski,
Javier Martinez Canillas, Mauro Carvalho Chehab, Kukjin Kim,
linux-samsung-soc, Sylwester Nawrocki, linux-media,
Krzysztof Kozlowski, linux-arm-kernel, Ulf Hansson
Commit 15f90ab57acc ("[media] exynos-gsc: Make driver functional when
CONFIG_PM is unset") removed the implicit dependency that the driver
had with CONFIG_PM, since it relied on the config option to be enabled.
In order to work with !CONFIG_PM, the GSC reset logic that happens in
the runtime resume callback had to be executed on the probe function.
But there's no need to do this if CONFIG_PM is enabled, since in this
case the runtime PM resume callback will be called by VIDIOC_STREAMON
ioctl, so the resume handler will call the GSC HW reset function.
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
---
I-ve only tested with CONFIG_PM enabled since my Exynos5422 Odroid
XU4 board fails to boot when the config option is disabled.
Best regards,
Javier
Changes in v2:
- Remove the Fixes tag and reword the commit message after feedback
from Marek Szyprowski.
drivers/media/platform/exynos-gsc/gsc-core.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/media/platform/exynos-gsc/gsc-core.c b/drivers/media/platform/exynos-gsc/gsc-core.c
index 83272f10722d..42e1e09ea915 100644
--- a/drivers/media/platform/exynos-gsc/gsc-core.c
+++ b/drivers/media/platform/exynos-gsc/gsc-core.c
@@ -1083,8 +1083,10 @@ static int gsc_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, gsc);
- gsc_hw_set_sw_reset(gsc);
- gsc_wait_reset(gsc);
+ if (!IS_ENABLED(CONFIG_PM)) {
+ gsc_hw_set_sw_reset(gsc);
+ gsc_wait_reset(gsc);
+ }
vb2_dma_contig_set_max_seg_size(dev, DMA_BIT_MASK(32));
--
2.7.4
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v2 2/2] [media] exynos-gsc: Only reset the GSC HW on probe() if !CONFIG_PM
2017-01-19 22:36 ` [PATCH v2 2/2] [media] exynos-gsc: Only reset the GSC HW on probe() if !CONFIG_PM Javier Martinez Canillas
@ 2017-01-20 10:14 ` Javier Martinez Canillas
0 siblings, 0 replies; 3+ messages in thread
From: Javier Martinez Canillas @ 2017-01-20 10:14 UTC (permalink / raw)
To: linux-kernel
Cc: Inki Dae, Andi Shyti, Shuah Khan, Marek Szyprowski,
Mauro Carvalho Chehab, Kukjin Kim, linux-samsung-soc,
Sylwester Nawrocki, linux-media, Krzysztof Kozlowski,
linux-arm-kernel, Ulf Hansson
Hello,
On 01/19/2017 07:36 PM, Javier Martinez Canillas wrote:
> Commit 15f90ab57acc ("[media] exynos-gsc: Make driver functional when
> CONFIG_PM is unset") removed the implicit dependency that the driver
> had with CONFIG_PM, since it relied on the config option to be enabled.
>
> In order to work with !CONFIG_PM, the GSC reset logic that happens in
> the runtime resume callback had to be executed on the probe function.
>
> But there's no need to do this if CONFIG_PM is enabled, since in this
> case the runtime PM resume callback will be called by VIDIOC_STREAMON
> ioctl, so the resume handler will call the GSC HW reset function.
>
> Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
>
Please ignore this patch as suggested by Marek in other thread.
Best regards,
--
Javier Martinez Canillas
Open Source Group
Samsung Research America
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-01-20 10:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-19 22:36 [PATCH v2 1/2] [media] exynos-gsc: Fix unbalanced pm_runtime_enable() error Javier Martinez Canillas
2017-01-19 22:36 ` [PATCH v2 2/2] [media] exynos-gsc: Only reset the GSC HW on probe() if !CONFIG_PM Javier Martinez Canillas
2017-01-20 10:14 ` Javier Martinez Canillas
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).