summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/sound/isa/ess.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/sys/dev/sound/isa/ess.c b/sys/dev/sound/isa/ess.c
index 77d102e..67792e0 100644
--- a/sys/dev/sound/isa/ess.c
+++ b/sys/dev/sound/isa/ess.c
@@ -890,11 +890,32 @@ ess_detach(device_t dev)
return 0;
}
+static int
+ess_resume(device_t dev)
+{
+ struct ess_info *sc;
+
+ sc = pcm_getdevinfo(dev);
+
+ if (ess_reset_dsp(sc)) {
+ device_printf(dev, "unable to reset DSP at resume\n");
+ return ENXIO;
+ }
+
+ if (mixer_reinit(dev)) {
+ device_printf(dev, "unable to reinitialize mixer at resume\n");
+ return ENXIO;
+ }
+
+ return 0;
+}
+
static device_method_t ess_methods[] = {
/* Device interface */
DEVMETHOD(device_probe, ess_probe),
DEVMETHOD(device_attach, ess_attach),
DEVMETHOD(device_detach, ess_detach),
+ DEVMETHOD(device_resume, ess_resume),
{ 0, 0 }
};
OpenPOWER on IntegriCloud