| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: audio.c,v 1.72 2020/05/26 10:12:12 nia Exp $ */ | | 1 | /* $NetBSD: audio.c,v 1.73 2020/05/26 11:43:00 nia Exp $ */ |
2 | | | 2 | |
3 | /*- | | 3 | /*- |
4 | * Copyright (c) 2008 The NetBSD Foundation, Inc. | | 4 | * Copyright (c) 2008 The NetBSD Foundation, Inc. |
5 | * All rights reserved. | | 5 | * All rights reserved. |
6 | * | | 6 | * |
7 | * This code is derived from software contributed to The NetBSD Foundation | | 7 | * This code is derived from software contributed to The NetBSD Foundation |
8 | * by Andrew Doran. | | 8 | * by Andrew Doran. |
9 | * | | 9 | * |
10 | * Redistribution and use in source and binary forms, with or without | | 10 | * Redistribution and use in source and binary forms, with or without |
11 | * modification, are permitted provided that the following conditions | | 11 | * modification, are permitted provided that the following conditions |
12 | * are met: | | 12 | * are met: |
13 | * 1. Redistributions of source code must retain the above copyright | | 13 | * 1. Redistributions of source code must retain the above copyright |
14 | * notice, this list of conditions and the following disclaimer. | | 14 | * notice, this list of conditions and the following disclaimer. |
| @@ -128,27 +128,27 @@ | | | @@ -128,27 +128,27 @@ |
128 | * get_locks - - Called at attach time | | 128 | * get_locks - - Called at attach time |
129 | * | | 129 | * |
130 | * In addition, there is an additional lock. | | 130 | * In addition, there is an additional lock. |
131 | * | | 131 | * |
132 | * - track->lock. This is an atomic variable and is similar to the | | 132 | * - track->lock. This is an atomic variable and is similar to the |
133 | * "interrupt lock". This is one for each track. If any thread context | | 133 | * "interrupt lock". This is one for each track. If any thread context |
134 | * (and software interrupt context) and hardware interrupt context who | | 134 | * (and software interrupt context) and hardware interrupt context who |
135 | * want to access some variables on this track, they must acquire this | | 135 | * want to access some variables on this track, they must acquire this |
136 | * lock before. It protects track's consistency between hardware | | 136 | * lock before. It protects track's consistency between hardware |
137 | * interrupt context and others. | | 137 | * interrupt context and others. |
138 | */ | | 138 | */ |
139 | | | 139 | |
140 | #include <sys/cdefs.h> | | 140 | #include <sys/cdefs.h> |
141 | __KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.72 2020/05/26 10:12:12 nia Exp $"); | | 141 | __KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.73 2020/05/26 11:43:00 nia Exp $"); |
142 | | | 142 | |
143 | #ifdef _KERNEL_OPT | | 143 | #ifdef _KERNEL_OPT |
144 | #include "audio.h" | | 144 | #include "audio.h" |
145 | #include "midi.h" | | 145 | #include "midi.h" |
146 | #endif | | 146 | #endif |
147 | | | 147 | |
148 | #if NAUDIO > 0 | | 148 | #if NAUDIO > 0 |
149 | | | 149 | |
150 | #include <sys/types.h> | | 150 | #include <sys/types.h> |
151 | #include <sys/param.h> | | 151 | #include <sys/param.h> |
152 | #include <sys/atomic.h> | | 152 | #include <sys/atomic.h> |
153 | #include <sys/audioio.h> | | 153 | #include <sys/audioio.h> |
154 | #include <sys/conf.h> | | 154 | #include <sys/conf.h> |
| @@ -7746,27 +7746,26 @@ audio_activity(device_t dv, devactive_t | | | @@ -7746,27 +7746,26 @@ audio_activity(device_t dv, devactive_t |
7746 | #endif | | 7746 | #endif |
7747 | | | 7747 | |
7748 | static bool | | 7748 | static bool |
7749 | audio_suspend(device_t dv, const pmf_qual_t *qual) | | 7749 | audio_suspend(device_t dv, const pmf_qual_t *qual) |
7750 | { | | 7750 | { |
7751 | struct audio_softc *sc = device_private(dv); | | 7751 | struct audio_softc *sc = device_private(dv); |
7752 | int error; | | 7752 | int error; |
7753 | | | 7753 | |
7754 | error = audio_exlock_mutex_enter(sc); | | 7754 | error = audio_exlock_mutex_enter(sc); |
7755 | if (error) | | 7755 | if (error) |
7756 | return error; | | 7756 | return error; |
7757 | audio_mixer_capture(sc); | | 7757 | audio_mixer_capture(sc); |
7758 | | | 7758 | |
7759 | /* Halts mixers but don't clear busy flag for resume */ | | | |
7760 | if (sc->sc_pbusy) { | | 7759 | if (sc->sc_pbusy) { |
7761 | audio_pmixer_halt(sc); | | 7760 | audio_pmixer_halt(sc); |
7762 | } | | 7761 | } |
7763 | if (sc->sc_rbusy) { | | 7762 | if (sc->sc_rbusy) { |
7764 | audio_rmixer_halt(sc); | | 7763 | audio_rmixer_halt(sc); |
7765 | } | | 7764 | } |
7766 | | | 7765 | |
7767 | #ifdef AUDIO_PM_IDLE | | 7766 | #ifdef AUDIO_PM_IDLE |
7768 | callout_halt(&sc->sc_idle_counter, sc->sc_lock); | | 7767 | callout_halt(&sc->sc_idle_counter, sc->sc_lock); |
7769 | #endif | | 7768 | #endif |
7770 | audio_exlock_mutex_exit(sc); | | 7769 | audio_exlock_mutex_exit(sc); |
7771 | | | 7770 | |
7772 | return true; | | 7771 | return true; |