Message ID | 9569056.LBRz4v8fSj@wuerfel (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
2015-11-18 0:08 GMT+09:00 Arnd Bergmann <arnd@arndb.de>: > The runtime PM operations use the suspend/resume functions > even when CONFIG_PM_SLEEP is not set, but this now fails > for the exynos DRM driver: > > exynos_mixer.c:1289:61: error: 'exynos_mixer_resume' undeclared here (not in a function) > SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL) > > This removes the #ifdef and instead marks the functions as > __maybe_unused, which does the right thing in all cases and > also looks nicer. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Fixes: ("drm/exynos: add pm_runtime to Mixer") Dear Inki, Ping? On 4.5-rc1 this is still broken. Can you apply this for fixes for current rc-cycle? Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Best regards, Krzysztof > > diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c > index 7498c6e76a53..fcaf71df77c1 100644 > --- a/drivers/gpu/drm/exynos/exynos_mixer.c > +++ b/drivers/gpu/drm/exynos/exynos_mixer.c > @@ -1230,8 +1230,7 @@ static int mixer_remove(struct platform_device *pdev) > return 0; > } > > -#ifdef CONFIG_PM_SLEEP > -static int exynos_mixer_suspend(struct device *dev) > +static int __maybe_unused exynos_mixer_suspend(struct device *dev) > { > struct mixer_context *ctx = dev_get_drvdata(dev); > struct mixer_resources *res = &ctx->mixer_res; > @@ -1247,7 +1246,7 @@ static int exynos_mixer_suspend(struct device *dev) > return 0; > } > > -static int exynos_mixer_resume(struct device *dev) > +static int __maybe_unused exynos_mixer_resume(struct device *dev) > { > struct mixer_context *ctx = dev_get_drvdata(dev); > struct mixer_resources *res = &ctx->mixer_res; > @@ -1283,7 +1282,6 @@ static int exynos_mixer_resume(struct device *dev) > > return 0; > } > -#endif > > static const struct dev_pm_ops exynos_mixer_pm_ops = { > SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL) > > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
2016? 01? 26? 08:40? Krzysztof Kozlowski ?(?) ? ?: > 2015-11-18 0:08 GMT+09:00 Arnd Bergmann <arnd@arndb.de>: >> The runtime PM operations use the suspend/resume functions >> even when CONFIG_PM_SLEEP is not set, but this now fails >> for the exynos DRM driver: >> >> exynos_mixer.c:1289:61: error: 'exynos_mixer_resume' undeclared here (not in a function) >> SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL) >> >> This removes the #ifdef and instead marks the functions as >> __maybe_unused, which does the right thing in all cases and >> also looks nicer. >> >> Signed-off-by: Arnd Bergmann <arnd@arndb.de> >> Fixes: ("drm/exynos: add pm_runtime to Mixer") > > Dear Inki, > > Ping? On 4.5-rc1 this is still broken. Can you apply this for fixes > for current rc-cycle? Got it. Thanks, Inki Dae > > Reviewed-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> > > Best regards, > Krzysztof > > >> >> diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c >> index 7498c6e76a53..fcaf71df77c1 100644 >> --- a/drivers/gpu/drm/exynos/exynos_mixer.c >> +++ b/drivers/gpu/drm/exynos/exynos_mixer.c >> @@ -1230,8 +1230,7 @@ static int mixer_remove(struct platform_device *pdev) >> return 0; >> } >> >> -#ifdef CONFIG_PM_SLEEP >> -static int exynos_mixer_suspend(struct device *dev) >> +static int __maybe_unused exynos_mixer_suspend(struct device *dev) >> { >> struct mixer_context *ctx = dev_get_drvdata(dev); >> struct mixer_resources *res = &ctx->mixer_res; >> @@ -1247,7 +1246,7 @@ static int exynos_mixer_suspend(struct device *dev) >> return 0; >> } >> >> -static int exynos_mixer_resume(struct device *dev) >> +static int __maybe_unused exynos_mixer_resume(struct device *dev) >> { >> struct mixer_context *ctx = dev_get_drvdata(dev); >> struct mixer_resources *res = &ctx->mixer_res; >> @@ -1283,7 +1282,6 @@ static int exynos_mixer_resume(struct device *dev) >> >> return 0; >> } >> -#endif >> >> static const struct dev_pm_ops exynos_mixer_pm_ops = { >> SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL) >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in >> the body of a message to majordomo@vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > >
Hi Arnd, Sorry for late. 2015? 11? 18? 00:08? Arnd Bergmann ?(?) ? ?: > The runtime PM operations use the suspend/resume functions > even when CONFIG_PM_SLEEP is not set, but this now fails > for the exynos DRM driver: > > exynos_mixer.c:1289:61: error: 'exynos_mixer_resume' undeclared here (not in a function) > SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL) > > This removes the #ifdef and instead marks the functions as > __maybe_unused, which does the right thing in all cases and > also looks nicer. > > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > Fixes: ("drm/exynos: add pm_runtime to Mixer") > > diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c > index 7498c6e76a53..fcaf71df77c1 100644 > --- a/drivers/gpu/drm/exynos/exynos_mixer.c > +++ b/drivers/gpu/drm/exynos/exynos_mixer.c > @@ -1230,8 +1230,7 @@ static int mixer_remove(struct platform_device *pdev) > return 0; > } > > -#ifdef CONFIG_PM_SLEEP How about just changing it to CONFIG_PM for consistency of other kms drivers? Actually, I had modified it to PM since original auther, Gustavo Padovan, posted runtime pm support. However, it seems missing this one. Thanks, Inki Dae > -static int exynos_mixer_suspend(struct device *dev) > +static int __maybe_unused exynos_mixer_suspend(struct device *dev) > { > struct mixer_context *ctx = dev_get_drvdata(dev); > struct mixer_resources *res = &ctx->mixer_res; > @@ -1247,7 +1246,7 @@ static int exynos_mixer_suspend(struct device *dev) > return 0; > } > > -static int exynos_mixer_resume(struct device *dev) > +static int __maybe_unused exynos_mixer_resume(struct device *dev) > { > struct mixer_context *ctx = dev_get_drvdata(dev); > struct mixer_resources *res = &ctx->mixer_res; > @@ -1283,7 +1282,6 @@ static int exynos_mixer_resume(struct device *dev) > > return 0; > } > -#endif > > static const struct dev_pm_ops exynos_mixer_pm_ops = { > SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL) > >
On Tuesday 26 January 2016 15:21:41 Inki Dae wrote: > > -#ifdef CONFIG_PM_SLEEP > > How about just changing it to CONFIG_PM for consistency of other kms drivers? > Actually, I had modified it to PM since original auther, Gustavo Padovan, posted runtime pm support. > However, it seems missing this one. Everybody gets the #ifdef's wrong, so the __maybe_unused approach is being used increasingly all over the kernel. Arnd
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 7498c6e76a53..fcaf71df77c1 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c @@ -1230,8 +1230,7 @@ static int mixer_remove(struct platform_device *pdev) return 0; } -#ifdef CONFIG_PM_SLEEP -static int exynos_mixer_suspend(struct device *dev) +static int __maybe_unused exynos_mixer_suspend(struct device *dev) { struct mixer_context *ctx = dev_get_drvdata(dev); struct mixer_resources *res = &ctx->mixer_res; @@ -1247,7 +1246,7 @@ static int exynos_mixer_suspend(struct device *dev) return 0; } -static int exynos_mixer_resume(struct device *dev) +static int __maybe_unused exynos_mixer_resume(struct device *dev) { struct mixer_context *ctx = dev_get_drvdata(dev); struct mixer_resources *res = &ctx->mixer_res; @@ -1283,7 +1282,6 @@ static int exynos_mixer_resume(struct device *dev) return 0; } -#endif static const struct dev_pm_ops exynos_mixer_pm_ops = { SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL)
The runtime PM operations use the suspend/resume functions even when CONFIG_PM_SLEEP is not set, but this now fails for the exynos DRM driver: exynos_mixer.c:1289:61: error: 'exynos_mixer_resume' undeclared here (not in a function) SET_RUNTIME_PM_OPS(exynos_mixer_suspend, exynos_mixer_resume, NULL) This removes the #ifdef and instead marks the functions as __maybe_unused, which does the right thing in all cases and also looks nicer. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Fixes: ("drm/exynos: add pm_runtime to Mixer")