ALSA: hda: add link_power op to hdac_bus_ops
authorKai Vehmanen <kai.vehmanen@linux.intel.com>
Fri, 5 Feb 2021 18:46:28 +0000 (20:46 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 8 Feb 2021 14:56:35 +0000 (15:56 +0100)
commitf9e5fd1b666e9d34c94b91808bda02c2d4d00776
treeae397987c95a1098e4bee6e6f77b6c6a897dc6e6
parentc237813e3a1039331cf3d0bffba895b0ab52710a
ALSA: hda: add link_power op to hdac_bus_ops

The extended HDA bus (hdac_ext) provides interfaces for more
fine-grained control of individual links than what plain HDA
provides for. Links can be powered off when they are not used and if
all links are released, controller can shut down the command DMA.

These interfaces are currently not used by common HDA codec drivers.
When a HDA codec is runtime suspended, it calls snd_hdac_codec_link_down(),
but there is no link to the HDA extended bus, and on controller side
the links are shut down only when all codecs are suspended.

This patch adds link_power() to hdac_bus ops. Controllers using the HDA
extended core, can use this to plug in snd_hdac_ext_bus_link_power() to
implement more fine-grained control of link power.

No change is needed for plain HDA controllers nor to existing HDA
codec drivers.

Co-developed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Acked-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20210205184630.1938761-2-kai.vehmanen@linux.intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
include/sound/hdaudio.h
include/sound/hdaudio_ext.h
sound/hda/ext/hdac_ext_controller.c
sound/hda/hdac_bus.c
sound/hda/hdac_controller.c