Module Name:    src
Committed By:   isaki
Date:           Sat Jun  8 08:02:38 UTC 2019

Modified Files:
        src/sys/arch/amiga/dev: aucc.c repulse.c toccata.c
        src/sys/arch/arm/iomd: vidcaudio.c
        src/sys/arch/arm/sunxi: sunxi_codec.c sunxi_i2s.c
        src/sys/arch/arm/xscale: pxa2x0_ac97.c
        src/sys/arch/hpcmips/vr: vraiu.c
        src/sys/arch/hppa/gsc: harmony.c
        src/sys/arch/macppc/dev: awacs.c snapper.c
        src/sys/arch/x68k/dev: vs.c
        src/sys/arch/zaurus/dev: zaudio.c
        src/sys/dev/audio: audio.c
        src/sys/dev/bluetooth: btsco.c
        src/sys/dev/hdaudio: hdafg.c
        src/sys/dev/ic: am7930.c arcofi.c cs4231.c interwave.c tms320av110.c
        src/sys/dev/isa: ad1848_isa.c aria.c ess.c gus.c sbdsp.c
        src/sys/dev/pci: auacer.c auich.c auixp.c autri.c auvia.c azalia.c
            cmpci.c cs428x.c eap.c emuxki.c esa.c esm.c eso.c fms.c gcscaudio.c
            neo.c sv.c yds.c
        src/sys/dev/sbus: dbri.c
        src/sys/dev/tc: bba.c

Log Message:
Clean get_props().
- Make get_props() return AUDIO_PROP_{PLAYBACK,CAPTURE} properly.
  This eliminates need for audio.c to take care of such (old)
  drivers which don't return both of PLAYBACK and CAPTURE.
- All get_props() doesn't need to return AUDIO_PROP_MMAP.
  It is handled in the audio layer now.


To generate a diff of this commit:
cvs rdiff -u -r1.45 -r1.46 src/sys/arch/amiga/dev/aucc.c
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/amiga/dev/repulse.c
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/amiga/dev/toccata.c
cvs rdiff -u -r1.58 -r1.59 src/sys/arch/arm/iomd/vidcaudio.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/sunxi/sunxi_codec.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/sunxi/sunxi_i2s.c
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/xscale/pxa2x0_ac97.c
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/hpcmips/vr/vraiu.c
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/hppa/gsc/harmony.c
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/macppc/dev/awacs.c
cvs rdiff -u -r1.51 -r1.52 src/sys/arch/macppc/dev/snapper.c
cvs rdiff -u -r1.51 -r1.52 src/sys/arch/x68k/dev/vs.c
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/zaurus/dev/zaudio.c
cvs rdiff -u -r1.11 -r1.12 src/sys/dev/audio/audio.c
cvs rdiff -u -r1.40 -r1.41 src/sys/dev/bluetooth/btsco.c
cvs rdiff -u -r1.17 -r1.18 src/sys/dev/hdaudio/hdafg.c
cvs rdiff -u -r1.58 -r1.59 src/sys/dev/ic/am7930.c
cvs rdiff -u -r1.2 -r1.3 src/sys/dev/ic/arcofi.c
cvs rdiff -u -r1.30 -r1.31 src/sys/dev/ic/cs4231.c
cvs rdiff -u -r1.41 -r1.42 src/sys/dev/ic/interwave.c
cvs rdiff -u -r1.26 -r1.27 src/sys/dev/ic/tms320av110.c
cvs rdiff -u -r1.39 -r1.40 src/sys/dev/isa/ad1848_isa.c
cvs rdiff -u -r1.40 -r1.41 src/sys/dev/isa/aria.c
cvs rdiff -u -r1.85 -r1.86 src/sys/dev/isa/ess.c
cvs rdiff -u -r1.116 -r1.117 src/sys/dev/isa/gus.c
cvs rdiff -u -r1.140 -r1.141 src/sys/dev/isa/sbdsp.c
cvs rdiff -u -r1.37 -r1.38 src/sys/dev/pci/auacer.c
cvs rdiff -u -r1.156 -r1.157 src/sys/dev/pci/auich.c
cvs rdiff -u -r1.46 -r1.47 src/sys/dev/pci/auixp.c src/sys/dev/pci/fms.c
cvs rdiff -u -r1.57 -r1.58 src/sys/dev/pci/autri.c
cvs rdiff -u -r1.83 -r1.84 src/sys/dev/pci/auvia.c
cvs rdiff -u -r1.87 -r1.88 src/sys/dev/pci/azalia.c
cvs rdiff -u -r1.55 -r1.56 src/sys/dev/pci/cmpci.c src/sys/dev/pci/sv.c
cvs rdiff -u -r1.19 -r1.20 src/sys/dev/pci/cs428x.c
cvs rdiff -u -r1.100 -r1.101 src/sys/dev/pci/eap.c
cvs rdiff -u -r1.69 -r1.70 src/sys/dev/pci/emuxki.c
cvs rdiff -u -r1.64 -r1.65 src/sys/dev/pci/esa.c
cvs rdiff -u -r1.62 -r1.63 src/sys/dev/pci/esm.c
cvs rdiff -u -r1.70 -r1.71 src/sys/dev/pci/eso.c
cvs rdiff -u -r1.17 -r1.18 src/sys/dev/pci/gcscaudio.c
cvs rdiff -u -r1.53 -r1.54 src/sys/dev/pci/neo.c
cvs rdiff -u -r1.63 -r1.64 src/sys/dev/pci/yds.c
cvs rdiff -u -r1.40 -r1.41 src/sys/dev/sbus/dbri.c
cvs rdiff -u -r1.43 -r1.44 src/sys/dev/tc/bba.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amiga/dev/aucc.c
diff -u src/sys/arch/amiga/dev/aucc.c:1.45 src/sys/arch/amiga/dev/aucc.c:1.46
--- src/sys/arch/amiga/dev/aucc.c:1.45	Wed May  8 13:40:14 2019
+++ src/sys/arch/amiga/dev/aucc.c	Sat Jun  8 08:02:36 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: aucc.c,v 1.45 2019/05/08 13:40:14 isaki Exp $ */
+/*	$NetBSD: aucc.c,v 1.46 2019/06/08 08:02:36 isaki Exp $ */
 
 /*
  * Copyright (c) 1999 Bernardo Innocenti
@@ -46,7 +46,7 @@
 #if NAUCC > 0
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aucc.c,v 1.45 2019/05/08 13:40:14 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aucc.c,v 1.46 2019/06/08 08:02:36 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -693,7 +693,8 @@ aucc_get_port(void *addr, mixer_ctrl_t *
 int
 aucc_get_props(void *addr)
 {
-	return 0;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 

Index: src/sys/arch/amiga/dev/repulse.c
diff -u src/sys/arch/amiga/dev/repulse.c:1.22 src/sys/arch/amiga/dev/repulse.c:1.23
--- src/sys/arch/amiga/dev/repulse.c:1.22	Wed May  8 13:40:14 2019
+++ src/sys/arch/amiga/dev/repulse.c	Sat Jun  8 08:02:36 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: repulse.c,v 1.22 2019/05/08 13:40:14 isaki Exp $ */
+/*	$NetBSD: repulse.c,v 1.23 2019/06/08 08:02:36 isaki Exp $ */
 
 /*-
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: repulse.c,v 1.22 2019/05/08 13:40:14 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: repulse.c,v 1.23 2019/06/08 08:02:36 isaki Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -438,7 +438,9 @@ rep_getdev(void *arg, struct audio_devic
 int
 rep_get_props(void *v)
 {
-	return AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 int

Index: src/sys/arch/amiga/dev/toccata.c
diff -u src/sys/arch/amiga/dev/toccata.c:1.19 src/sys/arch/amiga/dev/toccata.c:1.20
--- src/sys/arch/amiga/dev/toccata.c:1.19	Wed May  8 13:40:14 2019
+++ src/sys/arch/amiga/dev/toccata.c	Sat Jun  8 08:02:36 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: toccata.c,v 1.19 2019/05/08 13:40:14 isaki Exp $ */
+/* $NetBSD: toccata.c,v 1.20 2019/06/08 08:02:36 isaki Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2001, 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: toccata.c,v 1.19 2019/05/08 13:40:14 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: toccata.c,v 1.20 2019/06/08 08:02:36 isaki Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -444,7 +444,8 @@ toccata_getdev(void *addr, struct audio_
 int
 toccata_get_props(void *addr)
 {
-	return 0;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 void

Index: src/sys/arch/arm/iomd/vidcaudio.c
diff -u src/sys/arch/arm/iomd/vidcaudio.c:1.58 src/sys/arch/arm/iomd/vidcaudio.c:1.59
--- src/sys/arch/arm/iomd/vidcaudio.c:1.58	Wed May  8 13:40:14 2019
+++ src/sys/arch/arm/iomd/vidcaudio.c	Sat Jun  8 08:02:36 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vidcaudio.c,v 1.58 2019/05/08 13:40:14 isaki Exp $	*/
+/*	$NetBSD: vidcaudio.c,v 1.59 2019/06/08 08:02:36 isaki Exp $	*/
 
 /*
  * Copyright (c) 1995 Melvin Tang-Richardson
@@ -65,7 +65,7 @@
 
 #include <sys/param.h>	/* proc.h */
 
