[alsa-devel] [PATCH 0/5] Power-well API implementation for Haswell

Wang, Xingchao xingchao.wang at intel.com
Mon May 13 09:51:09 CEST 2013

Hi all,

Please find attached document, which could help guys get some background information in case you donot have intel haswell test boards.


> -----Original Message-----
> From: alsa-devel-bounces at alsa-project.org
> [mailto:alsa-devel-bounces at alsa-project.org] On Behalf Of Wang Xingchao
> Sent: Monday, May 13, 2013 3:37 PM
> To: tiwai at suse.de; daniel at ffwll.ch; Girdwood, Liam R
> Cc: alsa-devel at alsa-project.org; Zanoni, Paulo R; Li, Jocelyn; Lin, Mengdong;
> intel-gfx at lists.freedesktop.org; Wang Xingchao; Barnes, Jesse;
> david.henningsson at canonical.com
> Subject: [alsa-devel] [PATCH 0/5] Power-well API implementation for Haswell
> This patchset intended to Add power-well api support for Haswell.
> For Intel Haswell , “power well” in GPU has impact for both Display HD-A
> controller and codecs. Gfx driver has power well feature enaled but donot think
> much about audio side. The issue is if gfx driver disabled power well, audio side
> would lose power and crash.
> David helped a initial patch to add external module patch_hdmi_i915, which
> built in only DRM_I915 and HDMI_CODEC enabled,  This patchset was based
> on David’s work, thanks David!
> As codec depends on controller’s power, so we removed the pm callback
> temporary. So only HDA controller driver would such need to request/release
> power, the codec will always be safe.
> Gfx driver would shutdown power well in below cases, audio driver would be
> damaged as losing power totally without any notification.
> (There would be more cases not covered, welcome more comments here.
>  i can verify the patchset under more cases)
> -	Only eDP port active
> -	HDMI monitor hot plug
> -	System suspend
> Also there’re some calling from i915 to disable power well from time to time,
> this patchset would reject those operations if audio using power well, but it will
> record i915 driver’s request and shut down power if audio release it.
> Basically, here's the latest working status on my side:
> I tested the power well feature on Haswell ULT board, there's only one eDP
> port used. Without this patch and we enabled power well feature, gfx driver
> will shutdown power well, audio driver will crash.
> Applied this patch, display audio driver will request power well on before
> initialize the card. In gfx side, it will enable power well.
> Also power_save feature in audio side should be enabled, I set "5" second to let
> codec enter suspend when free for 5s long.
> Audio controller driver detects all codecs are suspended it will release power
> well and suspend too. Gfx driver will receive the request and shut down power
> well.
> If user trigger some audio operations(cat codec# info), audio controller driver
> will request power well again...
> If gfx side decided to disable power well now, while audio is in use, power well
> would be kept on.
> (i will send out a documentation which has some logs and analysis there.)
> Generally audio drvier will request power well on need and release it
> immediately after suspend. Gfx should make decision at his side.
> The new introduced module "hda-i915" has dependency on i915, only built in
> when i915 enabled. So it's safe for call.
> For non-Haswell platform, power well is no need atm. Even the module is built
> in wrongly, hda driver will not call the power well api. Also gfx will reject power
> well request at its side, so it's safe too.
> This patch could make sure it would not cause damage when snd-hda-intel and
> i915 module loaded in any order. If i915 module loaded at first, it's safe to get
> the symbol. If snd-hda-intel loaded first, it will try to load i915 manually and get
> notification when the power-well api are exported.
> Wang Xingchao (5):
>   drm/915: Add private api for power well usage
>   ALSA: hda - Add external module hda-i915 for power well
>   ALSA: hda - Power well request/release for hda controller
>   ALSA: hda - Fix module dependency with gfx i915
>   ALSA/i915: Check power well API existense before calling
>  drivers/gpu/drm/i915/i915_dma.c  |    3 +
>  drivers/gpu/drm/i915/intel_drv.h |    2 +
>  drivers/gpu/drm/i915/intel_pm.c  |  139
> ++++++++++++++++++++++++++++++++++++--
>  include/drm/i915_powerwell.h     |   40 +++++++++++
>  sound/pci/hda/Kconfig            |   13 ++++
>  sound/pci/hda/Makefile           |    6 ++
>  sound/pci/hda/hda_i915.c         |   92 +++++++++++++++++++++++++
>  sound/pci/hda/hda_i915.h         |   15 ++++
>  sound/pci/hda/hda_intel.c        |   22 ++++++
>  9 files changed, 325 insertions(+), 7 deletions(-)  create mode 100644
> include/drm/i915_powerwell.h  create mode 100644
> sound/pci/hda/hda_i915.c  create mode 100644 sound/pci/hda/hda_i915.h
> --
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: power-well-api-upstream.pdf
Type: application/pdf
Size: 472307 bytes
Desc: power-well-api-upstream.pdf
URL: <http://mailman.alsa-project.org/pipermail/alsa-devel/attachments/20130513/fc60eeeb/attachment-0001.pdf>

More information about the Alsa-devel mailing list