[alsa-devel] [PATCH 7/7] ALSA: hda/tegra: add driver flag for runtime PM
Takashi Iwai
tiwai at suse.de
Tue Jan 22 07:31:57 CET 2019
On Tue, 22 Jan 2019 03:04:21 +0100,
Sameer Pujar wrote:
>
>
> On 1/22/2019 3:01 AM, Takashi Iwai wrote:
> > On Mon, 21 Jan 2019 18:41:37 +0100,
> > Sameer Pujar wrote:
> >> AZX_DCAPS_PM_RUNTIME flag is added to indicate support for runtime PM.
> >> azx_has_pm_runtime() can be called to check if above is enabled. The
> >> flag is put under CONFIG_PM check.
> >>
> >> Signed-off-by: Sameer Pujar <spujar at nvidia.com>
> >> Reviewed-by: Ravindra Lokhande <rlokhande at nvidia.com>
> >> Reviewed-by: Mohan Kumar D <mkumard at nvidia.com>
> > This can be more simply done in hda_controller.h. Namely, a change
> > like:
> >
> > --- a/sound/pci/hda/hda_controller.h
> > +++ b/sound/pci/hda/hda_controller.h
> > @@ -49,7 +49,11 @@
> > #define AZX_DCAPS_4K_BDLE_BOUNDARY (1 << 23) /* BDLE in 4k boundary */
> > /* 24 unused */
> > #define AZX_DCAPS_COUNT_LPIB_DELAY (1 << 25) /* Take LPIB as delay */
> > +#ifdef CONFIG_PM
> > #define AZX_DCAPS_PM_RUNTIME (1 << 26) /* runtime PM support */
> > +#else
> > +#define AZX_DCAPS_PM_RUNTIME 0 /* N/A */
> > +#endif
> > /* 27 unused */
> > #define AZX_DCAPS_CORBRP_SELF_CLEAR (1 << 28) /* CORBRP clears itself after reset */
> > #define AZX_DCAPS_NO_MSI64 (1 << 29) /* Stick to 32-bit MSIs */
>
> In one of the patches in the series, I am using azx_has_pm_runtime()
> to forbid runtime PM calls.
> I can use above as you suggested. Along with this, I would need to
> populate chip->driver_caps with
> above flag. Something like below,
>
> --- a/sound/pci/hda/hda_tegra.c
> +++ b/sound/pci/hda/hda_tegra.c
> @@ -521,7 +521,8 @@ MODULE_DEVICE_TABLE(of, hda_tegra_match);
>
> static int hda_tegra_probe(struct platform_device *pdev)
> {
> - unsigned int driver_flags = AZX_DCAPS_CORBRP_SELF_CLEAR;
> + unsigned int driver_flags = AZX_DCAPS_CORBRP_SELF_CLEAR |
> + AZX_DCAPS_PM_RUNTIME;
> struct snd_card *card;
> struct azx *chip;
> struct hda_tegra *hda;
I see. On the second thought, the ifdef CONFIG_PM is likely
superfluous. The whole pm_runtime_*() calls become no-ops without
CONFIG_PM, so the compiler would optimize in anyway.
That said, I'd drop ugly ifdef but unconditionally add
AZX_DCAPS_PM_RUNTIME in an oneliner above.
thanks,
Takashi
More information about the Alsa-devel
mailing list