aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_bind.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-02-18 15:39:59 +0100
committerTakashi Iwai <tiwai@suse.de>2015-02-23 09:16:07 +0100
commit59ed1eade1d6ec24751baca99305f9713a5d779e (patch)
tree47846571754cc487fcc5eb17e03cf91b7b258301 /sound/pci/hda/hda_bind.c
parentALSA: hda - Bind codecs via standard bus (diff)
downloadlinux-dev-59ed1eade1d6ec24751baca99305f9713a5d779e.tar.xz
linux-dev-59ed1eade1d6ec24751baca99305f9713a5d779e.zip
ALSA: hda - Move codec suspend/resume to codec driver
This patch moves the suspend/resume mechanisms down to each codec driver level, as we have a proper codec driver bound on the bus now. Then we get the asynchronous PM gratis without fiddling much in the driver level. As a soft-landing transition, implement the common suspend/resume pm ops for hda_codec_driver and keep the each codec driver intact. Only the callers of suspend/resume in the controller side (azx_suspend() and azx_resume()) are removed. Another involved place is azx_bus_reset() calling the temporary suspend and resume as a hackish method of bus reset. The HD-audio core provide a helper function snd_hda_bus_reset() instead. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_bind.c')
-rw-r--r--sound/pci/hda/hda_bind.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_bind.c b/sound/pci/hda/hda_bind.c
index adf6b475dee1..ce2dd7b0dc07 100644
--- a/sound/pci/hda/hda_bind.c
+++ b/sound/pci/hda/hda_bind.c
@@ -8,6 +8,7 @@
#include <linux/mutex.h>
#include <linux/module.h>
#include <linux/export.h>
+#include <linux/pm.h>
#include <sound/core.h>
#include "hda_codec.h"
#include "hda_local.h"
@@ -138,7 +139,7 @@ int __hda_codec_driver_register(struct hda_codec_driver *drv, const char *name,
drv->driver.bus = &snd_hda_bus_type;
drv->driver.probe = hda_codec_driver_probe;
drv->driver.remove = hda_codec_driver_remove;
- /* TODO: PM and others */
+ drv->driver.pm = &hda_codec_driver_pm;
return driver_register(&drv->driver);
}
EXPORT_SYMBOL_GPL(__hda_codec_driver_register);