Source-Changes-HG archive

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

[src/trunk]: src/sys/dev/pci emuxki(4): place struct emuxki_softc into its ow...



details:   https://anonhg.NetBSD.org/src/rev/ab76c3056a7e
branches:  trunk
changeset: 369902:ab76c3056a7e
user:      khorben <khorben%NetBSD.org@localhost>
date:      Wed Sep 07 01:00:37 2022 +0000

description:
emuxki(4): place struct emuxki_softc into its own file

NFCI

diffstat:

 sys/dev/pci/emuxki.c    |  117 +-----------------------------------
 sys/dev/pci/emuxkivar.h |  153 ++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 156 insertions(+), 114 deletions(-)

diffs (truncated from 303 to 300 lines):

diff -r 9198057cf7bb -r ab76c3056a7e sys/dev/pci/emuxki.c
--- a/sys/dev/pci/emuxki.c      Wed Sep 07 00:44:07 2022 +0000
+++ b/sys/dev/pci/emuxki.c      Wed Sep 07 01:00:37 2022 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: emuxki.c,v 1.74 2022/09/07 00:44:07 khorben Exp $      */
+/*     $NetBSD: emuxki.c,v 1.75 2022/09/07 01:00:37 khorben 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.74 2022/09/07 00:44:07 khorben Exp $");
+__KERNEL_RCSID(0, "$NetBSD: emuxki.c,v 1.75 2022/09/07 01:00:37 khorben Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -54,16 +54,8 @@
 #include <sys/bus.h>
 #include <sys/intr.h>
 
-#include <dev/audio/audio_if.h>
-
-#include <dev/ic/ac97reg.h>
-#include <dev/ic/ac97var.h>
-
-#include <dev/pci/pcidevs.h>
-#include <dev/pci/pcireg.h>
-#include <dev/pci/pcivar.h>
-
 #include <dev/pci/emuxkireg.h>
+#include <dev/pci/emuxkivar.h>
 
 /* #define EMUXKI_DEBUG 1 */
 #ifdef EMUXKI_DEBUG
@@ -84,109 +76,6 @@
 #define EMU_PCI_CBIO           (0x10)
 #define EMU_SUBSYS_APS         (0x40011102)
 
-#define EMU_PTESIZE            (4096)
-#define EMU_MINPTE             (3)
-/*
- * Hardware limit of PTE is 4096 entry but it's too big for single voice.
- * Reasonable candidate is:
- *  48kHz * 2ch * 2byte * 1sec * 3buf/EMU_PTESIZE = 141
- * and then round it up to 2^n.
- */
-#define EMU_MAXPTE             (256)
-#define EMU_NUMCHAN            (64)
-
-/*
- * Internal recording DMA buffer
- */
-/* Recommend the same size as EMU_PTESIZE to be symmetrical for play/rec */
-#define EMU_REC_DMABLKSIZE     (4096)
-/* must be EMU_REC_DMABLKSIZE * 2 */
-#define EMU_REC_DMASIZE                (8192)
-/* must be EMU_RECBS_BUFSIZE_(EMU_REC_DMASIZE) */
-#define EMU_REC_BUFSIZE_RECBS  EMU_RECBS_BUFSIZE_8192
-
-/*
- * DMA memory management
- */
-
-#define EMU_DMA_ALIGN          (4096)
-#define EMU_DMA_NSEGS          (1)
-
-struct dmamem {
-       bus_dma_tag_t           dmat;
-       bus_size_t              size;
-       bus_size_t              align;
-       bus_size_t              bound;
-       bus_dma_segment_t       *segs;
-       int                     nsegs;
-       int                     rsegs;
-       void *                  kaddr;
-       bus_dmamap_t            map;
-};
-
-#define KERNADDR(ptr)          ((void *)((ptr)->kaddr))
-/*
- * (ptr)->segs[] is CPU's PA translated by CPU's MMU.
- * (ptr)->map->dm_segs[] is PCI device's PA translated by PCI's MMU.
- */
-#define DMASEGADDR(ptr, segno) ((ptr)->map->dm_segs[segno].ds_addr)
-#define DMAADDR(ptr)           DMASEGADDR(ptr, 0)
-#define DMASIZE(ptr)           ((ptr)->size)
-
-struct emuxki_softc {
-       device_t                sc_dev;
-       device_t                sc_audev;
-       enum {
-               EMUXKI_SBLIVE = 0x00,
-               EMUXKI_AUDIGY = 0x01,
-               EMUXKI_AUDIGY2 = 0x02,
-               EMUXKI_AUDIGY2_VALUE = 0x04,
-               EMUXKI_LIVE_5_1 = 0x08,
-               EMUXKI_APS = 0x10
-       } sc_type;
-       audio_device_t          sc_audv;        /* for GETDEV */
-
-       /* Autoconfig parameters */
-       bus_space_tag_t         sc_iot;
-       bus_space_handle_t      sc_ioh;
-       bus_addr_t              sc_iob;
-       bus_size_t              sc_ios;
-       pci_chipset_tag_t       sc_pc;          /* PCI tag */
-       bus_dma_tag_t           sc_dmat;
-       void                    *sc_ih;         /* interrupt handler */
-       kmutex_t                sc_intr_lock;
-       kmutex_t                sc_lock;
-       kmutex_t                sc_index_lock;
-
-       /* register parameters */
-       struct dmamem           *ptb;           /* page table */
-
-       struct dmamem           *pmem;          /* play memory */
-       void                    (*pintr)(void *);
-       void                    *pintrarg;
-       audio_params_t          play;
-       uint32_t                pframesize;
-       uint32_t                pblksize;
-       uint32_t                plength;
-       uint32_t                poffset;
-
-       struct dmamem           *rmem;          /* rec internal memory */
-       void                    (*rintr)(void *);
-       void                    *rintrarg;
-       audio_params_t          rec;
-       void                    *rptr;          /* rec MI ptr */
-       int                     rcurrent;       /* rec software trans count */
-       int                     rframesize;
-       int                     rblksize;
-       int                     rlength;
-       int                     roffset;
-
-       /* others */
-
-       struct ac97_host_if     hostif;
-       struct ac97_codec_if    *codecif;
-};
-
 /* blackmagic */
 #define X1(x)          ((sc->sc_type & EMUXKI_AUDIGY) ? EMU_A_##x : EMU_##x)
 #define X2(x, y)       ((sc->sc_type & EMUXKI_AUDIGY) \