-__KERNEL_RCSID(0, "$NetBSD: vidcaudio.c,v 1.58 2019/05/08 13:40:14 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vidcaudio.c,v 1.59 2019/06/08 08:02:36 isaki Exp $");
 
 #include <sys/audioio.h>
 #include <sys/conf.h>   /* autoconfig functions */
@@ -487,7 +487,7 @@ static int
 vidcaudio_get_props(void *addr)
 {
 
-	return 0;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 static void

Index: src/sys/arch/arm/sunxi/sunxi_codec.c
diff -u src/sys/arch/arm/sunxi/sunxi_codec.c:1.6 src/sys/arch/arm/sunxi/sunxi_codec.c:1.7
--- src/sys/arch/arm/sunxi/sunxi_codec.c:1.6	Wed May  8 13:40:14 2019
+++ src/sys/arch/arm/sunxi/sunxi_codec.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_codec.c,v 1.6 2019/05/08 13:40:14 isaki Exp $ */
+/* $NetBSD: sunxi_codec.c,v 1.7 2019/06/08 08:02:37 isaki Exp $ */
 
 /*-
  * Copyright (c) 2014-2017 Jared McNeill <jmcne...@invisible.ca>
@@ -29,7 +29,7 @@
 #include "opt_ddb.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_codec.c,v 1.6 2019/05/08 13:40:14 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_codec.c,v 1.7 2019/06/08 08:02:37 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -255,9 +255,9 @@ sunxi_codec_getdev(void *priv, struct au
 static int
 sunxi_codec_get_props(void *priv)
 {
-	return AUDIO_PROP_PLAYBACK|AUDIO_PROP_CAPTURE|
-	    AUDIO_PROP_INDEPENDENT|AUDIO_PROP_MMAP|
-	    AUDIO_PROP_FULLDUPLEX;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE|
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/arch/arm/sunxi/sunxi_i2s.c
diff -u src/sys/arch/arm/sunxi/sunxi_i2s.c:1.5 src/sys/arch/arm/sunxi/sunxi_i2s.c:1.6
--- src/sys/arch/arm/sunxi/sunxi_i2s.c:1.5	Thu Jun  6 23:19:07 2019
+++ src/sys/arch/arm/sunxi/sunxi_i2s.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_i2s.c,v 1.5 2019/06/06 23:19:07 jmcneill Exp $ */
+/* $NetBSD: sunxi_i2s.c,v 1.6 2019/06/08 08:02:37 isaki Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <jmcne...@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_i2s.c,v 1.5 2019/06/06 23:19:07 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_i2s.c,v 1.6 2019/06/08 08:02:37 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -296,8 +296,9 @@ sunxi_i2s_freem(void *priv, void *addr, 
 static int
 sunxi_i2s_get_props(void *priv)
 {
-	return AUDIO_PROP_PLAYBACK|AUDIO_PROP_CAPTURE|
-	    AUDIO_PROP_MMAP|AUDIO_PROP_FULLDUPLEX|AUDIO_PROP_INDEPENDENT;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX | AUDIO_PROP_INDEPENDENT;
 }
 
 static int

Index: src/sys/arch/arm/xscale/pxa2x0_ac97.c
diff -u src/sys/arch/arm/xscale/pxa2x0_ac97.c:1.16 src/sys/arch/arm/xscale/pxa2x0_ac97.c:1.17
--- src/sys/arch/arm/xscale/pxa2x0_ac97.c:1.16	Wed May  8 13:40:14 2019
+++ src/sys/arch/arm/xscale/pxa2x0_ac97.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: pxa2x0_ac97.c,v 1.16 2019/05/08 13:40:14 isaki Exp $	*/
+/*	$NetBSD: pxa2x0_ac97.c,v 1.17 2019/06/08 08:02:37 isaki Exp $	*/
 
 /*
  * Copyright (c) 2003, 2005 Wasabi Systems, Inc.
@@ -705,7 +705,8 @@ static int
 acu_get_props(void *arg)
 {
 
-	return (AUDIO_PROP_MMAP|AUDIO_PROP_INDEPENDENT|AUDIO_PROP_FULLDUPLEX);
+	return (AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX);
 }
 
 static void

Index: src/sys/arch/hpcmips/vr/vraiu.c
diff -u src/sys/arch/hpcmips/vr/vraiu.c:1.17 src/sys/arch/hpcmips/vr/vraiu.c:1.18
--- src/sys/arch/hpcmips/vr/vraiu.c:1.17	Wed May  8 13:40:15 2019
+++ src/sys/arch/hpcmips/vr/vraiu.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vraiu.c,v 1.17 2019/05/08 13:40:15 isaki Exp $	*/
+/*	$NetBSD: vraiu.c,v 1.18 2019/06/08 08:02:37 isaki Exp $	*/
 
 /*
  * Copyright (c) 2001 HAMAJIMA Katsuomi. All rights reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vraiu.c,v 1.17 2019/05/08 13:40:15 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vraiu.c,v 1.18 2019/06/08 08:02:37 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -518,7 +518,7 @@ vraiu_get_props(void *self)
 {
 	DPRINTFN(3, ("vraiu_get_props\n"));
 
-	return 0;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 void

Index: src/sys/arch/hppa/gsc/harmony.c
diff -u src/sys/arch/hppa/gsc/harmony.c:1.6 src/sys/arch/hppa/gsc/harmony.c:1.7
--- src/sys/arch/hppa/gsc/harmony.c:1.6	Wed May  8 13:40:15 2019
+++ src/sys/arch/hppa/gsc/harmony.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: harmony.c,v 1.6 2019/05/08 13:40:15 isaki Exp $	*/
+/*	$NetBSD: harmony.c,v 1.7 2019/06/08 08:02:37 isaki Exp $	*/
 
 /*	$OpenBSD: harmony.c,v 1.23 2004/02/13 21:28:19 mickey Exp $	*/
 
@@ -972,7 +972,8 @@ int
 harmony_get_props(void *vsc)
 {
 
-	return AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 void

Index: src/sys/arch/macppc/dev/awacs.c
diff -u src/sys/arch/macppc/dev/awacs.c:1.47 src/sys/arch/macppc/dev/awacs.c:1.48
--- src/sys/arch/macppc/dev/awacs.c:1.47	Wed May  8 13:40:15 2019
+++ src/sys/arch/macppc/dev/awacs.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: awacs.c,v 1.47 2019/05/08 13:40:15 isaki Exp $	*/
+/*	$NetBSD: awacs.c,v 1.48 2019/06/08 08:02:37 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2000 Tsubai Masanari.  All rights reserved.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: awacs.c,v 1.47 2019/05/08 13:40:15 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: awacs.c,v 1.48 2019/06/08 08:02:37 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/audioio.h>
@@ -967,7 +967,9 @@ awacs_round_buffersize(void *h, int dir,
 static int
 awacs_get_props(void *h)
 {
-	return AUDIO_PROP_FULLDUPLEX /* | AUDIO_PROP_MMAP */;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/arch/macppc/dev/snapper.c
diff -u src/sys/arch/macppc/dev/snapper.c:1.51 src/sys/arch/macppc/dev/snapper.c:1.52
--- src/sys/arch/macppc/dev/snapper.c:1.51	Thu May 16 23:39:37 2019
+++ src/sys/arch/macppc/dev/snapper.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: snapper.c,v 1.51 2019/05/16 23:39:37 macallan Exp $	*/
+/*	$NetBSD: snapper.c,v 1.52 2019/06/08 08:02:37 isaki Exp $	*/
 /*	Id: snapper.c,v 1.11 2002/10/31 17:42:13 tsubai Exp	*/
 /*	Id: i2s.c,v 1.12 2005/01/15 14:32:35 tsubai Exp		*/
 
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: snapper.c,v 1.51 2019/05/16 23:39:37 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: snapper.c,v 1.52 2019/06/08 08:02:37 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/audioio.h>
@@ -1242,7 +1242,9 @@ snapper_round_buffersize(void *h, int di
 static int
 snapper_get_props(void *h)
 {
-	return AUDIO_PROP_FULLDUPLEX /* | AUDIO_PROP_MMAP */;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/arch/x68k/dev/vs.c
diff -u src/sys/arch/x68k/dev/vs.c:1.51 src/sys/arch/x68k/dev/vs.c:1.52
--- src/sys/arch/x68k/dev/vs.c:1.51	Wed May  8 13:40:17 2019
+++ src/sys/arch/x68k/dev/vs.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: vs.c,v 1.51 2019/05/08 13:40:17 isaki Exp $	*/
+/*	$NetBSD: vs.c,v 1.52 2019/06/08 08:02:37 isaki Exp $	*/
 
 /*
  * Copyright (c) 2001 Tetsuya Isaki. All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vs.c,v 1.51 2019/05/08 13:40:17 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vs.c,v 1.52 2019/06/08 08:02:37 isaki Exp $");
 
 #include "audio.h"
 #include "vs.h"
@@ -664,7 +664,7 @@ vs_get_props(void *hdl)
 {
 
 	DPRINTF(1, ("vs_get_props\n"));
-	return 0 /* | dependent | half duplex | no mmap */;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 static void

Index: src/sys/arch/zaurus/dev/zaudio.c
diff -u src/sys/arch/zaurus/dev/zaudio.c:1.22 src/sys/arch/zaurus/dev/zaudio.c:1.23
--- src/sys/arch/zaurus/dev/zaudio.c:1.22	Wed May  8 13:40:17 2019
+++ src/sys/arch/zaurus/dev/zaudio.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: zaudio.c,v 1.22 2019/05/08 13:40:17 isaki Exp $	*/
+/*	$NetBSD: zaudio.c,v 1.23 2019/06/08 08:02:37 isaki Exp $	*/
 /*	$OpenBSD: zaurus_audio.c,v 1.8 2005/08/18 13:23:02 robert Exp $	*/
 
 /*
@@ -50,7 +50,7 @@
 #include "opt_cputypes.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: zaudio.c,v 1.22 2019/05/08 13:40:17 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: zaudio.c,v 1.23 2019/06/08 08:02:37 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -231,7 +231,7 @@ int
 zaudio_get_props(void *hdl)
 {
 
-	return AUDIO_PROP_MMAP;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 void

Index: src/sys/dev/audio/audio.c
diff -u src/sys/dev/audio/audio.c:1.11 src/sys/dev/audio/audio.c:1.12
--- src/sys/dev/audio/audio.c:1.11	Thu Jun  6 13:08:30 2019
+++ src/sys/dev/audio/audio.c	Sat Jun  8 08:02:37 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: audio.c,v 1.11 2019/06/06 13:08:30 isaki Exp $	*/
+/*	$NetBSD: audio.c,v 1.12 2019/06/08 08:02:37 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -142,7 +142,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.11 2019/06/06 13:08:30 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.12 2019/06/08 08:02:37 isaki Exp $");
 
 #ifdef _KERNEL_OPT
 #include "audio.h"
@@ -7163,14 +7163,6 @@ audio_get_props(struct audio_softc *sc)
 	hw = sc->hw_if;
 	props = hw->get_props(sc->hw_hdl);
 
-	/*
-	 * For historical reasons, if neither playback nor capture
-	 * properties are reported, assume both are supported.
-	 * XXX Ideally (all) hardware driver should be updated...
-	 */
-	if ((props & (AUDIO_PROP_PLAYBACK|AUDIO_PROP_CAPTURE)) == 0)
-		props |= (AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE);
-
 	/* MMAP is now supported by upper layer.  */
 	props |= AUDIO_PROP_MMAP;
 

Index: src/sys/dev/bluetooth/btsco.c
diff -u src/sys/dev/bluetooth/btsco.c:1.40 src/sys/dev/bluetooth/btsco.c:1.41
--- src/sys/dev/bluetooth/btsco.c:1.40	Sat May 25 04:41:53 2019
+++ src/sys/dev/bluetooth/btsco.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: btsco.c,v 1.40 2019/05/25 04:41:53 isaki Exp $	*/
+/*	$NetBSD: btsco.c,v 1.41 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2006 Itronix Inc.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: btsco.c,v 1.40 2019/05/25 04:41:53 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: btsco.c,v 1.41 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/audioio.h>
@@ -1009,7 +1009,8 @@ static int
 btsco_get_props(void *hdl)
 {
 
-	return AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 static void

Index: src/sys/dev/hdaudio/hdafg.c
diff -u src/sys/dev/hdaudio/hdafg.c:1.17 src/sys/dev/hdaudio/hdafg.c:1.18
--- src/sys/dev/hdaudio/hdafg.c:1.17	Wed May  8 13:40:18 2019
+++ src/sys/dev/hdaudio/hdafg.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: hdafg.c,v 1.17 2019/05/08 13:40:18 isaki Exp $ */
+/* $NetBSD: hdafg.c,v 1.18 2019/06/08 08:02:38 isaki Exp $ */
 
 /*
  * Copyright (c) 2009 Precedence Technologies Ltd <supp...@precedence.co.uk>
@@ -60,7 +60,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.17 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdafg.c,v 1.18 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -4210,7 +4210,7 @@ static int
 hdafg_get_props(void *opaque)
 {
 	struct hdaudio_audiodev *ad = opaque;
-	int props = AUDIO_PROP_MMAP;
+	int props = 0;
 
 	if (ad->ad_playback)
 		props |= AUDIO_PROP_PLAYBACK;

Index: src/sys/dev/ic/am7930.c
diff -u src/sys/dev/ic/am7930.c:1.58 src/sys/dev/ic/am7930.c:1.59
--- src/sys/dev/ic/am7930.c:1.58	Wed May  8 13:40:18 2019
+++ src/sys/dev/ic/am7930.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: am7930.c,v 1.58 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: am7930.c,v 1.59 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright (c) 1995 Rolf Grossmann
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: am7930.c,v 1.58 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: am7930.c,v 1.59 2019/06/08 08:02:38 isaki Exp $");
 
 #include "audio.h"
 #if NAUDIO > 0
@@ -333,7 +333,9 @@ am7930_halt_input(void *addr)
 int
 am7930_get_props(void *addr)
 {
-	return AUDIO_PROP_FULLDUPLEX;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 /*

Index: src/sys/dev/ic/arcofi.c
diff -u src/sys/dev/ic/arcofi.c:1.2 src/sys/dev/ic/arcofi.c:1.3
--- src/sys/dev/ic/arcofi.c:1.2	Wed May  8 13:40:18 2019
+++ src/sys/dev/ic/arcofi.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: arcofi.c,v 1.2 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: arcofi.c,v 1.3 2019/06/08 08:02:38 isaki Exp $	*/
 /*	$OpenBSD: arcofi.c,v 1.6 2013/05/15 08:29:24 ratchov Exp $	*/
 
 /*
@@ -984,7 +984,7 @@ static int
 arcofi_get_props(void *v)
 {
 
-	return 0;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 static void

Index: src/sys/dev/ic/cs4231.c
diff -u src/sys/dev/ic/cs4231.c:1.30 src/sys/dev/ic/cs4231.c:1.31
--- src/sys/dev/ic/cs4231.c:1.30	Wed May  8 13:40:18 2019
+++ src/sys/dev/ic/cs4231.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cs4231.c,v 1.30 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: cs4231.c,v 1.31 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cs4231.c,v 1.30 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cs4231.c,v 1.31 2019/06/08 08:02:38 isaki Exp $");
 
 #include "audio.h"
 #if NAUDIO > 0
@@ -423,7 +423,8 @@ int
 cs4231_get_props(void *addr)
 {
 
-	return AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 int

Index: src/sys/dev/ic/interwave.c
diff -u src/sys/dev/ic/interwave.c:1.41 src/sys/dev/ic/interwave.c:1.42
--- src/sys/dev/ic/interwave.c:1.41	Wed May  8 13:40:18 2019
+++ src/sys/dev/ic/interwave.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: interwave.c,v 1.41 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: interwave.c,v 1.42 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright (c) 1997, 1999, 2008 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: interwave.c,v 1.41 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: interwave.c,v 1.42 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1452,7 +1452,7 @@ iw_get_props(void *addr)
 	struct iw_softc *sc;
 
 	sc = addr;
-	return AUDIO_PROP_MMAP |
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
 		(sc->sc_fullduplex ? AUDIO_PROP_FULLDUPLEX : 0);
 }
 

Index: src/sys/dev/ic/tms320av110.c
diff -u src/sys/dev/ic/tms320av110.c:1.26 src/sys/dev/ic/tms320av110.c:1.27
--- src/sys/dev/ic/tms320av110.c:1.26	Wed May  8 13:40:18 2019
+++ src/sys/dev/ic/tms320av110.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: tms320av110.c,v 1.26 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: tms320av110.c,v 1.27 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tms320av110.c,v 1.26 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tms320av110.c,v 1.27 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -319,7 +319,8 @@ tav_round_blocksize(void *hdl, int size,
 int
 tav_get_props(void *hdl)
 {
-	return 0;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 void

Index: src/sys/dev/isa/ad1848_isa.c
diff -u src/sys/dev/isa/ad1848_isa.c:1.39 src/sys/dev/isa/ad1848_isa.c:1.40
--- src/sys/dev/isa/ad1848_isa.c:1.39	Wed May  8 13:40:18 2019
+++ src/sys/dev/isa/ad1848_isa.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ad1848_isa.c,v 1.39 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: ad1848_isa.c,v 1.40 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2008 The NetBSD Foundation, Inc.
@@ -95,7 +95,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ad1848_isa.c,v 1.39 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ad1848_isa.c,v 1.40 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -783,6 +783,6 @@ ad1848_isa_get_props(void *addr)
 	struct ad1848_isa_softc *isc;
 
 	isc = addr;
-	return AUDIO_PROP_MMAP |
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
 		(isc->sc_playdrq != isc->sc_recdrq ? AUDIO_PROP_FULLDUPLEX : 0);
 }

Index: src/sys/dev/isa/aria.c
diff -u src/sys/dev/isa/aria.c:1.40 src/sys/dev/isa/aria.c:1.41
--- src/sys/dev/isa/aria.c:1.40	Wed May  8 13:40:18 2019
+++ src/sys/dev/isa/aria.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: aria.c,v 1.40 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: aria.c,v 1.41 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 1995, 1996, 1998 The NetBSD Foundation, Inc.
@@ -45,7 +45,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aria.c,v 1.40 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aria.c,v 1.41 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -543,7 +543,7 @@ aria_get_props(void *addr)
 {
 
 	/* XXX This driver doesn't seem to be written as full duplex. */
-	return 0;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 int

Index: src/sys/dev/isa/ess.c
diff -u src/sys/dev/isa/ess.c:1.85 src/sys/dev/isa/ess.c:1.86
--- src/sys/dev/isa/ess.c:1.85	Wed May  8 13:40:18 2019
+++ src/sys/dev/isa/ess.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: ess.c,v 1.85 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: ess.c,v 1.86 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright 1997
@@ -66,7 +66,7 @@
 */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ess.c,v 1.85 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ess.c,v 1.86 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -2177,14 +2177,15 @@ int
 ess_1788_get_props(void *addr)
 {
 
-	return AUDIO_PROP_MMAP;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 }
 
 int
 ess_1888_get_props(void *addr)
 {
 
-	return AUDIO_PROP_MMAP | AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 void

Index: src/sys/dev/isa/gus.c
diff -u src/sys/dev/isa/gus.c:1.116 src/sys/dev/isa/gus.c:1.117
--- src/sys/dev/isa/gus.c:1.116	Wed May  8 13:40:18 2019
+++ src/sys/dev/isa/gus.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: gus.c,v 1.116 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: gus.c,v 1.117 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 1996, 1999, 2008 The NetBSD Foundation, Inc.
@@ -88,7 +88,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gus.c,v 1.116 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gus.c,v 1.117 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -3620,7 +3620,7 @@ gus_get_props(void *addr)
 	struct gus_softc *sc;
 
 	sc = addr;
-	return AUDIO_PROP_MMAP |
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
 	    (sc->sc_recdrq == sc->sc_playdrq ? 0 : AUDIO_PROP_FULLDUPLEX);
 }
 

Index: src/sys/dev/isa/sbdsp.c
diff -u src/sys/dev/isa/sbdsp.c:1.140 src/sys/dev/isa/sbdsp.c:1.141
--- src/sys/dev/isa/sbdsp.c:1.140	Wed May  8 13:40:18 2019
+++ src/sys/dev/isa/sbdsp.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: sbdsp.c,v 1.140 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: sbdsp.c,v 1.141 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2008 The NetBSD Foundation, Inc.
@@ -74,7 +74,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sbdsp.c,v 1.140 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sbdsp.c,v 1.141 2019/06/08 08:02:38 isaki Exp $");
 
 #include "midi.h"
 #include "mpu.h"
@@ -2480,7 +2480,7 @@ sbdsp_get_props(void *addr)
 	int prop;
 
 	sc = addr;
-	prop = AUDIO_PROP_MMAP;
+	prop = AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE;
 
 	/* Prior to the SB16, it has only one clock */
 	if (ISSB16CLASS(sc))

Index: src/sys/dev/pci/auacer.c
diff -u src/sys/dev/pci/auacer.c:1.37 src/sys/dev/pci/auacer.c:1.38
--- src/sys/dev/pci/auacer.c:1.37	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/auacer.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: auacer.c,v 1.37 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: auacer.c,v 1.38 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2004, 2008 The NetBSD Foundation, Inc.
@@ -44,7 +44,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auacer.c,v 1.37 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auacer.c,v 1.38 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -712,19 +712,9 @@ auacer_round_buffersize(void *v, int dir
 static int
 auacer_get_props(void *v)
 {
-	struct auacer_softc *sc;
-	int props;
 
-	sc = v;
-	props = AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
-	/*
-	 * Even if the codec is fixed-rate, set_param() succeeds for any sample
-	 * rate because of aurateconv.  Applications can't know what rate the
-	 * device can process in the case of mmap().
-	 */
-	if (!AC97_IS_FIXED_RATE(sc->codec_if))
-		props |= AUDIO_PROP_MMAP;
-	return props;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static void

Index: src/sys/dev/pci/auich.c
diff -u src/sys/dev/pci/auich.c:1.156 src/sys/dev/pci/auich.c:1.157
--- src/sys/dev/pci/auich.c:1.156	Sat May 11 02:34:19 2019
+++ src/sys/dev/pci/auich.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: auich.c,v 1.156 2019/05/11 02:34:19 christos Exp $	*/
+/*	$NetBSD: auich.c,v 1.157 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2004, 2005, 2008 The NetBSD Foundation, Inc.
@@ -111,7 +111,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.156 2019/05/11 02:34:19 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.157 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1206,20 +1206,9 @@ auich_round_buffersize(void *v, int dire
 static int
 auich_get_props(void *v)
 {
-	struct auich_softc *sc;
-	int props;
 
-	props = AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
-	sc = v;
-	/*
-	 * Even if the codec is fixed-rate, set_param() succeeds for any sample
-	 * rate because of aurateconv.  Applications can't know what rate the
-	 * device can process in the case of mmap().
-	 */
-	if (!AC97_IS_FIXED_RATE(sc->codec_if) ||
-	    sc->sc_codectype == AC97_CODEC_TYPE_MODEM)
-		props |= AUDIO_PROP_MMAP;
-	return props;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/dev/pci/auixp.c
diff -u src/sys/dev/pci/auixp.c:1.46 src/sys/dev/pci/auixp.c:1.47
--- src/sys/dev/pci/auixp.c:1.46	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/auixp.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: auixp.c,v 1.46 2019/05/08 13:40:18 isaki Exp $ */
+/* $NetBSD: auixp.c,v 1.47 2019/06/08 08:02:38 isaki Exp $ */
 
 /*
  * Copyright (c) 2004, 2005 Reinoud Zandijk <rein...@netbsd.org>
@@ -50,7 +50,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auixp.c,v 1.46 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auixp.c,v 1.47 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/types.h>
 #include <sys/errno.h>
@@ -559,7 +559,8 @@ static int
 auixp_get_props(void *hdl)
 {
 
-	return AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 
Index: src/sys/dev/pci/fms.c
diff -u src/sys/dev/pci/fms.c:1.46 src/sys/dev/pci/fms.c:1.47
--- src/sys/dev/pci/fms.c:1.46	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/fms.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: fms.c,v 1.46 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: fms.c,v 1.47 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 1999, 2008 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fms.c,v 1.46 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fms.c,v 1.47 2019/06/08 08:02:38 isaki Exp $");
 
 #include "mpu.h"
 
@@ -665,8 +665,9 @@ fms_free(void *addr, void *ptr, size_t s
 static int
 fms_get_props(void *addr)
 {
-	return AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT |
-	       AUDIO_PROP_FULLDUPLEX;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/dev/pci/autri.c
diff -u src/sys/dev/pci/autri.c:1.57 src/sys/dev/pci/autri.c:1.58
--- src/sys/dev/pci/autri.c:1.57	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/autri.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: autri.c,v 1.57 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: autri.c,v 1.58 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright (c) 2001 SOMEYA Yoshihiko and KUROSAWA Takahiro.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: autri.c,v 1.57 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: autri.c,v 1.58 2019/06/08 08:02:38 isaki Exp $");
 
 #include "midi.h"
 
@@ -1061,8 +1061,9 @@ autri_find_dma(struct autri_softc *sc, v
 static int
 autri_get_props(void *addr)
 {
-	return AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT |
-	    AUDIO_PROP_FULLDUPLEX;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static void

Index: src/sys/dev/pci/auvia.c
diff -u src/sys/dev/pci/auvia.c:1.83 src/sys/dev/pci/auvia.c:1.84
--- src/sys/dev/pci/auvia.c:1.83	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/auvia.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: auvia.c,v 1.83 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: auvia.c,v 1.84 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2008 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auvia.c,v 1.83 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auvia.c,v 1.84 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -971,19 +971,9 @@ auvia_free(void *addr, void *ptr, size_t
 static int
 auvia_get_props(void *addr)
 {
-	struct auvia_softc *sc;
-	int props;
 
-	props = AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
-	sc = addr;
-	/*
-	 * Even if the codec is fixed-rate, set_param() succeeds for any sample
-	 * rate because of aurateconv.  Applications can't know what rate the
-	 * device can process in the case of mmap().
-	 */
-	if (!AC97_IS_FIXED_RATE(sc->codec_if))
-		props |= AUDIO_PROP_MMAP;
-	return props;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static void

Index: src/sys/dev/pci/azalia.c
diff -u src/sys/dev/pci/azalia.c:1.87 src/sys/dev/pci/azalia.c:1.88
--- src/sys/dev/pci/azalia.c:1.87	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/azalia.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: azalia.c,v 1.87 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: azalia.c,v 1.88 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2005, 2008 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: azalia.c,v 1.87 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: azalia.c,v 1.88 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -2275,7 +2275,9 @@ azalia_round_buffersize(void *v, int dir
 static int
 azalia_get_props(void *v)
 {
-	return AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/dev/pci/cmpci.c
diff -u src/sys/dev/pci/cmpci.c:1.55 src/sys/dev/pci/cmpci.c:1.56
--- src/sys/dev/pci/cmpci.c:1.55	Sun May 12 13:40:19 2019
+++ src/sys/dev/pci/cmpci.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cmpci.c,v 1.55 2019/05/12 13:40:19 maya Exp $	*/
+/*	$NetBSD: cmpci.c,v 1.56 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright (c) 2000, 2001, 2008 The NetBSD Foundation, Inc.
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cmpci.c,v 1.55 2019/05/12 13:40:19 maya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cmpci.c,v 1.56 2019/06/08 08:02:38 isaki Exp $");
 
 #if defined(AUDIO_DEBUG) || defined(DEBUG)
 #define DPRINTF(x) if (cmpcidebug) printf x
@@ -1559,7 +1559,8 @@ static int
 cmpci_get_props(void *handle)
 {
 
-	return AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int
Index: src/sys/dev/pci/sv.c
diff -u src/sys/dev/pci/sv.c:1.55 src/sys/dev/pci/sv.c:1.56
--- src/sys/dev/pci/sv.c:1.55	Wed May  8 13:40:19 2019
+++ src/sys/dev/pci/sv.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*      $NetBSD: sv.c,v 1.55 2019/05/08 13:40:19 isaki Exp $ */
+/*      $NetBSD: sv.c,v 1.56 2019/06/08 08:02:38 isaki Exp $ */
 /*      $OpenBSD: sv.c,v 1.2 1998/07/13 01:50:15 csapuntz Exp $ */
 
 /*
@@ -67,7 +67,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sv.c,v 1.55 2019/05/08 13:40:19 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sv.c,v 1.56 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1352,7 +1352,9 @@ sv_free(void *addr, void *ptr, size_t si
 static int
 sv_get_props(void *addr)
 {
-	return AUDIO_PROP_MMAP | AUDIO_PROP_FULLDUPLEX;
+
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 static void

Index: src/sys/dev/pci/cs428x.c
diff -u src/sys/dev/pci/cs428x.c:1.19 src/sys/dev/pci/cs428x.c:1.20
--- src/sys/dev/pci/cs428x.c:1.19	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/cs428x.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: cs428x.c,v 1.19 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: cs428x.c,v 1.20 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright (c) 2000 Tatoku Ogaito.  All rights reserved.
@@ -33,7 +33,7 @@
 /* Common functions for CS4280 and CS4281 */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cs428x.c,v 1.19 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cs428x.c,v 1.20 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -166,14 +166,9 @@ cs428x_round_buffersize(void *addr, int 
 int
 cs428x_get_props(void *addr)
 {
-	int retval;
 
-	retval = AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
-#ifdef MMAP_READY
-	/* How can I mmap ? */
-	retval |= AUDIO_PROP_MMAP;
-#endif
-	return retval;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 /* AC97 */

Index: src/sys/dev/pci/eap.c
diff -u src/sys/dev/pci/eap.c:1.100 src/sys/dev/pci/eap.c:1.101
--- src/sys/dev/pci/eap.c:1.100	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/eap.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: eap.c,v 1.100 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: eap.c,v 1.101 2019/06/08 08:02:38 isaki Exp $	*/
 /*      $OpenBSD: eap.c,v 1.6 1999/10/05 19:24:42 csapuntz Exp $ */
 
 /*
@@ -56,7 +56,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: eap.c,v 1.100 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: eap.c,v 1.101 2019/06/08 08:02:38 isaki Exp $");
 
 #include "midi.h"
 #include "joy_eap.h"
@@ -1647,8 +1647,8 @@ eap_get_props(void *addr)
 
 	ei = addr;
 	sc = device_private(ei->parent);
-	prop = AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT |
-	    AUDIO_PROP_FULLDUPLEX;
+	prop = AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 	/* The es1370 only has one clock, so it's not independent */
 	if (!sc->sc_1371 && ei->index == EAP_DAC2)
 		prop &= ~AUDIO_PROP_INDEPENDENT;

Index: src/sys/dev/pci/emuxki.c
diff -u src/sys/dev/pci/emuxki.c:1.69 src/sys/dev/pci/emuxki.c:1.70
--- src/sys/dev/pci/emuxki.c:1.69	Wed May 29 13:12:59 2019
+++ src/sys/dev/pci/emuxki.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: emuxki.c,v 1.69 2019/05/29 13:12:59 isaki Exp $	*/
+/*	$NetBSD: emuxki.c,v 1.70 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2007 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: emuxki.c,v 1.69 2019/05/29 13:12:59 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: emuxki.c,v 1.70 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -1234,7 +1234,8 @@ static int
 emuxki_get_props(void *hdl)
 {
 
-	return AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/dev/pci/esa.c
diff -u src/sys/dev/pci/esa.c:1.64 src/sys/dev/pci/esa.c:1.65
--- src/sys/dev/pci/esa.c:1.64	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/esa.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: esa.c,v 1.64 2019/05/08 13:40:18 isaki Exp $ */
+/* $NetBSD: esa.c,v 1.65 2019/06/08 08:02:38 isaki Exp $ */
 
 /*
  * Copyright (c) 2001-2008 Jared D. McNeill <jmcne...@invisible.ca>
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: esa.c,v 1.64 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: esa.c,v 1.65 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/types.h>
 #include <sys/errno.h>
@@ -475,7 +475,8 @@ static int
 esa_get_props(void *hdl)
 {
 
-	return AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/dev/pci/esm.c
diff -u src/sys/dev/pci/esm.c:1.62 src/sys/dev/pci/esm.c:1.63
--- src/sys/dev/pci/esm.c:1.62	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/esm.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*      $NetBSD: esm.c,v 1.62 2019/05/08 13:40:18 isaki Exp $      */
+/*      $NetBSD: esm.c,v 1.63 2019/06/08 08:02:38 isaki Exp $      */
 
 /*-
  * Copyright (c) 2002, 2003 Matt Fredette
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: esm.c,v 1.62 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: esm.c,v 1.63 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -1304,7 +1304,8 @@ int
 esm_get_props(void *sc)
 {
 
-	return AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 

Index: src/sys/dev/pci/eso.c
diff -u src/sys/dev/pci/eso.c:1.70 src/sys/dev/pci/eso.c:1.71
--- src/sys/dev/pci/eso.c:1.70	Wed May  8 13:40:18 2019
+++ src/sys/dev/pci/eso.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: eso.c,v 1.70 2019/05/08 13:40:18 isaki Exp $	*/
+/*	$NetBSD: eso.c,v 1.71 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: eso.c,v 1.70 2019/05/08 13:40:18 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: eso.c,v 1.71 2019/06/08 08:02:38 isaki Exp $");
 
 #include "mpu.h"
 
@@ -1625,8 +1625,8 @@ static int
 eso_get_props(void *hdl)
 {
 
-	return AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT |
-	    AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/dev/pci/gcscaudio.c
diff -u src/sys/dev/pci/gcscaudio.c:1.17 src/sys/dev/pci/gcscaudio.c:1.18
--- src/sys/dev/pci/gcscaudio.c:1.17	Wed May  8 13:40:19 2019
+++ src/sys/dev/pci/gcscaudio.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: gcscaudio.c,v 1.17 2019/05/08 13:40:19 isaki Exp $	*/
+/*	$NetBSD: gcscaudio.c,v 1.18 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*-
  * Copyright (c) 2008 SHIMIZU Ryo <r...@nerv.org>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gcscaudio.c,v 1.17 2019/05/08 13:40:19 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gcscaudio.c,v 1.18 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -684,19 +684,9 @@ gcscaudio_round_buffersize(void *addr, i
 static int
 gcscaudio_get_props(void *addr)
 {
-	struct gcscaudio_softc *sc;
-	int props;
 
-	sc = (struct gcscaudio_softc *)addr;
-	props = AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
-	/*
-	 * Even if the codec is fixed-rate, set_param() succeeds for any sample
-	 * rate because of aurateconv.  Applications can't know what rate the
-	 * device can process in the case of mmap().
-	 */
-	if (!AC97_IS_FIXED_RATE(sc->codec_if))
-		props |= AUDIO_PROP_MMAP;
-	return props;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/dev/pci/neo.c
diff -u src/sys/dev/pci/neo.c:1.53 src/sys/dev/pci/neo.c:1.54
--- src/sys/dev/pci/neo.c:1.53	Wed May  8 13:40:19 2019
+++ src/sys/dev/pci/neo.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: neo.c,v 1.53 2019/05/08 13:40:19 isaki Exp $	*/
+/*	$NetBSD: neo.c,v 1.54 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright (c) 1999 Cameron Grant <gand...@vilnya.demon.co.uk>
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: neo.c,v 1.53 2019/05/08 13:40:19 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: neo.c,v 1.54 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -948,8 +948,8 @@ static int
 neo_get_props(void *addr)
 {
 
-	return AUDIO_PROP_INDEPENDENT | AUDIO_PROP_MMAP |
-	    AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static void

Index: src/sys/dev/pci/yds.c
diff -u src/sys/dev/pci/yds.c:1.63 src/sys/dev/pci/yds.c:1.64
--- src/sys/dev/pci/yds.c:1.63	Sat May 25 04:25:30 2019
+++ src/sys/dev/pci/yds.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: yds.c,v 1.63 2019/05/25 04:25:30 isaki Exp $	*/
+/*	$NetBSD: yds.c,v 1.64 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright (c) 2000, 2001 Kazuki Sakamoto and Minoura Makoto.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: yds.c,v 1.63 2019/05/25 04:25:30 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: yds.c,v 1.64 2019/06/08 08:02:38 isaki Exp $");
 
 #include "mpu.h"
 
@@ -1728,8 +1728,8 @@ static int
 yds_get_props(void *addr)
 {
 
-	return AUDIO_PROP_MMAP | AUDIO_PROP_INDEPENDENT |
-	    AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_INDEPENDENT | AUDIO_PROP_FULLDUPLEX;
 }
 
 static void

Index: src/sys/dev/sbus/dbri.c
diff -u src/sys/dev/sbus/dbri.c:1.40 src/sys/dev/sbus/dbri.c:1.41
--- src/sys/dev/sbus/dbri.c:1.40	Wed May  8 13:40:19 2019
+++ src/sys/dev/sbus/dbri.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: dbri.c,v 1.40 2019/05/08 13:40:19 isaki Exp $	*/
+/*	$NetBSD: dbri.c,v 1.41 2019/06/08 08:02:38 isaki Exp $	*/
 
 /*
  * Copyright (C) 1997 Rudolf Koenig (rfkoe...@immd4.informatik.uni-erlangen.de)
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dbri.c,v 1.40 2019/05/08 13:40:19 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dbri.c,v 1.41 2019/06/08 08:02:38 isaki Exp $");
 
 #include "audio.h"
 #if NAUDIO > 0
@@ -1856,7 +1856,8 @@ static int
 dbri_get_props(void *hdl)
 {
 
-	return AUDIO_PROP_MMAP | AUDIO_PROP_FULLDUPLEX;
+	return AUDIO_PROP_PLAYBACK | AUDIO_PROP_CAPTURE |
+	    AUDIO_PROP_FULLDUPLEX;
 }
 
 static int

Index: src/sys/dev/tc/bba.c
diff -u src/sys/dev/tc/bba.c:1.43 src/sys/dev/tc/bba.c:1.44
--- src/sys/dev/tc/bba.c:1.43	Wed May  8 13:40:19 2019
+++ src/sys/dev/tc/bba.c	Sat Jun  8 08:02:38 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: bba.c,v 1.43 2019/05/08 13:40:19 isaki Exp $ */
+/* $NetBSD: bba.c,v 1.44 2019/06/08 08:02:38 isaki Exp $ */
 
 /*
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
 /* maxine/alpha baseboard audio (bba) */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bba.c,v 1.43 2019/05/08 13:40:19 isaki Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bba.c,v 1.44 2019/06/08 08:02:38 isaki Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -138,7 +138,6 @@ static int	bba_getdev(void *, struct aud
 static void	*bba_allocm(void *, int, size_t);
 static void	bba_freem(void *, void *, size_t);
 static size_t	bba_round_buffersize(void *, int, size_t);
-static int	bba_get_props(void *);
 static int	bba_trigger_output(void *, void *, void *, int,
 				   void (*)(void *), void *,
 				   const audio_params_t *);
@@ -164,7 +163,7 @@ static const struct audio_hw_if sa_hw_if
 	.allocm			= bba_allocm,		/* md */
 	.freem			= bba_freem,		/* md */
 	.round_buffersize	= bba_round_buffersize,	/* md */
-	.get_props		= bba_get_props,
+	.get_props		= am7930_get_props,
 	.trigger_output		= bba_trigger_output,	/* md */
 	.trigger_input		= bba_trigger_input,	/* md */
 	.get_locks		= bba_get_locks,
@@ -619,13 +618,6 @@ bba_intr(void *addr)
 }
 
 static int
-bba_get_props(void *addr)
-{
-
-	return AUDIO_PROP_MMAP | am7930_get_props(addr);
-}
-
-static int
 bba_query_format(void *addr, audio_format_query_t *afp)
 {
 

Reply via email to