Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys Pass mixer requests to the codec. It is the responsibili...



details:   https://anonhg.NetBSD.org/src/rev/1d9418442501
branches:  trunk
changeset: 322695:1d9418442501
user:      jmcneill <jmcneill%NetBSD.org@localhost>
date:      Sat May 12 23:51:06 2018 +0000

description:
Pass mixer requests to the codec. It is the responsibility of the codec
to decide whether or not to dispatch to an aux device.

diffstat:

 sys/arch/arm/sunxi/sun8i_codec.c |  40 ++++++++++++++++++++++++++++++++++++++--
 sys/dev/fdt/ausoc.c              |  13 +++++--------
 2 files changed, 43 insertions(+), 10 deletions(-)

diffs (118 lines):

diff -r 0768bdd4abfe -r 1d9418442501 sys/arch/arm/sunxi/sun8i_codec.c
--- a/sys/arch/arm/sunxi/sun8i_codec.c  Sat May 12 18:17:04 2018 +0000
+++ b/sys/arch/arm/sunxi/sun8i_codec.c  Sat May 12 23:51:06 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: sun8i_codec.c,v 1.3 2018/05/11 23:05:41 jmcneill Exp $ */
+/* $NetBSD: sun8i_codec.c,v 1.4 2018/05/12 23:51:06 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <jmcneill%invisible.ca@localhost>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sun8i_codec.c,v 1.3 2018/05/11 23:05:41 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sun8i_codec.c,v 1.4 2018/05/12 23:51:06 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -147,8 +147,44 @@
        return 0;
 }
 
+static int
+sun8i_codec_set_port(void *priv, mixer_ctrl_t *mc)
+{
+       struct sun8i_codec_softc * const sc = priv;
+
+       if (!sc->sc_codec_analog)
+               return ENXIO;
+
+       return audio_dai_set_port(sc->sc_codec_analog, mc);
+}
+
+static int
+sun8i_codec_get_port(void *priv, mixer_ctrl_t *mc)
+{
+       struct sun8i_codec_softc * const sc = priv;
+
+       if (!sc->sc_codec_analog)
+               return ENXIO;
+
+       return audio_dai_get_port(sc->sc_codec_analog, mc);
+}
+
+static int
+sun8i_codec_query_devinfo(void *priv, mixer_devinfo_t *di)
+{
+       struct sun8i_codec_softc * const sc = priv;
+
+       if (!sc->sc_codec_analog)
+               return ENXIO;
+
+       return audio_dai_query_devinfo(sc->sc_codec_analog, di);
+}
+
 static const struct audio_hw_if sun8i_codec_hw_if = {
        .set_params = sun8i_codec_set_params,
+       .set_port = sun8i_codec_set_port,
+       .get_port = sun8i_codec_get_port,
+       .query_devinfo = sun8i_codec_query_devinfo,
 };
 
 static audio_dai_tag_t
diff -r 0768bdd4abfe -r 1d9418442501 sys/dev/fdt/ausoc.c
--- a/sys/dev/fdt/ausoc.c       Sat May 12 18:17:04 2018 +0000
+++ b/sys/dev/fdt/ausoc.c       Sat May 12 23:51:06 2018 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: ausoc.c,v 1.2 2018/05/11 22:49:19 jmcneill Exp $ */
+/* $NetBSD: ausoc.c,v 1.3 2018/05/12 23:51:06 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <jmcneill%invisible.ca@localhost>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ausoc.c,v 1.2 2018/05/11 22:49:19 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ausoc.c,v 1.3 2018/05/12 23:51:06 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -44,9 +44,6 @@
 
 static const char *compatible[] = { "simple-audio-card", NULL };
 
-#define        AUSOC_MIXER_DAI(link)   \
-       ((link)->link_naux > 0 ? (link)->link_aux[0] : (link)->link_codec)
-
 struct ausoc_link {
        const char              *link_name;
 
@@ -148,7 +145,7 @@
 {
        struct ausoc_link * const link = priv;
 
-       return audio_dai_set_port(AUSOC_MIXER_DAI(link), mc);
+       return audio_dai_set_port(link->link_codec, mc);
 }
 
 static int
@@ -156,7 +153,7 @@
 {
        struct ausoc_link * const link = priv;
 
-       return audio_dai_get_port(AUSOC_MIXER_DAI(link), mc);
+       return audio_dai_get_port(link->link_codec, mc);
 }
 
 static int
@@ -164,7 +161,7 @@
 {
        struct ausoc_link * const link = priv;
 
-       return audio_dai_query_devinfo(AUSOC_MIXER_DAI(link), di);
+       return audio_dai_query_devinfo(link->link_codec, di);
 }
 
 static void *



Home | Main Index | Thread Index | Old Index