diff -r 9198057cf7bb -r ab76c3056a7e sys/dev/pci/emuxkivar.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/dev/pci/emuxkivar.h   Wed Sep 07 01:00:37 2022 +0000
@@ -0,0 +1,153 @@
+/*     $NetBSD: emuxkivar.h,v 1.15 2022/09/07 01:00:37 khorben Exp $   */
+
+/*-
+ * Copyright (c) 2001, 2007 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Yannick Montulet, and by Andrew Doran.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _DEV_PCI_EMUXKIVAR_H_
+#define _DEV_PCI_EMUXKIVAR_H_
+
+#include <sys/device.h>
+#include <sys/audioio.h>
+#include <sys/mutex.h>
+
+#include <sys/bus.h>
+
+#include <dev/audio/audio_if.h>
+
+#include <dev/ic/ac97reg.h>
+#include <dev/ic/ac97var.h>
+
+#include <dev/pci/pcidevs.h>
+#include <dev/pci/pcireg.h>
+#include <dev/pci/pcivar.h>
+
+#define EMU_PTESIZE            (4096)
+#define EMU_MINPTE             (3)
+/*
+ * Hardware limit of PTE is 4096 entry but it's too big for single voice.
+ * Reasonable candidate is:
+ *  48kHz * 2ch * 2byte * 1sec * 3buf/EMU_PTESIZE = 141
+ * and then round it up to 2^n.
+ */
+#define EMU_MAXPTE             (256)
+#define EMU_NUMCHAN            (64)
+
+/*
+ * Internal recording DMA buffer
+ */
+/* Recommend the same size as EMU_PTESIZE to be symmetrical for play/rec */
+#define EMU_REC_DMABLKSIZE     (4096)
+/* must be EMU_REC_DMABLKSIZE * 2 */
+#define EMU_REC_DMASIZE                (8192)
+/* must be EMU_RECBS_BUFSIZE_(EMU_REC_DMASIZE) */
+#define EMU_REC_BUFSIZE_RECBS  EMU_RECBS_BUFSIZE_8192
+
+/*
+ * DMA memory management
+ */
+
+#define EMU_DMA_ALIGN          (4096)
+#define EMU_DMA_NSEGS          (1)
+
+struct dmamem {
+       bus_dma_tag_t           dmat;
+       bus_size_t              size;
+       bus_size_t              align;
+       bus_size_t              bound;
+       bus_dma_segment_t       *segs;
+       int                     nsegs;
+       int                     rsegs;
+       void *                  kaddr;
+       bus_dmamap_t            map;
+};
+
+#define KERNADDR(ptr)          ((void *)((ptr)->kaddr))
+/*
+ * (ptr)->segs[] is CPU's PA translated by CPU's MMU.
+ * (ptr)->map->dm_segs[] is PCI device's PA translated by PCI's MMU.
+ */
+#define DMASEGADDR(ptr, segno) ((ptr)->map->dm_segs[segno].ds_addr)
+#define DMAADDR(ptr)           DMASEGADDR(ptr, 0)
+#define DMASIZE(ptr)           ((ptr)->size)
+
+struct emuxki_softc {
+       device_t                sc_dev;
+       device_t                sc_audev;
+       enum {
+               EMUXKI_SBLIVE = 0x00,
+               EMUXKI_AUDIGY = 0x01,
+               EMUXKI_AUDIGY2 = 0x02,
+               EMUXKI_AUDIGY2_VALUE = 0x04,
+               EMUXKI_LIVE_5_1 = 0x08,
+               EMUXKI_APS = 0x10
+       } sc_type;
+       audio_device_t          sc_audv;        /* for GETDEV */
+
+       /* Autoconfig parameters */
+       bus_space_tag_t         sc_iot;
+       bus_space_handle_t      sc_ioh;
+       bus_addr_t              sc_iob;
+       bus_size_t              sc_ios;
+       pci_chipset_tag_t       sc_pc;          /* PCI tag */
+       bus_dma_tag_t           sc_dmat;
+       void                    *sc_ih;         /* interrupt handler */
+       kmutex_t                sc_intr_lock;
+       kmutex_t                sc_lock;
+       kmutex_t                sc_index_lock;
+
+       /* register parameters */
+       struct dmamem           *ptb;           /* page table */
+
+       struct dmamem           *pmem;          /* play memory */
+       void                    (*pintr)(void *);
+       void                    *pintrarg;
+       audio_params_t          play;
+       uint32_t                pframesize;
+       uint32_t                pblksize;
+       uint32_t                plength;
+       uint32_t                poffset;
+
+       struct dmamem           *rmem;          /* rec internal memory */
+       void                    (*rintr)(void *);
+       void                    *rintrarg;
+       audio_params_t          rec;
+       void                    *rptr;          /* rec MI ptr */
+       int                     rcurrent;       /* rec software trans count */
+       int                     rframesize;
+       int                     rblksize;
+       int                     rlength;
+       int                     roffset;
+
+       /* others */
+
+       struct ac97_host_if     hostif;
+       struct ac97_codec_if    *codecif;



Home | Main Index | Thread Index | Old Index