Index: src/sys/dev/audio.c
===================================================================
RCS file: /cvsroot/src/sys/dev/Attic/audio.c,v
retrieving revision 1.357.2.13
diff -u -r1.357.2.13 audio.c
--- src/sys/dev/audio.c 7 Jun 2018 18:24:16 -0000       1.357.2.13
+++ src/sys/dev/audio.c 18 Sep 2019 20:18:48 -0000
@@ -2260,6 +2260,10 @@
                       goto bad;
       }

+       if (sc->sc_usemixer && audio_can_capture(sc))
+               audio_init_ringbuffer(sc, &vc->sc_mrr, AUMODE_PLAY);
+       if (sc->sc_usemixer && audio_can_playback(sc))
+               audio_init_ringbuffer(sc, &vc->sc_mpr, AUMODE_PLAY);
       if (!sc->sc_usemixer || sc->sc_opens + sc->sc_recopens == 0) {
               sc->sc_credentials = kauth_cred_get();
               kauth_cred_hold(sc->sc_credentials);
@@ -3799,6 +3803,8 @@
               inp = cb->s.inp;
               cb->stamp += blksize;
               if (cb->mmapped) {
+                       cb->s.inp = audio_stream_add_inp(&cb->s, cb->s.inp,
+                           blksize);
                       DPRINTF(("audio_pint: vc=%p mmapped outp=%p cc=%d "
                                "inp=%p\n", vc, cb->s.outp, blksize,
                                 cb->s.inp));
@@ -5697,12 +5703,14 @@
adj_done:                                                              \
                               orig[m] = result;                       \
                       }                                               \
+                       orig = &orig[m];                                \
+                       tomix = &tomix[m];                              \
                                                                       \
-                       if (&orig[m] >=                                 \
+                       if (orig >=                                     \
                           (type *)sc->sc_mixring.sc_mpr.s.end)        \
                               orig =                                  \
                                (type *)sc->sc_mixring.sc_mpr.s.start; \
-                       if (&tomix[m] >= (type *)cb->s.end)             \
+                       if (tomix >= (type *)cb->s.end)                 \
                               tomix = (type *)cb->s.start;            \
                                                                       \
                       resid -= cc;                                    \