From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752923AbcHJSJF (ORCPT ); Wed, 10 Aug 2016 14:09:05 -0400 Received: from mail-wm0-f46.google.com ([74.125.82.46]:35613 "EHLO mail-wm0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751839AbcHJSJC (ORCPT ); Wed, 10 Aug 2016 14:09:02 -0400 Date: Wed, 10 Aug 2016 12:19:18 +0100 From: Lee Jones To: Sylwester Nawrocki Cc: broonie@kernel.org, robh@kernel.org, alsa-devel@alsa-project.org, devicetree@vger.kernel.org, ideal.song@samsung.com, inki.dae@samsung.com, b.zolnierkie@samsung.com, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, Beomho Seo Subject: Re: [PATCH v4 2/4] mfd: Add Samsung Exynos Low Power Audio Subsystem driver Message-ID: <20160810111918.GS1581@dell> References: <1467738804-31460-1-git-send-email-s.nawrocki@samsung.com> <20160809150502.GQ5243@dell> <61d700f7-ef66-8278-54ea-8e6e2f1a029e@samsung.com> <20160809205031.GD1581@dell> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.6.2 (2016-07-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 10 Aug 2016, Sylwester Nawrocki wrote: > On 08/09/2016 10:50 PM, Lee Jones wrote: > > On Tue, 09 Aug 2016, Sylwester Nawrocki wrote: > > > >> > On 08/09/2016 05:05 PM, Lee Jones wrote: > >>>> > >> +static SIMPLE_DEV_PM_OPS(lpass_pm_ops, exynos_lpass_suspend, > >>>>> > >> > + exynos_lpass_resume); > >>> > > Put this up by the PM functions. > >> > > >> > Sorry, I don't understand this comment, which PM functions do you > >> > mean exactly? > > *_suspend and *_resume. PM == Power Management. > > > > You also need to place the functions in side some CONFIG_PM_SLEEP > > guards. Grep around, you'll see what I mean. > > OK, but couldn't we just leave it with that SIMPLE_DEV_PM_OPS() > macro? It saves us an #ifdef ugliness and if I actually grep > drivers/mfd most of the drivers use either SIMPLE_DEV_PM_OPS() or > SET_SYSTEM_SLEEP_PM_OPS. Are you asking me to change the above to: > > static const struct dev_pm_ops exynos_lpass_pm_ops = { > #ifdef CONFIG_PM_SLEEP > .suspend = exynos_lpass_suspend, > .resume = exynos_lpass_resume, > .freeze = exynos_lpass_suspend, > .thaw = exynos_lpass_resume, > .poweroff = exynos_lpass_suspend, > .restore = exynos_lpass_resume, > #endif > } > > or perhaps > > static const struct dev_pm_ops exynos_lpass_pm_ops = { > SET_SYSTEM_SLEEP_PM_OPS(exynos_lpass_suspend, exynos_lpass_resume) > } > > ? Not like that. Grep 'drivers/mfd' for "CONFIG_PM_SLEEP" as suggested. You will find that the actual *_suspend and *_resume functions are guarded in order to save space. > I agree about the CONFIG_PM_SLEEP guards. There is very little > chance though the LPASS driver will ever be used with > CONFIG_PM_SLEEP disabled. How about adding __maybe_unused attribute > to the *_suspend/*_resume functions then? I can see this pattern > used already in drivers/mfd. It's more common practice to use CONFIG_PM_SLEEP: $ git grep __maybe_unused -- drivers/mfd/ | wc -l 7 $ git grep CONFIG_PM_SLEEP -- drivers/mfd/ | wc -l 31 -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog