[Pkg-alsa-devel] [Debian ALSA CVS] debian/alsa-driver (58 files)
David B Harris
dbharris-guest@haydn.debian.org
Tue, 13 Apr 2004 13:39:26 -0600
Date: Tuesday, April 13, 2004 @ 13:39:26
Author: dbharris-guest
Path: /cvsroot/pkg-alsa/debian/alsa-driver
Modified: Makefile acore/pcm_lib.c alsa-kernel/core/ioctl32/timer32.c
alsa-kernel/core/memalloc.c alsa-kernel/include/ac97_codec.h
alsa-kernel/isa/es18xx.c
alsa-kernel/isa/opti9xx/opti92x-ad1848.c
alsa-kernel/isa/sb/sb16.c alsa-kernel/pci/emu10k1/emu10k1_main.c
alsa-kernel/pci/emu10k1/emufx.c alsa-kernel/pci/emu10k1/emupcm.c
configure configure.in debian/changelog include/adriver.h
include/config1.h.in isa/msnd/msnd_pinnacle.c
Removed: acore/pcm_lib.patch alsa-kernel/scripts/Modules.dep
alsa-kernel/scripts/mod-deps.c alsa-kernel/scripts/mod-deps.h
alsa-kernel/scripts/patch-2.5 pci/au88x0/au8810.h
pci/au88x0/au8810_core.c pci/au88x0/au8810_eq.c
pci/au88x0/au8810_game.c pci/au88x0/au8810_mixer.c
pci/au88x0/au8810_mpu401.c pci/au88x0/au8810_pcm.c
pci/au88x0/au8820.h pci/au88x0/au8820_core.c
pci/au88x0/au8820_game.c pci/au88x0/au8820_mixer.c
pci/au88x0/au8820_mpu401.c pci/au88x0/au8820_pcm.c
pci/au88x0/au8820_synth.c pci/au88x0/au8830.h
pci/au88x0/au8830_core.c pci/au88x0/au8830_eq.c
pci/au88x0/au8830_game.c pci/au88x0/au8830_mixer.c
pci/au88x0/au8830_mpu401.c pci/au88x0/au8830_pcm.c
pci/au88x0/au8830_synth.c pci/au88x0/au88x0.c
pci/au88x0/au88x0.h pci/au88x0/au88x0_core.c
pci/au88x0/au88x0_eq.c pci/au88x0/au88x0_eq.h
pci/au88x0/au88x0_eqdata.c pci/au88x0/au88x0_game.c
pci/au88x0/au88x0_mixer.c pci/au88x0/au88x0_mpu401.c
pci/au88x0/au88x0_pcm.c pci/au88x0/au88x0_synth.c
pci/au88x0/migrate usb/usx2y/Kconfig utils/Modules.dep
New upstream source
------------------------------------------+
Makefile | 36
acore/pcm_lib.c | 8
acore/pcm_lib.patch | 16
alsa-kernel/core/ioctl32/timer32.c | 10
alsa-kernel/core/memalloc.c | 849 ++----
alsa-kernel/include/ac97_codec.h | 9
alsa-kernel/isa/es18xx.c | 17
alsa-kernel/isa/opti9xx/opti92x-ad1848.c | 26
alsa-kernel/isa/sb/sb16.c | 11
alsa-kernel/pci/emu10k1/emu10k1_main.c | 31
alsa-kernel/pci/emu10k1/emufx.c | 31
alsa-kernel/pci/emu10k1/emupcm.c | 11
alsa-kernel/scripts/Modules.dep | 231 -
alsa-kernel/scripts/mod-deps.c | 1241 ---------
alsa-kernel/scripts/mod-deps.h | 90
alsa-kernel/scripts/patch-2.5 | 222 -
configure | 3992 +++++++++++++++++++++++------
configure.in | 51
debian/changelog | 5
include/adriver.h | 55
include/config1.h.in | 131
isa/msnd/msnd_pinnacle.c | 3
pci/au88x0/au8810.h | 222 -
pci/au88x0/au8810_core.c | 3
pci/au88x0/au8810_eq.c | 3
pci/au88x0/au8810_game.c | 3
pci/au88x0/au8810_mixer.c | 3
pci/au88x0/au8810_mpu401.c | 3
pci/au88x0/au8810_pcm.c | 3
pci/au88x0/au8820.h | 227 -
pci/au88x0/au8820_core.c | 3
pci/au88x0/au8820_game.c | 3
pci/au88x0/au8820_mixer.c | 3
pci/au88x0/au8820_mpu401.c | 3
pci/au88x0/au8820_pcm.c | 3
pci/au88x0/au8820_synth.c | 3
pci/au88x0/au8830.h | 236 -
pci/au88x0/au8830_core.c | 3
pci/au88x0/au8830_eq.c | 3
pci/au88x0/au8830_game.c | 3
pci/au88x0/au8830_mixer.c | 3
pci/au88x0/au8830_mpu401.c | 3
pci/au88x0/au8830_pcm.c | 3
pci/au88x0/au8830_synth.c | 3
pci/au88x0/au88x0.c | 403 --
pci/au88x0/au88x0.h | 211 -
pci/au88x0/au88x0_core.c | 2342 -----------------
pci/au88x0/au88x0_eq.c | 833 ------
pci/au88x0/au88x0_eq.h | 45
pci/au88x0/au88x0_eqdata.c | 111
pci/au88x0/au88x0_game.c | 131
pci/au88x0/au88x0_mixer.c | 28
pci/au88x0/au88x0_mpu401.c | 98
pci/au88x0/au88x0_pcm.c | 417 ---
pci/au88x0/au88x0_synth.c | 2256 ----------------
pci/au88x0/migrate | 20
usb/usx2y/Kconfig | 6
utils/Modules.dep | 28
58 files changed, 3922 insertions(+), 10825 deletions(-)
Index: debian/alsa-driver/Makefile
diff -u debian/alsa-driver/Makefile:1.13 debian/alsa-driver/Makefile:1.14
--- debian/alsa-driver/Makefile:1.13 Tue Feb 3 11:36:40 2004
+++ debian/alsa-driver/Makefile Tue Apr 13 13:39:25 2004
@@ -7,6 +7,7 @@
ifeq (Makefile.conf,$(wildcard Makefile.conf))
include Makefile.conf
+include toplevel.config
else
.PHONY: dummy1
dummy1:
@@ -14,6 +15,7 @@
@echo
@echo "Please, run the configure script as first..."
@echo
+MAINSRCDIR := $(shell /bin/pwd)
endif
SND_TOPDIR = $(MAINSRCDIR)
@@ -55,6 +57,8 @@
endif
CSUBDIRS += include test utils
+KCONFIG_FILES = $(shell find $(SND_TOPDIR) -name Kconfig) $(shell find $(SND_TOPDIR)/alsa-kernel/ -name Kconfig)
+
.PHONY: all
all: compile
@@ -69,11 +73,11 @@
fi
cp -auvf include/version.h include/sound/version.h
-utils/mod-deps: alsa-kernel/scripts/mod-deps.c alsa-kernel/scripts/mod-deps.h
- gcc -Ialsa-kernel/scripts alsa-kernel/scripts/mod-deps.c -o utils/mod-deps
+utils/mod-deps: utils/mod-deps.c
+ gcc utils/mod-deps.c -o utils/mod-deps
-toplevel.config.in: alsa-kernel/Config.in utils/mod-deps alsa-kernel/scripts/Modules.dep utils/Modules.dep
- cat alsa-kernel/scripts/Modules.dep utils/Modules.dep | utils/mod-deps --makeconf > toplevel.config.in
+toplevel.config.in: $(KCONFIG_FILES) alsa-kernel/sound_core.c utils/mod-deps
+ utils/mod-deps --basedir $(SND_TOPDIR)/alsa-kernel --hiddendir $(SND_TOPDIR) --makeconf > toplevel.config.in
acinclude.m4: alsa-kernel/Config.in utils/mod-deps alsa-kernel/scripts/Modules.dep utils/Modules.dep
cat alsa-kernel/scripts/Modules.dep utils/Modules.dep | utils/mod-deps --acinclude > acinclude.m4
@@ -152,13 +156,14 @@
.PHONY: install-scripts
install-scripts:
- if [ -d $(DESTDIR)/sbin/init.d ]; then \
- install -m 755 -g $(IGROUP) -o $(IUSER) utils/alsasound $(DESTDIR)/sbin/init.d/alsasound; \
- elif [ -d $(DESTDIR)/etc/rc.d/init.d ]; then \
- install -m 755 -g $(IGROUP) -o $(IUSER) utils/alsasound $(DESTDIR)/etc/rc.d/init.d/alsasound; \
- elif [ -d $(DESTDIR)/etc/init.d ]; then \
- install -m 755 -g $(IGROUP) -o $(IUSER) utils/alsasound $(DESTDIR)/etc/init.d/alsasound; \
- fi
+ @for d in /sbin/init.d /etc/rc.d/init.d /etc/init.d; do \
+ if [ -d $(DESTDIR)$$d ]; then \
+ if [ -f $(DESTDIR)$$d/alsasound ]; then \
+ cmp -s utils/alsasound $(DESTDIR)$$d/alsasound || cp $(DESTDIR)$$d/alsasound $(DESTDIR)$$d/alsasound.old; \
+ fi; \
+ install -m 755 -g $(IGROUP) -o $(IUSER) utils/alsasound $(DESTDIR)$$d/alsasound; \
+ break; \
+ fi; done
.PHONY: check-snd-prefix
check-snd-prefix:
@@ -231,7 +236,14 @@
.PHONY: uninstall
uninstall:
- rm -rf $(DESTDIR)$(prefix)/include/sound
+ -rm -rf $(DESTDIR)$(prefix)/include/sound
+ifeq ($(moddir_tree),y)
+ { \
+ for i in core $(SUBDIRS) ; do \
+ rm -rf $(DESTDIR)$(moddir)/$$i ; \
+ done ; \
+ }
+else
rm -f $(DESTDIR)$(moddir)/snd*.o $(DESTDIR)$(moddir)/persist.o $(DESTDIR)$(moddir)/isapnp.o
rm -f $(DESTDIR)/sbin/init.d/alsasound
rm -f $(DESTDIR)/etc/rc.d/init.d/alsasound
Index: debian/alsa-driver/acore/pcm_lib.c
diff -u /dev/null debian/alsa-driver/acore/pcm_lib.c:1.3
--- /dev/null Tue Apr 13 13:39:27 2004
+++ debian/alsa-driver/acore/pcm_lib.c Tue Apr 13 13:39:25 2004
@@ -0,0 +1,8 @@
+#define __NO_VERSION__
+#include <sound/driver.h>
+
+#ifndef CONFIG_HAVE_DUMP_STACK
+#define dump_stack()
+#endif
+
+#include "../alsa-kernel/core/pcm_lib.c"
Index: debian/alsa-driver/acore/pcm_lib.patch
diff -u debian/alsa-driver/acore/pcm_lib.patch:1.1.1.1 debian/alsa-driver/acore/pcm_lib.patch:removed
--- debian/alsa-driver/acore/pcm_lib.patch:1.1.1.1 Tue Feb 3 05:27:30 2004
+++ debian/alsa-driver/acore/pcm_lib.patch Tue Apr 13 13:39:27 2004
@@ -1,17 +0,0 @@
---- ../alsa-kernel/core/pcm_lib.c 2004-01-26 17:40:54.000000000 +0100
-+++ pcm_lib.c 2004-02-03 13:20:30.000000000 +0100
-@@ -1,3 +1,4 @@
-+#define __NO_VERSION__
- /*
- * Digital Audio (PCM) abstract layer
- * Copyright (c) by Jaroslav Kysela <perex@suse.cz>
-@@ -164,7 +165,9 @@
- substream->pcm->card->number,
- substream->pcm->device,
- substream->stream ? 'c' : 'p');
-+#ifdef CONFIG_SND_HAVE_DUMP_STACK
- dump_stack();
-+#endif
- }
- #endif
- return -EPIPE;
Index: debian/alsa-driver/alsa-kernel/core/ioctl32/timer32.c
diff -u debian/alsa-driver/alsa-kernel/core/ioctl32/timer32.c:1.6 debian/alsa-driver/alsa-kernel/core/ioctl32/timer32.c:1.7
--- debian/alsa-driver/alsa-kernel/core/ioctl32/timer32.c:1.6 Sat Jul 19 03:41:41 2003
+++ debian/alsa-driver/alsa-kernel/core/ioctl32/timer32.c Tue Apr 13 13:39:25 2004
@@ -88,8 +88,18 @@
{ SNDRV_TIMER_IOCTL_INFO32, AP(timer_info) },
MAP_COMPAT(SNDRV_TIMER_IOCTL_PARAMS),
{ SNDRV_TIMER_IOCTL_STATUS32, AP(timer_status) },
+#if 0
+ /* ** FIXME **
+ * The following four entries are disabled because they conflict
+ * with the TCOC* definitions.
+ * Unfortunately, the current ioctl32 wrapper uses a single
+ * hash table for all devices. Once when the wrapper is fixed
+ * with the table based on devices, they'll be back again.
+ */
MAP_COMPAT(SNDRV_TIMER_IOCTL_START),
MAP_COMPAT(SNDRV_TIMER_IOCTL_STOP),
MAP_COMPAT(SNDRV_TIMER_IOCTL_CONTINUE),
+ MAP_COMPAT(SNDRV_TIMER_IOCTL_PAUSE),
+#endif
{ 0 },
};
Index: debian/alsa-driver/alsa-kernel/core/memalloc.c
diff -u debian/alsa-driver/alsa-kernel/core/memalloc.c:1.13 debian/alsa-driver/alsa-kernel/core/memalloc.c:1.14
--- debian/alsa-driver/alsa-kernel/core/memalloc.c:1.13 Tue Feb 3 11:36:40 2004
+++ debian/alsa-driver/alsa-kernel/core/memalloc.c Tue Apr 13 13:39:25 2004
@@ -25,10 +25,15 @@
#include <linux/module.h>
#include <linux/proc_fs.h>
#include <linux/init.h>
+#include <linux/pci.h>
#include <linux/slab.h>
#include <linux/mm.h>
+#include <linux/dma-mapping.h>
#include <asm/semaphore.h>
#include <sound/memalloc.h>
+#ifdef CONFIG_SBUS
+#include <asm/sbus.h>
+#endif
MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>, Jaroslav Kysela <perex@suse.cz>");
@@ -43,6 +48,13 @@
MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
MODULE_PARM_DESC(enable, "Enable cards to allocate buffers.");
+/*
+ */
+
+void *snd_malloc_sgbuf_pages(const struct snd_dma_device *dev,
+ size_t size, struct snd_dma_buffer *dmab,
+ size_t *res_size);
+int snd_free_sgbuf_pages(struct snd_dma_buffer *dmab);
/*
*/
@@ -73,14 +85,40 @@
#define snd_assert(expr, args...) /**/
#endif
-#ifdef CONFIG_PCI
+/*
+ * Hacks
+ */
+
+static void *snd_dma_alloc_coherent1(struct device *dev, size_t size,
+ dma_addr_t *dma_handle, int flags)
+{
+ if (dev)
+ return dma_alloc_coherent(dev, size, dma_handle, flags);
+ else /* FIXME: dma_alloc_coherent does't always accept dev=NULL */
+ return pci_alloc_consistent(NULL, size, dma_handle);
+}
+
+static void snd_dma_free_coherent1(struct device *dev, size_t size, void *dma_addr,
+ dma_addr_t dma_handle)
+{
+ if (dev)
+ return dma_free_coherent(dev, size, dma_addr, dma_handle);
+ else
+ return pci_free_consistent(NULL, size, dma_addr, dma_handle);
+}
+
+#undef dma_alloc_coherent
+#define dma_alloc_coherent snd_dma_alloc_coherent1
+#undef dma_free_coherent
+#define dma_free_coherent snd_dma_free_coherent1
+
+
#if defined(__i386__) || defined(__ppc__) || defined(__x86_64__)
-#define HACK_PCI_ALLOC_CONSISTENT
/*
- * A hack to allocate large buffers via pci_alloc_consistent()
+ * A hack to allocate large buffers via dma_alloc_coherent()
*
- * since pci_alloc_consistent always tries GFP_DMA when the requested
+ * since dma_alloc_coherent always tries GFP_DMA when the requested
* pci memory region is below 32bit, it happens quite often that even
* 2 order of pages cannot be allocated.
*
@@ -88,46 +126,248 @@
* allocation will be done without GFP_DMA. if the area doesn't match
* with the requested region, then realloate with the original dma_mask
* again.
+ *
+ * Really, we want to move this type of thing into dma_alloc_coherent()
+ * so dma_mask doesn't have to be messed with.
*/
-static void *snd_pci_hack_alloc_consistent(struct pci_dev *hwdev, size_t size,
- dma_addr_t *dma_handle)
+static void *snd_dma_hack_alloc_coherent(struct device *dev, size_t size,
+ dma_addr_t *dma_handle, int flags)
{
void *ret;
- u64 dma_mask, cdma_mask;
- unsigned long mask;
+ u64 dma_mask;
- if (hwdev == NULL)
- return pci_alloc_consistent(hwdev, size, dma_handle);
- dma_mask = hwdev->dma_mask;
- cdma_mask = hwdev->consistent_dma_mask;
- mask = (unsigned long)dma_mask && (unsigned long)cdma_mask;
- hwdev->dma_mask = 0xffffffff; /* do without masking */
- hwdev->consistent_dma_mask = 0xffffffff; /* do without masking */
- ret = pci_alloc_consistent(hwdev, size, dma_handle);
- hwdev->dma_mask = dma_mask; /* restore */
- hwdev->consistent_dma_mask = cdma_mask; /* restore */
+ if (dev == NULL || !dev->dma_mask)
+ return dma_alloc_coherent(dev, size, dma_handle, flags);
+ dma_mask = *dev->dma_mask;
+ *dev->dma_mask = 0xffffffff; /* do without masking */
+ ret = dma_alloc_coherent(dev, size, dma_handle, flags);
+ *dev->dma_mask = dma_mask; /* restore */
if (ret) {
/* obtained address is out of range? */
- if (((unsigned long)*dma_handle + size - 1) & ~mask) {
+ if (((unsigned long)*dma_handle + size - 1) & ~dma_mask) {
/* reallocate with the proper mask */
- pci_free_consistent(hwdev, size, ret, *dma_handle);
- ret = pci_alloc_consistent(hwdev, size, dma_handle);
+ dma_free_coherent(dev, size, ret, *dma_handle);
+ ret = dma_alloc_coherent(dev, size, dma_handle, flags);
}
} else {
/* wish to success now with the proper mask... */
- if (mask != 0xffffffffUL)
- ret = pci_alloc_consistent(hwdev, size, dma_handle);
+ if (dma_mask != 0xffffffffUL)
+ ret = dma_alloc_coherent(dev, size, dma_handle, flags);
}
return ret;
}
-/* redefine pci_alloc_consistent for some architectures */
-#undef pci_alloc_consistent
-#define pci_alloc_consistent snd_pci_hack_alloc_consistent
+/* redefine dma_alloc_coherent for some architectures */
+#undef dma_alloc_coherent
+#define dma_alloc_coherent snd_dma_hack_alloc_coherent
#endif /* arch */
-#endif /* CONFIG_PCI */
+
+/*
+ *
+ * Generic memory allocators
+ *
+ */
+
+static long snd_allocated_pages; /* holding the number of allocated pages */
+
+static void mark_pages(void *res, int order)
+{
+ struct page *page = virt_to_page(res);
+ struct page *last_page = page + (1 << order);
+ while (page < last_page)
+ SetPageReserved(page++);
+ snd_allocated_pages += 1 << order;
+}
+
+static void unmark_pages(void *res, int order)
+{
+ struct page *page = virt_to_page(res);
+ struct page *last_page = page + (1 << order);
+ while (page < last_page)
+ ClearPageReserved(page++);
+ snd_allocated_pages -= 1 << order;
+}
+
+/**
+ * snd_malloc_pages - allocate pages with the given size
+ * @size: the size to allocate in bytes
+ * @gfp_flags: the allocation conditions, GFP_XXX
+ *
+ * Allocates the physically contiguous pages with the given size.
+ *
+ * Returns the pointer of the buffer, or NULL if no enoguh memory.
+ */
+void *snd_malloc_pages(size_t size, unsigned int gfp_flags)
+{
+ int pg;
+ void *res;
+
+ snd_assert(size > 0, return NULL);
+ snd_assert(gfp_flags != 0, return NULL);
+ for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
+ if ((res = (void *) __get_free_pages(gfp_flags, pg)) != NULL) {
+ mark_pages(res, pg);
+ }
+ return res;
+}
+
+/**
+ * snd_malloc_pages_fallback - allocate pages with the given size with fallback
+ * @size: the requested size to allocate in bytes
+ * @gfp_flags: the allocation conditions, GFP_XXX
+ * @res_size: the pointer to store the size of buffer actually allocated
+ *
+ * Allocates the physically contiguous pages with the given request
+ * size. When no space is left, this function reduces the size and
+ * tries to allocate again. The size actually allocated is stored in
+ * res_size argument.
+ *
+ * Returns the pointer of the buffer, or NULL if no enoguh memory.
+ */
+void *snd_malloc_pages_fallback(size_t size, unsigned int gfp_flags, size_t *res_size)
+{
+ void *res;
+
+ snd_assert(size > 0, return NULL);
+ snd_assert(res_size != NULL, return NULL);
+ do {
+ if ((res = snd_malloc_pages(size, gfp_flags)) != NULL) {
+ *res_size = size;
+ return res;
+ }
+ size >>= 1;
+ } while (size >= PAGE_SIZE);
+ return NULL;
+}
+
+/**
+ * snd_free_pages - release the pages
+ * @ptr: the buffer pointer to release
+ * @size: the allocated buffer size
+ *
+ * Releases the buffer allocated via snd_malloc_pages().
+ */
+void snd_free_pages(void *ptr, size_t size)
+{
+ int pg;
+
+ if (ptr == NULL)
+ return;
+ for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
+ unmark_pages(ptr, pg);
+ free_pages((unsigned long) ptr, pg);
+}
+
+/*
+ *
+ * Bus-specific memory allocators
+ *
+ */
+
+static void *snd_malloc_dev_pages(struct device *dev, size_t size, dma_addr_t *dma)
+{
+ int pg;
+ void *res;
+ unsigned int gfp_flags;
+
+ snd_assert(size > 0, return NULL);
+ snd_assert(dma != NULL, return NULL);
+ pg = get_order(size);
+ gfp_flags = GFP_KERNEL;
+ if (pg > 0)
+ gfp_flags |= __GFP_NOWARN;
+ res = dma_alloc_coherent(dev, PAGE_SIZE << pg, dma, gfp_flags);
+ if (res != NULL)
+ mark_pages(res, pg);
+
+ return res;
+}
+
+static void *snd_malloc_dev_pages_fallback(struct device *dev, size_t size,
+ dma_addr_t *dma, size_t *res_size)
+{
+ void *res;
+
+ snd_assert(res_size != NULL, return NULL);
+ do {
+ if ((res = snd_malloc_dev_pages(dev, size, dma)) != NULL) {
+ *res_size = size;
+ return res;
+ }
+ size >>= 1;
+ } while (size >= PAGE_SIZE);
+ return NULL;
+}
+
+static void snd_free_dev_pages(struct device *dev, size_t size, void *ptr,
+ dma_addr_t dma)
+{
+ int pg;
+
+ if (ptr == NULL)
+ return;
+ pg = get_order(size);
+ unmark_pages(ptr, pg);
+ dma_free_coherent(dev, PAGE_SIZE << pg, ptr, dma);
+}
+
+#ifdef CONFIG_SBUS
+
+static void *snd_malloc_sbus_pages(struct device *dev, size_t size,
+ dma_addr_t *dma_addr)
+{
+ struct sbus_dev *sdev = (struct sbus_dev *)dev;
+ int pg;
+ void *res;
+
+ snd_assert(size > 0, return NULL);
+ snd_assert(dma_addr != NULL, return NULL);
+ for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
+ res = sbus_alloc_consistent(sdev, PAGE_SIZE * (1 << pg), dma_addr);
+ if (res != NULL) {
+ mark_pages(res, pg);
+ }
+ return res;
+}
+
+static void *snd_malloc_sbus_pages_fallback(struct device *dev, size_t size,
+ dma_addr_t *dma_addr, size_t *res_size)
+{
+ void *res;
+
+ snd_assert(res_size != NULL, return NULL);
+ do {
+ if ((res = snd_malloc_sbus_pages(dev, size, dma_addr)) != NULL) {
+ *res_size = size;
+ return res;
+ }
+ size >>= 1;
+ } while (size >= PAGE_SIZE);
+ return NULL;
+}
+
+static void snd_free_sbus_pages(struct device *dev, size_t size,
+ void *ptr, dma_addr_t dma_addr)
+{
+ struct sbus_dev *sdev = (struct sbus_dev *)dev;
+ int pg;
+
+ if (ptr == NULL)
+ return;
+ for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
+ unmark_pages(ptr, pg);
+ sbus_free_consistent(sdev, PAGE_SIZE * (1 << pg), ptr, dma_addr);
+}
+
+#endif /* CONFIG_SBUS */
+
+/*
+ *
+ * ALSA generic memory management
+ *
+ */
/*
@@ -142,23 +382,7 @@
if (! allow_unused || (a->id != SNDRV_DMA_DEVICE_UNUSED && b->id != SNDRV_DMA_DEVICE_UNUSED))
return 0;
}
- switch (a->type) {
- case SNDRV_DMA_TYPE_CONTINUOUS:
-#ifdef CONFIG_ISA
- case SNDRV_DMA_TYPE_ISA:
-#endif
- return a->dev.flags == b->dev.flags;
-#ifdef CONFIG_PCI
- case SNDRV_DMA_TYPE_PCI:
- case SNDRV_DMA_TYPE_PCI_SG:
- return a->dev.pci == b->dev.pci;
-#endif
-#ifdef CONFIG_SBUS
- case SNDRV_DMA_TYPE_SBUS:
- return a->dev.sbus == b->dev.sbus;
-#endif
- }
- return 0;
+ return a->dev == b->dev;
}
/**
@@ -183,27 +407,70 @@
dmab->bytes = 0;
switch (dev->type) {
case SNDRV_DMA_TYPE_CONTINUOUS:
- dmab->area = snd_malloc_pages(size, dev->dev.flags);
+ dmab->area = snd_malloc_pages(size, (unsigned long)dev->dev);
dmab->addr = 0;
break;
-#ifdef CONFIG_ISA
- case SNDRV_DMA_TYPE_ISA:
- dmab->area = snd_malloc_isa_pages(size, &dmab->addr);
+#ifdef CONFIG_SBUS
+ case SNDRV_DMA_TYPE_SBUS:
+ dmab->area = snd_malloc_sbus_pages(dev->dev, size, &dmab->addr);
break;
#endif
-#ifdef CONFIG_PCI
- case SNDRV_DMA_TYPE_PCI:
- dmab->area = snd_malloc_pci_pages(dev->dev.pci, size, &dmab->addr);
+ case SNDRV_DMA_TYPE_DEV:
+ dmab->area = snd_malloc_dev_pages(dev->dev, size, &dmab->addr);
break;
- case SNDRV_DMA_TYPE_PCI_SG:
- snd_malloc_sgbuf_pages(dev->dev.pci, size, dmab);
+ case SNDRV_DMA_TYPE_DEV_SG:
+ snd_malloc_sgbuf_pages(dev, size, dmab, NULL);
+ break;
+ default:
+ printk(KERN_ERR "snd-malloc: invalid device type %d\n", dev->type);
+ dmab->area = NULL;
+ dmab->addr = 0;
+ return -ENXIO;
+ }
+ if (! dmab->area)
+ return -ENOMEM;
+ dmab->bytes = size;
+ return 0;
+}
+
+/**
+ * snd_dma_alloc_pages_fallback - allocate the buffer area according to the given type with fallback
+ * @dev: the buffer device info
+ * @size: the buffer size to allocate
+ * @dmab: buffer allocation record to store the allocated data
+ *
+ * Calls the memory-allocator function for the corresponding
+ * buffer type. When no space is left, this function reduces the size and
+ * tries to allocate again. The size actually allocated is stored in
+ * res_size argument.
+ *
+ * Returns zero if the buffer with the given size is allocated successfuly,
+ * other a negative value at error.
+ */
+int snd_dma_alloc_pages_fallback(const struct snd_dma_device *dev, size_t size,
+ struct snd_dma_buffer *dmab)
+{
+ snd_assert(dev != NULL, return -ENXIO);
+ snd_assert(size > 0, return -ENXIO);
+ snd_assert(dmab != NULL, return -ENXIO);
+
+ dmab->bytes = 0;
+ switch (dev->type) {
+ case SNDRV_DMA_TYPE_CONTINUOUS:
+ dmab->area = snd_malloc_pages_fallback(size, (unsigned long)dev->dev, &dmab->bytes);
+ dmab->addr = 0;
break;
-#endif
#ifdef CONFIG_SBUS
case SNDRV_DMA_TYPE_SBUS:
- dmab->area = snd_malloc_sbus_pages(dev->dev.sbus, size, &dmab->addr);
+ dmab->area = snd_malloc_sbus_pages_fallback(dev->dev, size, &dmab->addr, &dmab->bytes);
break;
#endif
+ case SNDRV_DMA_TYPE_DEV:
+ dmab->area = snd_malloc_dev_pages_fallback(dev->dev, size, &dmab->addr, &dmab->bytes);
+ break;
+ case SNDRV_DMA_TYPE_DEV_SG:
+ snd_malloc_sgbuf_pages(dev, size, dmab, &dmab->bytes);
+ break;
default:
printk(KERN_ERR "snd-malloc: invalid device type %d\n", dev->type);
dmab->area = NULL;
@@ -212,7 +479,6 @@
}
if (! dmab->area)
return -ENOMEM;
- dmab->bytes = size;
return 0;
}
@@ -230,24 +496,17 @@
case SNDRV_DMA_TYPE_CONTINUOUS:
snd_free_pages(dmab->area, dmab->bytes);
break;
-#ifdef CONFIG_ISA
- case SNDRV_DMA_TYPE_ISA:
- snd_free_isa_pages(dmab->bytes, dmab->area, dmab->addr);
+#ifdef CONFIG_SBUS
+ case SNDRV_DMA_TYPE_SBUS:
+ snd_free_sbus_pages(dev->dev, dmab->bytes, dmab->area, dmab->addr);
break;
#endif
-#ifdef CONFIG_PCI
- case SNDRV_DMA_TYPE_PCI:
- snd_free_pci_pages(dev->dev.pci, dmab->bytes, dmab->area, dmab->addr);
+ case SNDRV_DMA_TYPE_DEV:
+ snd_free_dev_pages(dev->dev, dmab->bytes, dmab->area, dmab->addr);
break;
- case SNDRV_DMA_TYPE_PCI_SG:
+ case SNDRV_DMA_TYPE_DEV_SG:
snd_free_sgbuf_pages(dmab);
break;
-#endif
-#ifdef CONFIG_SBUS
- case SNDRV_DMA_TYPE_SBUS:
- snd_free_sbus_pages(dev->dev.sbus, dmab->bytes, dmab->area, dmab->addr);
- break;
-#endif
default:
printk(KERN_ERR "snd-malloc: invalid device type %d\n", dev->type);
}
@@ -394,395 +653,7 @@
}
up(&list_mutex);
}
-
-
-/*
- *
- * Generic memory allocators
- *
- */
-
-static long snd_allocated_pages; /* holding the number of allocated pages */
-
-static void mark_pages(void *res, int order)
-{
- struct page *page = virt_to_page(res);
- struct page *last_page = page + (1 << order);
- while (page < last_page)
- SetPageReserved(page++);
- snd_allocated_pages += 1 << order;
-}
-
-static void unmark_pages(void *res, int order)
-{
- struct page *page = virt_to_page(res);
- struct page *last_page = page + (1 << order);
- while (page < last_page)
- ClearPageReserved(page++);
- snd_allocated_pages -= 1 << order;
-}
-
-/**
- * snd_malloc_pages - allocate pages with the given size
- * @size: the size to allocate in bytes
- * @gfp_flags: the allocation conditions, GFP_XXX
- *
- * Allocates the physically contiguous pages with the given size.
- *
- * Returns the pointer of the buffer, or NULL if no enoguh memory.
- */
-void *snd_malloc_pages(size_t size, unsigned int gfp_flags)
-{
- int pg;
- void *res;
-
- snd_assert(size > 0, return NULL);
- snd_assert(gfp_flags != 0, return NULL);
- for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
- if ((res = (void *) __get_free_pages(gfp_flags, pg)) != NULL) {
- mark_pages(res, pg);
- }
- return res;
-}
-
-/**
- * snd_malloc_pages_fallback - allocate pages with the given size with fallback
- * @size: the requested size to allocate in bytes
- * @gfp_flags: the allocation conditions, GFP_XXX
- * @res_size: the pointer to store the size of buffer actually allocated
- *
- * Allocates the physically contiguous pages with the given request
- * size. When no space is left, this function reduces the size and
- * tries to allocate again. The size actually allocated is stored in
- * res_size argument.
- *
- * Returns the pointer of the buffer, or NULL if no enoguh memory.
- */
-void *snd_malloc_pages_fallback(size_t size, unsigned int gfp_flags, size_t *res_size)
-{
- void *res;
-
- snd_assert(size > 0, return NULL);
- snd_assert(res_size != NULL, return NULL);
- do {
- if ((res = snd_malloc_pages(size, gfp_flags)) != NULL) {
- *res_size = size;
- return res;
- }
- size >>= 1;
- } while (size >= PAGE_SIZE);
- return NULL;
-}
-
-/**
- * snd_free_pages - release the pages
- * @ptr: the buffer pointer to release
- * @size: the allocated buffer size
- *
- * Releases the buffer allocated via snd_malloc_pages().
- */
-void snd_free_pages(void *ptr, size_t size)
-{
- int pg;
-
- if (ptr == NULL)
- return;
- for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
- unmark_pages(ptr, pg);
- free_pages((unsigned long) ptr, pg);
-}
-
-#if defined(CONFIG_ISA) && ! defined(CONFIG_PCI)
-
-/**
- * snd_malloc_isa_pages - allocate pages for ISA bus with the given size
- * @size: the size to allocate in bytes
- * @dma_addr: the pointer to store the physical address of the buffer
- *
- * Allocates the physically contiguous pages with the given size for
- * ISA bus.
- *
- * Returns the pointer of the buffer, or NULL if no enoguh memory.
- */
-void *snd_malloc_isa_pages(size_t size, dma_addr_t *dma_addr)
-{
- void *dma_area;
- dma_area = snd_malloc_pages(size, GFP_ATOMIC|GFP_DMA);
- *dma_addr = dma_area ? isa_virt_to_bus(dma_area) : 0UL;
- return dma_area;
-}
-
-/**
- * snd_malloc_isa_pages_fallback - allocate pages with the given size with fallback for ISA bus
- * @size: the requested size to allocate in bytes
- * @dma_addr: the pointer to store the physical address of the buffer
- * @res_size: the pointer to store the size of buffer actually allocated
- *
- * Allocates the physically contiguous pages with the given request
- * size for PCI bus. When no space is left, this function reduces the size and
- * tries to allocate again. The size actually allocated is stored in
- * res_size argument.
- *
- * Returns the pointer of the buffer, or NULL if no enoguh memory.
- */
-void *snd_malloc_isa_pages_fallback(size_t size,
- dma_addr_t *dma_addr,
- size_t *res_size)
-{
- void *dma_area;
- dma_area = snd_malloc_pages_fallback(size, GFP_ATOMIC|GFP_DMA, res_size);
- *dma_addr = dma_area ? isa_virt_to_bus(dma_area) : 0UL;
- return dma_area;
-}
-
-#endif /* CONFIG_ISA && !CONFIG_PCI */
-
-#ifdef CONFIG_PCI
-
-/**
- * snd_malloc_pci_pages - allocate pages for PCI bus with the given size
- * @pci: the pci device pointer
- * @size: the size to allocate in bytes
- * @dma_addr: the pointer to store the physical address of the buffer
- *
- * Allocates the physically contiguous pages with the given size for
- * PCI bus.
- *
- * Returns the pointer of the buffer, or NULL if no enoguh memory.
- */
-void *snd_malloc_pci_pages(struct pci_dev *pci,
- size_t size,
- dma_addr_t *dma_addr)
-{
- int pg;
- void *res;
-
- snd_assert(size > 0, return NULL);
- snd_assert(dma_addr != NULL, return NULL);
- for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
- res = pci_alloc_consistent(pci, PAGE_SIZE * (1 << pg), dma_addr);
- if (res != NULL) {
- mark_pages(res, pg);
- }
- return res;
-}
-
-/**
- * snd_malloc_pci_pages_fallback - allocate pages with the given size with fallback for PCI bus
- * @pci: pci device pointer
- * @size: the requested size to allocate in bytes
- * @dma_addr: the pointer to store the physical address of the buffer
- * @res_size: the pointer to store the size of buffer actually allocated
- *
- * Allocates the physically contiguous pages with the given request
- * size for PCI bus. When no space is left, this function reduces the size and
- * tries to allocate again. The size actually allocated is stored in
- * res_size argument.
- *
- * Returns the pointer of the buffer, or NULL if no enoguh memory.
- */
-void *snd_malloc_pci_pages_fallback(struct pci_dev *pci,
- size_t size,
- dma_addr_t *dma_addr,
- size_t *res_size)
-{
- void *res;
-
- snd_assert(res_size != NULL, return NULL);
- do {
- if ((res = snd_malloc_pci_pages(pci, size, dma_addr)) != NULL) {
- *res_size = size;
- return res;
- }
- size >>= 1;
- } while (size >= PAGE_SIZE);
- return NULL;
-}
-
-/**
- * snd_free_pci_pages - release the pages
- * @pci: pci device pointer
- * @size: the allocated buffer size
- * @ptr: the buffer pointer to release
- * @dma_addr: the physical address of the buffer
- *
- * Releases the buffer allocated via snd_malloc_pci_pages().
- */
-void snd_free_pci_pages(struct pci_dev *pci,
- size_t size,
- void *ptr,
- dma_addr_t dma_addr)
-{
- int pg;
-
- if (ptr == NULL)
- return;
- for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
- unmark_pages(ptr, pg);
- pci_free_consistent(pci, PAGE_SIZE * (1 << pg), ptr, dma_addr);
-}
-
-
-#if defined(__i386__)
-/*
- * on ix86, we allocate a page with GFP_KERNEL to assure the
- * allocation. the code is almost same with kernel/i386/pci-dma.c but
- * it allocates only a single page and checks the validity of the
- * page address with the given pci dma mask.
- */
-
-/**
- * snd_malloc_pci_page - allocate a page in the valid pci dma mask
- * @pci: pci device pointer
- * @addrp: the pointer to store the physical address of the buffer
- *
- * Allocates a single page for the given PCI device and returns
- * the virtual address and stores the physical address on addrp.
- *
- * This function cannot be called from interrupt handlers or
- * within spinlocks.
- */
-void *snd_malloc_pci_page(struct pci_dev *pci, dma_addr_t *addrp)
-{
- void *ptr;
- dma_addr_t addr;
- unsigned long mask;
-
- mask = pci ? (unsigned long)pci->consistent_dma_mask : 0x00ffffffUL;
- ptr = (void *)__get_free_page(GFP_KERNEL);
- if (ptr) {
- addr = virt_to_phys(ptr);
- if (((unsigned long)addr + PAGE_SIZE - 1) & ~mask) {
- /* try to reallocate with the GFP_DMA */
- free_page((unsigned long)ptr);
- /* use GFP_ATOMIC for the DMA zone to avoid stall */
- ptr = (void *)__get_free_page(GFP_ATOMIC | GFP_DMA);
- if (ptr) /* ok, the address must be within lower 16MB... */
- addr = virt_to_phys(ptr);
- else
- addr = 0;
- }
- } else
- addr = 0;
- if (ptr) {
- memset(ptr, 0, PAGE_SIZE);
- mark_pages(ptr, 0);
- }
- *addrp = addr;
- return ptr;
-}
-#else
-
-/* on other architectures, call snd_malloc_pci_pages() helper function
- * which uses pci_alloc_consistent().
- */
-void *snd_malloc_pci_page(struct pci_dev *pci, dma_addr_t *addrp)
-{
- return snd_malloc_pci_pages(pci, PAGE_SIZE, addrp);
-}
-
-#endif
-
-#if 0 /* for kernel-doc */
-/**
- * snd_free_pci_page - release a page
- * @pci: pci device pointer
- * @ptr: the buffer pointer to release
- * @dma_addr: the physical address of the buffer
- *
- * Releases the buffer allocated via snd_malloc_pci_page().
- */
-void snd_free_pci_page(struct pci_dev *pci, void *ptr, dma_addr_t dma_addr);
-#endif /* for kernel-doc */
-
-#endif /* CONFIG_PCI */
-
-#ifdef CONFIG_SBUS
-
-/**
- * snd_malloc_sbus_pages - allocate pages for SBUS with the given size
- * @sdev: sbus device pointer
- * @size: the size to allocate in bytes
- * @dma_addr: the pointer to store the physical address of the buffer
- *
- * Allocates the physically contiguous pages with the given size for
- * SBUS.
- *
- * Returns the pointer of the buffer, or NULL if no enoguh memory.
- */
-void *snd_malloc_sbus_pages(struct sbus_dev *sdev,
- size_t size,
- dma_addr_t *dma_addr)
-{
- int pg;
- void *res;
-
- snd_assert(size > 0, return NULL);
- snd_assert(dma_addr != NULL, return NULL);
- for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
- res = sbus_alloc_consistent(sdev, PAGE_SIZE * (1 << pg), dma_addr);
- if (res != NULL) {
- mark_pages(res, pg);
- }
- return res;
-}
-
-/**
- * snd_malloc_pci_pages_fallback - allocate pages with the given size with fallback for SBUS
- * @sdev: sbus device pointer
- * @size: the requested size to allocate in bytes
- * @dma_addr: the pointer to store the physical address of the buffer
- * @res_size: the pointer to store the size of buffer actually allocated
- *
- * Allocates the physically contiguous pages with the given request
- * size for SBUS. When no space is left, this function reduces the size and
- * tries to allocate again. The size actually allocated is stored in
- * res_size argument.
- *
- * Returns the pointer of the buffer, or NULL if no enoguh memory.
- */
-void *snd_malloc_sbus_pages_fallback(struct sbus_dev *sdev,
- size_t size,
- dma_addr_t *dma_addr,
- size_t *res_size)
-{
- void *res;
-
- snd_assert(res_size != NULL, return NULL);
- do {
- if ((res = snd_malloc_sbus_pages(sdev, size, dma_addr)) != NULL) {
- *res_size = size;
- return res;
- }
- size >>= 1;
- } while (size >= PAGE_SIZE);
- return NULL;
-}
-
-/**
- * snd_free_sbus_pages - release the pages
- * @sdev: sbus device pointer
- * @size: the allocated buffer size
- * @ptr: the buffer pointer to release
- * @dma_addr: the physical address of the buffer
- *
- * Releases the buffer allocated via snd_malloc_pci_pages().
- */
-void snd_free_sbus_pages(struct sbus_dev *sdev,
- size_t size,
- void *ptr,
- dma_addr_t dma_addr)
-{
- int pg;
-
- if (ptr == NULL)
- return;
- for (pg = 0; PAGE_SIZE * (1 << pg) < size; pg++);
- unmark_pages(ptr, pg);
- sbus_free_consistent(sdev, PAGE_SIZE * (1 << pg), ptr, dma_addr);
-}
-
-#endif /* CONFIG_SBUS */
+
/*
@@ -821,6 +692,17 @@
{ }, /* terminator */
};
+/*
+ * compose a snd_dma_device struct for the PCI device
+ */
+static inline void snd_dma_device_pci(struct snd_dma_device *dev, struct pci_dev *pci, unsigned int id)
+{
+ memset(dev, 0, sizeof(*dev));
+ dev->type = SNDRV_DMA_TYPE_DEV;
+ dev->dev = snd_dma_pci_data(pci);
+ dev->id = id;
+}
+
static void __init preallocate_cards(void)
{
struct pci_dev *pci = NULL;
@@ -902,29 +784,25 @@
len += sprintf(page + len, " : type ");
switch (mem->dev.type) {
case SNDRV_DMA_TYPE_CONTINUOUS:
- len += sprintf(page + len, "CONT [%x]", mem->dev.dev.flags);
+ len += sprintf(page + len, "CONT [%p]", mem->dev.dev);
break;
-#ifdef CONFIG_PCI
- case SNDRV_DMA_TYPE_PCI:
- case SNDRV_DMA_TYPE_PCI_SG:
- if (mem->dev.dev.pci) {
- len += sprintf(page + len, "%s [%04x:%04x]",
- mem->dev.type == SNDRV_DMA_TYPE_PCI ? "PCI" : "PCI-SG",
- mem->dev.dev.pci->vendor,
- mem->dev.dev.pci->device);
- }
- break;
-#endif
-#ifdef CONFIG_ISA
- case SNDRV_DMA_TYPE_ISA:
- len += sprintf(page + len, "ISA [%x]", mem->dev.dev.flags);
- break;
-#endif
#ifdef CONFIG_SBUS
case SNDRV_DMA_TYPE_SBUS:
- len += sprintf(page + len, "SBUS [%x]", mem->dev.dev.sbus->slot);
+ {
+ struct sbus_dev *sdev = (struct sbus_dev *)(mem->dev.dev);
+ len += sprintf(page + len, "SBUS [%x]", sdev->slot);
+ }
break;
#endif
+ case SNDRV_DMA_TYPE_DEV:
+ case SNDRV_DMA_TYPE_DEV_SG:
+ if (mem->dev.dev) {
+ len += sprintf(page + len, "%s [%s]",
+ mem->dev.type == SNDRV_DMA_TYPE_DEV_SG ? "DEV-SG" : "DEV",
+ mem->dev.dev->bus_id);
+ } else
+ len += sprintf(page + len, "ISA");
+ break;
default:
len += sprintf(page + len, "UNKNOWN");
break;
@@ -987,7 +865,9 @@
* exports
*/
EXPORT_SYMBOL(snd_dma_alloc_pages);
+EXPORT_SYMBOL(snd_dma_alloc_pages_fallback);
EXPORT_SYMBOL(snd_dma_free_pages);
+
EXPORT_SYMBOL(snd_dma_get_reserved);
EXPORT_SYMBOL(snd_dma_free_reserved);
EXPORT_SYMBOL(snd_dma_set_reserved);
@@ -995,20 +875,3 @@
EXPORT_SYMBOL(snd_malloc_pages);
EXPORT_SYMBOL(snd_malloc_pages_fallback);
EXPORT_SYMBOL(snd_free_pages);
-#if defined(CONFIG_ISA) && ! defined(CONFIG_PCI)
-EXPORT_SYMBOL(snd_malloc_isa_pages);
-EXPORT_SYMBOL(snd_malloc_isa_pages_fallback);
-#endif
-#ifdef CONFIG_PCI
-EXPORT_SYMBOL(snd_malloc_pci_pages);
-EXPORT_SYMBOL(snd_malloc_pci_pages_fallback);
-EXPORT_SYMBOL(snd_malloc_pci_page);
-EXPORT_SYMBOL(snd_free_pci_pages);
-EXPORT_SYMBOL(snd_malloc_sgbuf_pages);
-EXPORT_SYMBOL(snd_free_sgbuf_pages);
-#endif
-#ifdef CONFIG_SBUS
-EXPORT_SYMBOL(snd_malloc_sbus_pages);
-EXPORT_SYMBOL(snd_malloc_sbus_pages_fallback);
-EXPORT_SYMBOL(snd_free_sbus_pages);
-#endif
Index: debian/alsa-driver/alsa-kernel/include/ac97_codec.h
diff -u debian/alsa-driver/alsa-kernel/include/ac97_codec.h:1.9 debian/alsa-driver/alsa-kernel/include/ac97_codec.h:1.10
--- debian/alsa-driver/alsa-kernel/include/ac97_codec.h:1.9 Sun Feb 29 17:13:51 2004
+++ debian/alsa-driver/alsa-kernel/include/ac97_codec.h Tue Apr 13 13:39:25 2004
@@ -226,10 +226,14 @@
#define AC97_GPIO_LINE2_HL1R 0x8000 /* Opt./ Handset to Line2 relay control (out) */
/* specific - SigmaTel */
+#define AC97_SIGMATEL_OUTSEL 0x64 /* Output Select, STAC9758 */
+#define AC97_SIGMATEL_INSEL 0x66 /* Input Select, STAC9758 */
+#define AC97_SIGMATEL_IOMISC 0x68 /* STAC9758 */
#define AC97_SIGMATEL_ANALOG 0x6c /* Analog Special */
#define AC97_SIGMATEL_DAC2INVERT 0x6e
#define AC97_SIGMATEL_BIAS1 0x70
#define AC97_SIGMATEL_BIAS2 0x72
+#define AC97_SIGMATEL_VARIOUS 0x72 /* STAC9758 */
#define AC97_SIGMATEL_MULTICHN 0x74 /* Multi-Channel programming */
#define AC97_SIGMATEL_CIC1 0x76
#define AC97_SIGMATEL_CIC2 0x78
@@ -456,7 +460,7 @@
}
static inline int ac97_is_rev22(ac97_t * ac97)
{
- return (ac97->ext_id & AC97_EI_REV_MASK) == AC97_EI_REV_22;
+ return (ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_22;
}
static inline int ac97_can_amap(ac97_t * ac97)
{
@@ -484,7 +488,8 @@
AC97_TUNE_HP_ONLY, /* headphone (true line-out) control as master only */
AC97_TUNE_SWAP_HP, /* swap headphone and master controls */
AC97_TUNE_SWAP_SURROUND, /* swap master and surround controls */
- AC97_TUNE_AD_SHARING /* for AD1985, turn on OMS bit and use headphone */
+ AC97_TUNE_AD_SHARING, /* for AD1985, turn on OMS bit and use headphone */
+ AC97_TUNE_ALC_JACK, /* for Realtek, enable JACK detection */
};
struct ac97_quirk {
Index: debian/alsa-driver/alsa-kernel/isa/es18xx.c
diff -u debian/alsa-driver/alsa-kernel/isa/es18xx.c:1.4 debian/alsa-driver/alsa-kernel/isa/es18xx.c:1.5
--- debian/alsa-driver/alsa-kernel/isa/es18xx.c:1.4 Tue Feb 3 11:36:41 2004
+++ debian/alsa-driver/alsa-kernel/isa/es18xx.c Tue Apr 13 13:39:25 2004
@@ -1598,7 +1598,10 @@
sprintf(pcm->name, "ESS AudioDrive ES%x", chip->version);
chip->pcm = pcm;
- snd_pcm_lib_preallocate_isa_pages_for_all(pcm, 64*1024, chip->dma1 > 3 || chip->dma2 > 3 ? 128*1024 : 64*1024);
+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
+ snd_dma_isa_data(),
+ 64*1024,
+ chip->dma1 > 3 || chip->dma2 > 3 ? 128*1024 : 64*1024);
if (rpcm)
*rpcm = pcm;
@@ -2229,7 +2232,7 @@
static int __init alsa_card_es18xx_init(void)
{
static unsigned long possible_ports[] = {0x220, 0x240, 0x260, 0x280, -1};
- int dev, cards = 0;
+ int dev, cards = 0, i;
/* legacy non-auto cards at first */
for (dev = 0; dev < SNDRV_CARDS; dev++) {
@@ -2243,10 +2246,16 @@
cards++;
}
/* legacy auto configured cards */
- cards += snd_legacy_auto_probe(possible_ports, snd_audiodrive_probe_legacy_port);
+ i = snd_legacy_auto_probe(possible_ports, snd_audiodrive_probe_legacy_port);
+ if (i > 0)
+ cards += i;
+
#ifdef CONFIG_PNP
/* ISA PnP cards at last */
- cards += pnp_register_card_driver(&es18xx_pnpc_driver);
+ i = pnp_register_card_driver(&es18xx_pnpc_driver);
+ if (i > 0)
+ cards += i;
+
#endif
if(!cards) {
#ifdef CONFIG_PNP
Index: debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c
diff -u debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c:1.8 debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c:1.9
--- debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c:1.8 Tue Feb 3 11:36:41 2004
+++ debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c Tue Apr 13 13:39:25 2004
@@ -311,8 +311,12 @@
static long snd_legacy_find_free_ioport(long *port_table, long size)
{
while (*port_table != -1) {
- if (!check_region(*port_table, size))
+ struct resource *res;
+ if ((res = request_region(*port_table, size, "ALSA test")) != NULL) {
+ release_resource(res);
+ kfree_nocheck(res);
return *port_table;
+ }
port_table++;
}
return -1;
@@ -1399,7 +1403,9 @@
strcpy(pcm->name, snd_opti93x_chip_id(codec));
- snd_pcm_lib_preallocate_isa_pages_for_all(pcm, 64*1024, codec->dma1 > 3 || codec->dma2 > 3 ? 128*1024 : 64*1024);
+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
+ snd_dma_isa_data(),
+ 64*1024, codec->dma1 > 3 || codec->dma2 > 3 ? 128*1024 : 64*1024);
codec->pcm = pcm;
if (rpcm)
@@ -1672,13 +1678,18 @@
if ((err = snd_opti9xx_init(chip, i)) < 0)
return err;
- if (check_region(chip->mc_base, chip->mc_base_size))
+ if ((chip->res_mc_base = request_region(chip->mc_base, chip->mc_base_size, "OPTi9xx MC")) == NULL)
continue;
value = snd_opti9xx_read(chip, OPTi9XX_MC_REG(1));
if ((value != 0xff) && (value != inb(chip->mc_base + 1)))
if (value == snd_opti9xx_read(chip, OPTi9XX_MC_REG(1)))
return 1;
+
+ release_resource(chip->res_mc_base);
+ kfree_nocheck(chip->res_mc_base);
+ chip->res_mc_base = NULL;
+
}
#else /* OPTi93X */
for (i = OPTi9XX_HW_82C931; i >= OPTi9XX_HW_82C930; i--) {
@@ -1688,7 +1699,7 @@
if ((err = snd_opti9xx_init(chip, i)) < 0)
return err;
- if (check_region(chip->mc_base, chip->mc_base_size))
+ if ((chip->res_mc_base = request_region(chip->mc_base, chip->mc_base_size, "OPTi9xx MC")) == NULL)
continue;
spin_lock_irqsave(&chip->lock, flags);
@@ -1701,6 +1712,10 @@
snd_opti9xx_write(chip, OPTi9XX_MC_REG(7), 0xff - value);
if (snd_opti9xx_read(chip, OPTi9XX_MC_REG(7)) == 0xff - value)
return 1;
+
+ release_resource(chip->res_mc_base);
+ kfree_nocheck(chip->res_mc_base);
+ chip->res_mc_base = NULL;
}
#endif /* OPTi93X */
@@ -1984,7 +1999,8 @@
}
#endif /* CONFIG_PNP */
- if ((chip->res_mc_base = request_region(chip->mc_base, chip->mc_base_size, "OPTi9xx MC")) == NULL) {
+ if (! chip->res_mc_base &&
+ (chip->res_mc_base = request_region(chip->mc_base, chip->mc_base_size, "OPTi9xx MC")) == NULL) {
snd_card_free(card);
return -ENOMEM;
}
Index: debian/alsa-driver/alsa-kernel/isa/sb/sb16.c
diff -u debian/alsa-driver/alsa-kernel/isa/sb/sb16.c:1.8 debian/alsa-driver/alsa-kernel/isa/sb/sb16.c:1.9
--- debian/alsa-driver/alsa-kernel/isa/sb/sb16.c:1.8 Tue Feb 3 11:36:41 2004
+++ debian/alsa-driver/alsa-kernel/isa/sb/sb16.c Tue Apr 13 13:39:25 2004
@@ -629,7 +629,7 @@
static int __init alsa_card_sb16_init(void)
{
- int dev, cards = 0;
+ int dev, cards = 0, i;
static unsigned long possible_ports[] = {0x220, 0x240, 0x260, 0x280, -1};
/* legacy non-auto cards at first */
@@ -649,10 +649,15 @@
#endif
}
/* legacy auto configured cards */
- cards += snd_legacy_auto_probe(possible_ports, snd_sb16_probe_legacy_port);
+ i = snd_legacy_auto_probe(possible_ports, snd_sb16_probe_legacy_port);
+ if (i > 0)
+ cards += i;
+
#ifdef CONFIG_PNP
/* PnP cards at last */
- cards += pnp_register_card_driver(&sb16_pnpc_driver);
+ i = pnp_register_card_driver(&sb16_pnpc_driver);
+ if (i >0)
+ cards += i;
#endif
if (!cards) {
Index: debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c
diff -u debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c:1.8 debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c:1.9
--- debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c:1.8 Tue Feb 3 11:36:41 2004
+++ debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c Tue Apr 13 13:39:26 2004
@@ -97,7 +97,8 @@
unsigned int silent_page;
emu->fx8010.itram_size = (16 * 1024)/2;
- emu->fx8010.etram_size = 0;
+ emu->fx8010.etram_pages.area = NULL;
+ emu->fx8010.etram_pages.bytes = 0;
/* disable audio and lock cache */
outl(HCFG_LOCKSOUNDCACHE | HCFG_LOCKTANKCACHE_MASK | HCFG_MUTEBUTTONENABLE, emu->port + HCFG);
@@ -184,15 +185,15 @@
/*
* Clear page with silence & setup all pointers to this page
*/
- memset(emu->silent_page, 0, PAGE_SIZE);
- silent_page = emu->silent_page_dmaaddr << 1;
+ memset(emu->silent_page.area, 0, PAGE_SIZE);
+ silent_page = emu->silent_page.addr << 1;
for (idx = 0; idx < MAXPAGES; idx++)
- emu->ptb_pages[idx] = cpu_to_le32(silent_page | idx);
- snd_emu10k1_ptr_write(emu, PTB, 0, emu->ptb_pages_dmaaddr);
+ ((u32 *)emu->ptb_pages.area)[idx] = cpu_to_le32(silent_page | idx);
+ snd_emu10k1_ptr_write(emu, PTB, 0, emu->ptb_pages.addr);
snd_emu10k1_ptr_write(emu, TCB, 0, 0); /* taken from original driver */
snd_emu10k1_ptr_write(emu, TCBS, 0, 4); /* taken from original driver */
- silent_page = (emu->silent_page_dmaaddr << 1) | MAP_PTI_MASK;
+ silent_page = (emu->silent_page.addr << 1) | MAP_PTI_MASK;
for (ch = 0; ch < NUM_G; ch++) {
snd_emu10k1_ptr_write(emu, MAPA, ch, silent_page);
snd_emu10k1_ptr_write(emu, MAPB, ch, silent_page);
@@ -546,10 +547,10 @@
}
if (emu->memhdr)
snd_util_memhdr_free(emu->memhdr);
- if (emu->silent_page)
- snd_free_pci_pages(emu->pci, EMUPAGESIZE, emu->silent_page, emu->silent_page_dmaaddr);
- if (emu->ptb_pages)
- snd_free_pci_pages(emu->pci, 32 * 1024, (void *)emu->ptb_pages, emu->ptb_pages_dmaaddr);
+ if (emu->silent_page.area)
+ snd_dma_free_pages(&emu->dma_dev, &emu->silent_page);
+ if (emu->ptb_pages.area)
+ snd_dma_free_pages(&emu->dma_dev, &emu->ptb_pages);
if (emu->page_ptr_table)
vfree(emu->page_ptr_table);
if (emu->page_addr_table)
@@ -638,9 +639,12 @@
}
emu->irq = pci->irq;
+ memset(&emu->dma_dev, 0, sizeof(emu->dma_dev));
+ emu->dma_dev.type = SNDRV_DMA_TYPE_DEV;
+ emu->dma_dev.dev = snd_dma_pci_data(pci);
+
emu->max_cache_pages = max_cache_bytes >> PAGE_SHIFT;
- emu->ptb_pages = snd_malloc_pci_pages(pci, 32 * 1024, &emu->ptb_pages_dmaaddr);
- if (emu->ptb_pages == NULL) {
+ if (snd_dma_alloc_pages(&emu->dma_dev, 32 * 1024, &emu->ptb_pages) < 0) {
snd_emu10k1_free(emu);
return -ENOMEM;
}
@@ -652,8 +656,7 @@
return -ENOMEM;
}
- emu->silent_page = snd_malloc_pci_pages(pci, EMUPAGESIZE, &emu->silent_page_dmaaddr);
- if (emu->silent_page == NULL) {
+ if (snd_dma_alloc_pages(&emu->dma_dev, EMUPAGESIZE, &emu->silent_page) < 0) {
snd_emu10k1_free(emu);
return -ENOMEM;
}
Index: debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c
diff -u debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c:1.13 debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c:1.14
--- debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c:1.13 Sun Feb 29 17:13:51 2004
+++ debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c Tue Apr 13 13:39:26 2004
@@ -26,6 +26,7 @@
*/
#include <sound/driver.h>
+#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/init.h>
@@ -506,16 +507,16 @@
while (frames > *tram_pos) {
count = *tram_pos + 1;
- snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages + *tram_pos,
- (unsigned short *)emu->fx8010.etram_pages + *tram_pos + tram_size / 2,
+ snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages.area + *tram_pos,
+ (unsigned short *)emu->fx8010.etram_pages.area + *tram_pos + tram_size / 2,
src, count, *tram_shift);
src += count * 2;
frames -= count;
*tram_pos = (tram_size / 2) - 1;
(*tram_shift)++;
}
- snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages + *tram_pos,
- (unsigned short *)emu->fx8010.etram_pages + *tram_pos + tram_size / 2,
+ snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages.area + *tram_pos,
+ (unsigned short *)emu->fx8010.etram_pages.area + *tram_pos + tram_size / 2,
src, frames, *tram_shift++);
*tram_pos -= frames;
}
@@ -760,7 +761,7 @@
strcpy(pcm->name, "EMU10K1 FX8010");
emu->pcm_fx8010 = pcm;
- snd_pcm_lib_preallocate_pci_pages_for_all(emu->pci, pcm, 64*1024, 0);
+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(emu->pci), 64*1024, 0);
if (rpcm)
*rpcm = pcm;
@@ -2218,32 +2219,30 @@
}
size = 0x2000 << size_reg;
}
- if (emu->fx8010.etram_size == size)
+ if (emu->fx8010.etram_pages.bytes == size)
return 0;
spin_lock_irq(&emu->emu_lock);
outl(HCFG_LOCKTANKCACHE_MASK | inl(emu->port + HCFG), emu->port + HCFG);
spin_unlock_irq(&emu->emu_lock);
snd_emu10k1_ptr_write(emu, TCB, 0, 0);
snd_emu10k1_ptr_write(emu, TCBS, 0, 0);
- if (emu->fx8010.etram_pages != NULL) {
- snd_free_pci_pages(emu->pci, emu->fx8010.etram_size * 2, emu->fx8010.etram_pages, emu->fx8010.etram_pages_dmaaddr);
- emu->fx8010.etram_pages = NULL;
- emu->fx8010.etram_size = 0;
+ if (emu->fx8010.etram_pages.area != NULL) {
+ snd_dma_free_pages(&emu->dma_dev, &emu->fx8010.etram_pages);
+ emu->fx8010.etram_pages.area = NULL;
+ emu->fx8010.etram_pages.bytes = 0;
}
if (size > 0) {
- emu->fx8010.etram_pages = snd_malloc_pci_pages(emu->pci, size * 2, &emu->fx8010.etram_pages_dmaaddr);
- if (emu->fx8010.etram_pages == NULL)
+ if (snd_dma_alloc_pages(&emu->dma_dev, size * 2, &emu->fx8010.etram_pages) < 0)
return -ENOMEM;
- memset(emu->fx8010.etram_pages, 0, size * 2);
- snd_emu10k1_ptr_write(emu, TCB, 0, emu->fx8010.etram_pages_dmaaddr);
+ memset(emu->fx8010.etram_pages.area, 0, size * 2);
+ snd_emu10k1_ptr_write(emu, TCB, 0, emu->fx8010.etram_pages.addr);
snd_emu10k1_ptr_write(emu, TCBS, 0, size_reg);
spin_lock_irq(&emu->emu_lock);
outl(inl(emu->port + HCFG) & ~HCFG_LOCKTANKCACHE_MASK, emu->port + HCFG);
spin_unlock_irq(&emu->emu_lock);
}
- emu->fx8010.etram_size = size;
return 0;
}
@@ -2269,7 +2268,7 @@
memset(info, 0, sizeof(info));
info->card = emu->card_type;
info->internal_tram_size = emu->fx8010.itram_size;
- info->external_tram_size = emu->fx8010.etram_size;
+ info->external_tram_size = emu->fx8010.etram_pages.bytes;
fxbus = fxbuses;
extin = emu->audigy ? audigy_ins : creative_ins;
extout = emu->audigy ? audigy_outs : creative_outs;
Index: debian/alsa-driver/alsa-kernel/pci/emu10k1/emupcm.c
diff -u debian/alsa-driver/alsa-kernel/pci/emu10k1/emupcm.c:1.6 debian/alsa-driver/alsa-kernel/pci/emu10k1/emupcm.c:1.7
--- debian/alsa-driver/alsa-kernel/pci/emu10k1/emupcm.c:1.6 Wed Dec 24 20:02:30 2003
+++ debian/alsa-driver/alsa-kernel/pci/emu10k1/emupcm.c Tue Apr 13 13:39:26 2004
@@ -26,6 +26,7 @@
*/
#include <sound/driver.h>
+#include <linux/pci.h>
#include <linux/delay.h>
#include <linux/slab.h>
#include <linux/time.h>
@@ -323,7 +324,7 @@
snd_emu10k1_ptr_write(emu, Z1, voice, 0);
snd_emu10k1_ptr_write(emu, Z2, voice, 0);
// invalidate maps
- silent_page = ((unsigned int)emu->silent_page_dmaaddr << 1) | MAP_PTI_MASK;
+ silent_page = ((unsigned int)emu->silent_page.addr << 1) | MAP_PTI_MASK;
snd_emu10k1_ptr_write(emu, MAPA, voice, silent_page);
snd_emu10k1_ptr_write(emu, MAPB, voice, silent_page);
// modulation envelope
@@ -998,11 +999,11 @@
emu->pcm = pcm;
for (substream = pcm->streams[SNDRV_PCM_STREAM_PLAYBACK].substream; substream; substream = substream->next)
- if ((err = snd_pcm_lib_preallocate_sg_pages(emu->pci, substream, 64*1024, 64*1024)) < 0)
+ if ((err = snd_pcm_lib_preallocate_pages(substream, SNDRV_DMA_TYPE_DEV_SG, snd_dma_pci_data(emu->pci), 64*1024, 64*1024)) < 0)
return err;
for (substream = pcm->streams[SNDRV_PCM_STREAM_CAPTURE].substream; substream; substream = substream->next)
- snd_pcm_lib_preallocate_pci_pages(emu->pci, substream, 64*1024, 64*1024);
+ snd_pcm_lib_preallocate_pages(substream, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(emu->pci), 64*1024, 64*1024);
if (rpcm)
*rpcm = pcm;
@@ -1048,7 +1049,7 @@
strcpy(pcm->name, "EMU10K1 MIC");
emu->pcm_mic = pcm;
- snd_pcm_lib_preallocate_pci_pages_for_all(emu->pci, pcm, 64*1024, 64*1024);
+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(emu->pci), 64*1024, 64*1024);
if (rpcm)
*rpcm = pcm;
@@ -1157,7 +1158,7 @@
emu->efx_voices_mask[1] = 0;
snd_ctl_add(emu->card, snd_ctl_new1(&snd_emu10k1_pcm_efx_voices_mask, emu));
- snd_pcm_lib_preallocate_pci_pages_for_all(emu->pci, pcm, 64*1024, 64*1024);
+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(emu->pci), 64*1024, 64*1024);
return 0;
}
Index: debian/alsa-driver/alsa-kernel/scripts/Modules.dep
diff -u debian/alsa-driver/alsa-kernel/scripts/Modules.dep:1.1.1.7 debian/alsa-driver/alsa-kernel/scripts/Modules.dep:removed
--- debian/alsa-driver/alsa-kernel/scripts/Modules.dep:1.1.1.7 Mon Feb 9 10:40:48 2004
+++ debian/alsa-driver/alsa-kernel/scripts/Modules.dep Tue Apr 13 13:39:27 2004
@@ -1,231 +0,0 @@
-#
-# Module dependencies
-#
-# Module is specified without extension.
-# Toplevel (drivers) modules have prefix '|'.
-#
-
-%makefile group @if_sequencer
-%makefile ignore_in linux/sound/core/seq
-%makefile ignore_in linux/sound/core/seq/instr
-%makefile header
-%makefile line ifeq ($(subst m,y,$(CONFIG_SND_SEQUENCER)),y)
-%makefile endheader
-%makefile indent 2
-%makefile footer
-%makefile line endif
-%makefile endfooter
-%makefile endgroup @if_sequencer
-
-%makefile group @if_sb16_csp
-%makefile header
-%makefile line ifeq ($(CONFIG_SND_SB16_CSP),y)
-%makefile endheader
-%makefile indent 2
-%makefile footer
-%makefile line endif
-%makefile endfooter
-%makefile endgroup @if_sb16_csp
-
-%dir linux/sound/core
-snd
-snd-page-alloc
-snd-rawmidi snd
-snd-timer snd
-snd-rtctimer snd-timer
-snd-hwdep snd
-snd-pcm snd-timer snd-page-alloc
-
-%dir linux/sound/core/seq
-snd-seq-device snd
-snd-seq snd snd-timer snd-seq-device
-snd-seq-midi-event snd-seq
-snd-seq-midi snd-rawmidi snd-seq snd-seq-midi-event
-snd-seq-midi-emul snd-seq
-snd-seq-instr snd-seq
-snd-seq-virmidi snd-rawmidi snd-seq snd-seq-midi-event
-
-%dir linux/sound/core/seq/instr
-snd-ainstr-fm snd-seq-instr
-snd-ainstr-simple snd-seq-instr
-snd-ainstr-gf1 snd-seq-instr
-snd-ainstr-iw snd-seq-instr
-
-%dir linux/sound/i2c
-snd-i2c snd
-snd-tea6330t snd-i2c
-snd-cs8427 snd-i2c
-
-%dir linux/sound/i2c/l3
-snd-uda1341 snd
-
-%dir linux/sound/synth
-snd-util-mem snd
-
-%dir linux/sound/synth/emux
-snd-emux-synth @if_sequencer snd-seq-device snd-seq-midi-emul \
- snd-seq-virmidi snd-util-mem
-
-%dir linux/sound/drivers
-|snd-dummy snd-pcm
-|snd-virmidi snd-seq-virmidi
-|snd-serial-u16550 snd-seq-midi
-|snd-mtpav snd-seq-midi
-
-%dir linux/sound/drivers/mpu401
-snd-mpu401-uart snd-seq-midi
-|snd-mpu401 snd-mpu401-uart
-
-%dir linux/sound/drivers/opl3
-snd-opl3-lib snd-hwdep snd-timer
-snd-opl3-synth @if_sequencer snd-opl3-lib snd-seq-device \
- snd-seq-midi-emul snd-ainstr-fm
-
-%dir linux/sound/isa/opl4
-snd-opl4-lib snd-seq-device
-snd-opl4-synth @if_sequencer snd-opl4-lib snd-seq-midi-emul
-
-%dir linux/sound/drivers/vx
-snd-vx-lib snd-pcm
-
-%dir linux/sound/isa
-|snd-als100 @pnponly snd-sb16-dsp snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-azt2320 @pnponly snd-cs4231-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-cmi8330 snd-ad1848-lib snd-sb16-dsp
-|snd-dt019x @pnponly snd-sb16-dsp snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-es18xx snd-pcm snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-opl3sa2 snd-cs4231-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-sgalaxy snd-ad1848-lib
-|snd-sscape snd-hwdep snd-mpu401-uart snd-cs4231-lib
-
-%dir linux/sound/isa/ad1816a
-snd-ad1816a-lib snd-pcm snd-timer
-|snd-ad1816a @pnponly snd-ad1816a-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-
-%dir linux/sound/isa/ad1848
-snd-ad1848-lib snd-pcm
-|snd-ad1848 snd-ad1848-lib
-
-%dir linux/sound/isa/cs423x
-snd-cs4231-lib snd-pcm snd-timer
-|snd-cs4231 snd-cs4231-lib snd-mpu401-uart
-snd-cs4236-lib snd-cs4231-lib
-|snd-cs4232 snd-cs4231-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-cs4236 snd-cs4236-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-pc98-cs4232 snd-cs4231-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-
-%dir linux/sound/isa/es1688
-snd-es1688-lib snd-pcm
-|snd-es1688 snd-es1688-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-
-%dir linux/sound/isa/gus
-snd-gus-lib snd-pcm snd-timer snd-seq-midi snd-seq-device
-snd-gus-synth @if_sequencer snd-gus-lib snd-seq-midi-emul \
- snd-ainstr-iw snd-ainstr-gf1 snd-ainstr-simple
-|snd-gusclassic snd-gus-lib snd-gus-synth
-|snd-gusmax snd-gus-lib snd-gus-synth snd-cs4231-lib
-|snd-gusextreme snd-gus-lib snd-gus-synth snd-es1688-lib \
- snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-interwave snd-gus-lib snd-gus-synth snd-cs4231-lib
-|snd-interwave-stb snd-gus-lib snd-gus-synth snd-cs4231-lib snd-tea6330t
-
-%dir linux/sound/isa/opti9xx
-|snd-opti92x-ad1848 snd-ad1848-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth snd-opl4-lib snd-opl4-synth
-|snd-opti92x-cs4231 snd-cs4231-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth snd-opl4-lib snd-opl4-synth
-|snd-opti93x snd-pcm snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-
-%dir linux/sound/isa/sb
-snd-sb-common
-snd-sb8-dsp snd-sb-common snd-pcm snd-seq-midi
-|snd-sb8 snd-sb8-dsp snd-opl3-lib snd-opl3-synth
-snd-sb16-dsp snd-sb-common snd-pcm
-snd-sb16-csp @if_sb16_csp snd-sb-common snd-hwdep
-|snd-sb16 snd-sb16-dsp snd-sb16-csp snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-snd-emu8000-synth @if_sequencer snd-emux-synth snd-hwdep
-|snd-sbawe snd-sb16-dsp snd-sb16-csp snd-mpu401-uart \
- snd-opl3-lib snd-opl3-synth snd-emu8000-synth
-|snd-es968 @pnponly snd-sb8-dsp
-
-%dir linux/sound/isa/wavefront
-#snd-wavefront-fx snd-hwdep
-#snd-wavefront-synth snd-hwdep snd-seq-midi
-#|snd-wavefront snd-cs4231-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth \
-# snd-wavefront-synth snd-wavefront-fx
-|snd-wavefront snd-cs4231-lib snd-mpu401-uart snd-opl3-lib snd-opl3-synth \
- snd-hwdep snd-seq-midi
-
-%dir linux/sound/pci
-|snd-als4000 snd-sb-common snd-pcm snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-azt3328 snd-pcm snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-bt87x snd-pcm
-|snd-cmipci snd-pcm snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-cs4281 snd-pcm snd-ac97-codec snd-seq-midi snd-opl3-lib snd-opl3-synth
-|snd-ens1370 snd-pcm snd-ak4531-codec snd-seq-midi
-|snd-ens1371 snd-pcm snd-ac97-codec snd-seq-midi
-|snd-es1938 snd-pcm snd-opl3-lib snd-opl3-synth snd-mpu401-uart
-|snd-es1968 snd-pcm snd-ac97-codec snd-mpu401-uart
-|snd-fm801 snd-pcm snd-ac97-codec snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-intel8x0 snd-pcm snd-ac97-codec snd-mpu401-uart
-|snd-maestro3 snd-pcm snd-ac97-codec
-|snd-rme32 snd-pcm
-|snd-rme96 snd-pcm
-|snd-sonicvibes snd-pcm snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-|snd-via82xx snd-pcm snd-ac97-codec snd-mpu401-uart
-
-%dir linux/sound/pci/ac97
-snd-ac97-codec snd
-snd-ak4531-codec snd
-
-%dir linux/sound/pci/ali5451
-|snd-ali5451 snd-ac97-codec snd-mpu401-uart snd-pcm
-
-%dir linux/sound/pci/cs46xx
-|snd-cs46xx snd-pcm snd-ac97-codec snd-seq-midi
-
-%dir linux/sound/pci/emu10k1
-|snd-emu10k1 snd-pcm snd-ac97-codec snd-seq-midi snd-util-mem snd-hwdep \
- snd-emu10k1-synth
-snd-emu10k1-synth @if_sequencer snd-emux-synth snd-hwdep
-
-%dir linux/sound/pci/ice1712
-|snd-ice1712 snd-pcm snd-cs8427 snd-ac97-codec snd-mpu401-uart
-|snd-ice1724 snd-pcm snd-ac97-codec snd-mpu401-uart
-
-%dir linux/sound/pci/korg1212
-|snd-korg1212 snd-pcm
-
-%dir linux/sound/pci/mixart
-|snd-mixart snd-pcm snd-hwdep
-
-%dir linux/sound/pci/nm256
-|snd-nm256 snd-pcm snd-ac97-codec
-
-%dir linux/sound/pci/rme9652
-|snd-rme9652 snd-pcm
-|snd-hdsp snd-pcm snd-mpu401-uart
-
-%dir linux/sound/pci/trident
-snd-trident-synth @if_sequencer snd-seq-midi-emul snd-ainstr-simple
-|snd-trident snd-pcm snd-ac97-codec snd-mpu401-uart snd-util-mem snd-trident-synth
-
-%dir linux/sound/pci/vx222
-|snd-vx222 snd-vx-lib
-
-%dir linux/sound/pci/ymfpci
-|snd-ymfpci snd-pcm snd-ac97-codec snd-mpu401-uart snd-opl3-lib snd-opl3-synth
-
-%dir linux/sound/ppc
-|snd-powermac snd-pcm
-
-%dir linux/sound/arm
-|snd-sa11xx-uda1341 snd-uda1341 snd-pcm
-
-%dir linux/sound/usb
-|snd-usb-audio snd-pcm snd-seq-midi
-
-%dir linux/sound/parisc
-|snd-harmony snd-pcm
-
-%dir linux/sound/pcmcia/vx
-|snd-vxpocket snd-vx-lib
-|snd-vxp440 snd-vx-lib
Index: debian/alsa-driver/alsa-kernel/scripts/mod-deps.c
diff -u debian/alsa-driver/alsa-kernel/scripts/mod-deps.c:1.1.1.3 debian/alsa-driver/alsa-kernel/scripts/mod-deps.c:removed
--- debian/alsa-driver/alsa-kernel/scripts/mod-deps.c:1.1.1.3 Mon Nov 10 10:37:54 2003
+++ debian/alsa-driver/alsa-kernel/scripts/mod-deps.c Tue Apr 13 13:39:27 2004
@@ -1,1241 +0,0 @@
-/*
- * Utility to find module dependencies from Modules.dep
- * Copyright (c) by Anders Semb Hermansen <ahermans@vf.telia.no>,
- * Martin Dahl <dahlm@vf.telia.no>,
- * Jaroslav Kysela <perex@suse.cz>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#define WARNINGS 1 // Output warnings to stderr
-
-// Output methods
-#define METHOD_MAKEFILE 1
-#define METHOD_ACINCLUDE 2
-#define METHOD_MAKECONF 3
-#define METHOD_INCLUDE 4
-
-// Dependency type
-typedef enum {
- TYPE_TOPLEVEL = 1,
- TYPE_LIBRARY = 2
-} Type;
-
-typedef struct depStruct dep;
-
-typedef struct subdepStruct {
- int nummacros;
- char **macronames;
- dep *dep;
-} subdep;
-
-#define OPT_PNP_ONLY (1 << 0)
-
-struct depStruct {
- Type type;
- char *dir;
- char *name;
- int numdeps;
- char **depnames;
- dep **deps;
- struct depStruct *link;
- int nummacros;
- char **macronames;
- int hitflag;
- int printflag;
- int options;
- char *printed;
-};
-
-typedef struct makefileMacroStruct {
- char *ignore_in;
- char *name;
- char *header;
- char *footer;
- int indent;
- struct makefileMacroStruct *link;
-} makefileMacro;
-
-// Prototypes
-
-static int read_file(char *filename);
-static void parse_dir(char *line, char **dir);
-static void add_dep(char *line, const char *dir, short type);
-static void parse_makefile_outdesc(char *line);
-static dep *alloc_mem_for_dep(Type type);
-static char *get_word(char *line, char *word);
-static dep *find_dep(char *parent, char *depname);
-static int make_list_of_deps_for_dep(dep * dependency, subdep **list);
-static void del_all_from_list(void);
-
-int main(int argc, char *argv[]);
-static void usage(char *programname);
-static void output_makefile(const char *dir, int all);
-static char *convert_to_config_uppercase(const char *pre, const char *line);
-// static char *convert_to_escape(const char *line);
-static char *get_card_name(const char *line);
-
-// Globals
-static dep *Deps = NULL; // All other modules
-static makefileMacro *makefileMacros = NULL; // All makefile macros
-
-static int read_file(char *filename)
-{
- char *buffer, *newbuf, *dir = NULL;
- FILE *file;
- int c, prev, idx, size, result = 0;
-
- if (filename && strcmp(filename, "-")) {
- if ((file = fopen(filename, "r")) == NULL)
- return -errno;
- } else {
- file = stdin;
- }
-
- size = 512;
- buffer = (char *) malloc(size);
- if (!buffer) {
- fclose(file);
- return -ENOMEM;
- }
- while (!feof(file)) {
- buffer[idx = 0] = prev = '\0';
- while (1) {
- if (idx + 1 >= size) {
- newbuf = (char *) realloc(buffer, size += 256);
- if (newbuf == NULL) {
- result = -ENOMEM;
- goto __end;
- }
- buffer = newbuf;
- }
- c = fgetc(file);
- if (c == EOF)
- break;
- if (c == '\n') {
- if (prev == '\\') {
- idx--;
- continue;
- }
- break;
- }
- buffer[idx++] = prev = c;
- }
- buffer[idx] = '\0';
- if (buffer[0] == '%') {
- if (!strncmp(buffer, "%dir ", 5))
- parse_dir(buffer + 5, &dir);
- if (!strncmp(buffer, "%makefile ", 10))
- parse_makefile_outdesc(buffer + 10);
- continue;
- } else if (buffer[0] == '|')
- add_dep(buffer + 1, dir, TYPE_TOPLEVEL); // Toplevel modules (skip |)
- else if (isalpha(buffer[0]))
- add_dep(buffer, dir, TYPE_LIBRARY); // Other modules
- }
- __end:
- free(buffer);
- if (dir)
- free(dir);
- if (file != stdin)
- fclose(file);
- return result;
-}
-
-// Change current directory
-static void parse_dir(char *line, char **dir)
-{
- char *word;
-
- if (*dir)
- free(*dir);
- word = malloc(strlen(line) + 1);
- if (word == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- get_word(line, word);
- *dir = strdup(word);
- if (*dir == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
-}
-
-// Add a new dependency or soundcard to the list
-static void add_dep(char *line, const char *dir, short type)
-{
- dep *new_dep;
- char *word = NULL;
- int numdeps = 0;
-
- if (dir == NULL) {
- fprintf(stderr, "No %%dir keyword found before first dependency\n");
- exit(EXIT_FAILURE);
- }
- new_dep = alloc_mem_for_dep(type);
- new_dep->dir = strdup(dir);
- if (new_dep->dir == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- word = malloc(strlen(line) + 1);
- if (word == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- get_word(line, word);
- new_dep->name = strdup(word); // Fill in name of dependency
-
- while (get_word(line, word)) {
- if (word[0] == '@') { /* macro */
- if (strcmp(word, "@pnponly") == 0) {
- new_dep->options |= OPT_PNP_ONLY;
- continue;
- }
- new_dep->macronames = realloc(new_dep->macronames, sizeof(char *) * (new_dep->nummacros + 1));
- if (new_dep->macronames == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- new_dep->macronames[new_dep->nummacros] = strdup(word);
- if (new_dep->macronames[new_dep->nummacros] == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- new_dep->nummacros++;
- continue;
- }
- new_dep->depnames = realloc(new_dep->depnames, sizeof(char *) * (numdeps + 1));
- new_dep->deps = realloc(new_dep->deps, sizeof(dep *) * (numdeps + 1));
- if (new_dep->depnames == NULL || new_dep->deps == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- new_dep->depnames[numdeps] = strdup(word);
- if (new_dep->depnames[numdeps] == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- new_dep->deps[numdeps++] = NULL;
- }
- new_dep->numdeps = numdeps;
- free(word);
- return;
-}
-
-static void add_makefile_text(char **dst, const char *src)
-{
- int len = *dst ? strlen(*dst) : 0;
- char *tmp;
-
- tmp = malloc(len + strlen(src) + 2);
- if (tmp == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- if (*dst) {
- strcpy(tmp, *dst);
- free(*dst);
- } else {
- tmp[0] = 0;
- }
- strcat(tmp, src);
- strcat(tmp, "\n");
- *dst = tmp;
-}
-
-// Parse makefile output description
-static void parse_makefile_outdesc(char *line)
-{
- static enum {
- NONE = 0,
- HEADER = 1,
- FOOTER = 2,
- } command = NONE;
- static makefileMacro *macro = NULL;
- char *word;
-
- word = malloc(strlen(line) + 1);
- if (word == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- get_word(line, word);
- if (macro == NULL) {
- if (!strcmp(word, "group")) {
- get_word(line, word);
- if (word[0] == '\0') {
- fprintf(stderr, "macro group has null name\n");
- exit(EXIT_FAILURE);
- }
- macro = (makefileMacro *) calloc(1, sizeof(makefileMacro));
- if (macro == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- macro->name = strdup(word);
- if (macro->name == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- return;
- } else {
- fprintf(stderr, "Unknown command '%s' for makefile macro section\n", word);
- exit(EXIT_FAILURE);
- }
- }
- if (command == NONE) {
- if (!strcmp(word, "endgroup")) {
- get_word(line, word);
- if (word[0] == '\0') {
- fprintf(stderr, "macro endgroup has null name\n");
- exit(EXIT_FAILURE);
- }
- if (strcmp(macro->name, word)) {
- fprintf(stderr, "endgroup name does not match group name\n");
- exit(EXIT_FAILURE);
- }
- macro->link = makefileMacros;
- makefileMacros = macro;
- macro = NULL;
- return;
- } else if (!strcmp(word, "header")) {
- command = HEADER;
- } else if (!strcmp(word, "footer")) {
- command = FOOTER;
- } else if (!strcmp(word, "indent")) {
- get_word(line, word);
- macro->indent = atoi(word);
- } else if (!strcmp(word, "ignore_in")) {
- get_word(line, word);
- add_makefile_text(¯o->ignore_in, word);
- } else {
- fprintf(stderr, "unknown command %s (none scope)\n", word);
- exit(EXIT_FAILURE);
- }
- } else if (!strcmp(word, "line")) {
- if (command == HEADER)
- add_makefile_text(¯o->header, line);
- else if (command == FOOTER)
- add_makefile_text(¯o->footer, line);
- else {
- fprintf(stderr, "wrong line command usage\n");
- exit(EXIT_FAILURE);
- }
- } else if (!strcmp(word, "endheader")) {
- if (command != HEADER) {
- fprintf(stderr, "wrong endheader command usage\n");
- exit(EXIT_FAILURE);
- }
- command = NONE;
- } else if (!strcmp(word, "endfooter")) {
- if (command != FOOTER) {
- fprintf(stderr, "wrong endfooter command usage\n");
- exit(EXIT_FAILURE);
- }
- command = NONE;
- } else {
- fprintf(stderr, "wrong %s command (%i scope)\n", word, command);
- exit(EXIT_FAILURE);
- }
-}
-
-static dep *alloc_mem_for_dep(Type type)
-{
- dep * firstdep = Deps, * ndep;
-
- ndep = (dep *) calloc(1, sizeof(dep));
- if (ndep == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- ndep->type = type;
- if (!firstdep)
- return Deps = ndep;
- while (firstdep->link)
- firstdep = firstdep->link;
- return firstdep->link = ndep;
-}
-
-// Put the first word in "line" in "word". Put the rest back in "line"
-static char *get_word(char *line, char *word)
-{
- int i, j, c;
- char *full_line;
-
- if (strlen(line) == 0)
- return NULL;
-
- i = 0;
- while (line[i] == ' ' || line[i] == '\t')
- i++;
- c = line[i];
- if (c != '\'' && c != '"') {
- c = ' ';
- } else {
- i++;
- }
-
- if (strlen(line) == i)
- return NULL;
-
- full_line = malloc(strlen(line + i) + 1);
- if (full_line == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- strcpy(full_line, line + i);
- for (i = 0; i < strlen(full_line); i++) {
- if ((c != ' ' && full_line[i] != c) ||
- (c == ' ' && full_line[i] != '\t'
- && full_line[i] != ' '))
- word[i] = full_line[i];
- else {
- // We got the whole word
- word[i++] = '\0';
- while (full_line[i] != '\0' &&
- (full_line[i] == ' ' || full_line[i] == '\t'))
- i++;
- for (j = 0; i < strlen(full_line); i++, j++)
- line[j] = full_line[i];
- line[j] = '\0';
- free(full_line);
- return word;
- }
- }
- // This was the last word
- word[i] = '\0';
- line[0] = '\0';
- free(full_line);
- return word;
-}
-
-// Find the dependency named "depname"
-static dep *find_dep(char *parent, char *depname)
-{
- dep *temp_dep = Deps;
-
- while (temp_dep) {
- // fprintf(stderr, "depname = '%s', name = '%s'\n", depname, temp_dep->name);
- if (!strcmp(depname, temp_dep->name))
- return temp_dep;
- temp_dep = temp_dep->link;
- }
-#ifdef WARNINGS
- fprintf(stderr, "Warning: Unsatisfied dep for %s: %s\n", parent,
- depname);
-#endif
- return NULL;
-}
-
-// Find the macro named "depname"
-static makefileMacro *find_makefileMacro(char *macroname)
-{
- makefileMacro *macro = makefileMacros;
-
- if (!macroname)
- return NULL;
- if (macroname[0] == '-')
- return NULL;
- while (macro) {
- // fprintf(stderr, "macroname = '%s', name = '%s'\n", macroname, macro->name);
- if (!strcmp(macroname, macro->name))
- return macro;
- macro = macro->link;
- }
- return NULL;
-}
-
-// Resolve all dependencies
-static void resolve_dep(dep * parent)
-{
- int idx;
-
- while (parent) {
- for (idx = 0; idx < parent->numdeps; idx++)
- parent->deps[idx] = find_dep(parent->name, parent->depnames[idx]);
- parent = parent->link;
- }
-}
-
-// add a new macro to subdep
-static void add_macro_to_subdep(subdep *subdep, const char *macroname, int add)
-{
- char *str;
- int i;
-
- for (i = 0; i < subdep->nummacros; i++)
- if (!strcmp(subdep->macronames[i], macroname) ||
- (subdep->macronames[i][0] == '-' &&
- !strcmp(subdep->macronames[i] + 1, macroname)))
- return;
- subdep->macronames = realloc(subdep->macronames, sizeof(char *) * (subdep->nummacros + 1));
- if (add) {
- str = strdup(macroname);
- } else {
- str = malloc(strlen(macroname)+2);
- if (str) {
- str[0] = '-';
- strcpy(str+1, macroname);
- }
- }
- if (subdep->macronames == NULL || str == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- subdep->macronames[subdep->nummacros++] = str;
-}
-
-// Fill list[] with all deps for dependency
-static int make_list_of_deps_for_dep1(dep * parent, dep * dependency, subdep **list, int num)
-{
- int i, j;
- int add;
- dep *dep;
- subdep *new_dep, *old_dep;
-
- if (dependency->hitflag) {
- fprintf(stderr, "endless dependency for %s parent %s\n", dependency->name, parent ? parent->name : "(none)");
- exit(EXIT_FAILURE);
- }
- dependency->hitflag = 1;
- for (i = 0; i < dependency->numdeps; i++) {
- dep = dependency->deps[i];
- if (dep) {
- add = 1;
- for (j = 0; j < num; j++) {
- old_dep = &(*list)[j];
- if (!strcmp(old_dep->dep->name, dep->name)) {
- add = 0;
- break;
- }
- }
- if (add) {
- *list = realloc(*list, sizeof(subdep) * (num + 1));
- if (*list == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- new_dep = &((*list)[num++]);
- new_dep->dep = dep;
- new_dep->nummacros = 0;
- new_dep->macronames = NULL;
- for (j = 0; j < dependency->nummacros; j++)
- add_macro_to_subdep(new_dep, dependency->macronames[j], 1);
- for (j = 0; j < dep->nummacros; j++)
- add_macro_to_subdep(new_dep, dep->macronames[j], 1);
- num = make_list_of_deps_for_dep1(dependency, dep, list, num);
- } else {
- for (j = 0; j < dependency->nummacros; j++)
- add_macro_to_subdep(old_dep, dependency->macronames[j], 0);
- for (j = 0; j < dep->nummacros; j++)
- add_macro_to_subdep(old_dep, dep->macronames[j], 0);
- }
- }
- }
- return num;
-}
-
-// Clear all print flags
-static void clear_printflags(void)
-{
- dep *temp_dep = Deps;
-
- while (temp_dep) {
- temp_dep->printflag = 0;
- if (temp_dep->printed) {
- free(temp_dep->printed);
- temp_dep->printed = NULL;
- }
- temp_dep = temp_dep->link;
- }
-}
-
-// Fill list[] with all deps for dependency
-static int make_list_of_deps_for_dep(dep * dependency, subdep **list)
-{
- dep * temp_dep = Deps;
-
- while (temp_dep) {
- temp_dep->hitflag = 0;
- temp_dep = temp_dep->link;
- }
- *list = NULL;
- return make_list_of_deps_for_dep1(NULL, dependency, list, 0);
-}
-
-// Free memory for all deps in Toplevel and Deps
-static void del_all_from_list(void)
-{
- int idx;
- dep *list = Deps, *next;
-
- while (list) {
- next = list->link;
- if (list->depnames) {
- for (idx = 0; idx < list->numdeps; idx++)
- if (list->depnames[idx])
- free(list->depnames[idx]);
- free(list->depnames);
- }
- if (list->macronames) {
- for (idx = 0; idx < list->nummacros; idx++)
- if (list->macronames[idx])
- free(list->macronames[idx]);
- free(list->macronames);
- }
- if (list->name)
- free(list->name);
- if (list->deps)
- free(list->deps);
- free(list);
- list = next;
- }
-}
-
-// Free subdep list memory
-static void free_subdep_list(subdep *list, int num)
-{
- int idx;
-
- if (list == NULL)
- return;
- for (idx = 0; idx < num; idx++) {
- int mac;
- subdep *sdep = &list[idx];
-
- if (sdep->macronames) {
- for (mac = 0; mac < sdep->nummacros; mac++)
- if (sdep->macronames[mac])
- free(sdep->macronames[mac]);
- free(sdep->macronames);
- }
- }
- free(list);
-}
-
-// Print spaces
-static void print_indent(int indent)
-{
- while (indent >= 8) {
- printf("\t");
- indent -= 8;
- }
- while (indent-- > 0)
- printf(" ");
-}
-
-// Check ignore_in
-static int check_ignore_in(makefileMacro *macro, const char *dir)
-{
- char *str;
-
- if (macro == NULL)
- return 1;
- str = macro->ignore_in;
- while (str) {
- if (strlen(str) < strlen(dir))
- return 0;
- if (!strncmp(str, dir, strlen(dir)) && (str[strlen(dir)] == '\0' || str[strlen(dir)] == '\n'))
- return 1;
- while (*str && *str != '\n')
- str++;
- if (*str == '\n')
- str++;
- }
- return 0;
-}
-
-// Add to printed
-static void add_printed(dep *tempdep, const char *name)
-{
- if (!tempdep->printed) {
- tempdep->printed = strdup(name);
- } else {
- tempdep->printed = realloc(tempdep->printed, strlen(tempdep->printed) + strlen(name) + 2);
- strcat(tempdep->printed, " ");
- strcat(tempdep->printed, name);
- }
-}
-
-// Is printed?
-static int is_printed(dep *tempdep, const char *name)
-{
- char *str = tempdep->printed;
-
- if (str == NULL)
- return 0;
- while (*str) {
- if (!strncmp(str, name, strlen(name)) &&
- (str[strlen(name)] == ' ' || str[strlen(name)] == '\0'))
- return 1;
- while (*str && *str != ' ')
- str++;
- if (*str == ' ')
- str++;
- }
- return 0;
-}
-
-// Output in Makefile.in format
-static void output_makefile1(const char *dir, int all)
-{
- dep *tempdep;
- subdep *list;
- char *text;
- int num, idx, midx, vidx, lidx, first, mfirst, macroloop, indent;
- int nummacros = 0, indir = 0;
- makefileMacro **macros = NULL;
-
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (!all && tempdep->type != TYPE_TOPLEVEL)
- continue;
- if (tempdep->printflag)
- continue;
- indir = !dir || !strcmp(dir, tempdep->dir);
- for (midx = 0; midx < tempdep->nummacros; midx++) {
- makefileMacro *macro = find_makefileMacro(tempdep->macronames[midx++]);
- if (check_ignore_in(macro, dir))
- continue;
- for (vidx = 0; vidx < nummacros; vidx++) {
- if (macros[vidx] == macro)
- break;
- }
- if (vidx >= nummacros) {
- macros = (makefileMacro **)realloc(macros, sizeof(makefileMacro *) * (nummacros + 1));
- if (macros == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- macros[nummacros++] = macro;
- }
- if (macro != NULL)
- goto __out1_1;
- }
- first = 1;
- num = make_list_of_deps_for_dep(tempdep, &list);
- for (idx = 0; idx < num; idx++) {
- subdep *ldep = &list[idx];
- if (dir && strcmp(dir, ldep->dep->dir))
- continue;
- for (midx = 0; midx < ldep->nummacros; midx++) {
- makefileMacro *macro;
- macro = find_makefileMacro(ldep->macronames[midx++]);
- if (check_ignore_in(macro, dir))
- continue;
- for (vidx = 0; vidx < nummacros; vidx++) {
- if (macros[vidx] == macro)
- break;
- }
- if (vidx >= nummacros) {
- macros = (makefileMacro **)realloc(macros, sizeof(makefileMacro *) * (nummacros + 1));
- if (macros == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- macros[nummacros++] = macro;
- }
- if (macro != NULL)
- goto __out1;
- }
- if (is_printed(tempdep, ldep->dep->name))
- goto __out1;
- if (first) {
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("obj-$(%s) +=", text);
- free(text);
- tempdep->printflag = 1;
- first = 0;
- if (indir)
- printf(" %s.o", tempdep->name);
- }
- add_printed(tempdep, ldep->dep->name);
- printf(" %s.o", ldep->dep->name);
- }
- __out1:
- free_subdep_list(list, num);
- if (!first)
- printf("\n");
- if (first && indir) {
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("obj-$(%s) += %s.o\n", text, tempdep->name);
- free(text);
- tempdep->printflag = 1;
- }
- }
- __out1_1:
- if (nummacros == 0)
- macroloop = 0;
- else {
- macroloop = 1;
- for (idx = 1; idx < nummacros; idx++)
- macroloop <<= 1;
- }
- for (lidx = 1; lidx <= macroloop; lidx++) {
- indent = 0;
- mfirst = 1;
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (!all && tempdep->type != TYPE_TOPLEVEL)
- continue;
- indir = !dir || !strcmp(dir, tempdep->dir);
- first = 1;
- for (midx = 0; midx < tempdep->nummacros; midx++) {
- makefileMacro *macro = find_makefileMacro(tempdep->macronames[midx]);
- if (macro == NULL)
- goto __ok2_2;
- for (vidx = 0; vidx < nummacros; vidx++) {
- if (!(lidx & (1 << vidx)))
- continue;
- if (macro == macros[vidx])
- goto __ok2_2;
- }
- goto __out2_2;
- }
- __ok2_2:
- num = make_list_of_deps_for_dep(tempdep, &list);
- for (idx = 0; idx < num; idx++) {
- subdep *ldep = &list[idx];
- if (!ldep->nummacros)
- continue;
- if (dir && strcmp(dir, ldep->dep->dir))
- continue;
- for (midx = 0; midx < ldep->nummacros; midx++) {
- makefileMacro *macro = find_makefileMacro(ldep->macronames[midx]);
- if (macro == NULL)
- goto __ok2;
- for (vidx = 0; vidx < nummacros; vidx++) {
- if (!(lidx & (1 << vidx)))
- continue;
- if (macro == macros[vidx])
- goto __ok2;
- }
- goto __out2;
- }
- __ok2:
- if (is_printed(tempdep, ldep->dep->name))
- goto __out2;
- if (first) {
- if (mfirst) {
- for (vidx = 0; vidx < nummacros; vidx++) {
- makefileMacro *macro;
- if (!(lidx & (1 << vidx)))
- continue;
- macro = macros[vidx];
- if (macro->header) {
- print_indent(indent);
- printf(macro->header);
- }
- indent += macro->indent;
- }
- mfirst = 0;
- }
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- print_indent(indent);
- printf("obj-$(%s) +=", text);
- free(text);
- first = 0;
- if (!tempdep->printflag && indir)
- printf(" %s.o", tempdep->name);
- }
- add_printed(tempdep, ldep->dep->name);
- printf(" %s.o", ldep->dep->name);
- }
- __out2:
- free_subdep_list(list, num);
- if (!first)
- printf("\n");
- }
- __out2_2:
- if (!mfirst) {
- for (vidx = 0; vidx < nummacros; vidx++) {
- makefileMacro *macro;
- if (!(lidx & (1 << vidx)))
- continue;
- macro = macros[vidx];
- indent -= macro->indent;
- if (macro->footer) {
- print_indent(indent);
- printf(macro->footer);
- }
- }
- }
- }
-}
-
-// Output in Makefile.in format
-static void output_makefile(const char *dir, int all)
-{
- printf("# Toplevel Module Dependency\n");
- clear_printflags();
- output_makefile1(dir, all);
-}
-
-// Print out ALL deps for firstdep (Cards, Deps)
-void output_card_list(dep *firstdep, int space, int size)
-{
- dep *temp_dep=firstdep;
- char *card_name;
- int tmp_size = 0, first = 1, idx;
-
- printf(" [");
- for (idx = 0; idx < space; idx++)
- printf(" ");
- while(temp_dep) {
- if (temp_dep->type == TYPE_TOPLEVEL) {
- card_name=get_card_name(temp_dep->name);
- if (!first) {
- printf(", ");
- tmp_size += 2;
- } else {
- first = 0;
- }
- if (tmp_size + strlen(card_name) + 2 > size) {
- printf("]\n [");
- for (idx = 0; idx < space; idx++)
- printf(" ");
- tmp_size = 0;
- }
- printf(card_name);
- tmp_size += strlen(card_name);
- free(card_name);
- }
- temp_dep=temp_dep->link;
- }
-}
-
-// Output in acinlude.m4
-static void output_acinclude(void)
-{
- dep *tempdep;
- char *text;
-
- printf("dnl ALSA soundcard configuration\n");
- printf("dnl Find out which cards to compile driver for\n");
- printf("dnl Copyright (c) by Anders Semb Hermansen <ahermans@vf.telia.no>,\n");
- printf("dnl Jaroslav Kysela <perex@suse.cz>\n\n");
-
- printf("AC_DEFUN(ALSA_TOPLEVEL_INIT, [\n");
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (tempdep->type != TYPE_TOPLEVEL)
- continue;
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("\t%s=\"\"\n", text);
- free(text);
- }
- printf("])\n\n");
-
- printf("AC_DEFUN(ALSA_TOPLEVEL_ALL, [\n");
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- int put_if = 1;
- if (tempdep->type != TYPE_TOPLEVEL)
- continue;
- if (tempdep->options & OPT_PNP_ONLY)
- printf("\tif test \"$CONFIG_ISAPNP\" = \"y\"; then\n");
- else if (strstr(tempdep->name, "pc98")) /* exception... */
- printf("\tif test \"$CONFIG_X86_PC9800\" = \"y\"; then\n");
- else if (strstr(tempdep->dir, "/isa"))
- printf("\tif test \"$CONFIG_ISA\" = \"y\"; then\n");
- else if (strstr(tempdep->dir, "/pci"))
- printf("\tif test \"$CONFIG_PCI\" = \"y\"; then\n");
- else if (strstr(tempdep->dir, "/usb"))
- printf("\tif test \"$CONFIG_USB\" = \"y\"; then\n");
- else if (strstr(tempdep->dir, "/ppc"))
- printf("\tif test \"$CONFIG_PPC\" = \"y\"; then\n");
- else if (strstr(tempdep->dir, "/arm"))
- printf("\tif test \"$CONFIG_ARM\" = \"y\"; then\n");
- else if (strstr(tempdep->dir, "/parisc"))
- printf("\tif test \"$CONFIG_PARISC\" = \"y\"; then\n");
- else if (strstr(tempdep->dir, "/pcmcia"))
- printf("\tif test \"$CONFIG_PCMCIA\" = \"y\"; then\n");
- else
- put_if = 0;
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("\t%s=\"m\"\n", text);
- printf("\tAC_DEFINE(%s_MODULE)\n", text);
- if (put_if)
- printf("\tfi\n");
- free(text);
- }
- printf("])\n\n");
-
- printf("AC_DEFUN(ALSA_TOPLEVEL_SELECT, [\n");
- printf("dnl Check for which cards to compile driver for...\n");
- printf("AC_MSG_CHECKING(for which soundcards to compile driver for)\n");
- printf("AC_ARG_WITH(cards,\n\
- [ --with-cards=<list> compile driver for cards in <list>; ]\n\
- [ cards may be separated with commas; ]\n\
- [ 'all' compiles all drivers; ]\n\
- [ Possible cards are: ]\n");
- output_card_list(Deps, 24, 50);
- printf(" ],\n");
- printf(" cards=\"$withval\", cards=\"all\")\n");
- printf("if test \"$cards\" = \"all\"; then\n");
- printf(" ALSA_TOPLEVEL_ALL\n");
- printf(" AC_MSG_RESULT(all)\n");
- printf("else\n");
- printf(" cards=`echo $cards | sed 's/,/ /g'`\n");
- printf(" for card in $cards\n");
- printf(" do\n");
- printf(" case \"$card\" in\n");
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (tempdep->type != TYPE_TOPLEVEL)
- continue;
- text = get_card_name(tempdep->name);
- printf("\t%s)\n", text);
- free(text);
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("\t\t%s=\"m\"\n", text);
- printf("\t\tAC_DEFINE(%s_MODULE)\n", text);
- printf("\t\t;;\n");
- free(text);
- }
- printf("\t*)\n");
- printf("\t\techo \"Unknown soundcard $card, exiting!\"\n");
- printf("\t\texit 1\n");
- printf("\t\t;;\n");
- printf(" esac\n");
- printf(" done\n");
- printf(" AC_MSG_RESULT($cards)\n");
- printf("fi\n");
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (tempdep->type != TYPE_TOPLEVEL)
- continue;
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("AC_SUBST(%s)\n", text);
- free(text);
- }
- printf("])\n\n");
-}
-
-// Output in toplevel.conf
-static void output_makeconf(void)
-{
- dep *tempdep;
- char *text;
-
- printf("# Soundcard configuration for ALSA driver\n");
- printf("# Copyright (c) by Anders Semb Hermansen <ahermans@vf.telia.no>,\n");
- printf("# Jaroslav Kysela <perex@suse.cz>\n\n");
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (tempdep->type != TYPE_TOPLEVEL)
- continue;
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("%s=@%s@\n", text, text);
- free(text);
- }
-}
-
-// Output in config.h
-static void output_include(void)
-{
- dep *tempdep;
- char *text;
-
- printf("/* Soundcard configuration for ALSA driver */\n");
- printf("/* Copyright (c) by Anders Semb Hermansen <ahermans@vf.telia.no>, */\n");
- printf("/* Jaroslav Kysela <perex@suse.cz> */\n\n");
- for (tempdep = Deps; tempdep; tempdep = tempdep->link) {
- if (tempdep->type != TYPE_TOPLEVEL)
- continue;
- text = convert_to_config_uppercase("CONFIG_", tempdep->name);
- printf("#undef %s_MODULE\n", text);
- free(text);
- }
-}
-
-// example: snd-sb16 -> CONFIG_SND_SB16
-static char *convert_to_config_uppercase(const char *pre, const char *line)
-{
- char *holder, *p;
- int i;
-
- holder = malloc(strlen(line) * 2 + strlen(pre) + 1);
- if (holder == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- p = strcpy(holder, pre) + strlen(pre);
- for (i = 0; i < strlen(line); i++)
- switch (line[i]) {
- case '-':
- *p++ = '_';
- break;
- default:
- *p++ = toupper(line[i]);
- break;
- }
-
- *p++ = '\0';
-
- return holder;
-}
-
-#if 0
-// example: a'b -> a\'b
-static char *convert_to_escape(const char *line)
-{
- char *holder, *p;
- int i;
-
- holder = malloc(strlen(line) + 1);
- if (holder == NULL) {
- fprintf(stderr, "No enough memory\n");
- exit(EXIT_FAILURE);
- }
- p = holder;
- for (i = 0; i < strlen(line); i++)
- switch (line[i]) {
- case '\'':
- *p++ = '`';
- break;
- default:
- *p++ = line[i];
- break;
- }
-
- *p++ = '\0';
-
- return holder;
-}
-#endif
-
-// example: snd-sb16 -> sb16
-static char *remove_word(const char *remove, const char *line)
-{
- char *holder;
- int i;
-
- holder=malloc(strlen(line)-strlen(remove)+1);
- if(holder==NULL)
- {
- fprintf(stderr, "Not enough memory\n");
- exit(EXIT_FAILURE);
- }
-
- for(i=strlen(remove);i<strlen(line);i++)
- holder[i-strlen(remove)]=line[i];
-
- holder[i-strlen(remove)]='\0';
-
- return holder;
-}
-
-// example: snd-sb16 -> sb16
-static char *get_card_name(const char *line)
-{
- if (strncmp(line, "snd-", 4)) {
- fprintf(stderr, "Invalid card name '%s'\n", line);
- exit(EXIT_FAILURE);
- }
- return remove_word("snd-", line);
-}
-
-// Main function
-int main(int argc, char *argv[])
-{
- int method = METHOD_MAKEFILE;
- int argidx = 1, all = 0;
- char *filename, *dir = NULL;
-
- // Find out which method to use
- if (argc < 2)
- usage(argv[0]);
- if (strcmp(argv[argidx], "--makefile") == 0)
- method = METHOD_MAKEFILE;
- else if (strcmp(argv[argidx], "--acinclude") == 0)
- method = METHOD_ACINCLUDE;
- else if (strcmp(argv[argidx], "--makeconf") == 0)
- method = METHOD_MAKECONF;
- else if (strcmp(argv[argidx], "--include") == 0)
- method = METHOD_INCLUDE;
- else
- usage(argv[0]);
- argidx++;
-
- if (method == METHOD_MAKEFILE) {
- // Select directory
- if (argc > argidx && strcmp(argv[argidx], "--dir") == 0) {
- if (argc > ++argidx)
- dir = argv[argidx++];
- else
- dir = NULL;
- } else
- dir = NULL;
-
- // Select all dependencies
- if (argc > argidx && strcmp(argv[argidx], "--all") == 0) {
- argidx++;
- all = 1;
- } else
- all = 0;
- }
-
- // Check the filename
- if (argc > argidx)
- filename = argv[argidx++];
- else
- filename = NULL;
-
- // Read the file into memory
- if (read_file(filename) < 0) {
- fprintf(stderr, "Error reading %s: %s",
- filename ? filename : "stdin", strerror(errno));
- exit(EXIT_FAILURE);
- }
- // Resolve dependencies
- resolve_dep(Deps);
-
- // Use method
- switch (method) {
- case METHOD_MAKEFILE:
- output_makefile(dir, all);
- break;
- case METHOD_ACINCLUDE:
- output_acinclude();
- break;
- case METHOD_MAKECONF:
- output_makeconf();
- break;
- case METHOD_INCLUDE:
- output_include();
- break;
- default:
- fprintf(stderr, "This should not happen!\n");
- usage(argv[0]);
- break;
- }
-
- // Free some memory
- del_all_from_list();
-
- exit(EXIT_SUCCESS);
-}
-
-// Print out syntax
-static void usage(char *programname)
-{
- fprintf(stderr, "Usage: %s --makefile --dir directory <cfgfile>\n", programname);
- fprintf(stderr, " %s --acinclude <cfgfile>\n", programname);
- fprintf(stderr, " %s --makeconf <cfgfile>\n", programname);
- exit(EXIT_FAILURE);
-}
Index: debian/alsa-driver/alsa-kernel/scripts/mod-deps.h
diff -u debian/alsa-driver/alsa-kernel/scripts/mod-deps.h:1.1.1.1 debian/alsa-driver/alsa-kernel/scripts/mod-deps.h:removed
--- debian/alsa-driver/alsa-kernel/scripts/mod-deps.h:1.1.1.1 Sun Dec 30 02:26:48 2001
+++ debian/alsa-driver/alsa-kernel/scripts/mod-deps.h Tue Apr 13 13:39:27 2004
@@ -1,90 +0,0 @@
-/*
- * Utility to find soundcard dependencies from modules.config
- * Copyright (c) by Anders Semb Hermansen <ahermans@vf.telia.no>,
- * Martin Dahl <dahlm@vf.telia.no>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#ifndef __SND_DEPS_H__
-#define __SND_DEPS_H__
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-// Defines
-#define MODULEDEPFILE "../modules.config" // modules.config filename
-#define MODULENAME_MAXLENGTH 30 // Maximum length of module name
-#define WARNINGS // Output warnings to stderr
-
-#define METHOD_ACINCLUDE 1 // Output method
-#define METHOD_MAKEFILE 2
-#define METHOD_CINCLUDE 3
-#define METHOD_CONFIGIN 4
-
-#define TYPE_CARDS 1
-#define TYPE_DEPS 2
-
-// Typedefs
-typedef char depname[MODULENAME_MAXLENGTH];
-
-typedef struct depStruct
-{
- depname name;
- char *comment;
- int numdeps;
- struct depStruct **deps;
- struct depStruct *link;
-} dep;
-
-// Globals
-extern dep *Cards; // All cards
-extern dep *Deps; // All other modules
-
-// Prototypes
-
-// snd-deps-output.c
-int main(int argc, char *argv[]);
-void usage(char *programname);
-void output_acinclude(void);
-void output_makefile(void);
-void output_cinclude(void);
-void output_configin(void);
-void output_need_bool(const char *dst, const char *src, int no_default);
-void output_dep(dep *firstdep, char *format, int num);
-void output1_dep(dep *firstdep);
-void output2_dep(dep *firstdep);
-void output_card(dep *firstdep, char *card_format, char *dep_format);
-void output_card_list(dep *firstdep, int space, int size);
-void output1_card(dep *firstdep);
-char *convert_to_config_uppercase(const char *pre, const char *line);
-char *convert_to_escape(const char *line);
-char *remove_word(const char *remove, const char *line);
-char *get_card_name(const char *line);
-
-// snd-deps-find.c
-int read_file(char *filename);
-void add_dep(char *line, dep *firstdep, short type);
-dep *alloc_mem_for_dep(dep *firstdep, short type);
-char *get_word(char *line, char *word);
-dep *find_dep(char *parent, char *depname);
-int make_list_of_deps_for_dep(dep *dependency, depname list[], int num);
-void del_all_from_list(void);
-
-#endif // __SND_DEPS_H__
Index: debian/alsa-driver/alsa-kernel/scripts/patch-2.5
diff -u debian/alsa-driver/alsa-kernel/scripts/patch-2.5:1.1.1.1 debian/alsa-driver/alsa-kernel/scripts/patch-2.5:removed
--- debian/alsa-driver/alsa-kernel/scripts/patch-2.5:1.1.1.1 Sat Feb 2 12:05:19 2002
+++ debian/alsa-driver/alsa-kernel/scripts/patch-2.5 Tue Apr 13 13:39:27 2004
@@ -1,266 +0,0 @@
-diff -ruN linux-2.5.2-pre1/MAINTAINERS linux/MAINTAINERS
---- linux-2.5.2-pre1/MAINTAINERS Sun Dec 23 16:47:36 2001
-+++ linux/MAINTAINERS Sun Dec 23 18:21:22 2001
-@@ -1374,6 +1374,12 @@
- L: linux-net@vger.kernel.org
- S: Maintained
-
-+SOUND - ALSA
-+P: Jaroslav Kysela
-+M: perex@suse.cz
-+L: alsa-devel@alsa-project.org
-+S: Maintained
-+
- SOUND
- P: Alan Cox
- M: alan@redhat.com
---- linux-2.5.3pre6/Makefile.orig Wed Jan 30 18:46:08 2002
-+++ linux-2.5.3pre6/Makefile Wed Jan 30 18:57:26 2002
-@@ -122,7 +122,7 @@
- NETWORKS =net/network.o
-
- LIBS =$(TOPDIR)/lib/lib.a
--SUBDIRS =kernel lib drivers mm fs net ipc
-+SUBDIRS =kernel lib drivers mm fs net ipc sound
-
- DRIVERS-n :=
- DRIVERS-y :=
-@@ -157,7 +157,7 @@
- DRIVERS-y += drivers/cdrom/driver.o
- endif
-
--DRIVERS-$(CONFIG_SOUND) += drivers/sound/sounddrivers.o
-+DRIVERS-$(CONFIG_SOUND) += sound/sound.o
- DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o
- DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o
- DRIVERS-$(CONFIG_PCMCIA) += drivers/pcmcia/pcmcia.o
-@@ -199,7 +199,7 @@
- drivers/char/drm/*-mod.c \
- drivers/pci/devlist.h drivers/pci/classlist.h drivers/pci/gen-devlist \
- drivers/zorro/devlist.h drivers/zorro/gen-devlist \
-- drivers/sound/bin2hex drivers/sound/hex2hex \
-+ sound/oss/bin2hex sound/oss/hex2hex \
- drivers/atm/fore200e_mkfirm drivers/atm/{pca,sba}*{.bin,.bin1,.bin2} \
- drivers/scsi/aic7xxx/aicasm/aicasm_gram.c \
- drivers/scsi/aic7xxx/aicasm/aicasm_scan.c \
-@@ -220,11 +220,11 @@
- drivers/net/hamradio/soundmodem/sm_tbl_{hapn4800,psk4800}.h \
- drivers/net/hamradio/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h \
- drivers/net/hamradio/soundmodem/gentbl \
-- drivers/sound/*_boot.h drivers/sound/.*.boot \
-- drivers/sound/msndinit.c \
-- drivers/sound/msndperm.c \
-- drivers/sound/pndsperm.c \
-- drivers/sound/pndspini.c \
-+ sound/oss/*_boot.h sound/oss/.*.boot \
-+ sound/oss/msndinit.c \
-+ sound/oss/msndperm.c \
-+ sound/oss/pndsperm.c \
-+ sound/oss/pndspini.c \
- drivers/atm/fore200e_*_fw.c drivers/atm/.fore200e_*.fw \
- .version .config* config.in config.old \
- scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp \
-@@ -339,7 +339,7 @@
- init/do_mounts.o: init/do_mounts.c include/config/MARKER
- $(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -c -o $*.o $<
-
--fs lib mm ipc kernel drivers net: dummy
-+fs lib mm ipc kernel drivers net sound: dummy
- $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@)
-
- TAGS: dummy
-diff -ruN linux-2.5.2-pre1/Rules.make linux/Rules.make
---- linux-2.5.2-pre1/Rules.make Wed Mar 7 04:31:01 2001
-+++ linux/Rules.make Sun Dec 23 18:20:06 2001
-@@ -206,6 +206,8 @@
- ifneq "$(strip $(export-objs))" ""
-
- MODINCL = $(TOPDIR)/include/linux/modules
-+MODCURDIR = $(subst $(TOPDIR)/,,$(shell /bin/pwd))
-+MODPREFIX = $(subst /,-,$(MODCURDIR))__
-
- # The -w option (enable warnings) for genksyms will return here in 2.1
- # So where has it gone?
-@@ -220,20 +222,20 @@
- genksyms_smp_prefix :=
- endif
-
--$(MODINCL)/%.ver: %.c
-- @if [ ! -r $(MODINCL)/$*.stamp -o $(MODINCL)/$*.stamp -ot $< ]; then \
-+$(MODINCL)/$(MODPREFIX)%.ver: %.c
-+ @if [ ! -r $(MODINCL)/$(MODPREFIX)$*.stamp -o $(MODINCL)/$(MODPREFIX)$*.stamp -ot $< ]; then \
- echo '$(CC) $(CFLAGS) $(EXTRA_CFLAGS) -E -D__GENKSYMS__ $<'; \
- echo '| $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp'; \
- $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -E -D__GENKSYMS__ $< \
- | $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp; \
- if [ -r $@ ] && cmp -s $@ $@.tmp; then echo $@ is unchanged; rm -f $@.tmp; \
- else echo mv $@.tmp $@; mv -f $@.tmp $@; fi; \
-- fi; touch $(MODINCL)/$*.stamp
-+ fi; touch $(MODINCL)/$(MODPREFIX)$*.stamp
-
--$(addprefix $(MODINCL)/,$(export-objs:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h
-+$(addprefix $(MODINCL)/$(MODPREFIX),$(export-objs:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h
-
- # updates .ver files but not modversions.h
--fastdep: $(addprefix $(MODINCL)/,$(export-objs:.o=.ver))
-+fastdep: $(addprefix $(MODINCL)/$(MODPREFIX),$(export-objs:.o=.ver))
-
- # updates .ver files and modversions.h like before (is this needed?)
- dep: fastdep update-modverfile
-diff -ruN linux-2.5.2-pre1/arch/alpha/config.in linux/arch/alpha/config.in
---- linux-2.5.2-pre1/arch/alpha/config.in Wed Nov 21 00:49:31 2001
-+++ linux/arch/alpha/config.in Sun Dec 23 18:20:06 2001
-@@ -364,7 +364,7 @@
-
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
-
-diff -ruN linux-2.5.2-pre1/arch/arm/config.in linux/arch/arm/config.in
---- linux-2.5.2-pre1/arch/arm/config.in Fri Nov 9 22:58:02 2001
-+++ linux/arch/arm/config.in Sun Dec 23 18:20:06 2001
-@@ -575,7 +575,7 @@
-
- tristate 'Sound support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
- fi
-diff -ruN linux-2.5.2-pre1/arch/cris/config.in linux/arch/cris/config.in
---- linux-2.5.2-pre1/arch/cris/config.in Mon Oct 15 22:42:14 2001
-+++ linux/arch/cris/config.in Sun Dec 23 18:20:06 2001
-@@ -236,7 +236,7 @@
-
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
-
-diff -ruN linux-2.5.2-pre1/arch/i386/config.in linux/arch/i386/config.in
---- linux-2.5.2-pre1/arch/i386/config.in Mon Nov 12 20:58:08 2001
-+++ linux/arch/i386/config.in Sun Dec 23 18:20:06 2001
-@@ -386,7 +386,7 @@
-
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
-
-diff -ruN linux-2.5.2-pre1/arch/ia64/config.in linux/arch/ia64/config.in
---- linux-2.5.2-pre1/arch/ia64/config.in Fri Nov 9 23:26:17 2001
-+++ linux/arch/ia64/config.in Sun Dec 23 18:20:06 2001
-@@ -228,7 +228,7 @@
-
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
-
-diff -ruN linux-2.5.2-pre1/arch/m68k/config.in linux/arch/m68k/config.in
---- linux-2.5.2-pre1/arch/m68k/config.in Tue Jun 12 04:15:27 2001
-+++ linux/arch/m68k/config.in Sun Dec 23 18:20:06 2001
-@@ -527,7 +527,7 @@
-
- tristate 'Sound support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/dmasound/Config.in
-+ source sound/oss/dmasound/Config.in
- fi
- endmenu
-
-diff -ruN linux-2.5.2-pre1/arch/mips/config.in linux/arch/mips/config.in
---- linux-2.5.2-pre1/arch/mips/config.in Mon Oct 15 22:41:34 2001
-+++ linux/arch/mips/config.in Sun Dec 23 18:20:06 2001
-@@ -492,7 +492,7 @@
-
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
- fi
-diff -ruN linux-2.5.2-pre1/arch/mips64/config.in linux/arch/mips64/config.in
---- linux-2.5.2-pre1/arch/mips64/config.in Sun Sep 9 19:43:02 2001
-+++ linux/arch/mips64/config.in Sun Dec 23 18:20:06 2001
-@@ -251,7 +251,7 @@
-
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
-
-diff -ruN linux-2.5.2-pre1/arch/parisc/config.in linux/arch/parisc/config.in
---- linux-2.5.2-pre1/arch/parisc/config.in Wed Apr 18 02:19:25 2001
-+++ linux/arch/parisc/config.in Sun Dec 23 18:20:06 2001
-@@ -178,7 +178,7 @@
- comment 'Sound Drivers'
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
-
-diff -ruN linux-2.5.2-pre1/arch/ppc/config.in linux/arch/ppc/config.in
---- linux-2.5.2-pre1/arch/ppc/config.in Fri Nov 16 19:10:08 2001
-+++ linux/arch/ppc/config.in Sun Dec 23 18:20:06 2001
-@@ -366,8 +366,8 @@
- comment 'Sound'
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/dmasound/Config.in
-- source drivers/sound/Config.in
-+ source sound/oss/dmasound/Config.in
-+ source sound/Config.in
- fi
-
- endmenu
-diff -ruN linux-2.5.2-pre1/arch/sh/config.in linux/arch/sh/config.in
---- linux-2.5.2-pre1/arch/sh/config.in Tue Dec 11 19:10:18 2001
-+++ linux/arch/sh/config.in Sun Dec 23 18:20:06 2001
-@@ -373,7 +373,7 @@
-
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
-
-diff -ruN linux-2.5.2-pre1/arch/sparc64/config.in linux/arch/sparc64/config.in
---- linux-2.5.2-pre1/arch/sparc64/config.in Tue Nov 13 18:16:05 2001
-+++ linux/arch/sparc64/config.in Sun Dec 23 18:20:06 2001
-@@ -276,7 +276,7 @@
-
- tristate 'Sound card support' CONFIG_SOUND
- if [ "$CONFIG_SOUND" != "n" ]; then
-- source drivers/sound/Config.in
-+ source sound/Config.in
- fi
- endmenu
-
---- linux-2.5.3pre6/drivers/Makefile.orig Wed Jan 30 18:46:09 2002
-+++ linux-2.5.3pre6/drivers/Makefile Wed Jan 30 18:55:19 2002
-@@ -10,7 +10,7 @@
- message/i2o message/fusion scsi md ieee1394 pnp isdn atm \
- fc4 net/hamradio i2c acpi bluetooth
-
--subdir-y := base parport char block net sound misc media cdrom hotplug
-+subdir-y := base parport char block net misc media cdrom hotplug
- subdir-m := $(subdir-y)
-
-
Index: debian/alsa-driver/configure
diff -u debian/alsa-driver/configure:1.22 debian/alsa-driver/configure:1.23
--- debian/alsa-driver/configure:1.22 Sun Feb 29 17:13:51 2004
+++ debian/alsa-driver/configure Tue Apr 13 13:39:25 2004
@@ -271,7 +271,7 @@
ac_unique_file="acore/sound.patch"
ac_default_prefix=/usr
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR AS CPP EGREP SRCDIR CROSS_COMPILE CONFIG_SND_KERNELDIR kaversion kversion kpatchlevel ksublevel kextraversion NEW_KBUILD CONFIG_SND_MVERSION CONFIG_PCI CONFIG_SGI moddir modsubdir moddir_tree processor LD CONFIG_X86 CONFIG_ALPHA CONFIG_L3 CONFIG_ARM CONFIG_PPC CONFIG_ISA CONFIG_PARISC CONFIG_SND_BIT32_EMUL msmp CONFIG_VIDEO_DEV CONFIG_ISAPNP_KERNEL CONFIG_PNP_KERNEL CONFIG_ISAPNP CONFIG_PNP CONFIG_SND_VERSION CONFIG_SND_DATE CONFIG_SND_SEQUENCER CONFIG_SND_OSSEMUL CONFIG_SND_RTCTIMER CONFIG_RTC CONFIG_USB CONFIG_PCMCIA CONFIG_X86_PC9800 CONFIG_SND_DUMMY CONFIG_SND_VIRMIDI CONFIG_SND_SERIAL_U16550 CONFIG_SND_MTPAV CONFIG_SND_MPU401 CONFIG_SND_ALS100 CONFIG_SND_AZT2320 CONFIG_SND_CMI8330 CONFIG_SND_DT019X CONFIG_SND_ES18XX CONFIG_SND_OPL3SA2 CONFIG_SND_SGALAXY CONFIG_SND_SSCAPE CONFIG_SND_AD1816A CONFIG_SND_AD1848 CONFIG_SND_CS4231 CONFIG_SND_CS4232 CONFIG_SND_CS4236 CONFIG_SND_PC98_CS4232 CONFIG_SND_ES1688 CONFIG_SND_GUSCLASSIC CONFIG_SND_GUSMAX CONFIG_SND_GUSEXTREME CONFIG_SND_INTERWAVE CONFIG_SND_INTERWAVE_STB CONFIG_SND_OPTI92X_AD1848 CONFIG_SND_OPTI92X_CS4231 CONFIG_SND_OPTI93X CONFIG_SND_SB8 CONFIG_SND_SB16 CONFIG_SND_SBAWE CONFIG_SND_ES968 CONFIG_SND_WAVEFRONT CONFIG_SND_ALS4000 CONFIG_SND_AZT3328 CONFIG_SND_BT87X CONFIG_SND_CMIPCI CONFIG_SND_CS4281 CONFIG_SND_ENS1370 CONFIG_SND_ENS1371 CONFIG_SND_ES1938 CONFIG_SND_ES1968 CONFIG_SND_FM801 CONFIG_SND_INTEL8X0 CONFIG_SND_MAESTRO3 CONFIG_SND_RME32 CONFIG_SND_RME96 CONFIG_SND_SONICVIBES CONFIG_SND_VIA82XX CONFIG_SND_ALI5451 CONFIG_SND_CS46XX CONFIG_SND_EMU10K1 CONFIG_SND_ICE1712 CONFIG_SND_ICE1724 CONFIG_SND_KORG1212 CONFIG_SND_MIXART CONFIG_SND_NM256 CONFIG_SND_RME9652 CONFIG_SND_HDSP CONFIG_SND_TRIDENT CONFIG_SND_VX222 CONFIG_SND_YMFPCI CONFIG_SND_POWERMAC CONFIG_SND_SA11XX_UDA1341 CONFIG_SND_USB_AUDIO CONFIG_SND_HARMONY CONFIG_SND_VXPOCKET CONFIG_SND_VXP440 CONFIG_SND_SERIALMIDI CONFIG_SND_INTEL8X0M CONFIG_SND_HDSPM CONFIG_SND_ATIIXP CONFIG_SND_PDPLUS CONFIG_SND_MSND_PINNACLE CONFIG_SND_PDAUDIOCF CONFIG_SND_USB_USX2Y CONFIG_SND_AU8810 CONFIG_SND_AU8820 CONFIG_SND_AU8830 c_opts m_opts GENKSYMS EXTRA_INCLUDES KERNEL_INC LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR AS CPP EGREP SRCDIR CROSS_COMPILE CONFIG_SND_KERNELDIR kaversion kversion kpatchlevel ksublevel kextraversion NEW_KBUILD CONFIG_SND_MVERSION CONFIG_PCI CONFIG_EXPERIMENTAL CONFIG_SGI moddir modsubdir moddir_tree processor LD CONFIG_X86 CONFIG_ALPHA CONFIG_L3 CONFIG_ARM CONFIG_PPC CONFIG_ISA CONFIG_PARISC CONFIG_SND_BIT32_EMUL msmp CONFIG_VIDEO_DEV CONFIG_ISAPNP_KERNEL CONFIG_PNP_KERNEL CONFIG_ISAPNP CONFIG_PNP CONFIG_SND_VERSION CONFIG_SND_DATE CONFIG_SND_SEQUENCER CONFIG_SND_RTCTIMER CONFIG_RTC CONFIG_USB CONFIG_PCMCIA CONFIG_X86_PC9800 CONFIG_SOUND CONFIG_SND CONFIG_SPARC64 CONFIG_PPC64 CONFIG_X86_64 CONFIG_IA32_EMULATION CONFIG_SND_TIMER CONFIG_SND_PCM CONFIG_SND_HWDEP CONFIG_SND_RAWMIDI CONFIG_SND_SEQ_DUMMY CONFIG_SND_OSSEMUL CONFIG_SND_MIXER_OSS CONFIG_SND_PCM_OSS CONFIG_SND_SEQUENCER_OSS CONFIG_SND_VERBOSE_PRINTK CONFIG_SND_DEBUG CONFIG_SND_DEBUG_MEMORY CONFIG_SND_DEBUG_DETECT CONFIG_SND_MPU401_UART CONFIG_SND_OPL3_LIB CONFIG_SND_OPL4_LIB CONFIG_SND_VX_LIB CONFIG_SND_DUMMY CONFIG_SND_VIRMIDI CONFIG_SND_MTPAV CONFIG_SND_SERIAL_U16550 CONFIG_SND_MPU401 CONFIG_SND_SERIALMIDI CONFIG_SND_AD1816A CONFIG_SND_AD1848 CONFIG_SND_CS4231 CONFIG_SND_CS4232 CONFIG_SND_CS4236 CONFIG_SND_PC98_CS4232 CONFIG_SND_ES968 CONFIG_SND_ES1688 CONFIG_SND_ES18XX CONFIG_SND_GUSCLASSIC CONFIG_SND_GUSEXTREME CONFIG_SND_GUSMAX CONFIG_SND_INTERWAVE CONFIG_SND_INTERWAVE_STB CONFIG_SND_OPTI92X_AD1848 CONFIG_SND_OPTI92X_CS4231 CONFIG_SND_OPTI93X CONFIG_SND_SB8 CONFIG_SND_SB16 CONFIG_SND_SBAWE CONFIG_SND_SB16_CSP CONFIG_SND_WAVEFRONT CONFIG_SND_ALS100 CONFIG_SND_AZT2320 CONFIG_SND_CMI8330 CONFIG_SND_DT019X CONFIG_SND_OPL3SA2 CONFIG_SND_SGALAXY CONFIG_SND_SSCAPE CONFIG_SND_MSND_PINNACLE CONFIG_SND_AC97_CODEC CONFIG_SND_ALI5451 CONFIG_SND_ATIIXP CONFIG_SND_AU8810 CONFIG_SND_AU8820 CONFIG_SND_AU8830 CONFIG_SND_AZT3328 CONFIG_SND_BT87X CONFIG_SND_CS46XX CONFIG_SND_CS46XX_NEW_DSP CONFIG_SND_CS4281 CONFIG_SND_EMU10K1 CONFIG_SND_KORG1212 CONFIG_SND_MIXART CONFIG_SND_NM256 CONFIG_SND_RME32 CONFIG_SND_RME96 CONFIG_SND_RME9652 CONFIG_SND_HDSP CONFIG_SND_TRIDENT CONFIG_SND_YMFPCI CONFIG_SND_ALS4000 CONFIG_SND_CMIPCI CONFIG_SND_ENS1370 CONFIG_SND_ENS1371 CONFIG_SND_ES1938 CONFIG_SND_ES1968 CONFIG_SND_MAESTRO3 CONFIG_SND_FM801 CONFIG_SND_FM801_TEA575X CONFIG_SND_ICE1712 CONFIG_SND_ICE1724 CONFIG_SND_INTEL8X0 CONFIG_SND_INTEL8X0M CONFIG_SND_SONICVIBES CONFIG_SND_VIA82XX CONFIG_SND_VX222 CONFIG_SND_PDPLUS CONFIG_SND_HDSPM CONFIG_SND_POWERMAC CONFIG_SND_SA11XX_UDA1341 CONFIG_ARCH_SA1100 CONFIG_SND_USB_AUDIO CONFIG_SND_USB_USX2Y CONFIG_SND_VXPOCKET CONFIG_SND_VXP440 CONFIG_SND_PDAUDIOCF CONFIG_SPARC32 CONFIG_SND_SUN_AMD7930 CONFIG_SBUS CONFIG_SND_SUN_CS4231 CONFIG_SND_HARMONY CONFIG_SOUND_PRIME c_opts m_opts GENKSYMS EXTRA_INCLUDES KERNEL_INC LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -813,7 +813,7 @@
--with-redhat=no,yes,auto specify Red Hat kernel build
--with-moddir=/path give the path for the alsa driver kernel modules
/lib/modules/<KVER>/misc
- --with-debug=level give the debug level (none,basic,memory,full,detect)
+ --with-debug=level give the debug level (none,basic,full,detect)
--with-isapnp=yes,no,auto driver will (not) be compiled with ISA PnP support
--with-sequencer=yes,no driver will (not) be compiled with sequencer support
--with-oss=no,yes driver will (not) be compiled with OSS/Free emulation
@@ -823,22 +823,24 @@
cards may be separated with commas;
'all' compiles all drivers;
Possible cards are:
- dummy, virmidi, serial-u16550, mtpav, mpu401,
- als100, azt2320, cmi8330, dt019x, es18xx,
- opl3sa2, sgalaxy, sscape, ad1816a, ad1848,
- cs4231, cs4232, cs4236, pc98-cs4232, es1688,
- gusclassic, gusmax, gusextreme, interwave,
- interwave-stb, opti92x-ad1848, opti92x-cs4231,
- opti93x, sb8, sb16, sbawe, es968, wavefront,
- als4000, azt3328, bt87x, cmipci, cs4281, ens1370,
- ens1371, es1938, es1968, fm801, intel8x0,
- maestro3, rme32, rme96, sonicvibes, via82xx,
- ali5451, cs46xx, emu10k1, ice1712, ice1724,
- korg1212, mixart, nm256, rme9652, hdsp, trident,
- vx222, ymfpci, powermac, sa11xx-uda1341,
- usb-audio, harmony, vxpocket, vxp440, serialmidi,
- intel8x0m, hdspm, atiixp, pdplus, msnd-pinnacle,
- pdaudiocf, usb-usx2y, au8810, au8820, au8830
+ seq-dummy, dummy, virmidi, mtpav, serial-u16550,
+ mpu401, serialmidi, ad1816a, ad1848, cs4231,
+ cs4232, cs4236, pc98-cs4232, es968, es1688,
+ es18xx, gusclassic, gusextreme, gusmax,
+ interwave, interwave-stb, opti92x-ad1848,
+ opti92x-cs4231, opti93x, sb8, sb16, sbawe,
+ wavefront, als100, azt2320, cmi8330, dt019x,
+ opl3sa2, sgalaxy, sscape, msnd-pinnacle,
+ ac97-codec, ali5451, atiixp, au8810, au8820,
+ au8830, azt3328, bt87x, cs46xx, cs4281, emu10k1,
+ korg1212, mixart, nm256, rme32, rme96, rme9652,
+ hdsp, trident, ymfpci, als4000, cmipci, ens1370,
+ ens1371, es1938, es1968, maestro3, fm801,
+ fm801-tea575x, ice1712, ice1724, intel8x0,
+ intel8x0m, sonicvibes, via82xx, vx222, pdplus,
+ hdspm, powermac, sa11xx-uda1341, usb-audio,
+ usb-usx2y, vxpocket, vxp440, pdaudiocf,
+ sun-amd7930, sun-cs4231, harmony
Some influential environment variables:
CC C compiler command
@@ -1255,7 +1257,7 @@
-CONFIG_SND_VERSION="1.0.3"
+CONFIG_SND_VERSION="1.0.4"
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -2981,6 +2983,137 @@
echo "$as_me:$LINENO: result: $SRCDIR" >&5
echo "${ECHO_T}$SRCDIR" >&6
+
+ CONFIG_SOUND=""
+ CONFIG_SND=""
+ CONFIG_SND_BIT32_EMUL=""
+ CONFIG_SPARC64=""
+ CONFIG_PPC64=""
+ CONFIG_X86_64=""
+ CONFIG_IA32_EMULATION=""
+ CONFIG_SND_TIMER=""
+ CONFIG_SND_PCM=""
+ CONFIG_SND_HWDEP=""
+ CONFIG_SND_RAWMIDI=""
+ CONFIG_SND_SEQUENCER=""
+ CONFIG_SND_SEQ_DUMMY=""
+ CONFIG_SND_OSSEMUL=""
+ CONFIG_SND_MIXER_OSS=""
+ CONFIG_SND_PCM_OSS=""
+ CONFIG_SND_SEQUENCER_OSS=""
+ CONFIG_SND_RTCTIMER=""
+ CONFIG_RTC=""
+ CONFIG_SND_VERBOSE_PRINTK=""
+ CONFIG_SND_DEBUG=""
+ CONFIG_SND_DEBUG_MEMORY=""
+ CONFIG_SND_DEBUG_DETECT=""
+ CONFIG_SND_MPU401_UART=""
+ CONFIG_SND_OPL3_LIB=""
+ CONFIG_SND_OPL4_LIB=""
+ CONFIG_SND_VX_LIB=""
+ CONFIG_SND_DUMMY=""
+ CONFIG_SND_VIRMIDI=""
+ CONFIG_SND_MTPAV=""
+ CONFIG_SND_SERIAL_U16550=""
+ CONFIG_SND_MPU401=""
+ CONFIG_SND_SERIALMIDI=""
+ CONFIG_ISA=""
+ CONFIG_SND_AD1816A=""
+ CONFIG_ISAPNP=""
+ CONFIG_SND_AD1848=""
+ CONFIG_SND_CS4231=""
+ CONFIG_SND_CS4232=""
+ CONFIG_SND_CS4236=""
+ CONFIG_SND_PC98_CS4232=""
+ CONFIG_X86_PC9800=""
+ CONFIG_SND_ES968=""
+ CONFIG_SND_ES1688=""
+ CONFIG_SND_ES18XX=""
+ CONFIG_SND_GUSCLASSIC=""
+ CONFIG_SND_GUSEXTREME=""
+ CONFIG_SND_GUSMAX=""
+ CONFIG_SND_INTERWAVE=""
+ CONFIG_SND_INTERWAVE_STB=""
+ CONFIG_SND_OPTI92X_AD1848=""
+ CONFIG_SND_OPTI92X_CS4231=""
+ CONFIG_SND_OPTI93X=""
+ CONFIG_SND_SB8=""
+ CONFIG_SND_SB16=""
+ CONFIG_SND_SBAWE=""
+ CONFIG_SND_SB16_CSP=""
+ CONFIG_SND_WAVEFRONT=""
+ CONFIG_SND_ALS100=""
+ CONFIG_SND_AZT2320=""
+ CONFIG_SND_CMI8330=""
+ CONFIG_SND_DT019X=""
+ CONFIG_SND_OPL3SA2=""
+ CONFIG_SND_SGALAXY=""
+ CONFIG_SND_SSCAPE=""
+ CONFIG_SND_MSND_PINNACLE=""
+ CONFIG_PCI=""
+ CONFIG_SND_AC97_CODEC=""
+ CONFIG_SND_ALI5451=""
+ CONFIG_SND_ATIIXP=""
+ CONFIG_SND_AU8810=""
+ CONFIG_SND_AU8820=""
+ CONFIG_SND_AU8830=""
+ CONFIG_SND_AZT3328=""
+ CONFIG_EXPERIMENTAL=""
+ CONFIG_SND_BT87X=""
+ CONFIG_SND_CS46XX=""
+ CONFIG_SND_CS46XX_NEW_DSP=""
+ CONFIG_SND_CS4281=""
+ CONFIG_SND_EMU10K1=""
+ CONFIG_SND_KORG1212=""
+ CONFIG_SND_MIXART=""
+ CONFIG_SND_NM256=""
+ CONFIG_SND_RME32=""
+ CONFIG_SND_RME96=""
+ CONFIG_SND_RME9652=""
+ CONFIG_SND_HDSP=""
+ CONFIG_SND_TRIDENT=""
+ CONFIG_SND_YMFPCI=""
+ CONFIG_SND_ALS4000=""
+ CONFIG_SND_CMIPCI=""
+ CONFIG_SND_ENS1370=""
+ CONFIG_SND_ENS1371=""
+ CONFIG_SND_ES1938=""
+ CONFIG_SND_ES1968=""
+ CONFIG_SND_MAESTRO3=""
+ CONFIG_SND_FM801=""
+ CONFIG_SND_FM801_TEA575X=""
+ CONFIG_VIDEO_DEV=""
+ CONFIG_SND_ICE1712=""
+ CONFIG_SND_ICE1724=""
+ CONFIG_SND_INTEL8X0=""
+ CONFIG_SND_INTEL8X0M=""
+ CONFIG_SND_SONICVIBES=""
+ CONFIG_SND_VIA82XX=""
+ CONFIG_SND_VX222=""
+ CONFIG_SND_PDPLUS=""
+ CONFIG_SND_HDSPM=""
+ CONFIG_PPC=""
+ CONFIG_SND_POWERMAC=""
+ CONFIG_ARM=""
+ CONFIG_SND_SA11XX_UDA1341=""
+ CONFIG_ARCH_SA1100=""
+ CONFIG_L3=""
+ CONFIG_USB=""
+ CONFIG_SND_USB_AUDIO=""
+ CONFIG_SND_USB_USX2Y=""
+ CONFIG_PCMCIA=""
+ CONFIG_SND_VXPOCKET=""
+ CONFIG_SND_VXP440=""
+ CONFIG_SND_PDAUDIOCF=""
+ CONFIG_SPARC32=""
+ CONFIG_SND_SUN_AMD7930=""
+ CONFIG_SBUS=""
+ CONFIG_SND_SUN_CS4231=""
+ CONFIG_PARISC=""
+ CONFIG_SND_HARMONY=""
+ CONFIG_SOUND_PRIME=""
+
+
echo "$as_me:$LINENO: checking cross compile" >&5
echo $ECHO_N "checking cross compile... $ECHO_C" >&6
@@ -3163,6 +3296,7 @@
#include <stdio.h>
#include <ctype.h>
+#include <string.h>
#include "$CONFIG_SND_KERNELDIR/include/linux/compile.h"
int main()
{
@@ -3185,6 +3319,8 @@
*dptr = *ptr;
*dptr = '\t';
*dptr = '\0';
+ if (!strcmp(compiler, " "))
+ compiler[0] = '\0';
fprintf(f,"%s\n",compiler);
fclose(f);
}
@@ -3873,6 +4009,34 @@
fi
fi
+ echo "$as_me:$LINENO: checking for kernel linux/dma-mapping.h" >&5
+echo $ECHO_N "checking for kernel linux/dma-mapping.h... $ECHO_C" >&6
+ if test -f "$CONFIG_SND_KERNELDIR/include/linux/dma-mapping.h"; then
+ echo "$as_me:$LINENO: result: \"yes\"" >&5
+echo "${ECHO_T}\"yes\"" >&6
+ if test -f include/linux/dma-mapping.h; then
+ echo "Removing a dummy linux/dma-mapping.h."
+ rm -f include/linux/dma-mapping.h
+ fi
+ else
+ echo "$as_me:$LINENO: result: \"no\"" >&5
+echo "${ECHO_T}\"no\"" >&6
+ if test ! -f include/linux/dma-mapping.h; then
+ if test -z "" ; then
+ echo "Creating a dummy <linux/dma-mapping.h>..."
+ mkdir -p include/linux
+ mkdir -p include/asm
+ touch include/linux/dma-mapping.h
+ else
+ echo "Creating <linux/dma-mapping.h>..."
+ mkdir -p include/linux
+ mkdir -p include/asm
+ echo "" > include/linux/dma-mapping.h
+ fi
+ fi
+ fi
+
+
echo "$as_me:$LINENO: checking for kernel asm/hw_irq.h" >&5
echo $ECHO_N "checking for kernel asm/hw_irq.h... $ECHO_C" >&6
if test -f "$CONFIG_SND_KERNELDIR/include/asm/hw_irq.h"; then
@@ -4225,6 +4389,65 @@
+
+ boolvar="CONFIG_EXPERIMENTAL"
+ boolvar1="CONFIG_EXPERIMENTAL_MODULE"
+ echo "$as_me:$LINENO: checking for Experimental drivers in kernel" >&5
+echo $ECHO_N "checking for Experimental drivers in kernel... $ECHO_C" >&6
+ ac_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $KERNEL_INC $HACK_KERNEL_INC"
+ boolchk=""
+ if test "$cross_compiling" = yes; then
+ echo "$as_me:$LINENO: result: \"unknown\"" >&5
+echo "${ECHO_T}\"unknown\"" >&6;boolchk=""
+
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#include "$CONFIG_SND_KERNELDIR/include/linux/autoconf.h"
+int main( void ) {
+#if !defined($boolvar) && !defined($boolvar1)
+ exit(1);
+#else
+ exit(0);
+#endif
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ echo "$as_me:$LINENO: result: \"yes\"" >&5
+echo "${ECHO_T}\"yes\"" >&6;boolchk="y"
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+( exit $ac_status )
+echo "$as_me:$LINENO: result: \"no\"" >&5
+echo "${ECHO_T}\"no\"" >&6;boolchk=""
+fi
+rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+ CFLAGS="$ac_save_CFLAGS"
+ eval $boolvar="$boolchk"
+
+
+
echo "$as_me:$LINENO: checking for SGI/MIPS (HAL2) architecture" >&5
echo $ECHO_N "checking for SGI/MIPS (HAL2) architecture... $ECHO_C" >&6
CONFIG_SGI=""
@@ -4282,6 +4505,7 @@
fi;
case "$verbose_printk" in
yes)
+ CONFIG_SND_VERBOSE_PRINTK=y
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_VERBOSE_PRINTK 1
_ACEOF
@@ -4310,54 +4534,40 @@
basic)
echo "$as_me:$LINENO: result: basic" >&5
echo "${ECHO_T}basic" >&6
+ CONFIG_SND_DEBUG=y
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_DEBUG 1
_ACEOF
;;
- memory)
- echo "$as_me:$LINENO: result: memory" >&5
-echo "${ECHO_T}memory" >&6
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_DEBUG 1
-_ACEOF
-
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_DEBUG_MEMORY 1
-_ACEOF
-
- ;;
- full)
+ memory|full)
echo "$as_me:$LINENO: result: full" >&5
echo "${ECHO_T}full" >&6
+ CONFIG_SND_DEBUG=y
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_DEBUG 1
_ACEOF
+ CONFIG_SND_DEBUG_MEMORY=y
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_DEBUG_MEMORY 1
_ACEOF
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_DEBUG_FULL 1
-_ACEOF
-
;;
detect)
echo "$as_me:$LINENO: result: detect" >&5
echo "${ECHO_T}detect" >&6
+ CONFIG_SND_DEBUG=y
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_DEBUG 1
_ACEOF
+ CONFIG_SND_DEBUG_MEMORY=y
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_DEBUG_MEMORY 1
_ACEOF
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_DEBUG_FULL 1
-_ACEOF
-
+ CONFIG_SND_DEBUG_DETECT=y
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_DEBUG_DETECT 1
_ACEOF
@@ -4925,6 +5135,7 @@
fi
+if test $kpatchlevel -gt 2; then
boolvar="CONFIG_VIDEO_DEV"
boolvar1="CONFIG_VIDEO_DEV_MODULE"
@@ -4983,6 +5194,7 @@
eval $boolvar="$boolchk"
+fi
echo "$as_me:$LINENO: checking for ISA PnP driver in kernel" >&5
echo $ECHO_N "checking for ISA PnP driver in kernel... $ECHO_C" >&6
@@ -5983,7 +6195,6 @@
if test "$ossemul" = "yes"; then
CONFIG_SND_OSSEMUL="y"
fi
-
if test "$CONFIG_SND_OSSEMUL" = "y"; then
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_OSSEMUL 1
@@ -6415,87 +6626,6 @@
- CONFIG_SND_DUMMY=""
- CONFIG_SND_VIRMIDI=""
- CONFIG_SND_SERIAL_U16550=""
- CONFIG_SND_MTPAV=""
- CONFIG_SND_MPU401=""
- CONFIG_SND_ALS100=""
- CONFIG_SND_AZT2320=""
- CONFIG_SND_CMI8330=""
- CONFIG_SND_DT019X=""
- CONFIG_SND_ES18XX=""
- CONFIG_SND_OPL3SA2=""
- CONFIG_SND_SGALAXY=""
- CONFIG_SND_SSCAPE=""
- CONFIG_SND_AD1816A=""
- CONFIG_SND_AD1848=""
- CONFIG_SND_CS4231=""
- CONFIG_SND_CS4232=""
- CONFIG_SND_CS4236=""
- CONFIG_SND_PC98_CS4232=""
- CONFIG_SND_ES1688=""
- CONFIG_SND_GUSCLASSIC=""
- CONFIG_SND_GUSMAX=""
- CONFIG_SND_GUSEXTREME=""
- CONFIG_SND_INTERWAVE=""
- CONFIG_SND_INTERWAVE_STB=""
- CONFIG_SND_OPTI92X_AD1848=""
- CONFIG_SND_OPTI92X_CS4231=""
- CONFIG_SND_OPTI93X=""
- CONFIG_SND_SB8=""
- CONFIG_SND_SB16=""
- CONFIG_SND_SBAWE=""
- CONFIG_SND_ES968=""
- CONFIG_SND_WAVEFRONT=""
- CONFIG_SND_ALS4000=""
- CONFIG_SND_AZT3328=""
- CONFIG_SND_BT87X=""
- CONFIG_SND_CMIPCI=""
- CONFIG_SND_CS4281=""
- CONFIG_SND_ENS1370=""
- CONFIG_SND_ENS1371=""
- CONFIG_SND_ES1938=""
- CONFIG_SND_ES1968=""
- CONFIG_SND_FM801=""
- CONFIG_SND_INTEL8X0=""
- CONFIG_SND_MAESTRO3=""
- CONFIG_SND_RME32=""
- CONFIG_SND_RME96=""
- CONFIG_SND_SONICVIBES=""
- CONFIG_SND_VIA82XX=""
- CONFIG_SND_ALI5451=""
- CONFIG_SND_CS46XX=""
- CONFIG_SND_EMU10K1=""
- CONFIG_SND_ICE1712=""
- CONFIG_SND_ICE1724=""
- CONFIG_SND_KORG1212=""
- CONFIG_SND_MIXART=""
- CONFIG_SND_NM256=""
- CONFIG_SND_RME9652=""
- CONFIG_SND_HDSP=""
- CONFIG_SND_TRIDENT=""
- CONFIG_SND_VX222=""
- CONFIG_SND_YMFPCI=""
- CONFIG_SND_POWERMAC=""
- CONFIG_SND_SA11XX_UDA1341=""
- CONFIG_SND_USB_AUDIO=""
- CONFIG_SND_HARMONY=""
- CONFIG_SND_VXPOCKET=""
- CONFIG_SND_VXP440=""
- CONFIG_SND_SERIALMIDI=""
- CONFIG_SND_INTEL8X0M=""
- CONFIG_SND_HDSPM=""
- CONFIG_SND_ATIIXP=""
- CONFIG_SND_PDPLUS=""
- CONFIG_SND_MSND_PINNACLE=""
- CONFIG_SND_PDAUDIOCF=""
- CONFIG_SND_USB_USX2Y=""
- CONFIG_SND_AU8810=""
- CONFIG_SND_AU8820=""
- CONFIG_SND_AU8830=""
-
-
echo "$as_me:$LINENO: checking for which soundcards to compile driver for" >&5
echo $ECHO_N "checking for which soundcards to compile driver for... $ECHO_C" >&6
@@ -6508,544 +6638,664 @@
fi;
if test "$cards" = "all"; then
- CONFIG_SND_DUMMY="m"
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_DUMMY_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- CONFIG_SND_VIRMIDI="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VIRMIDI_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- CONFIG_SND_SERIAL_U16550="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SERIAL_U16550_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- CONFIG_SND_MTPAV="m"
+ CONFIG_SND_HWDEP="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MTPAV_MODULE 1
+#define CONFIG_SND_HWDEP_MODULE 1
_ACEOF
- CONFIG_SND_MPU401="m"
+ CONFIG_SND_RAWMIDI="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MPU401_MODULE 1
+#define CONFIG_SND_RAWMIDI_MODULE 1
_ACEOF
- if test "$CONFIG_ISAPNP" = "y"; then
- CONFIG_SND_ALS100="m"
+ CONFIG_SND_MPU401_UART="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ALS100_MODULE 1
+#define CONFIG_SND_MPU401_UART_MODULE 1
_ACEOF
- fi
- if test "$CONFIG_ISAPNP" = "y"; then
- CONFIG_SND_AZT2320="m"
+ CONFIG_SND_OPL3_LIB="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AZT2320_MODULE 1
+#define CONFIG_SND_OPL3_LIB_MODULE 1
_ACEOF
- fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_CMI8330="m"
+ CONFIG_SND_OPL4_LIB="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CMI8330_MODULE 1
+#define CONFIG_SND_OPL4_LIB_MODULE 1
_ACEOF
- fi
- if test "$CONFIG_ISAPNP" = "y"; then
- CONFIG_SND_DT019X="m"
+ CONFIG_SND_VX_LIB="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_DT019X_MODULE 1
+#define CONFIG_SND_VX_LIB_MODULE 1
+_ACEOF
+
+ if ( test "$CONFIG_SND_SEQUENCER" == "y" -o "$CONFIG_SND_SEQUENCER" == "m" ); then
+ CONFIG_SND_SEQ_DUMMY="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SEQ_DUMMY_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_ES18XX="m"
+ CONFIG_SND_DUMMY="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES18XX_MODULE 1
+#define CONFIG_SND_DUMMY_MODULE 1
+_ACEOF
+
+ if ( test "$CONFIG_SND_SEQUENCER" == "y" -o "$CONFIG_SND_SEQUENCER" == "m" ); then
+ CONFIG_SND_VIRMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_VIRMIDI_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_OPL3SA2="m"
+ CONFIG_SND_MTPAV="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_OPL3SA2_MODULE 1
+#define CONFIG_SND_MTPAV_MODULE 1
_ACEOF
- fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_SGALAXY="m"
+ CONFIG_SND_SERIAL_U16550="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SGALAXY_MODULE 1
+#define CONFIG_SND_SERIAL_U16550_MODULE 1
_ACEOF
- fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_SSCAPE="m"
+ CONFIG_SND_MPU401="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SSCAPE_MODULE 1
+#define CONFIG_SND_MPU401_MODULE 1
_ACEOF
- fi
- if test "$CONFIG_ISAPNP" = "y"; then
- CONFIG_SND_AD1816A="m"
+ CONFIG_SND_SERIALMIDI="m"
cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SERIALMIDI_MODULE 1
+_ACEOF
+
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ) &&
+ ( test "$CONFIG_ISAPNP" == "y" -o "$CONFIG_ISAPNP" == "m" ); then
+ CONFIG_SND_AD1816A="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_AD1816A_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_AD1848="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_AD1848="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_AD1848_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_CS4231="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_CS4231="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_CS4231_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_CS4232="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_CS4232="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_CS4232_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_CS4236="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_CS4236="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_CS4236_MODULE 1
_ACEOF
fi
- if test "$CONFIG_X86_PC9800" = "y"; then
- CONFIG_SND_PC98_CS4232="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ) &&
+ ( test "$CONFIG_X86_PC9800" == "y" -o "$CONFIG_X86_PC9800" == "m" ); then
+ CONFIG_SND_PC98_CS4232="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_PC98_CS4232_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_ES1688="m"
+ CONFIG_X86_PC9800="m"
cat >>confdefs.h <<\_ACEOF
+#define CONFIG_X86_PC9800_MODULE 1
+_ACEOF
+
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ) &&
+ ( test "$CONFIG_ISAPNP" == "y" -o "$CONFIG_ISAPNP" == "m" ); then
+ CONFIG_SND_ES968="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES968_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_ES1688="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_ES1688_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_GUSCLASSIC="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_GUSCLASSIC_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_ES18XX="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES18XX_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_GUSMAX="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_GUSMAX_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_GUSCLASSIC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_GUSCLASSIC_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_GUSEXTREME="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_GUSEXTREME="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_GUSEXTREME_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_INTERWAVE="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_GUSMAX="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_GUSMAX_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_INTERWAVE="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_INTERWAVE_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_INTERWAVE_STB="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_INTERWAVE_STB="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_INTERWAVE_STB_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_OPTI92X_AD1848="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_OPTI92X_AD1848="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_OPTI92X_AD1848_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_OPTI92X_CS4231="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_OPTI92X_CS4231="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_OPTI92X_CS4231_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_OPTI93X="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_OPTI93X="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_OPTI93X_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_SB8="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_SB8="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_SB8_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_SB16="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_SB16="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_SB16_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_SBAWE="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_SBAWE="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_SBAWE_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISAPNP" = "y"; then
- CONFIG_SND_ES968="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES968_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ) &&
+ ( test "$CONFIG_SND_SB16" == "y" -o "$CONFIG_SND_SB16" == "m" ) ||
+ ( test "$CONFIG_SND_SBAWE" == "y" -o "$CONFIG_SND_SBAWE" == "m" ); then
+ CONFIG_SND_SB16_CSP="y"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SB16_CSP 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_WAVEFRONT="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_WAVEFRONT="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_WAVEFRONT_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ALS4000="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ALS4000_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ) &&
+ ( test "$CONFIG_ISAPNP" == "y" -o "$CONFIG_ISAPNP" == "m" ); then
+ CONFIG_SND_ALS100="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ALS100_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_AZT3328="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AZT3328_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ) &&
+ ( test "$CONFIG_ISAPNP" == "y" -o "$CONFIG_ISAPNP" == "m" ); then
+ CONFIG_SND_AZT2320="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AZT2320_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_BT87X="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_BT87X_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_CMI8330="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CMI8330_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_CMIPCI="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CMIPCI_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ) &&
+ ( test "$CONFIG_ISAPNP" == "y" -o "$CONFIG_ISAPNP" == "m" ); then
+ CONFIG_SND_DT019X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_DT019X_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_CS4281="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CS4281_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_OPL3SA2="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3SA2_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ENS1370="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ENS1370_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_SGALAXY="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SGALAXY_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ENS1371="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ENS1371_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_SSCAPE="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SSCAPE_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ES1938="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES1938_MODULE 1
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_MSND_PINNACLE="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MSND_PINNACLE_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ES1968="m"
+ CONFIG_SND_AC97_CODEC="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES1968_MODULE 1
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ALI5451="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ALI5451_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_FM801="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_FM801_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ATIIXP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ATIIXP_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_INTEL8X0="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_INTEL8X0_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_AU8810="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AU8810_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_MAESTRO3="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MAESTRO3_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_AU8820="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AU8820_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_RME32="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_RME32_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_AU8830="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AU8830_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_RME96="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_RME96_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ) &&
+ ( test "$CONFIG_EXPERIMENTAL" == "y" -o "$CONFIG_EXPERIMENTAL" == "m" ); then
+ CONFIG_SND_AZT3328="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AZT3328_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_SONICVIBES="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SONICVIBES_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_BT87X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_BT87X_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_VIA82XX="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VIA82XX_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_CS46XX="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS46XX_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ALI5451="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ALI5451_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ) &&
+ ( test "$CONFIG_SND_CS46XX" == "y" -o "$CONFIG_SND_CS46XX" == "m" ) &&
+ ( test "$CONFIG_EXPERIMENTAL" == "y" -o "$CONFIG_EXPERIMENTAL" == "m" ); then
+ CONFIG_SND_CS46XX_NEW_DSP="y"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS46XX_NEW_DSP 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_CS46XX="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CS46XX_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_CS4281="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS4281_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_EMU10K1="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_EMU10K1="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_EMU10K1_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ICE1712="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ICE1712_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_KORG1212="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_KORG1212_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ICE1724="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ICE1724_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_MIXART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MIXART_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_KORG1212="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_KORG1212_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_NM256="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_NM256_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_MIXART="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MIXART_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_RME32="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RME32_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_NM256="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_NM256_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_RME96="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RME96_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_RME9652="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_RME9652="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_RME9652_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_HDSP="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_HDSP="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_HDSP_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_TRIDENT="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_TRIDENT="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_TRIDENT_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_VX222="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VX222_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_YMFPCI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_YMFPCI_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_YMFPCI="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_YMFPCI_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ALS4000="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ALS4000_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PPC" = "y"; then
- CONFIG_SND_POWERMAC="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_POWERMAC_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_CMIPCI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CMIPCI_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ARM" = "y"; then
- CONFIG_SND_SA11XX_UDA1341="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SA11XX_UDA1341_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ENS1370="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ENS1370_MODULE 1
_ACEOF
fi
- if test "$CONFIG_USB" = "y"; then
- CONFIG_SND_USB_AUDIO="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_USB_AUDIO_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ENS1371="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ENS1371_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PARISC" = "y"; then
- CONFIG_SND_HARMONY="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_HARMONY_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ES1938="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES1938_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCMCIA" = "y"; then
- CONFIG_SND_VXPOCKET="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VXPOCKET_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ES1968="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES1968_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCMCIA" = "y"; then
- CONFIG_SND_VXP440="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VXP440_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_MAESTRO3="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MAESTRO3_MODULE 1
_ACEOF
fi
- CONFIG_SND_SERIALMIDI="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SERIALMIDI_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_FM801="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_FM801_MODULE 1
_ACEOF
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_INTEL8X0M="m"
- cat >>confdefs.h <<\_ACEOF
+ fi
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ) &&
+ ( test "$CONFIG_VIDEO_DEV" == "y" -o "$CONFIG_VIDEO_DEV" == "m" ); then
+ CONFIG_SND_FM801_TEA575X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_FM801_TEA575X_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ICE1712="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ICE1712_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ICE1724="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ICE1724_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_INTEL8X0="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_INTEL8X0_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ) &&
+ ( test "$CONFIG_EXPERIMENTAL" == "y" -o "$CONFIG_EXPERIMENTAL" == "m" ); then
+ CONFIG_SND_INTEL8X0M="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_INTEL8X0M_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_HDSPM="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_HDSPM_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_SONICVIBES="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SONICVIBES_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_ATIIXP="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ATIIXP_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_VIA82XX="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_VIA82XX_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_PDPLUS="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_VX222="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_VX222_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_PDPLUS="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_PDPLUS_MODULE 1
_ACEOF
fi
- if test "$CONFIG_ISA" = "y"; then
- CONFIG_SND_MSND_PINNACLE="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MSND_PINNACLE_MODULE 1
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_HDSPM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HDSPM_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCMCIA" = "y"; then
- CONFIG_SND_PDAUDIOCF="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_PDAUDIOCF_MODULE 1
+ if ( test "$CONFIG_PPC" == "y" -o "$CONFIG_PPC" == "m" ); then
+ CONFIG_SND_POWERMAC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_POWERMAC_MODULE 1
_ACEOF
fi
- if test "$CONFIG_USB" = "y"; then
- CONFIG_SND_USB_USX2Y="m"
- cat >>confdefs.h <<\_ACEOF
+ if ( test "$CONFIG_ARM" == "y" -o "$CONFIG_ARM" == "m" ) &&
+ ( test "$CONFIG_ARCH_SA1100" == "y" -o "$CONFIG_ARCH_SA1100" == "m" ) &&
+ ( test "$CONFIG_L3" == "y" -o "$CONFIG_L3" == "m" ); then
+ CONFIG_SND_SA11XX_UDA1341="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SA11XX_UDA1341_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_USB" == "y" -o "$CONFIG_USB" == "m" ); then
+ CONFIG_SND_USB_AUDIO="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_USB_AUDIO_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_USB" == "y" -o "$CONFIG_USB" == "m" ); then
+ CONFIG_SND_USB_USX2Y="m"
+ cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_USB_USX2Y_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_AU8810="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AU8810_MODULE 1
+ if ( test "$CONFIG_PCMCIA" == "y" -o "$CONFIG_PCMCIA" == "m" ) &&
+ ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_VXPOCKET="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_VXPOCKET_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_AU8820="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AU8820_MODULE 1
+ if ( test "$CONFIG_PCMCIA" == "y" -o "$CONFIG_PCMCIA" == "m" ) &&
+ ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_VXP440="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_VXP440_MODULE 1
_ACEOF
fi
- if test "$CONFIG_PCI" = "y"; then
- CONFIG_SND_AU8830="m"
- cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AU8830_MODULE 1
+ if ( test "$CONFIG_PCMCIA" == "y" -o "$CONFIG_PCMCIA" == "m" ) &&
+ ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ CONFIG_SND_PDAUDIOCF="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PDAUDIOCF_MODULE 1
+_ACEOF
+
+ fi
+ if ((( test "$CONFIG_SPARC32" == "y" -o "$CONFIG_SPARC32" == "m" ) ||
+ ( test "$CONFIG_SPARC64" == "y" -o "$CONFIG_SPARC64" == "m" ))) &&
+ ( test "$CONFIG_SBUS" == "y" -o "$CONFIG_SBUS" == "m" ); then
+ CONFIG_SND_SUN_AMD7930="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SUN_AMD7930_MODULE 1
+_ACEOF
+
+ fi
+ if ((( test "$CONFIG_SPARC32" == "y" -o "$CONFIG_SPARC32" == "m" ) ||
+ ( test "$CONFIG_SPARC64" == "y" -o "$CONFIG_SPARC64" == "m" ))); then
+ CONFIG_SND_SUN_CS4231="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SUN_CS4231_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_PARISC" == "y" -o "$CONFIG_PARISC" == "m" ); then
+ CONFIG_SND_HARMONY="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HARMONY_MODULE 1
_ACEOF
fi
@@ -7057,556 +7307,2735 @@
for card in $cards
do
case "$card" in
- dummy)
- CONFIG_SND_DUMMY="m"
+ seq-dummy)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_DUMMY_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- virmidi)
- CONFIG_SND_VIRMIDI="m"
+ CONFIG_SND_SEQ_DUMMY="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VIRMIDI_MODULE 1
+#define CONFIG_SND_SEQ_DUMMY_MODULE 1
_ACEOF
;;
- serial-u16550)
- CONFIG_SND_SERIAL_U16550="m"
+ dummy)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SERIAL_U16550_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- mtpav)
- CONFIG_SND_MTPAV="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MTPAV_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- mpu401)
- CONFIG_SND_MPU401="m"
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_DUMMY="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_DUMMY_MODULE 1
+_ACEOF
+
+ ;;
+ virmidi)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_VIRMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_VIRMIDI_MODULE 1
+_ACEOF
+
+ ;;
+ mtpav)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MTPAV="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MTPAV_MODULE 1
+_ACEOF
+
+ ;;
+ serial-u16550)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SERIAL_U16550="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SERIAL_U16550_MODULE 1
+_ACEOF
+
+ ;;
+ mpu401)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401="m"
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_MPU401_MODULE 1
_ACEOF
- ;;
- als100)
- CONFIG_SND_ALS100="m"
+ ;;
+ serialmidi)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SERIALMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SERIALMIDI_MODULE 1
+_ACEOF
+
+ ;;
+ ad1816a)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AD1816A="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AD1816A_MODULE 1
+_ACEOF
+
+ ;;
+ ad1848)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AD1848="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AD1848_MODULE 1
+_ACEOF
+
+ ;;
+ cs4231)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_CS4231="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS4231_MODULE 1
+_ACEOF
+
+ ;;
+ cs4232)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_CS4232="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS4232_MODULE 1
+_ACEOF
+
+ ;;
+ cs4236)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_CS4236="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS4236_MODULE 1
+_ACEOF
+
+ ;;
+ pc98-cs4232)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PC98_CS4232="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PC98_CS4232_MODULE 1
+_ACEOF
+
+ ;;
+ es968)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ES968="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES968_MODULE 1
+_ACEOF
+
+ ;;
+ es1688)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ES1688="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES1688_MODULE 1
+_ACEOF
+
+ ;;
+ es18xx)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ES18XX="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES18XX_MODULE 1
+_ACEOF
+
+ ;;
+ gusclassic)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_GUSCLASSIC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_GUSCLASSIC_MODULE 1
+_ACEOF
+
+ ;;
+ gusextreme)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_GUSEXTREME="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_GUSEXTREME_MODULE 1
+_ACEOF
+
+ ;;
+ gusmax)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_GUSMAX="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_GUSMAX_MODULE 1
+_ACEOF
+
+ ;;
+ interwave)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_INTERWAVE="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_INTERWAVE_MODULE 1
+_ACEOF
+
+ ;;
+ interwave-stb)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_INTERWAVE_STB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_INTERWAVE_STB_MODULE 1
+_ACEOF
+
+ ;;
+ opti92x-ad1848)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL4_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL4_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPTI92X_AD1848="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPTI92X_AD1848_MODULE 1
+_ACEOF
+
+ ;;
+ opti92x-cs4231)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL4_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL4_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPTI92X_CS4231="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPTI92X_CS4231_MODULE 1
+_ACEOF
+
+ ;;
+ opti93x)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPTI93X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPTI93X_MODULE 1
+_ACEOF
+
+ ;;
+ sb8)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SB8="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SB8_MODULE 1
+_ACEOF
+
+ ;;
+ sb16)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SB16="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SB16_MODULE 1
+_ACEOF
+
+ ;;
+ sbawe)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SBAWE="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SBAWE_MODULE 1
+_ACEOF
+
+ ;;
+ sb16-csp)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SB16_CSP="y"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SB16_CSP 1
+_ACEOF
+
+ ;;
+ wavefront)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_WAVEFRONT="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_WAVEFRONT_MODULE 1
+_ACEOF
+
+ ;;
+ als100)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ALS100="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ALS100_MODULE 1
+_ACEOF
+
+ ;;
+ azt2320)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AZT2320="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AZT2320_MODULE 1
+_ACEOF
+
+ ;;
+ cmi8330)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_CMI8330="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CMI8330_MODULE 1
+_ACEOF
+
+ ;;
+ dt019x)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_DT019X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_DT019X_MODULE 1
+_ACEOF
+
+ ;;
+ opl3sa2)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3SA2="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3SA2_MODULE 1
+_ACEOF
+
+ ;;
+ sgalaxy)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SGALAXY="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SGALAXY_MODULE 1
+_ACEOF
+
+ ;;
+ sscape)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SSCAPE="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SSCAPE_MODULE 1
+_ACEOF
+
+ ;;
+ msnd-pinnacle)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MSND_PINNACLE="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MSND_PINNACLE_MODULE 1
+_ACEOF
+
+ ;;
+ ac97-codec)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ ;;
+ ali5451)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ALI5451="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ALI5451_MODULE 1
+_ACEOF
+
+ ;;
+ atiixp)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ATIIXP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ATIIXP_MODULE 1
+_ACEOF
+
+ ;;
+ au8810)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AU8810="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AU8810_MODULE 1
+_ACEOF
+
+ ;;
+ au8820)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AU8820="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AU8820_MODULE 1
+_ACEOF
+
+ ;;
+ au8830)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AU8830="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AU8830_MODULE 1
+_ACEOF
+
+ ;;
+ azt3328)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AZT3328="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AZT3328_MODULE 1
+_ACEOF
+
+ ;;
+ bt87x)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_BT87X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_BT87X_MODULE 1
+_ACEOF
+
+ ;;
+ cs46xx)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_CS46XX="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS46XX_MODULE 1
+_ACEOF
+
+ ;;
+ cs46xx-new-dsp)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_CS46XX_NEW_DSP="y"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS46XX_NEW_DSP 1
+_ACEOF
+
+ ;;
+ cs4281)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_CS4281="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CS4281_MODULE 1
+_ACEOF
+
+ ;;
+ emu10k1)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_EMU10K1="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_EMU10K1_MODULE 1
+_ACEOF
+
+ ;;
+ korg1212)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_KORG1212="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_KORG1212_MODULE 1
+_ACEOF
+
+ ;;
+ mixart)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MIXART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MIXART_MODULE 1
+_ACEOF
+
+ ;;
+ nm256)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_NM256="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_NM256_MODULE 1
+_ACEOF
+
+ ;;
+ rme32)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RME32="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RME32_MODULE 1
+_ACEOF
+
+ ;;
+ rme96)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RME96="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RME96_MODULE 1
+_ACEOF
+
+ ;;
+ rme9652)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RME9652="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RME9652_MODULE 1
+_ACEOF
+
+ ;;
+ hdsp)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HDSP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HDSP_MODULE 1
+_ACEOF
+
+ ;;
+ trident)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TRIDENT="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TRIDENT_MODULE 1
+_ACEOF
+
+ ;;
+ ymfpci)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_YMFPCI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_YMFPCI_MODULE 1
+_ACEOF
+
+ ;;
+ als4000)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ALS4000="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ALS4000_MODULE 1
+_ACEOF
+
+ ;;
+ cmipci)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_CMIPCI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_CMIPCI_MODULE 1
+_ACEOF
+
+ ;;
+ ens1370)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ENS1370="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ENS1370_MODULE 1
+_ACEOF
+
+ ;;
+ ens1371)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ENS1371="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ENS1371_MODULE 1
+_ACEOF
+
+ ;;
+ es1938)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ES1938="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES1938_MODULE 1
+_ACEOF
+
+ ;;
+ es1968)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ES1968="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ES1968_MODULE 1
+_ACEOF
+
+ ;;
+ maestro3)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MAESTRO3="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MAESTRO3_MODULE 1
+_ACEOF
+
+ ;;
+ fm801)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_OPL3_LIB="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_OPL3_LIB_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_FM801="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_FM801_MODULE 1
+_ACEOF
+
+ ;;
+ fm801-tea575x)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_FM801_TEA575X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_FM801_TEA575X_MODULE 1
+_ACEOF
+
+ ;;
+ ice1712)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ICE1712="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ICE1712_MODULE 1
+_ACEOF
+
+ ;;
+ ice1724)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_ICE1724="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ICE1724_MODULE 1
+_ACEOF
+
+ ;;
+ intel8x0)
+ CONFIG_SND="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_MPU401_UART="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_MPU401_UART_MODULE 1
+_ACEOF
+
+ CONFIG_SND_AC97_CODEC="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_AC97_CODEC_MODULE 1
+_ACEOF
+
+ CONFIG_SND_INTEL8X0="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ALS100_MODULE 1
+#define CONFIG_SND_INTEL8X0_MODULE 1
_ACEOF
;;
- azt2320)
- CONFIG_SND_AZT2320="m"
+ intel8x0m)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AZT2320_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- cmi8330)
- CONFIG_SND_CMI8330="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CMI8330_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- dt019x)
- CONFIG_SND_DT019X="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_DT019X_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- es18xx)
- CONFIG_SND_ES18XX="m"
+ CONFIG_SND_AC97_CODEC="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES18XX_MODULE 1
+#define CONFIG_SND_AC97_CODEC_MODULE 1
_ACEOF
- ;;
- opl3sa2)
- CONFIG_SND_OPL3SA2="m"
+ CONFIG_SND_INTEL8X0M="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_OPL3SA2_MODULE 1
+#define CONFIG_SND_INTEL8X0M_MODULE 1
_ACEOF
;;
- sgalaxy)
- CONFIG_SND_SGALAXY="m"
+ sonicvibes)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SGALAXY_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- sscape)
- CONFIG_SND_SSCAPE="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SSCAPE_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- ad1816a)
- CONFIG_SND_AD1816A="m"
+ CONFIG_SND_HWDEP="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AD1816A_MODULE 1
+#define CONFIG_SND_HWDEP_MODULE 1
_ACEOF
- ;;
- ad1848)
- CONFIG_SND_AD1848="m"
+ CONFIG_SND_RAWMIDI="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AD1848_MODULE 1
+#define CONFIG_SND_RAWMIDI_MODULE 1
_ACEOF
- ;;
- cs4231)
- CONFIG_SND_CS4231="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CS4231_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- cs4232)
- CONFIG_SND_CS4232="m"
+ CONFIG_SND_OPL3_LIB="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CS4232_MODULE 1
+#define CONFIG_SND_OPL3_LIB_MODULE 1
_ACEOF
- ;;
- cs4236)
- CONFIG_SND_CS4236="m"
+ CONFIG_SND_MPU401_UART="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CS4236_MODULE 1
+#define CONFIG_SND_MPU401_UART_MODULE 1
_ACEOF
- ;;
- pc98-cs4232)
- CONFIG_SND_PC98_CS4232="m"
+ CONFIG_SND_AC97_CODEC="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_PC98_CS4232_MODULE 1
+#define CONFIG_SND_AC97_CODEC_MODULE 1
_ACEOF
- ;;
- es1688)
- CONFIG_SND_ES1688="m"
+ CONFIG_SND_SONICVIBES="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES1688_MODULE 1
+#define CONFIG_SND_SONICVIBES_MODULE 1
_ACEOF
;;
- gusclassic)
- CONFIG_SND_GUSCLASSIC="m"
+ via82xx)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_GUSCLASSIC_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- gusmax)
- CONFIG_SND_GUSMAX="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_GUSMAX_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- gusextreme)
- CONFIG_SND_GUSEXTREME="m"
+ CONFIG_SND_RAWMIDI="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_GUSEXTREME_MODULE 1
+#define CONFIG_SND_RAWMIDI_MODULE 1
_ACEOF
- ;;
- interwave)
- CONFIG_SND_INTERWAVE="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_INTERWAVE_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- interwave-stb)
- CONFIG_SND_INTERWAVE_STB="m"
+ CONFIG_SND_MPU401_UART="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_INTERWAVE_STB_MODULE 1
+#define CONFIG_SND_MPU401_UART_MODULE 1
_ACEOF
- ;;
- opti92x-ad1848)
- CONFIG_SND_OPTI92X_AD1848="m"
+ CONFIG_SND_AC97_CODEC="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_OPTI92X_AD1848_MODULE 1
+#define CONFIG_SND_AC97_CODEC_MODULE 1
_ACEOF
- ;;
- opti92x-cs4231)
- CONFIG_SND_OPTI92X_CS4231="m"
+ CONFIG_SND_VIA82XX="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_OPTI92X_CS4231_MODULE 1
+#define CONFIG_SND_VIA82XX_MODULE 1
_ACEOF
;;
- opti93x)
- CONFIG_SND_OPTI93X="m"
+ vx222)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_OPTI93X_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- sb8)
- CONFIG_SND_SB8="m"
+ CONFIG_SND_HWDEP="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SB8_MODULE 1
+#define CONFIG_SND_HWDEP_MODULE 1
_ACEOF
- ;;
- sb16)
- CONFIG_SND_SB16="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SB16_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- sbawe)
- CONFIG_SND_SBAWE="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SBAWE_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- es968)
- CONFIG_SND_ES968="m"
+ CONFIG_SND_VX_LIB="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES968_MODULE 1
+#define CONFIG_SND_VX_LIB_MODULE 1
_ACEOF
- ;;
- wavefront)
- CONFIG_SND_WAVEFRONT="m"
+ CONFIG_SND_VX222="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_WAVEFRONT_MODULE 1
+#define CONFIG_SND_VX222_MODULE 1
_ACEOF
;;
- als4000)
- CONFIG_SND_ALS4000="m"
+ pdplus)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ALS4000_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- azt3328)
- CONFIG_SND_AZT3328="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AZT3328_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- bt87x)
- CONFIG_SND_BT87X="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_BT87X_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- cmipci)
- CONFIG_SND_CMIPCI="m"
+ CONFIG_SND_PDPLUS="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CMIPCI_MODULE 1
+#define CONFIG_SND_PDPLUS_MODULE 1
_ACEOF
;;
- cs4281)
- CONFIG_SND_CS4281="m"
+ hdspm)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CS4281_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- ens1370)
- CONFIG_SND_ENS1370="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ENS1370_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- ens1371)
- CONFIG_SND_ENS1371="m"
+ CONFIG_SND_HWDEP="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ENS1371_MODULE 1
+#define CONFIG_SND_HWDEP_MODULE 1
_ACEOF
- ;;
- es1938)
- CONFIG_SND_ES1938="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES1938_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- es1968)
- CONFIG_SND_ES1968="m"
+ CONFIG_SND_HDSPM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ES1968_MODULE 1
+#define CONFIG_SND_HDSPM_MODULE 1
_ACEOF
;;
- fm801)
- CONFIG_SND_FM801="m"
+ powermac)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_FM801_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- intel8x0)
- CONFIG_SND_INTEL8X0="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_INTEL8X0_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- maestro3)
- CONFIG_SND_MAESTRO3="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MAESTRO3_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- rme32)
- CONFIG_SND_RME32="m"
+ CONFIG_SND_POWERMAC="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_RME32_MODULE 1
+#define CONFIG_SND_POWERMAC_MODULE 1
_ACEOF
;;
- rme96)
- CONFIG_SND_RME96="m"
+ sa11xx-uda1341)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_RME96_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- sonicvibes)
- CONFIG_SND_SONICVIBES="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SONICVIBES_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- via82xx)
- CONFIG_SND_VIA82XX="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VIA82XX_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_SA11XX_UDA1341="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_SA11XX_UDA1341_MODULE 1
_ACEOF
;;
- ali5451)
- CONFIG_SND_ALI5451="m"
+ usb-audio)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ALI5451_MODULE 1
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_USB_AUDIO="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_USB_AUDIO_MODULE 1
_ACEOF
;;
- cs46xx)
- CONFIG_SND_CS46XX="m"
+ usb-usx2y)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_CS46XX_MODULE 1
+#define CONFIG_SND_MODULE 1
+_ACEOF
+
+ CONFIG_SND_RAWMIDI="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_RAWMIDI_MODULE 1
+_ACEOF
+
+ CONFIG_SND_TIMER="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_TIMER_MODULE 1
+_ACEOF
+
+ CONFIG_SND_PCM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_PCM_MODULE 1
+_ACEOF
+
+ CONFIG_SND_HWDEP="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_HWDEP_MODULE 1
+_ACEOF
+
+ CONFIG_SND_USB_AUDIO="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_USB_AUDIO_MODULE 1
+_ACEOF
+
+ CONFIG_SND_USB_USX2Y="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_USB_USX2Y_MODULE 1
_ACEOF
;;
- emu10k1)
- CONFIG_SND_EMU10K1="m"
+ vxpocket)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_EMU10K1_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- ice1712)
- CONFIG_SND_ICE1712="m"
+ CONFIG_SND_HWDEP="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ICE1712_MODULE 1
+#define CONFIG_SND_HWDEP_MODULE 1
_ACEOF
- ;;
- ice1724)
- CONFIG_SND_ICE1724="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ICE1724_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- korg1212)
- CONFIG_SND_KORG1212="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_KORG1212_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- mixart)
- CONFIG_SND_MIXART="m"
+ CONFIG_SND_VX_LIB="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MIXART_MODULE 1
+#define CONFIG_SND_VX_LIB_MODULE 1
_ACEOF
- ;;
- nm256)
- CONFIG_SND_NM256="m"
+ CONFIG_SND_VXPOCKET="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_NM256_MODULE 1
+#define CONFIG_SND_VXPOCKET_MODULE 1
_ACEOF
;;
- rme9652)
- CONFIG_SND_RME9652="m"
+ vxp440)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_RME9652_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- hdsp)
- CONFIG_SND_HDSP="m"
+ CONFIG_SND_HWDEP="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_HDSP_MODULE 1
+#define CONFIG_SND_HWDEP_MODULE 1
_ACEOF
- ;;
- trident)
- CONFIG_SND_TRIDENT="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_TRIDENT_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- vx222)
- CONFIG_SND_VX222="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VX222_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- ymfpci)
- CONFIG_SND_YMFPCI="m"
+ CONFIG_SND_VX_LIB="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_YMFPCI_MODULE 1
+#define CONFIG_SND_VX_LIB_MODULE 1
_ACEOF
- ;;
- powermac)
- CONFIG_SND_POWERMAC="m"
+ CONFIG_SND_VXP440="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_POWERMAC_MODULE 1
+#define CONFIG_SND_VXP440_MODULE 1
_ACEOF
;;
- sa11xx-uda1341)
- CONFIG_SND_SA11XX_UDA1341="m"
+ pdaudiocf)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SA11XX_UDA1341_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- usb-audio)
- CONFIG_SND_USB_AUDIO="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_USB_AUDIO_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- harmony)
- CONFIG_SND_HARMONY="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_HARMONY_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- vxpocket)
- CONFIG_SND_VXPOCKET="m"
+ CONFIG_SND_PDAUDIOCF="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VXPOCKET_MODULE 1
+#define CONFIG_SND_PDAUDIOCF_MODULE 1
_ACEOF
;;
- vxp440)
- CONFIG_SND_VXP440="m"
+ sun-amd7930)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_VXP440_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- serialmidi)
- CONFIG_SND_SERIALMIDI="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_SERIALMIDI_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- intel8x0m)
- CONFIG_SND_INTEL8X0M="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_INTEL8X0M_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- hdspm)
- CONFIG_SND_HDSPM="m"
+ CONFIG_SND_SUN_AMD7930="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_HDSPM_MODULE 1
+#define CONFIG_SND_SUN_AMD7930_MODULE 1
_ACEOF
;;
- atiixp)
- CONFIG_SND_ATIIXP="m"
+ sun-cs4231)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_ATIIXP_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- pdplus)
- CONFIG_SND_PDPLUS="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_PDPLUS_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- msnd-pinnacle)
- CONFIG_SND_MSND_PINNACLE="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_MSND_PINNACLE_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- pdaudiocf)
- CONFIG_SND_PDAUDIOCF="m"
+ CONFIG_SND_SUN_CS4231="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_PDAUDIOCF_MODULE 1
+#define CONFIG_SND_SUN_CS4231_MODULE 1
_ACEOF
;;
- usb-usx2y)
- CONFIG_SND_USB_USX2Y="m"
+ harmony)
+ CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_USB_USX2Y_MODULE 1
+#define CONFIG_SND_MODULE 1
_ACEOF
- ;;
- au8810)
- CONFIG_SND_AU8810="m"
+ CONFIG_SND_TIMER="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AU8810_MODULE 1
+#define CONFIG_SND_TIMER_MODULE 1
_ACEOF
- ;;
- au8820)
- CONFIG_SND_AU8820="m"
+ CONFIG_SND_PCM="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AU8820_MODULE 1
+#define CONFIG_SND_PCM_MODULE 1
_ACEOF
- ;;
- au8830)
- CONFIG_SND_AU8830="m"
+ CONFIG_SND_HARMONY="m"
cat >>confdefs.h <<\_ACEOF
-#define CONFIG_SND_AU8830_MODULE 1
+#define CONFIG_SND_HARMONY_MODULE 1
_ACEOF
;;
@@ -7621,6 +10050,66 @@
fi
+if test "$CONFIG_SND_OSSEMUL" = "y"; then
+ CONFIG_SND_MIXER_OSS="$CONFIG_SND"
+ CONFIG_SND_PCM_OSS="$CONFIG_SND_PCM"
+ if test -n "$CONFIG_SND_SEQUENCER"; then
+ CONFIG_SND_SEQUENCER_OSS="y"
+ fi
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -8358,6 +10847,7 @@
s,@NEW_KBUILD@,$NEW_KBUILD,;t t
s,@CONFIG_SND_MVERSION@,$CONFIG_SND_MVERSION,;t t
s,@CONFIG_PCI@,$CONFIG_PCI,;t t
+s,@CONFIG_EXPERIMENTAL@,$CONFIG_EXPERIMENTAL,;t t
s,@CONFIG_SGI@,$CONFIG_SGI,;t t
s,@moddir@,$moddir,;t t
s,@modsubdir@,$modsubdir,;t t
@@ -8381,35 +10871,52 @@
s,@CONFIG_SND_VERSION@,$CONFIG_SND_VERSION,;t t
s,@CONFIG_SND_DATE@,$CONFIG_SND_DATE,;t t
s,@CONFIG_SND_SEQUENCER@,$CONFIG_SND_SEQUENCER,;t t
-s,@CONFIG_SND_OSSEMUL@,$CONFIG_SND_OSSEMUL,;t t
s,@CONFIG_SND_RTCTIMER@,$CONFIG_SND_RTCTIMER,;t t
s,@CONFIG_RTC@,$CONFIG_RTC,;t t
s,@CONFIG_USB@,$CONFIG_USB,;t t
s,@CONFIG_PCMCIA@,$CONFIG_PCMCIA,;t t
s,@CONFIG_X86_PC9800@,$CONFIG_X86_PC9800,;t t
+s,@CONFIG_SOUND@,$CONFIG_SOUND,;t t
+s,@CONFIG_SND@,$CONFIG_SND,;t t
+s,@CONFIG_SPARC64@,$CONFIG_SPARC64,;t t
+s,@CONFIG_PPC64@,$CONFIG_PPC64,;t t
+s,@CONFIG_X86_64@,$CONFIG_X86_64,;t t
+s,@CONFIG_IA32_EMULATION@,$CONFIG_IA32_EMULATION,;t t
+s,@CONFIG_SND_TIMER@,$CONFIG_SND_TIMER,;t t
+s,@CONFIG_SND_PCM@,$CONFIG_SND_PCM,;t t
+s,@CONFIG_SND_HWDEP@,$CONFIG_SND_HWDEP,;t t
+s,@CONFIG_SND_RAWMIDI@,$CONFIG_SND_RAWMIDI,;t t
+s,@CONFIG_SND_SEQ_DUMMY@,$CONFIG_SND_SEQ_DUMMY,;t t
+s,@CONFIG_SND_OSSEMUL@,$CONFIG_SND_OSSEMUL,;t t
+s,@CONFIG_SND_MIXER_OSS@,$CONFIG_SND_MIXER_OSS,;t t
+s,@CONFIG_SND_PCM_OSS@,$CONFIG_SND_PCM_OSS,;t t
+s,@CONFIG_SND_SEQUENCER_OSS@,$CONFIG_SND_SEQUENCER_OSS,;t t
+s,@CONFIG_SND_VERBOSE_PRINTK@,$CONFIG_SND_VERBOSE_PRINTK,;t t
+s,@CONFIG_SND_DEBUG@,$CONFIG_SND_DEBUG,;t t
+s,@CONFIG_SND_DEBUG_MEMORY@,$CONFIG_SND_DEBUG_MEMORY,;t t
+s,@CONFIG_SND_DEBUG_DETECT@,$CONFIG_SND_DEBUG_DETECT,;t t
+s,@CONFIG_SND_MPU401_UART@,$CONFIG_SND_MPU401_UART,;t t
+s,@CONFIG_SND_OPL3_LIB@,$CONFIG_SND_OPL3_LIB,;t t
+s,@CONFIG_SND_OPL4_LIB@,$CONFIG_SND_OPL4_LIB,;t t
+s,@CONFIG_SND_VX_LIB@,$CONFIG_SND_VX_LIB,;t t
s,@CONFIG_SND_DUMMY@,$CONFIG_SND_DUMMY,;t t
s,@CONFIG_SND_VIRMIDI@,$CONFIG_SND_VIRMIDI,;t t
-s,@CONFIG_SND_SERIAL_U16550@,$CONFIG_SND_SERIAL_U16550,;t t
s,@CONFIG_SND_MTPAV@,$CONFIG_SND_MTPAV,;t t
+s,@CONFIG_SND_SERIAL_U16550@,$CONFIG_SND_SERIAL_U16550,;t t
s,@CONFIG_SND_MPU401@,$CONFIG_SND_MPU401,;t t
-s,@CONFIG_SND_ALS100@,$CONFIG_SND_ALS100,;t t
-s,@CONFIG_SND_AZT2320@,$CONFIG_SND_AZT2320,;t t
-s,@CONFIG_SND_CMI8330@,$CONFIG_SND_CMI8330,;t t
-s,@CONFIG_SND_DT019X@,$CONFIG_SND_DT019X,;t t
-s,@CONFIG_SND_ES18XX@,$CONFIG_SND_ES18XX,;t t
-s,@CONFIG_SND_OPL3SA2@,$CONFIG_SND_OPL3SA2,;t t
-s,@CONFIG_SND_SGALAXY@,$CONFIG_SND_SGALAXY,;t t
-s,@CONFIG_SND_SSCAPE@,$CONFIG_SND_SSCAPE,;t t
+s,@CONFIG_SND_SERIALMIDI@,$CONFIG_SND_SERIALMIDI,;t t
s,@CONFIG_SND_AD1816A@,$CONFIG_SND_AD1816A,;t t
s,@CONFIG_SND_AD1848@,$CONFIG_SND_AD1848,;t t
s,@CONFIG_SND_CS4231@,$CONFIG_SND_CS4231,;t t
s,@CONFIG_SND_CS4232@,$CONFIG_SND_CS4232,;t t
s,@CONFIG_SND_CS4236@,$CONFIG_SND_CS4236,;t t
s,@CONFIG_SND_PC98_CS4232@,$CONFIG_SND_PC98_CS4232,;t t
+s,@CONFIG_SND_ES968@,$CONFIG_SND_ES968,;t t
s,@CONFIG_SND_ES1688@,$CONFIG_SND_ES1688,;t t
+s,@CONFIG_SND_ES18XX@,$CONFIG_SND_ES18XX,;t t
s,@CONFIG_SND_GUSCLASSIC@,$CONFIG_SND_GUSCLASSIC,;t t
-s,@CONFIG_SND_GUSMAX@,$CONFIG_SND_GUSMAX,;t t
s,@CONFIG_SND_GUSEXTREME@,$CONFIG_SND_GUSEXTREME,;t t
+s,@CONFIG_SND_GUSMAX@,$CONFIG_SND_GUSMAX,;t t
s,@CONFIG_SND_INTERWAVE@,$CONFIG_SND_INTERWAVE,;t t
s,@CONFIG_SND_INTERWAVE_STB@,$CONFIG_SND_INTERWAVE_STB,;t t
s,@CONFIG_SND_OPTI92X_AD1848@,$CONFIG_SND_OPTI92X_AD1848,;t t
@@ -8418,54 +10925,69 @@
s,@CONFIG_SND_SB8@,$CONFIG_SND_SB8,;t t
s,@CONFIG_SND_SB16@,$CONFIG_SND_SB16,;t t
s,@CONFIG_SND_SBAWE@,$CONFIG_SND_SBAWE,;t t
-s,@CONFIG_SND_ES968@,$CONFIG_SND_ES968,;t t
+s,@CONFIG_SND_SB16_CSP@,$CONFIG_SND_SB16_CSP,;t t
s,@CONFIG_SND_WAVEFRONT@,$CONFIG_SND_WAVEFRONT,;t t
-s,@CONFIG_SND_ALS4000@,$CONFIG_SND_ALS4000,;t t
+s,@CONFIG_SND_ALS100@,$CONFIG_SND_ALS100,;t t
+s,@CONFIG_SND_AZT2320@,$CONFIG_SND_AZT2320,;t t
+s,@CONFIG_SND_CMI8330@,$CONFIG_SND_CMI8330,;t t
+s,@CONFIG_SND_DT019X@,$CONFIG_SND_DT019X,;t t
+s,@CONFIG_SND_OPL3SA2@,$CONFIG_SND_OPL3SA2,;t t
+s,@CONFIG_SND_SGALAXY@,$CONFIG_SND_SGALAXY,;t t
+s,@CONFIG_SND_SSCAPE@,$CONFIG_SND_SSCAPE,;t t
+s,@CONFIG_SND_MSND_PINNACLE@,$CONFIG_SND_MSND_PINNACLE,;t t
+s,@CONFIG_SND_AC97_CODEC@,$CONFIG_SND_AC97_CODEC,;t t
+s,@CONFIG_SND_ALI5451@,$CONFIG_SND_ALI5451,;t t
+s,@CONFIG_SND_ATIIXP@,$CONFIG_SND_ATIIXP,;t t
+s,@CONFIG_SND_AU8810@,$CONFIG_SND_AU8810,;t t
+s,@CONFIG_SND_AU8820@,$CONFIG_SND_AU8820,;t t
+s,@CONFIG_SND_AU8830@,$CONFIG_SND_AU8830,;t t
s,@CONFIG_SND_AZT3328@,$CONFIG_SND_AZT3328,;t t
s,@CONFIG_SND_BT87X@,$CONFIG_SND_BT87X,;t t
-s,@CONFIG_SND_CMIPCI@,$CONFIG_SND_CMIPCI,;t t
+s,@CONFIG_SND_CS46XX@,$CONFIG_SND_CS46XX,;t t
+s,@CONFIG_SND_CS46XX_NEW_DSP@,$CONFIG_SND_CS46XX_NEW_DSP,;t t
s,@CONFIG_SND_CS4281@,$CONFIG_SND_CS4281,;t t
+s,@CONFIG_SND_EMU10K1@,$CONFIG_SND_EMU10K1,;t t
+s,@CONFIG_SND_KORG1212@,$CONFIG_SND_KORG1212,;t t
+s,@CONFIG_SND_MIXART@,$CONFIG_SND_MIXART,;t t
+s,@CONFIG_SND_NM256@,$CONFIG_SND_NM256,;t t
+s,@CONFIG_SND_RME32@,$CONFIG_SND_RME32,;t t
+s,@CONFIG_SND_RME96@,$CONFIG_SND_RME96,;t t
+s,@CONFIG_SND_RME9652@,$CONFIG_SND_RME9652,;t t
+s,@CONFIG_SND_HDSP@,$CONFIG_SND_HDSP,;t t
+s,@CONFIG_SND_TRIDENT@,$CONFIG_SND_TRIDENT,;t t
+s,@CONFIG_SND_YMFPCI@,$CONFIG_SND_YMFPCI,;t t
+s,@CONFIG_SND_ALS4000@,$CONFIG_SND_ALS4000,;t t
+s,@CONFIG_SND_CMIPCI@,$CONFIG_SND_CMIPCI,;t t
s,@CONFIG_SND_ENS1370@,$CONFIG_SND_ENS1370,;t t
s,@CONFIG_SND_ENS1371@,$CONFIG_SND_ENS1371,;t t
s,@CONFIG_SND_ES1938@,$CONFIG_SND_ES1938,;t t
s,@CONFIG_SND_ES1968@,$CONFIG_SND_ES1968,;t t
+s,@CONFIG_SND_MAESTRO3@,$CONFIG_SND_MAESTRO3,;t t
s,@CONFIG_SND_FM801@,$CONFIG_SND_FM801,;t t
+s,@CONFIG_SND_FM801_TEA575X@,$CONFIG_SND_FM801_TEA575X,;t t
+s,@CONFIG_SND_ICE1712@,$CONFIG_SND_ICE1712,;t t
+s,@CONFIG_SND_ICE1724@,$CONFIG_SND_ICE1724,;t t
s,@CONFIG_SND_INTEL8X0@,$CONFIG_SND_INTEL8X0,;t t
-s,@CONFIG_SND_MAESTRO3@,$CONFIG_SND_MAESTRO3,;t t
-s,@CONFIG_SND_RME32@,$CONFIG_SND_RME32,;t t
-s,@CONFIG_SND_RME96@,$CONFIG_SND_RME96,;t t
+s,@CONFIG_SND_INTEL8X0M@,$CONFIG_SND_INTEL8X0M,;t t
s,@CONFIG_SND_SONICVIBES@,$CONFIG_SND_SONICVIBES,;t t
s,@CONFIG_SND_VIA82XX@,$CONFIG_SND_VIA82XX,;t t
-s,@CONFIG_SND_ALI5451@,$CONFIG_SND_ALI5451,;t t
-s,@CONFIG_SND_CS46XX@,$CONFIG_SND_CS46XX,;t t
-s,@CONFIG_SND_EMU10K1@,$CONFIG_SND_EMU10K1,;t t
-s,@CONFIG_SND_ICE1712@,$CONFIG_SND_ICE1712,;t t
-s,@CONFIG_SND_ICE1724@,$CONFIG_SND_ICE1724,;t t
-s,@CONFIG_SND_KORG1212@,$CONFIG_SND_KORG1212,;t t
-s,@CONFIG_SND_MIXART@,$CONFIG_SND_MIXART,;t t
-s,@CONFIG_SND_NM256@,$CONFIG_SND_NM256,;t t
-s,@CONFIG_SND_RME9652@,$CONFIG_SND_RME9652,;t t
-s,@CONFIG_SND_HDSP@,$CONFIG_SND_HDSP,;t t
-s,@CONFIG_SND_TRIDENT@,$CONFIG_SND_TRIDENT,;t t
s,@CONFIG_SND_VX222@,$CONFIG_SND_VX222,;t t
-s,@CONFIG_SND_YMFPCI@,$CONFIG_SND_YMFPCI,;t t
+s,@CONFIG_SND_PDPLUS@,$CONFIG_SND_PDPLUS,;t t
+s,@CONFIG_SND_HDSPM@,$CONFIG_SND_HDSPM,;t t
s,@CONFIG_SND_POWERMAC@,$CONFIG_SND_POWERMAC,;t t
s,@CONFIG_SND_SA11XX_UDA1341@,$CONFIG_SND_SA11XX_UDA1341,;t t
+s,@CONFIG_ARCH_SA1100@,$CONFIG_ARCH_SA1100,;t t
s,@CONFIG_SND_USB_AUDIO@,$CONFIG_SND_USB_AUDIO,;t t
-s,@CONFIG_SND_HARMONY@,$CONFIG_SND_HARMONY,;t t
+s,@CONFIG_SND_USB_USX2Y@,$CONFIG_SND_USB_USX2Y,;t t
s,@CONFIG_SND_VXPOCKET@,$CONFIG_SND_VXPOCKET,;t t
s,@CONFIG_SND_VXP440@,$CONFIG_SND_VXP440,;t t
-s,@CONFIG_SND_SERIALMIDI@,$CONFIG_SND_SERIALMIDI,;t t
-s,@CONFIG_SND_INTEL8X0M@,$CONFIG_SND_INTEL8X0M,;t t
-s,@CONFIG_SND_HDSPM@,$CONFIG_SND_HDSPM,;t t
-s,@CONFIG_SND_ATIIXP@,$CONFIG_SND_ATIIXP,;t t
-s,@CONFIG_SND_PDPLUS@,$CONFIG_SND_PDPLUS,;t t
-s,@CONFIG_SND_MSND_PINNACLE@,$CONFIG_SND_MSND_PINNACLE,;t t
s,@CONFIG_SND_PDAUDIOCF@,$CONFIG_SND_PDAUDIOCF,;t t
-s,@CONFIG_SND_USB_USX2Y@,$CONFIG_SND_USB_USX2Y,;t t
-s,@CONFIG_SND_AU8810@,$CONFIG_SND_AU8810,;t t
-s,@CONFIG_SND_AU8820@,$CONFIG_SND_AU8820,;t t
-s,@CONFIG_SND_AU8830@,$CONFIG_SND_AU8830,;t t
+s,@CONFIG_SPARC32@,$CONFIG_SPARC32,;t t
+s,@CONFIG_SND_SUN_AMD7930@,$CONFIG_SND_SUN_AMD7930,;t t
+s,@CONFIG_SBUS@,$CONFIG_SBUS,;t t
+s,@CONFIG_SND_SUN_CS4231@,$CONFIG_SND_SUN_CS4231,;t t
+s,@CONFIG_SND_HARMONY@,$CONFIG_SND_HARMONY,;t t
+s,@CONFIG_SOUND_PRIME@,$CONFIG_SOUND_PRIME,;t t
s,@c_opts@,$c_opts,;t t
s,@m_opts@,$m_opts,;t t
s,@GENKSYMS@,$GENKSYMS,;t t
Index: debian/alsa-driver/configure.in
diff -u debian/alsa-driver/configure.in:1.22 debian/alsa-driver/configure.in:1.23
--- debian/alsa-driver/configure.in:1.22 Sun Feb 29 17:13:51 2004
+++ debian/alsa-driver/configure.in Tue Apr 13 13:39:25 2004
@@ -2,9 +2,10 @@
dnl
dnl Copyright (c) by Jaroslav Kysela <perex@suse.cz>
+AC_PREREQ(2.53)
AC_INIT(acore/sound.patch)
AC_PREFIX_DEFAULT(/usr)
-CONFIG_SND_VERSION="1.0.3"
+CONFIG_SND_VERSION="1.0.4"
dnl Checks for programs.
AC_PROG_CC
@@ -36,6 +37,8 @@
AC_SUBST(SRCDIR)
AC_MSG_RESULT($SRCDIR)
+ALSA_TOPLEVEL_INIT
+
dnl Check for cross compile...
AC_MSG_CHECKING(cross compile)
AC_ARG_WITH(cross,
@@ -160,6 +163,7 @@
[AC_TRY_RUN([
#include <stdio.h>
#include <ctype.h>
+#include <string.h>
#include "$CONFIG_SND_KERNELDIR/include/linux/compile.h"
int main()
{
@@ -182,6 +186,8 @@
*dptr = *ptr;
*dptr = '\t';
*dptr = '\0';
+ if (!strcmp(compiler, " "))
+ compiler[0] = '\0';
fprintf(f,"%s\n",compiler);
fclose(f);
}
@@ -456,6 +462,7 @@
touch include/linux/workqueue.h
fi
fi
+CHECK_KERNEL_HEADER(linux/dma-mapping.h)
CHECK_KERNEL_HEADER(asm/hw_irq.h)
CHECK_KERNEL_HEADER(linux/device.h)
CHECK_KERNEL_HEADER(linux/jiffies.h, [#include <linux/sched.h>
@@ -487,6 +494,10 @@
CHECK_KERNEL_CONFIG(CONFIG_PCI, [PCI support in kernel])
AC_SUBST(CONFIG_PCI)
+dnl Check experimental drivers...
+CHECK_KERNEL_CONFIG(CONFIG_EXPERIMENTAL, [Experimental drivers in kernel])
+AC_SUBST(CONFIG_EXPERIMENTAL)
+
dnl Check for SGI/MIPS (HAL2) support...
AC_MSG_CHECKING(for SGI/MIPS (HAL2) architecture)
CONFIG_SGI=""
@@ -534,6 +545,7 @@
verbose_printk="$enableval", verbose_printk="yes")
case "$verbose_printk" in
yes)
+ CONFIG_SND_VERBOSE_PRINTK=y
AC_DEFINE(CONFIG_SND_VERBOSE_PRINTK)
AC_MSG_RESULT(on)
;;
@@ -546,29 +558,28 @@
dnl Debug level
AC_MSG_CHECKING(for debug level)
AC_ARG_WITH(debug,
- [ --with-debug=level give the debug level (none,basic,memory,full,detect)],
+ [ --with-debug=level give the debug level (none,basic,full,detect)],
debug="$withval", debug="none")
case "$debug" in
basic)
AC_MSG_RESULT(basic)
+ CONFIG_SND_DEBUG=y
AC_DEFINE(CONFIG_SND_DEBUG)
;;
- memory)
- AC_MSG_RESULT(memory)
- AC_DEFINE(CONFIG_SND_DEBUG)
- AC_DEFINE(CONFIG_SND_DEBUG_MEMORY)
- ;;
- full)
+ memory|full)
AC_MSG_RESULT(full)
+ CONFIG_SND_DEBUG=y
AC_DEFINE(CONFIG_SND_DEBUG)
+ CONFIG_SND_DEBUG_MEMORY=y
AC_DEFINE(CONFIG_SND_DEBUG_MEMORY)
- AC_DEFINE(CONFIG_SND_DEBUG_FULL)
- ;;
+ ;;
detect)
AC_MSG_RESULT(detect)
+ CONFIG_SND_DEBUG=y
AC_DEFINE(CONFIG_SND_DEBUG)
+ CONFIG_SND_DEBUG_MEMORY=y
AC_DEFINE(CONFIG_SND_DEBUG_MEMORY)
- AC_DEFINE(CONFIG_SND_DEBUG_FULL)
+ CONFIG_SND_DEBUG_DETECT=y
AC_DEFINE(CONFIG_SND_DEBUG_DETECT)
;;
*)
@@ -951,9 +962,11 @@
fi
AC_SUBST(msmp)
-dnl Check for video device support...
+dnl Check for video device support... (2.2 kernels excluded due to API incompatibility)
+if test $kpatchlevel -gt 2; then
CHECK_KERNEL_CONFIG(CONFIG_VIDEO_DEV, [Video device support in kernel])
AC_SUBST(CONFIG_VIDEO_DEV)
+fi
dnl Check for ISA PnP driver in kernel...
AC_MSG_CHECKING(for ISA PnP driver in kernel)
@@ -1388,7 +1401,6 @@
if test "$ossemul" = "yes"; then
CONFIG_SND_OSSEMUL="y"
fi
-AC_SUBST(CONFIG_SND_OSSEMUL)
if test "$CONFIG_SND_OSSEMUL" = "y"; then
AC_DEFINE(CONFIG_SND_OSSEMUL)
AC_DEFINE(CONFIG_SND_MIXER_OSS_MODULE)
@@ -1480,8 +1492,19 @@
AC_SUBST(CONFIG_X86_PC9800)
dnl Check for which cards to compile driver for...
-ALSA_TOPLEVEL_INIT
ALSA_TOPLEVEL_SELECT
+
+dnl OSS emulations
+if test "$CONFIG_SND_OSSEMUL" = "y"; then
+ CONFIG_SND_MIXER_OSS="$CONFIG_SND"
+ CONFIG_SND_PCM_OSS="$CONFIG_SND_PCM"
+ if test -n "$CONFIG_SND_SEQUENCER"; then
+ CONFIG_SND_SEQUENCER_OSS="y"
+ fi
+fi
+
+dnl Output all stuffs
+ALSA_TOPLEVEL_OUTPUT
dnl Some late substitutes...
c_opts="$c_opts -DLINUX"
Index: debian/alsa-driver/debian/changelog
diff -u debian/alsa-driver/debian/changelog:1.230 debian/alsa-driver/debian/changelog:1.231
--- debian/alsa-driver/debian/changelog:1.230 Sat Mar 20 16:44:50 2004
+++ debian/alsa-driver/debian/changelog Tue Apr 13 13:39:26 2004
@@ -1,5 +1,6 @@
-alsa-driver (1.0.3-2) unstable; urgency=low
+alsa-driver (1.0.4-1) unstable; urgency=low
+ * New upstream release
* Jordi Mallach:
- debian/po/cs.po: new Czech translation of debconf templates
(thanks Miroslav Kure <kurem@upcase.inf.upol.cz>; closes: #235644).
@@ -9,7 +10,7 @@
- debian/control: change Maintainer name to "Debian ALSA Maintainers".
* Unreleased.
- -- Jordi Mallach <jordi@debian.org> Tue, 9 Mar 2004 17:44:27 +0100
+ -- David B. Harris <dbharris@debian.org> Tue, 13 Apr 2004 15:37:34 -0400
alsa-driver (1.0.3-1) unstable; urgency=high
Index: debian/alsa-driver/include/adriver.h
diff -u debian/alsa-driver/include/adriver.h:1.17 debian/alsa-driver/include/adriver.h:1.18
--- debian/alsa-driver/include/adriver.h:1.17 Sun Feb 29 17:13:51 2004
+++ debian/alsa-driver/include/adriver.h Tue Apr 13 13:39:26 2004
@@ -57,14 +57,14 @@
#define request_module(name, args...) snd_compat_request_module(name, ##args)
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
#include <linux/compiler.h>
#ifndef __user
#define __user
#endif
-#ifdef CONFIG_PCI
+/* for compat layer */
#include <linux/pci.h>
-#endif
#ifdef LINUX_2_2
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 2, 18)
@@ -175,6 +175,8 @@
#define MODULE_LICENSE(license)
#endif
+#endif /* < 2.6.0 */
+
#ifndef CONFIG_HAVE_STRLCPY
size_t snd_compat_strlcpy(char *dest, const char *src, size_t size);
#define strlcpy(dest, src, size) snd_compat_strlcpy(dest, src, size)
@@ -207,8 +209,9 @@
#define writeq(v, a) do { __writeq((v),(a)); mb(); } while(0)
#endif
-#include <linux/interrupt.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 28)
+#include <linux/interrupt.h>
static inline void synchronize_irq_wrapper(unsigned int irq) { synchronize_irq(); }
#undef synchronize_irq
#define synchronize_irq(irq) synchronize_irq_wrapper(irq)
@@ -219,6 +222,7 @@
#define IRQ_RETVAL(x) /*void*/
typedef void irqreturn_t;
#endif
+#endif /* < 2.6.0 */
#ifndef min
/*
@@ -241,6 +245,7 @@
#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#include <linux/devfs_fs_kernel.h>
#ifdef CONFIG_DEVFS_FS
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 29)
@@ -252,7 +257,7 @@
#undef devfs_remove
void snd_compat_devfs_remove(const char *fmt, ...);
#define devfs_remove snd_compat_devfs_remove
-#endif
+#endif /* < 2.5.29 */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 67)
#undef devfs_mk_dir
int snd_compat_devfs_mk_dir(const char *dir, ...);
@@ -260,7 +265,7 @@
#undef devfs_mk_cdev
int snd_compat_devfs_mk_cdev(dev_t dev, umode_t mode, const char *fmt, ...);
#define devfs_mk_cdev snd_compat_devfs_mk_cdev
-#endif
+#endif /* < 2.5.67 */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 3, 0)
static inline void devfs_find_and_unregister (devfs_handle_t dir, const char *name,
unsigned int major, unsigned int minor,
@@ -289,6 +294,7 @@
#undef devfs_mk_cdev
#define devfs_mk_cdev(dev, mode, fmt, args...) do { (void)(dev); } while (0)
#endif /* CONFIG_DEVFS_FS */
+#endif /* < 2.6.0 */
/* workarounds for USB API */
#if defined(SND_NEED_USB_WRAPPER) && (defined(CONFIG_USB) || defined(CONFIG_USB_MODULE))
@@ -334,7 +340,6 @@
#define usb_host_config usb_config_descriptor
#define usb_host_interface usb_interface_descriptor
#define usb_host_endpoint usb_endpoint_descriptor
-#define get_iface(cfg, num) (&(cfg)->interface[num])
#define get_iface_desc(iface) (iface)
#define get_endpoint(alt,ep) (&(alt)->endpoint[ep])
#define get_ep_desc(ep) (ep)
@@ -350,9 +355,37 @@
#define usb_pipe_needs_resubmit(pipe) (!usb_pipeint(pipe))
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 3, 0)
+enum {
+ USB_SPEED_UNKNOWN = 0,
+ USB_SPEED_LOW, USB_SPEED_FULL,
+ USB_SPEED_HIGH
+};
+#define snd_usb_get_speed(dev) USB_SPEED_FULL
+#endif
+
#endif /* SND_NEED_USB_WRAPPER && CONFIG_USB */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 24) \
+ && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 5) \
+ && defined(SND_NEED_USB_SET_INTERFACE) \
+ && (defined(CONFIG_USB) || defined(CONFIG_USB_MODULE))
+
+#include <linux/usb.h>
+
+inline static int real_usb_set_interface(struct usb_device *dev, int interface, int alternate)
+{
+ return usb_set_interface(dev, interface, alternate);
+}
+
+int snd_hack_usb_set_interface(struct usb_device *dev, int interface, int alternate);
+#undef usb_set_interface
+#define usb_set_interface(dev,iface,alt) snd_hack_usb_set_interface(dev,iface,alt)
+
+#endif
+
/* workqueue-alike; 2.5.45 */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#include <linux/workqueue.h>
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 45) && !defined(__WORK_INITIALIZER)
struct work_struct {
@@ -372,7 +405,8 @@
struct work_struct n = __WORK_INITIALIZER(n, f, d)
int snd_compat_schedule_work(struct work_struct *work);
#define schedule_work(w) snd_compat_schedule_work(w)
-#endif /* 2.5.45 */
+#endif /* < 2.5.45 */
+#endif /* < 2.6.0 */
/* 2.5 new modules */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
@@ -435,6 +469,13 @@
#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
#define snd_card_set_dev(card,dev) /* no struct device */
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+#define snd_dma_pci_data(pci) ((struct device *)(pci))
+#define snd_dma_isa_data() NULL
+#define snd_dma_sbus_data(sbus) ((struct device *)(sbus))
+#define snd_dma_continuous_data(x) ((struct device *)(unsigned long)(x))
#endif
#endif /* __SOUND_LOCAL_DRIVER_H */
Index: debian/alsa-driver/include/config1.h.in
diff -u debian/alsa-driver/include/config1.h.in:1.11 debian/alsa-driver/include/config1.h.in:1.12
--- debian/alsa-driver/include/config1.h.in:1.11 Sun Feb 29 17:13:51 2004
+++ debian/alsa-driver/include/config1.h.in Tue Apr 13 13:39:26 2004
@@ -1,30 +1,55 @@
/* Soundcard configuration for ALSA driver */
-/* Copyright (c) by Anders Semb Hermansen <ahermans@vf.telia.no>, */
-/* Jaroslav Kysela <perex@suse.cz> */
+/* Copyright (c) by Jaroslav Kysela <perex@suse.cz>, */
+/* Anders Semb Hermansen <ahermans@vf.telia.no> */
+#undef CONFIG_SOUND_MODULE
+#undef CONFIG_SND_MODULE
+#undef CONFIG_SND_BIT32_EMUL_MODULE
+#undef CONFIG_SPARC64_MODULE
+#undef CONFIG_PPC64_MODULE
+#undef CONFIG_X86_64_MODULE
+#undef CONFIG_IA32_EMULATION_MODULE
+#undef CONFIG_SND_TIMER_MODULE
+#undef CONFIG_SND_PCM_MODULE
+#undef CONFIG_SND_HWDEP_MODULE
+#undef CONFIG_SND_RAWMIDI_MODULE
+#undef CONFIG_SND_SEQUENCER_MODULE
+#undef CONFIG_SND_SEQ_DUMMY_MODULE
+#undef CONFIG_SND_OSSEMUL_MODULE
+#undef CONFIG_SND_MIXER_OSS_MODULE
+#undef CONFIG_SND_PCM_OSS_MODULE
+#undef CONFIG_SND_SEQUENCER_OSS
+#undef CONFIG_SND_RTCTIMER_MODULE
+#undef CONFIG_RTC_MODULE
+#undef CONFIG_SND_VERBOSE_PRINTK
+#undef CONFIG_SND_DEBUG
+#undef CONFIG_SND_DEBUG_MEMORY
+#undef CONFIG_SND_DEBUG_DETECT
+#undef CONFIG_SND_MPU401_UART_MODULE
+#undef CONFIG_SND_OPL3_LIB_MODULE
+#undef CONFIG_SND_OPL4_LIB_MODULE
+#undef CONFIG_SND_VX_LIB_MODULE
#undef CONFIG_SND_DUMMY_MODULE
#undef CONFIG_SND_VIRMIDI_MODULE
-#undef CONFIG_SND_SERIAL_U16550_MODULE
#undef CONFIG_SND_MTPAV_MODULE
+#undef CONFIG_SND_SERIAL_U16550_MODULE
#undef CONFIG_SND_MPU401_MODULE
-#undef CONFIG_SND_ALS100_MODULE
-#undef CONFIG_SND_AZT2320_MODULE
-#undef CONFIG_SND_CMI8330_MODULE
-#undef CONFIG_SND_DT019X_MODULE
-#undef CONFIG_SND_ES18XX_MODULE
-#undef CONFIG_SND_OPL3SA2_MODULE
-#undef CONFIG_SND_SGALAXY_MODULE
-#undef CONFIG_SND_SSCAPE_MODULE
+#undef CONFIG_SND_SERIALMIDI_MODULE
+#undef CONFIG_ISA_MODULE
#undef CONFIG_SND_AD1816A_MODULE
+#undef CONFIG_ISAPNP_MODULE
#undef CONFIG_SND_AD1848_MODULE
#undef CONFIG_SND_CS4231_MODULE
#undef CONFIG_SND_CS4232_MODULE
#undef CONFIG_SND_CS4236_MODULE
#undef CONFIG_SND_PC98_CS4232_MODULE
+#undef CONFIG_X86_PC9800_MODULE
+#undef CONFIG_SND_ES968_MODULE
#undef CONFIG_SND_ES1688_MODULE
+#undef CONFIG_SND_ES18XX_MODULE
#undef CONFIG_SND_GUSCLASSIC_MODULE
-#undef CONFIG_SND_GUSMAX_MODULE
#undef CONFIG_SND_GUSEXTREME_MODULE
+#undef CONFIG_SND_GUSMAX_MODULE
#undef CONFIG_SND_INTERWAVE_MODULE
#undef CONFIG_SND_INTERWAVE_STB_MODULE
#undef CONFIG_SND_OPTI92X_AD1848_MODULE
@@ -33,51 +58,75 @@
#undef CONFIG_SND_SB8_MODULE
#undef CONFIG_SND_SB16_MODULE
#undef CONFIG_SND_SBAWE_MODULE
-#undef CONFIG_SND_ES968_MODULE
+#undef CONFIG_SND_SB16_CSP
#undef CONFIG_SND_WAVEFRONT_MODULE
-#undef CONFIG_SND_ALS4000_MODULE
+#undef CONFIG_SND_ALS100_MODULE
+#undef CONFIG_SND_AZT2320_MODULE
+#undef CONFIG_SND_CMI8330_MODULE
+#undef CONFIG_SND_DT019X_MODULE
+#undef CONFIG_SND_OPL3SA2_MODULE
+#undef CONFIG_SND_SGALAXY_MODULE
+#undef CONFIG_SND_SSCAPE_MODULE
+#undef CONFIG_SND_MSND_PINNACLE_MODULE
+#undef CONFIG_PCI_MODULE
+#undef CONFIG_SND_AC97_CODEC_MODULE
+#undef CONFIG_SND_ALI5451_MODULE
+#undef CONFIG_SND_ATIIXP_MODULE
+#undef CONFIG_SND_AU8810_MODULE
+#undef CONFIG_SND_AU8820_MODULE
+#undef CONFIG_SND_AU8830_MODULE
#undef CONFIG_SND_AZT3328_MODULE
+#undef CONFIG_EXPERIMENTAL_MODULE
#undef CONFIG_SND_BT87X_MODULE
-#undef CONFIG_SND_CMIPCI_MODULE
+#undef CONFIG_SND_CS46XX_MODULE
+#undef CONFIG_SND_CS46XX_NEW_DSP
#undef CONFIG_SND_CS4281_MODULE
+#undef CONFIG_SND_EMU10K1_MODULE
+#undef CONFIG_SND_KORG1212_MODULE
+#undef CONFIG_SND_MIXART_MODULE
+#undef CONFIG_SND_NM256_MODULE
+#undef CONFIG_SND_RME32_MODULE
+#undef CONFIG_SND_RME96_MODULE
+#undef CONFIG_SND_RME9652_MODULE
+#undef CONFIG_SND_HDSP_MODULE
+#undef CONFIG_SND_TRIDENT_MODULE
+#undef CONFIG_SND_YMFPCI_MODULE
+#undef CONFIG_SND_ALS4000_MODULE
+#undef CONFIG_SND_CMIPCI_MODULE
#undef CONFIG_SND_ENS1370_MODULE
#undef CONFIG_SND_ENS1371_MODULE
#undef CONFIG_SND_ES1938_MODULE
#undef CONFIG_SND_ES1968_MODULE
+#undef CONFIG_SND_MAESTRO3_MODULE
#undef CONFIG_SND_FM801_MODULE
+#undef CONFIG_SND_FM801_TEA575X_MODULE
+#undef CONFIG_VIDEO_DEV_MODULE
+#undef CONFIG_SND_ICE1712_MODULE
+#undef CONFIG_SND_ICE1724_MODULE
#undef CONFIG_SND_INTEL8X0_MODULE
-#undef CONFIG_SND_MAESTRO3_MODULE
-#undef CONFIG_SND_RME32_MODULE
-#undef CONFIG_SND_RME96_MODULE
+#undef CONFIG_SND_INTEL8X0M_MODULE
#undef CONFIG_SND_SONICVIBES_MODULE
#undef CONFIG_SND_VIA82XX_MODULE
-#undef CONFIG_SND_ALI5451_MODULE
-#undef CONFIG_SND_CS46XX_MODULE
-#undef CONFIG_SND_EMU10K1_MODULE
-#undef CONFIG_SND_ICE1712_MODULE
-#undef CONFIG_SND_ICE1724_MODULE
-#undef CONFIG_SND_KORG1212_MODULE
-#undef CONFIG_SND_MIXART_MODULE
-#undef CONFIG_SND_NM256_MODULE
-#undef CONFIG_SND_RME9652_MODULE
-#undef CONFIG_SND_HDSP_MODULE
-#undef CONFIG_SND_TRIDENT_MODULE
#undef CONFIG_SND_VX222_MODULE
-#undef CONFIG_SND_YMFPCI_MODULE
+#undef CONFIG_SND_PDPLUS_MODULE
+#undef CONFIG_SND_HDSPM_MODULE
+#undef CONFIG_PPC_MODULE
#undef CONFIG_SND_POWERMAC_MODULE
+#undef CONFIG_ARM_MODULE
#undef CONFIG_SND_SA11XX_UDA1341_MODULE
+#undef CONFIG_ARCH_SA1100_MODULE
+#undef CONFIG_L3_MODULE
+#undef CONFIG_USB_MODULE
#undef CONFIG_SND_USB_AUDIO_MODULE
-#undef CONFIG_SND_HARMONY_MODULE
+#undef CONFIG_SND_USB_USX2Y_MODULE
+#undef CONFIG_PCMCIA_MODULE
#undef CONFIG_SND_VXPOCKET_MODULE
#undef CONFIG_SND_VXP440_MODULE
-#undef CONFIG_SND_SERIALMIDI_MODULE
-#undef CONFIG_SND_INTEL8X0M_MODULE
-#undef CONFIG_SND_HDSPM_MODULE
-#undef CONFIG_SND_ATIIXP_MODULE
-#undef CONFIG_SND_PDPLUS_MODULE
-#undef CONFIG_SND_MSND_PINNACLE_MODULE
#undef CONFIG_SND_PDAUDIOCF_MODULE
-#undef CONFIG_SND_USB_USX2Y_MODULE
-#undef CONFIG_SND_AU8810_MODULE
-#undef CONFIG_SND_AU8820_MODULE
-#undef CONFIG_SND_AU8830_MODULE
+#undef CONFIG_SPARC32_MODULE
+#undef CONFIG_SND_SUN_AMD7930_MODULE
+#undef CONFIG_SBUS_MODULE
+#undef CONFIG_SND_SUN_CS4231_MODULE
+#undef CONFIG_PARISC_MODULE
+#undef CONFIG_SND_HARMONY_MODULE
+#undef CONFIG_SOUND_PRIME_MODULE
Index: debian/alsa-driver/isa/msnd/msnd_pinnacle.c
diff -u debian/alsa-driver/isa/msnd/msnd_pinnacle.c:1.8 debian/alsa-driver/isa/msnd/msnd_pinnacle.c:1.9
--- debian/alsa-driver/isa/msnd/msnd_pinnacle.c:1.8 Wed Dec 24 20:02:31 2003
+++ debian/alsa-driver/isa/msnd/msnd_pinnacle.c Tue Apr 13 13:39:26 2004
@@ -41,7 +41,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
- * msnd_pinnacle.c,v 1.8 2003/11/13 17:08:06 tiwai Exp
+ * msnd_pinnacle.c,v 1.9 2004/03/06 16:55:13 tiwai Exp
*
* 12-3-2000 Modified IO port validation Steve Sycamore
*
@@ -59,6 +59,7 @@
#include <linux/config.h>
#include <linux/version.h>
#include <linux/module.h>
+#include <linux/interrupt.h>
#include <linux/slab.h>
#include <linux/types.h>
#include <linux/delay.h>
Index: debian/alsa-driver/pci/au88x0/au8810.h
diff -u debian/alsa-driver/pci/au88x0/au8810.h:1.1.1.1 debian/alsa-driver/pci/au88x0/au8810.h:removed
--- debian/alsa-driver/pci/au88x0/au8810.h:1.1.1.1 Mon Oct 6 08:01:03 2003
+++ debian/alsa-driver/pci/au88x0/au8810.h Tue Apr 13 13:39:27 2004
@@ -1,222 +0,0 @@
-/*
- Aureal Advantage Soundcard driver.
- */
-
-#define CHIP_AU8810
-
-#define CARD_NAME "Aureal Advantage 3D Sound Processor"
-#define CARD_NAME_SHORT "au8810"
-
-#ifndef PCI_VENDOR_ID_AUREAL
-#define PCI_VENDOR_ID_AUREAL 0x12eb
-#endif
-#ifndef PCI_VENDOR_ID_AUREAL_ADVANTAGE
-#define PCI_DEVICE_ID_AUREAL_ADVANTAGE 0x0003
-#endif
-
-#define hwread(x,y) readl((x)+((y)>>2))
-#define hwwrite(x,y,z) writel((z),(x)+((y)>>2))
-
-#define NR_ADB 0x10
-#define NR_SRC 0x10
-#define NR_A3D 0x10
-#define NR_MIXIN 0x20
-#define NR_MIXOUT 0x10
-#define NR_WT 0x20
-
-/* ADBDMA */
-#define VORTEX_ADBDMA_STAT 0x27e00 /* read only, subbuffer, DMA pos */
-#define POS_MASK 0x00000fff
-#define POS_SHIFT 0x0
-#define ADB_SUBBUF_MASK 0x00003000 /* ADB only. */
-#define ADB_SUBBUF_SHIFT 0xc /* ADB only. */
-#define VORTEX_ADBDMA_CTRL 0x27180 /* write only; format, flags, DMA pos */
-#define OFFSET_MASK 0x00000fff
-#define OFFSET_SHIFT 0x0
-#define IE_MASK 0x00001000 /* interrupt enable. */
-#define IE_SHIFT 0xc
-#define U_MASK 0x00002000 /* Unknown. If you know, tell me. */
-#define U_SHIFT 0xd
-#define FMT_MASK 0x0003c000
-#define FMT_SHIFT 0xe
-// The ADB masks and shift also are valid for the wtdma, except if specified otherwise.
-#define VORTEX_ADBDMA_BUFCFG0 0x27100
-#define VORTEX_ADBDMA_BUFCFG1 0x27104
-#define VORTEX_ADBDMA_BUFBASE 0x27000
-#define VORTEX_ADBDMA_START 0x27c00 /* Which subbuffer starts */
-
-/* WTDMA */
-#define VORTEX_WTDMA_CTRL 0x27fd8 /* format, DMA pos */
-#define VORTEX_WTDMA_STAT 0x27fe8 /* DMA subbuf, DMA pos */
-#define WT_SUBBUF_MASK 0x3
-#define WT_SUBBUF_SHIFT 0xc
-#define VORTEX_WTDMA_BUFBASE 0x27fc0
-#define VORTEX_WTDMA_BUFCFG0 0x27fd0
-#define VORTEX_WTDMA_BUFCFG1 0x27fd4
-#define VORTEX_WTDMA_START 0x27fe4 /* which subbuffer is first */
-
-/* ADB */
-#define VORTEX_ADB_SR 0x28400 /* Samplerates enable/disable */
-#define VORTEX_ADB_RTBASE 0x28000
-#define VORTEX_ADB_RTBASE_SIZE (VORTEX_ADB_CHNBASE - VORTEX_ADB_RTBASE)
-#define VORTEX_ADB_CHNBASE 0x282b4
-#define VORTEX_ADB_CHNBASE_SIZE (ADB_MASK - VORTEX_ADB_RTBASE_SIZE)
-#define ROUTE_MASK 0xffff
-#define SOURCE_MASK 0xff00
-#define ADB_MASK 0xff
-#define ADB_SHIFT 0x8
-/* ADB address */
-#define OFFSET_ADBDMA 0x00
-#define OFFSET_SRCIN 0x40
-#define OFFSET_SRCOUT 0x20
-#define OFFSET_MIXIN 0x50
-#define OFFSET_MIXOUT 0x30
-#define OFFSET_CODECIN 0x70
-#define OFFSET_CODECOUT 0x88
-#define OFFSET_SPORTIN 0x78 /* ch 0x13 */
-#define OFFSET_SPORTOUT 0x90
-#define OFFSET_SPDIFOUT 0x92 /* ch 0x14 check this! */
-#define OFFSET_EQIN 0xa0
-#define OFFSET_EQOUT 0x7e /* 2 routes on ch 0x11 */
-
-/* ADB route translate helper */
-#define ADB_DMA(x) (x)
-#define ADB_SRCOUT(x) (x + OFFSET_SRCOUT)
-#define ADB_SRCIN(x) (x + OFFSET_SRCIN)
-#define ADB_MIXOUT(x) (x + OFFSET_MIXOUT)
-#define ADB_MIXIN(x) (x + OFFSET_MIXIN)
-#define ADB_CODECIN(x) (x + OFFSET_CODECIN)
-#define ADB_CODECOUT(x) (x + OFFSET_CODECOUT)
-#define ADB_SPORTIN(x) (x + OFFSET_SPORTIN)
-#define ADB_SPORTOUT(x) (x + OFFSET_SPORTOUT)
-#define ADB_SPDIFOUT(x) (x + OFFSET_SPDIFOUT)
-#define ADB_EQIN(x) (x + OFFSET_EQIN)
-#define ADB_EQOUT(x) (x + OFFSET_EQOUT)
-#define ADB_A3DOUT(x) (x + 0x50) /* A3D blocks */
-#define ADB_A3DIN(x) (x + 0x70)
-
-#define MIX_OUTL 0xe
-#define MIX_OUTR 0xf
-#define MIX_INL 0x1e
-#define MIX_INR 0x1f
-#define MIX_DEFIGAIN 0x00 /* 0x8 => 6dB */
-#define MIX_DEFOGAIN 0x00
-
-/* MIXER */
-#define VORTEX_MIXER_SR 0x21f00
-#define VORTEX_MIXER_CHNBASE 0x21e40
-#define VORTEX_MIXER_RTBASE 0x21e00
-#define MIXER_RTBASE_SIZE 0x38
-#define VORTEX_MIX_U0 0x21c00 /* AU8820: 0x9c00 */
-
-/* MIX */
-#define VORTEX_MIX_INVOL_A 0x21000 /* in? */
-#define VORTEX_MIX_INVOL_B 0x20000 /* out? */
-#define VORTEX_MIX_VOL_A 0x21800
-#define VORTEX_MIX_VOL_B 0x20800
-#define VORTEX_MIX_ENIN 0x21a00 /* Input enable bits. 4 bits wide. */
-#define VOL_MIN 0x80 /* Input volume when muted. */
-#define VOL_MAX 0x7f /* FIXME: Not confirmed! Just guessed. */
-
-/* SRC */
-#define VORTEX_SRCBLOCK_SR 0x26cc0
-#define VORTEX_SRC_CHNBASE 0x26c40
-#define VORTEX_SRC_RTBASE 0x26c00
-#define VORTEX_SRC_SOURCE 0x26cc4
-#define VORTEX_SRC_CONVRATIO 0x26e40
-#define VORTEX_SRC_DRIFT0 0x26e80
-#define VORTEX_SRC_DRIFT1 0x26ec0
-#define VORTEX_SRC_DRIFT2 0x26f40
-#define VORTEX_SRC_U0 0x26e00
-#define VORTEX_SRC_U1 0x26f00
-#define VORTEX_SRC_U3 0x26f80
-#define VORTEX_SRC_DATA 0x26800 /* 0xc800 */
-#define VORTEX_SRC_DATA0 0x26000
-
-/* FIFO */
-#define VORTEX_FIFO_ADBCTRL 0x16100 /* Control bits. */
-#define VORTEX_FIFO_WTCTRL 0x16000
-#define FIFO_RDONLY 0x00000001
-#define FIFO_CTRL 0x00000002 /* Allow ctrl. ? */
-#define FIFO_VALID 0x00000010
-#define FIFO_EMPTY 0x00000020
-#define FIFO_U0 0x00001000 /* Unknown. */
-#define FIFO_U1 0x00010000
-#define FIFO_SIZE_BITS 5
-#define FIFO_SIZE (1<<FIFO_SIZE_BITS) // 0x20
-#define FIFO_MASK (FIFO_SIZE-1) //0x1f /* at shift left 0xc */
-//#define FIFO_MASK 0x1f /* at shift left 0xb */
-//#define FIFO_SIZE 0x20
-#define FIFO_BITS 0x03880000
-#define VORTEX_FIFO_ADBDATA 0x14000
-#define VORTEX_FIFO_WTDATA 0x10000
-
-/* CODEC */
-#define VORTEX_CODEC_CTRL 0x29184
-#define VORTEX_CODEC_EN 0x29190
-#define EN_CODEC0 0x00000300
-#define EN_CODEC1 0x00003000
-#define EN_CODEC (EN_CODEC0 | EN_CODEC1)
-#define EN_SPORT 0x00030000
-#define EN_SPDIF 0x000c0000
-#define VORTEX_CODEC_CHN 0x29080
-#define VORTEX_CODEC_WRITE 0x00800000
-#define VORTEX_CODEC_ADDSHIFT 16
-#define VORTEX_CODEC_ADDMASK 0x7f0000 /* 0x000f0000*/
-#define VORTEX_CODEC_DATSHIFT 0
-#define VORTEX_CODEC_DATMASK 0xffff
-#define VORTEX_CODEC_IO 0x29188
-
-/* SPDIF */
-#define VORTEX_SPDIF_FLAGS 0x2205c
-#define VORTEX_SPDIF_CFG0 0x291D0
-#define VORTEX_SPDIF_CFG1 0x291D4
-#define VORTEX_SPDIF_SMPRATE 0x29194
-
-/* Sample timer */
-#define VORTEX_SMP_TIME 0x29198
-
-/* IRQ */
-#define VORTEX_IRQ_SOURCE 0x2a000 /* Interrupt source flags. */
-#define IRQ_FATAL 0x0001
-#define IRQ_PARITY 0x0002
-#define IRQ_PCMOUT 0x0020 /* ?? */
-#define IRQ_TIMER 0x1000
-#define IRQ_MIDI 0x2000
-#define IRQ_MODEM 0x4000
-
-#define VORTEX_IRQ_U0 0x2a008 /* ?? */
-
-#define VORTEX_CTRL 0x2a00c
-#define CTRL_MIDI_EN 0x00000001
-#define CTRL_MIDI_PORT 0x00000060
-#define CTRL_GAME_EN 0x00000008
-#define CTRL_GAME_PORT 0x00000e00
-//#define CTRL_IRQ_ENABLE 0x01004000
-#define CTRL_IRQ_ENABLE 0x00004000
-
-#define VORTEX_IRQ_CTRL 0x2a004 /* Interrupt source mask. */
-#define IRQ_FATAL 0x0001
-#define IRQ_PARITY 0x0002
-#define IRQ_PCMOUT 0x0020 /* PCM OUT page crossing */
-#define IRQ_TIMER 0x1000
-#define IRQ_MIDI 0x2000
-#define IRQ_MODEM 0x4000
-
-/* write: Timer period config / read: TIMER IRQ ack. */
-#define VORTEX_IRQ_STAT 0x2919c
-
-/* DMA */
-#define VORTEX_ENGINE_CTRL 0x27ae8
-#define ENGINE_INIT 0x1380000
-
-/* MIDI */ /* GAME. */
-#define VORTEX_MIDI_DATA 0x28800
-#define VORTEX_MIDI_CMD 0x28804 /* Write command / Read status */
-
-#define VORTEX_CTRL2 0x2880c
-#define CTRL2_GAME_ADCMODE 0x40
-#define VORTEX_GAME_LEGACY 0x28808
-#define VORTEX_GAME_AXIS 0x28810
-#define AXIS_SIZE 4
-#define AXIS_RANGE 0x1fff
Index: debian/alsa-driver/pci/au88x0/au8810_core.c
diff -u debian/alsa-driver/pci/au88x0/au8810_core.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8810_core.c:removed
--- debian/alsa-driver/pci/au88x0/au8810_core.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8810_core.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8810.h"
-#include "au88x0_core.c"
Index: debian/alsa-driver/pci/au88x0/au8810_eq.c
diff -u debian/alsa-driver/pci/au88x0/au8810_eq.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8810_eq.c:removed
--- debian/alsa-driver/pci/au88x0/au8810_eq.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8810_eq.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8810.h"
-#include "au88x0_eq.c"
Index: debian/alsa-driver/pci/au88x0/au8810_game.c
diff -u debian/alsa-driver/pci/au88x0/au8810_game.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8810_game.c:removed
--- debian/alsa-driver/pci/au88x0/au8810_game.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8810_game.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8810.h"
-#include "au88x0_game.c"
Index: debian/alsa-driver/pci/au88x0/au8810_mixer.c
diff -u debian/alsa-driver/pci/au88x0/au8810_mixer.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8810_mixer.c:removed
--- debian/alsa-driver/pci/au88x0/au8810_mixer.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8810_mixer.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8810.h"
-#include "au88x0_mixer.c"
Index: debian/alsa-driver/pci/au88x0/au8810_mpu401.c
diff -u debian/alsa-driver/pci/au88x0/au8810_mpu401.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8810_mpu401.c:removed
--- debian/alsa-driver/pci/au88x0/au8810_mpu401.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8810_mpu401.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8810.h"
-#include "au88x0_mpu401.c"
Index: debian/alsa-driver/pci/au88x0/au8810_pcm.c
diff -u debian/alsa-driver/pci/au88x0/au8810_pcm.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8810_pcm.c:removed
--- debian/alsa-driver/pci/au88x0/au8810_pcm.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8810_pcm.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8810.h"
-#include "au88x0_pcm.c"
Index: debian/alsa-driver/pci/au88x0/au8820.h
diff -u debian/alsa-driver/pci/au88x0/au8820.h:1.1.1.1 debian/alsa-driver/pci/au88x0/au8820.h:removed
--- debian/alsa-driver/pci/au88x0/au8820.h:1.1.1.1 Mon Oct 6 08:01:03 2003
+++ debian/alsa-driver/pci/au88x0/au8820.h Tue Apr 13 13:39:27 2004
@@ -1,227 +0,0 @@
-/*
- Aureal Vortex Soundcard driver.
-
- IO addr collected from asp4core.vxd:
- function address
- 0005D5A0 13004
- 00080674 14004
- 00080AFF 12818
-
- */
-
-#define CHIP_AU8820
-
-#define CARD_NAME "Aureal Vortex 3D Sound Processor"
-#define CARD_NAME_SHORT "au8820"
-
-#ifndef PCI_VENDOR_ID_AUREAL
-#define PCI_VENDOR_ID_AUREAL 0x12eb
-#endif
-
-#ifndef PCI_VENDOR_ID_AUREAL_VORTEX
-#define PCI_DEVICE_ID_AUREAL_VORTEX 0x0001
-#endif
-
-/* Number of ADB and WT channels */
-#define NR_ADB 0x10
-#define NR_WT 0x20
-#define NR_SRC 0x10
-#define NR_A3D 0x8
-#define NR_MIXIN 0x10
-#define NR_MIXOUT 0x10
-#define NR_WT 0x20
-
-/* ADBDMA */
-#define VORTEX_ADBDMA_STAT 0x105c0 /* read only, subbuffer, DMA pos */
-#define POS_MASK 0x00000fff
-#define POS_SHIFT 0x0
-#define ADB_SUBBUF_MASK 0x00003000 /* ADB only. */
-#define ADB_SUBBUF_SHIFT 0xc /* ADB only. */
-#define VORTEX_ADBDMA_CTRL 0x10580 /* write only, format, flags, DMA pos */
-#define OFFSET_MASK 0x00000fff
-#define OFFSET_SHIFT 0x0
-#define IE_MASK 0x00001000 /* interrupt enable. */
-#define IE_SHIFT 0xc
-#define U_MASK 0x00002000 /* Unknown. If you know tell me. */
-#define U_SHIFT 0xd
-#define FMT_MASK 0x0003c000
-#define FMT_SHIFT 0xe
-// The masks and shift also work for the wtdma, if not specified otherwise.
-#define VORTEX_ADBDMA_BUFCFG0 0x10400
-#define VORTEX_ADBDMA_BUFCFG1 0x10404
-#define VORTEX_ADBDMA_BUFBASE 0x10200
-#define VORTEX_ADBDMA_START 0x106c0 /* Which subbuffer starts */
-
-/* ADB */
-#define VORTEX_ADB_SR 0x10a00 /* Samplerates enable/disable */
-#define VORTEX_ADB_RTBASE 0x10800
-#define VORTEX_ADB_RTBASE_SIZE (VORTEX_ADB_CHNBASE - VORTEX_ADB_RTBASE)
-#define VORTEX_ADB_CHNBASE 0x1099c
-#define VORTEX_ADB_CHNBASE_SIZE (ADB_MASK - VORTEX_ADB_RTBASE_SIZE)
-#define ROUTE_MASK 0x3fff
-#define ADB_MASK 0x7f
-#define ADB_SHIFT 0x7
-//#define ADB_MIX_MASK 0xf
-/* ADB address */
-#define OFFSET_ADBDMA 0x00
-#define OFFSET_SRCOUT 0x10 /* on channel 0x11 */
-#define OFFSET_SRCIN 0x10 /* on channel < 0x11 */
-#define OFFSET_MIXOUT 0x20
-#define OFFSET_MIXIN 0x30
-#define OFFSET_CODECIN 0x48 /* ADB source */
-#define OFFSET_CODECOUT 0x58 /* ADB sink/target */
-#define OFFSET_SPORTOUT 0x60
-#define OFFSET_SPORTIN 0x78
-#define OFFSET_SPDIFOUT 0x62
-#define OFFSET_A3DOUT 0x50
-#define OFFSET_A3DIN 0x70
-#define OFFSET_WTOUT 0x00 /* FIXME */
-
-/* ADB route translate helper */
-#define ADB_DMA(x) (x + OFFSET_ADBDMA)
-#define ADB_SRCOUT(x) (x + OFFSET_SRCOUT)
-#define ADB_SRCIN(x) (x + OFFSET_SRCIN)
-#define ADB_MIXOUT(x) (x + OFFSET_MIXOUT)
-#define ADB_MIXIN(x) (x + OFFSET_MIXIN)
-#define ADB_CODECIN(x) (x + OFFSET_CODECIN)
-#define ADB_CODECOUT(x) (x + OFFSET_CODECOUT)
-#define ADB_SPORTOUT(x) (x + OFFSET_SPORTOUT)
-#define ADB_SPORTIN(x) (x + OFFSET_SPORTIN) /* 0x72 ? */
-#define ADB_SPDIFOUT(x) (x + OFFSET_SPDIFOUT)
-#define ADB_A3DOUT(x) (x + OFFSET_A3DOUT) /* 8 A3D blocks */
-#define ADB_A3DIN(x) (x + OFFSET_A3DIN)
-#define ADB_WTOUT(x) (x + OFFSET_WTOUT)
-
-/* WTDMA */
-#define VORTEX_WTDMA_CTRL 0x10500 /* format, DMA pos */
-#define VORTEX_WTDMA_STAT 0x10500 /* DMA subbuf, DMA pos */
-#define WT_SUBBUF_MASK (0x3 << WT_SUBBUF_SHIFT)
-#define WT_SUBBUF_SHIFT 0x15
-#define VORTEX_WTDMA_BUFBASE 0x10000
-#define VORTEX_WTDMA_BUFCFG0 0x10300
-#define VORTEX_WTDMA_BUFCFG1 0x10304
-#define VORTEX_WTDMA_START 0x10640 /* which subbuffer is first */
-
-#define VORTEX_WT_BASE 0x9000
-
-/* MIXER */
-#define VORTEX_MIXER_SR 0x9f00
-#define VORTEX_MIXER_CHNBASE 0x9e40
-#define VORTEX_MIXER_RTBASE 0x9e00
-#define MIXER_RTBASE_SIZE 0x26
-#define VORTEX_MIX_U0 0x9c00
-
-/* MIX */
-#define VORTEX_MIX_INVOL_A 0x9000 /* in? */
-#define VORTEX_MIX_INVOL_B 0x8000 /* out? */
-#define VORTEX_MIX_VOL_A 0x9800
-#define VORTEX_MIX_VOL_B 0x8800
-#define VORTEX_MIX_ENIN 0x9a00 /* Input enable bits. 4 bits wide. */
-#define VOL_MIN 0x80 /* Input volume when muted. */
-#define VOL_MAX 0x7f /* FIXME: Not confirmed! Just guessed. */
-
-//#define MIX_OUTL 0xe
-//#define MIX_OUTR 0xf
-//#define MIX_INL 0xe
-//#define MIX_INR 0xf
-#define MIX_DEFIGAIN 0x08 /* 0x8 => 6dB */
-#define MIX_DEFOGAIN 0x08
-
-/* SRC */
-#define VORTEX_SRCBLOCK_SR 0xccc0
-#define VORTEX_SRC_CHNBASE 0xcc40
-#define VORTEX_SRC_RTBASE 0xcc00
-#define VORTEX_SRC_SOURCE 0xccc4
-#define VORTEX_SRC_U0 0xce00
-#define VORTEX_SRC_DRIFT0 0xce80
-#define VORTEX_SRC_DRIFT1 0xcec0
-#define VORTEX_SRC_U1 0xcf00
-#define VORTEX_SRC_DRIFT2 0xcf40
-#define VORTEX_SRC_U3 0xcf80
-#define VORTEX_SRC_DATA 0xc800
-#define VORTEX_SRC_DATA0 0xc000
-#define VORTEX_SRC_CONVRATIO 0xce40
-//#define SRC_RATIO(x) ((((x<<15)/48000) + 1)/2) /* Playback */
-//#define SRC_RATIO2(x) ((((48000<<15)/x) + 1)/2) /* Recording */
-
-
-/* FIFO */
-#define VORTEX_FIFO_ADBCTRL 0xf800 /* Control bits. */
-#define VORTEX_FIFO_WTCTRL 0xf840
-#define FIFO_RDONLY 0x00000001
-#define FIFO_CTRL 0x00000002 /* Allow ctrl. ? */
-#define FIFO_VALID 0x00000010
-#define FIFO_EMPTY 0x00000020
-#define FIFO_U0 0x00001000 /* Unknown. */
-#define FIFO_U1 0x00010000
-#define FIFO_SIZE_BITS 5
-#define FIFO_SIZE (1<<FIFO_SIZE_BITS) // 0x20
-#define FIFO_MASK (FIFO_SIZE-1) //0x1f /* at shift left 0xc */
-#define VORTEX_FIFO_ADBDATA 0xe000
-#define VORTEX_FIFO_WTDATA 0xe800
-
-/* CODEC */
-#define VORTEX_CODEC_CTRL 0x11984
-#define VORTEX_CODEC_EN 0x11990
-#define EN_CODEC 0x00000300
-#define EN_SPORT 0x00030000
-#define EN_SPDIF 0x000c0000
-#define VORTEX_CODEC_CHN 0x11880
-#define VORTEX_CODEC_WRITE 0x00800000
-#define VORTEX_CODEC_ADDSHIFT 16
-#define VORTEX_CODEC_ADDMASK 0x7f0000 /* 0x000f0000*/
-#define VORTEX_CODEC_DATSHIFT 0
-#define VORTEX_CODEC_DATMASK 0xffff
-#define VORTEX_CODEC_IO 0x11988
-
-
-#define VORTEX_SPDIF_FLAGS 0x1005c /* FIXME */
-#define VORTEX_SPDIF_CFG0 0x119D0
-#define VORTEX_SPDIF_CFG1 0x119D4
-#define VORTEX_SPDIF_SMPRATE 0x11994
-
-
-/* Sample timer */
-#define VORTEX_SMP_TIME 0x11998
-
-/* IRQ */
-#define VORTEX_IRQ_SOURCE 0x12800 /* Interrupt source flags. */
-#define IRQ_FATAL 0x0001
-#define IRQ_PARITY 0x0002
-#define IRQ_PCMOUT 0x0020 /* ?? */
-#define IRQ_TIMER 0x1000
-#define IRQ_MIDI 0x2000
-
-#define VORTEX_IRQ_U0 0x12808 /* ?? */
-
-#define VORTEX_CTRL 0x1280c
-#define CTRL_MIDI_EN 0x00000001
-#define CTRL_MIDI_PORT 0x00000060
-#define CTRL_GAME_EN 0x00000008
-#define CTRL_GAME_PORT 0x00000e00
-#define CTRL_IRQ_ENABLE 0x4000
-
-#define VORTEX_IRQ_CTRL 0x12804 /* Interrupt source mask. */
-#define IRQ_FATAL 0x0001
-#define IRQ_PARITY 0x0002
-#define IRQ_PCMOUT 0x0020 /* PCM OUT page crossing */
-#define IRQ_TIMER 0x1000
-#define IRQ_MIDI 0x2000
-
-/* write: Timer period config / read: TIMER IRQ ack. */
-#define VORTEX_IRQ_STAT 0x1199c
-
-/* DMA */
-#define VORTEX_DMA_BUFFER 0x10200
-#define VORTEX_ENGINE_CTRL 0x1060c
-#define ENGINE_INIT 0x0L
-
-/* MIDI */ /* GAME. */
-#define VORTEX_MIDI_DATA 0x11000
-#define VORTEX_MIDI_CMD 0x11004 /* Write command / Read status */
-#define VORTEX_GAME_LEGACY 0x11008
-#define VORTEX_CTRL2 0x1100c
-#define CTRL2_GAME_ADCMODE 0x40
-#define VORTEX_GAME_AXIS 0x11010
-#define AXIS_SIZE 4
-#define AXIS_RANGE 0x1fff
Index: debian/alsa-driver/pci/au88x0/au8820_core.c
diff -u debian/alsa-driver/pci/au88x0/au8820_core.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8820_core.c:removed
--- debian/alsa-driver/pci/au88x0/au8820_core.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8820_core.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8820.h"
-#include "au88x0_core.c"
Index: debian/alsa-driver/pci/au88x0/au8820_game.c
diff -u debian/alsa-driver/pci/au88x0/au8820_game.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8820_game.c:removed
--- debian/alsa-driver/pci/au88x0/au8820_game.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8820_game.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8820.h"
-#include "au88x0_game.c"
Index: debian/alsa-driver/pci/au88x0/au8820_mixer.c
diff -u debian/alsa-driver/pci/au88x0/au8820_mixer.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8820_mixer.c:removed
--- debian/alsa-driver/pci/au88x0/au8820_mixer.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8820_mixer.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8820.h"
-#include "au88x0_mixer.c"
Index: debian/alsa-driver/pci/au88x0/au8820_mpu401.c
diff -u debian/alsa-driver/pci/au88x0/au8820_mpu401.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8820_mpu401.c:removed
--- debian/alsa-driver/pci/au88x0/au8820_mpu401.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8820_mpu401.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8820.h"
-#include "au88x0_mpu401.c"
Index: debian/alsa-driver/pci/au88x0/au8820_pcm.c
diff -u debian/alsa-driver/pci/au88x0/au8820_pcm.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8820_pcm.c:removed
--- debian/alsa-driver/pci/au88x0/au8820_pcm.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8820_pcm.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8820.h"
-#include "au88x0_pcm.c"
Index: debian/alsa-driver/pci/au88x0/au8820_synth.c
diff -u debian/alsa-driver/pci/au88x0/au8820_synth.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8820_synth.c:removed
--- debian/alsa-driver/pci/au88x0/au8820_synth.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8820_synth.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8820.h"
-#include "au88x0_synth.c"
Index: debian/alsa-driver/pci/au88x0/au8830.h
diff -u debian/alsa-driver/pci/au88x0/au8830.h:1.1.1.1 debian/alsa-driver/pci/au88x0/au8830.h:removed
--- debian/alsa-driver/pci/au88x0/au8830.h:1.1.1.1 Mon Oct 6 08:01:03 2003
+++ debian/alsa-driver/pci/au88x0/au8830.h Tue Apr 13 13:39:27 2004
@@ -1,236 +0,0 @@
-/*
- Aureal Vortex Soundcard driver.
-
- IO addr collected from asp4core.vxd:
- function address
- 0005D5A0 13004
- 00080674 14004
- 00080AFF 12818
-
- */
-
-#define CHIP_AU8830
-
-#define CARD_NAME "Aureal Vortex 2 3D Sound Processor"
-#define CARD_NAME_SHORT "au8830"
-
-#ifndef PCI_VENDOR_ID_AUREAL
-#define PCI_VENDOR_ID_AUREAL 0x12eb
-#endif
-#ifndef PCI_VENDOR_ID_AUREAL_VORTEX2
-#define PCI_DEVICE_ID_AUREAL_VORTEX2 0x0002
-#endif
-
-#define hwread(x,y) readl((x)+((y)>>2))
-#define hwwrite(x,y,z) writel((z),(x)+((y)>>2))
-
-#define NR_ADB 0x20
-#define NR_SRC 0x10
-#define NR_A3D 0x10
-#define NR_MIXIN 0x20
-#define NR_MIXOUT 0x10
-#define NR_WT 0x40
-
-/* ADBDMA */
-#define VORTEX_ADBDMA_STAT 0x27e00 /* read only, subbuffer, DMA pos */
-#define POS_MASK 0x00000fff
-#define POS_SHIFT 0x0
-#define ADB_SUBBUF_MASK 0x00003000 /* ADB only. */
-#define ADB_SUBBUF_SHIFT 0xc /* ADB only. */
-#define VORTEX_ADBDMA_CTRL 0x27a00 /* write only; format, flags, DMA pos */
-#define OFFSET_MASK 0x00000fff
-#define OFFSET_SHIFT 0x0
-#define IE_MASK 0x00001000 /* interrupt enable. */
-#define IE_SHIFT 0xc
-#define U_MASK 0x00002000 /* Unknown. If you know, tell me. */
-#define U_SHIFT 0xd
-#define FMT_MASK 0x0003c000
-#define FMT_SHIFT 0xe
-#define ADB_FIFO_EN_SHIFT 0x15
-#define ADB_FIFO_EN (1 << 0x15)
-// The ADB masks and shift also are valid for the wtdma, except if specified otherwise.
-#define VORTEX_ADBDMA_BUFCFG0 0x27800
-#define VORTEX_ADBDMA_BUFCFG1 0x27804
-#define VORTEX_ADBDMA_BUFBASE 0x27400
-#define VORTEX_ADBDMA_START 0x27c00 /* Which subbuffer starts */
-
-/* WTDMA */
-#define VORTEX_WTDMA_CTRL 0x27900 /* format, DMA pos */
-#define VORTEX_WTDMA_STAT 0x27d00 /* DMA subbuf, DMA pos */
-#define WT_SUBBUF_MASK 0x3
-#define WT_SUBBUF_SHIFT 0xc
-#define VORTEX_WTDMA_BUFBASE 0x27000
-#define VORTEX_WTDMA_BUFCFG0 0x27600
-#define VORTEX_WTDMA_BUFCFG1 0x27604
-#define VORTEX_WTDMA_START 0x27b00 /* which subbuffer is first */
-
-#define VORTEX_WT_BASE (0x420 << 7)
-
-/* ADB */
-#define VORTEX_ADB_SR 0x28400 /* Samplerates enable/disable */
-#define VORTEX_ADB_RTBASE 0x28000
-#define VORTEX_ADB_RTBASE_SIZE (VORTEX_ADB_CHNBASE - VORTEX_ADB_RTBASE)
-#define VORTEX_ADB_CHNBASE 0x282b4
-#define VORTEX_ADB_CHNBASE_SIZE (ADB_MASK - VORTEX_ADB_RTBASE_SIZE)
-#define ROUTE_MASK 0xffff
-#define SOURCE_MASK 0xff00
-#define ADB_MASK 0xff
-#define ADB_SHIFT 0x8
-/* ADB address */
-#define OFFSET_ADBDMA 0x00
-#define OFFSET_SRCIN 0x40
-#define OFFSET_SRCOUT 0x20 /* ch 0x11 */
-#define OFFSET_MIXIN 0x50 /* ch 0x11 */
-#define OFFSET_MIXOUT 0x30 /* ch 0x11 */
-#define OFFSET_CODECIN 0x70 /* ch 0x11 */ /* adb source */
-#define OFFSET_CODECOUT 0x88 /* ch 0x11 */ /* adb target */
-#define OFFSET_SPORTIN 0x78 /* ch 0x13 */
-#define OFFSET_SPORTOUT 0x90 /* ch 0x13 */
-#define OFFSET_SPDIFOUT 0x92 /* ch 0x14 */
-#define OFFSET_EQIN 0xa0 /* ch 0x11 */
-#define OFFSET_EQOUT 0x7e /* ch 0x11 */ /* 2 routes on ch 0x11 */
-#define OFFSET_WTOUT 0x62 /* 0x64, 0x65, 0xA2, 0xA4, 0xA5 */
-#define OFFSET_UNKNOWNOUT0 0x66 /* ch 0x11 */
-#define OFFSET_UNKNOWNOUT1 0x67 /* ch 0x11 */
-#define OFFSET_UNKNOWNIN0 0x96 /* ch 0x11 */
-#define OFFSET_UNKNOWNIN1 0x9b /* ch 0x11 */
-
-/* ADB route translate helper */
-#define ADB_DMA(x) (x)
-#define ADB_SRCOUT(x) (x + OFFSET_SRCOUT)
-#define ADB_SRCIN(x) (x + OFFSET_SRCIN)
-#define ADB_MIXOUT(x) (x + OFFSET_MIXOUT)
-#define ADB_MIXIN(x) (x + OFFSET_MIXIN)
-#define ADB_CODECIN(x) (x + OFFSET_CODECIN)
-#define ADB_CODECOUT(x) (x + OFFSET_CODECOUT)
-#define ADB_SPORTIN(x) (x + OFFSET_SPORTIN)
-#define ADB_SPORTOUT(x) (x + OFFSET_SPORTOUT)
-#define ADB_SPDIFOUT(x) (x + OFFSET_SPDIFOUT)
-#define ADB_EQIN(x) (x + OFFSET_EQIN)
-#define ADB_EQOUT(x) (x + OFFSET_EQOUT)
-#define ADB_A3DOUT(x) (x + 0x50) /* 0x10 A3D blocks */
-#define ADB_A3DIN(x) (x + 0x70)
-#define ADB_WTOUT(x) (x + OFFSET_WTOUT)
-
-#define MIX_DEFIGAIN 0x00
-#define MIX_DEFOGAIN 0x00 /* 0x8->6dB (6dB = x4) 16 to 18 bit conversion? */
-
-/* MIXER */
-#define VORTEX_MIXER_SR 0x21f00
-#define VORTEX_MIXER_CHNBASE 0x21e40
-#define VORTEX_MIXER_RTBASE 0x21e00
-#define MIXER_RTBASE_SIZE 0x38
-#define VORTEX_MIX_U0 0x21c00 /* AU8820: 0x9c00 */
-
-/* MIX */
-#define VORTEX_MIX_INVOL_A 0x21000 /* in? */
-#define VORTEX_MIX_INVOL_B 0x20000 /* out? */
-#define VORTEX_MIX_VOL_A 0x21800
-#define VORTEX_MIX_VOL_B 0x20800
-#define VORTEX_MIX_ENIN 0x21a00 /* Input enable bits. 4 bits wide. */
-#define VOL_MIN 0x80 /* Input volume when muted. */
-#define VOL_MAX 0x7f /* FIXME: Not confirmed! Just guessed. */
-
-/* SRC */
-#define VORTEX_SRCBLOCK_SR 0x26cc0
-#define VORTEX_SRC_CHNBASE 0x26c40
-#define VORTEX_SRC_RTBASE 0x26c00
-#define VORTEX_SRC_SOURCE 0x26cc4
-#define VORTEX_SRC_CONVRATIO 0x26e40
-#define VORTEX_SRC_DRIFT0 0x26e80
-#define VORTEX_SRC_DRIFT1 0x26ec0
-#define VORTEX_SRC_DRIFT2 0x26f40
-#define VORTEX_SRC_U0 0x26e00
-#define U0_SLOWLOCK 0x200
-#define VORTEX_SRC_U1 0x26f00
-#define VORTEX_SRC_U3 0x26f80
-#define VORTEX_SRC_DATA 0x26800 /* 0xc800 */
-#define VORTEX_SRC_DATA0 0x26000
-
-/* FIFO */
-#define VORTEX_FIFO_ADBCTRL 0x16100 /* Control bits. */
-#define VORTEX_FIFO_WTCTRL 0x16000
-#define FIFO_RDONLY 0x00000001
-#define FIFO_CTRL 0x00000002 /* Allow ctrl. ? */
-#define FIFO_VALID 0x00000010
-#define FIFO_EMPTY 0x00000020
-#define FIFO_U0 0x00002000 /* Unknown. */
-#define FIFO_U1 0x00040000
-#define FIFO_SIZE_BITS 6
-#define FIFO_SIZE (1<<(FIFO_SIZE_BITS)) // 0x40
-#define FIFO_MASK (FIFO_SIZE-1) //0x3f /* at shift left 0xc */
-#define FIFO_BITS 0x1c400000
-#define VORTEX_FIFO_ADBDATA 0x14000
-#define VORTEX_FIFO_WTDATA 0x10000
-
-/* CODEC */
-#define VORTEX_CODEC_CTRL 0x29184
-#define VORTEX_CODEC_EN 0x29190
-#define EN_AUDIO0 0x00000300
-#define EN_MODEM 0x00000c00
-#define EN_AUDIO1 0x00003000
-#define EN_SPORT 0x00030000
-#define EN_SPDIF 0x000c0000
-#define EN_CODEC (EN_AUDIO1 | EN_AUDIO0)
-#define VORTEX_CODEC_CHN 0x29080 /* The name "CHN" is wrong. */
-#define VORTEX_CODEC_WRITE 0x00800000
-#define VORTEX_CODEC_ADDSHIFT 16
-#define VORTEX_CODEC_ADDMASK 0x7f0000 /* 0x000f0000*/
-#define VORTEX_CODEC_DATSHIFT 0
-#define VORTEX_CODEC_DATMASK 0xffff
-#define VORTEX_CODEC_IO 0x29188
-
-#define VORTEX_SPDIF_FLAGS 0x2205c
-#define VORTEX_SPDIF_CFG0 0x291D0
-#define VORTEX_SPDIF_CFG1 0x291D4
-#define VORTEX_SPDIF_SMPRATE 0x29194
-
-/* Sample timer */
-#define VORTEX_SMP_TIME 0x29198
-
-/* IRQ */
-#define VORTEX_IRQ_SOURCE 0x2a000 /* Interrupt source flags. */
-#define IRQ_FATAL 0x0001
-#define IRQ_PARITY 0x0002
-#define IRQ_PCMOUT 0x0020 /* ?? */
-#define IRQ_TIMER 0x1000
-#define IRQ_MIDI 0x2000
-#define IRQ_MODEM 0x4000
-
-#define VORTEX_IRQ_U0 0x2a008 /* ?? */
-
-#define VORTEX_CTRL 0x2a00c
-#define CTRL_MIDI_EN 0x00000001
-#define CTRL_MIDI_PORT 0x00000060
-#define CTRL_GAME_EN 0x00000008
-#define CTRL_GAME_PORT 0x00000e00
-#define CTRL_SPDIF 0x00000000 /* unknown. Please find this value*/
-#define CTRL_SPORT 0x00200000
-#define CTRL_UNKNOWN 0x01000000
-#define CTRL_IRQ_ENABLE 0x00004000
-
-#define VORTEX_IRQ_CTRL 0x2a004 /* Interrupt source mask. */
-#define IRQ_FATAL 0x0001
-#define IRQ_PARITY 0x0002
-#define IRQ_PCMOUT 0x0020 /* PCM OUT page crossing */
-#define IRQ_TIMER 0x1000
-#define IRQ_MIDI 0x2000
-#define IRQ_MODEM 0x4000
-
-/* write: Timer period config / read: TIMER IRQ ack. */
-#define VORTEX_IRQ_STAT 0x2919c
-
-/* DMA */
-#define VORTEX_ENGINE_CTRL 0x27ae8
-#define ENGINE_INIT 0x1380000
-
-/* MIDI */ /* GAME. */
-#define VORTEX_MIDI_DATA 0x28800
-#define VORTEX_MIDI_CMD 0x28804 /* Write command / Read status */
-
-#define VORTEX_CTRL2 0x2880c
-#define CTRL2_GAME_ADCMODE 0x40
-#define VORTEX_GAME_LEGACY 0x28808
-#define VORTEX_GAME_AXIS 0x28810
-#define AXIS_SIZE 4
-#define AXIS_RANGE 0x1fff
Index: debian/alsa-driver/pci/au88x0/au8830_core.c
diff -u debian/alsa-driver/pci/au88x0/au8830_core.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8830_core.c:removed
--- debian/alsa-driver/pci/au88x0/au8830_core.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8830_core.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8830.h"
-#include "au88x0_core.c"
Index: debian/alsa-driver/pci/au88x0/au8830_eq.c
diff -u debian/alsa-driver/pci/au88x0/au8830_eq.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8830_eq.c:removed
--- debian/alsa-driver/pci/au88x0/au8830_eq.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8830_eq.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8830.h"
-#include "au88x0_eq.c"
Index: debian/alsa-driver/pci/au88x0/au8830_game.c
diff -u debian/alsa-driver/pci/au88x0/au8830_game.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8830_game.c:removed
--- debian/alsa-driver/pci/au88x0/au8830_game.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8830_game.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8830.h"
-#include "au88x0_game.c"
Index: debian/alsa-driver/pci/au88x0/au8830_mixer.c
diff -u debian/alsa-driver/pci/au88x0/au8830_mixer.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8830_mixer.c:removed
--- debian/alsa-driver/pci/au88x0/au8830_mixer.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8830_mixer.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8830.h"
-#include "au88x0_mixer.c"
Index: debian/alsa-driver/pci/au88x0/au8830_mpu401.c
diff -u debian/alsa-driver/pci/au88x0/au8830_mpu401.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8830_mpu401.c:removed
--- debian/alsa-driver/pci/au88x0/au8830_mpu401.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8830_mpu401.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8830.h"
-#include "au88x0_mpu401.c"
Index: debian/alsa-driver/pci/au88x0/au8830_pcm.c
diff -u debian/alsa-driver/pci/au88x0/au8830_pcm.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8830_pcm.c:removed
--- debian/alsa-driver/pci/au88x0/au8830_pcm.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8830_pcm.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8830.h"
-#include "au88x0_pcm.c"
Index: debian/alsa-driver/pci/au88x0/au8830_synth.c
diff -u debian/alsa-driver/pci/au88x0/au8830_synth.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au8830_synth.c:removed
--- debian/alsa-driver/pci/au88x0/au8830_synth.c:1.1.1.2 Mon Nov 17 11:27:28 2003
+++ debian/alsa-driver/pci/au88x0/au8830_synth.c Tue Apr 13 13:39:27 2004
@@ -1,3 +0,0 @@
-#define __NO_VERSION__
-#include "au8830.h"
-#include "au88x0_synth.c"
Index: debian/alsa-driver/pci/au88x0/au88x0.c
diff -u debian/alsa-driver/pci/au88x0/au88x0.c:1.1.1.3 debian/alsa-driver/pci/au88x0/au88x0.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0.c:1.1.1.3 Wed Jan 21 11:33:32 2004
+++ debian/alsa-driver/pci/au88x0/au88x0.c Tue Apr 13 13:39:27 2004
@@ -1,403 +0,0 @@
-/*
- * ALSA driver for the Aureal Vortex family of soundprocessors.
- * Author: Manuel Jander (mjander@embedded.cl)
- *
- * This driver is the result of the OpenVortex Project from Savannah
- * (savannah.nongnu.org/projects/openvortex). I would like to thank
- * the developers of OpenVortex, Jeff Muizelar and Kester Maddock, from
- * whom i got plenty of help, and their codebase was invaluable.
- * Thanks to the ALSA developers, they helped a lot working out
- * the ALSA part.
- * Thanks also to Sourceforge for maintaining the old binary drivers,
- * and the forum, where developers could comunicate.
- *
- * Now at least i can play Legacy DOOM with MIDI music :-)
- */
-
-#include "au88x0.h"
-#include <linux/init.h>
-#include <linux/pci.h>
-#include <linux/slab.h>
-#include <linux/interrupt.h>
-#define SNDRV_GET_ID
-#include <sound/initval.h>
-
-// module parameters (see "Module Parameters")
-static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
-static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
-static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;
-static int pcifix[SNDRV_CARDS] = { [0 ... (SNDRV_CARDS-1)] = 255 };
-
-MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
-MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
-MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
-MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
-MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
-MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
-MODULE_PARM(pcifix, "1-255i");
-MODULE_PARM_DESC(pcifix, "Enable VIA-workaround for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(pcifix, SNDRV_ENABLED ",allows:{{0,Disabled},{1,Latency},{2,Bridge},{3,Both},{255,Auto}},default:4,dialog:check");
-
-MODULE_DESCRIPTION("Aureal vortex");
-MODULE_CLASSES("{sound}");
-MODULE_LICENSE("GPL");
-MODULE_DEVICES("{{Aureal Semiconductor Inc., Aureal Vortex Sound Processor}}");
-
-#ifndef PCI_VENDOR_ID_VIA
-#define PCI_VENDOR_ID_VIA 0x1106
-#endif
-#ifndef PCI_DEVICE_ID_VIA_8365_1
-#define PCI_DEVICE_ID_VIA_8365_1 0x8305
-#endif
-
-#ifndef MODULE
-/* format is: snd-mychip=enable,index,id */
-static int __init alsa_card_vortex_setup(char *str) {
- static unsigned __initdata nr_dev = 0;
-
- if (nr_dev >= SNDRV_CARDS)
- return 0;
- (void) (get_option(&str, &enable[nr_dev]) == 2 &&
- get_option(&str, &index[nr_dev]) == 2 &&
- get_id(&str, &id[nr_dev]) == 2);
- nr_dev++;
- return 1;
-}
-__setup("snd-au88x0=", alsa_card_vortex_setup);
-#endif /* ifndef MODULE */
-
-
-MODULE_DEVICE_TABLE(pci, snd_vortex_ids);
-
-static void __devinit snd_vortex_workaround(struct pci_dev *vortex, int fix)
-{
- int rc;
- struct pci_dev *via = NULL;
-
- /* autodetect if workarounds are required */
- if ((via = pci_find_device(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8365_1, NULL))) {
- if(fix == 255) {
- printk(KERN_INFO CARD_NAME
- ": detected VIA KT133/KM133. activating workaround...\n");
- fix = 3; // do latency and via bridge workaround
- }
- }
-
- /* default value - nothing to do */
- if (fix == 255)
- return;
-
- /* fix vortex latency */
- if(fix & 0x01) {
- if( !(rc = pci_write_config_byte(vortex, 0x40, 0xff)) ) {
- printk(KERN_INFO CARD_NAME
- ": vortex latency is 0xff\n");
- }
- else {
- printk(KERN_WARNING CARD_NAME ": could not set vortex latency: pci error 0x%x\n", rc);
- }
- }
-
- /* fix via agp bridge */
- if(via && (fix & 0x02)) {
- u8 value;
-
- /*
- * only set the bit (Extend PCI#2 Internal Master for
- * Efficient Handling of Dummy Requests) if the can
- * read the config and it is not already set
- */
-
- if( !(rc = pci_read_config_byte(via, 0x42, &value)) && (
- (value & 0x10) ||
- !(rc=pci_write_config_byte(via, 0x42, value|0x10)) ) ) {
-
- printk(KERN_INFO CARD_NAME
- ": bridge config is 0x%x\n",
- value|0x10);
- }
- else {
- printk(KERN_WARNING CARD_NAME ": could not set vortex latency: pci error 0x%x\n", rc);
- }
- }
-}
-
-
-// component-destructor
-// (see "Management of Cards and Components")
-static int snd_vortex_dev_free(snd_device_t *device) {
- vortex_t *vortex = snd_magic_cast(vortex_t, device->device_data,
- return -ENXIO);
-
- vortex_gameport_unregister(vortex);
- vortex_core_shutdown(vortex);
- // Take down PCI interface.
- synchronize_irq(vortex->irq);
- free_irq(vortex->irq, vortex);
- pci_release_regions(vortex->pci_dev);
- pci_disable_device(vortex->pci_dev);
- snd_magic_kfree(vortex);
-
- return 0;
-}
-
-// chip-specific constructor
-// (see "Management of Cards and Components")
-static int __devinit
-snd_vortex_create(snd_card_t *card, struct pci_dev *pci, vortex_t **rchip) {
- vortex_t *chip;
- int err;
- static snd_device_ops_t ops = {
- .dev_free = snd_vortex_dev_free,
- };
-
- *rchip = NULL;
-
- // check PCI availability (DMA).
- if ((err = pci_enable_device(pci)) < 0)
- return err;
- if (pci_set_dma_mask(pci, VORTEX_DMA_MASK) < 0 ||
- pci_set_consistent_dma_mask(pci, VORTEX_DMA_MASK) << 0) {
- printk(KERN_ERR "error to set DMA mask\n");
- return -ENXIO;
- }
-
- chip = snd_magic_kcalloc(vortex_t, 0, GFP_KERNEL);
- if (chip == NULL)
- return -ENOMEM;
-
- chip->card = card;
-
- // initialize the stuff
- chip->pci_dev = pci;
- chip->io = pci_resource_start(pci, 0);
- chip->vendor = pci->vendor;
- chip->device = pci->device;
- chip->card = card;
- chip->irq = -1;
- spin_lock_init(&chip->lock);
-
- // (1) PCI resource allocation
- // Get MMIO area
- //
- if ((err = pci_request_regions(pci, CARD_NAME_SHORT)) != 0)
- goto regions_out;
-
- chip->mmio = ioremap_nocache(pci_resource_start(pci,0), pci_resource_len(pci,0));
- if (!chip->mmio) {
- printk(KERN_ERR "MMIO area remap failed.\n");
- err = -ENOMEM;
- goto ioremap_out;
- }
-
- /* Init audio core.
- * This must be done before we do request_irq otherwise we can get spurious
- * interupts that we do not handle properly and make a mess of things */
- if ((err = vortex_core_init(chip)) != 0) {
- printk(KERN_ERR "hw core init failed\n");
- goto core_out;
- }
-
- if ((err = request_irq(pci->irq, vortex_interrupt, SA_INTERRUPT | SA_SHIRQ,
- CARD_NAME_SHORT, (void *) chip)) != 0) {
- printk(KERN_ERR "cannot grab irq\n");
- goto irq_out;
- }
- chip->irq = pci->irq;
-
- pci_set_master(pci);
- // End of PCI setup.
-
-
- // Register alsa root device.
- if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
- goto alloc_out;
- }
-
- snd_card_set_dev(card, &pci->dev);
-
- *rchip = chip;
-
- return 0;
-
-alloc_out:
- synchronize_irq(chip->irq);
- free_irq(chip->irq, chip);
-irq_out:
- vortex_core_shutdown(chip);
-core_out:
- //FIXME: the type of chip->mmio might need to be changed??
- iounmap((void*)chip->mmio);
-ioremap_out:
- pci_release_regions(chip->pci_dev);
-regions_out:
- pci_disable_device(chip->pci_dev);
- //FIXME: this not the right place to unregister the gameport
- vortex_gameport_unregister(chip);
- return err;
-}
-
-// constructor -- see "Constructor" sub-section
-static int __devinit
-snd_vortex_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) {
- static int dev;
- snd_card_t *card;
- vortex_t *chip;
- int err;
-
- // (1)
- if (dev >= SNDRV_CARDS)
- return -ENODEV;
- if (!enable[dev]) {
- dev++;
- return -ENOENT;
- }
- // (2)
- card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
- if (card == NULL)
- return -ENOMEM;
-
- // (3)
- if ((err = snd_vortex_create(card, pci, &chip)) < 0) {
- snd_card_free(card);
- return err;
- }
- snd_vortex_workaround(pci, pcifix[dev]);
- // (4) Alloc components.
- // ADB pcm.
- if ((err = snd_vortex_new_pcm(chip, VORTEX_PCM_ADB, NR_ADB)) < 0) {
- snd_card_free(card);
- return err;
- }
-#ifndef CHIP_AU8820
- // ADB SPDIF
- if ((err = snd_vortex_new_pcm(chip, VORTEX_PCM_SPDIF, 1)) < 0) {
- snd_card_free(card);
- return err;
- }
-#endif
- /*
- // ADB I2S
- if ((err = snd_vortex_new_pcm(chip, VORTEX_PCM_I2S, 1)) < 0) {
- snd_card_free(card);
- return err;
- }
- */
-#ifndef CHIP_AU8810
- // WT pcm.
- if ((err = snd_vortex_new_pcm(chip, VORTEX_PCM_WT, NR_WT)) < 0) {
- snd_card_free(card);
- return err;
- }
-#endif
- // snd_ac97_mixer and Vortex mixer.
- if ((err = snd_vortex_mixer(chip)) < 0) {
- snd_card_free(card);
- return err;
- }
- if ((err = snd_vortex_midi(chip)) < 0) {
- snd_card_free(card);
- return err;
- }
- if ((err = vortex_gameport_register(chip)) < 0) {
- snd_card_free(card);
- return err;
- }
-#if 0
- if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_VORTEX_SYNTH,
- sizeof(snd_vortex_synth_arg_t), &wave) < 0
- || wave == NULL) {
- snd_printk("Can't initialize Aureal wavetable synth\n");
- } else {
- snd_vortex_synth_arg_t *arg;
-
- arg = SNDRV_SEQ_DEVICE_ARGPTR(wave);
- strcpy(wave->name, "Aureal Synth");
- arg->hwptr = vortex;
- arg->index = 1;
- arg->seq_ports = seq_ports[dev];
- arg->max_voices = max_synth_voices[dev];
- }
-#endif
-
- // (5)
- strcpy(card->driver, CARD_NAME_SHORT);
- strcpy(card->shortname, "Aureal Vortex " CARD_NAME_SHORT);
- sprintf(card->longname, "%s at 0x%lx irq %i",
- card->shortname, chip->io, chip->irq);
-
-#ifdef CHIP_AU8830
- {
- unsigned char revision;
- if ((err = pci_read_config_byte(pci, PCI_REVISION_ID, &revision)) < 0) {
- snd_card_free(card);
- return err;
- }
-
- if (revision != 0xfe && revision != 0xfa) {
- printk(KERN_ALERT "vortex: The revision (%x) of your card has not been seen before.\n", revision);
- printk(KERN_ALERT "vortex: Please email the results of 'lspci -vv' to openvortex-dev@nongnu.org.\n");
- snd_card_free(card);
- err = -ENODEV;
- return err;
- }
- }
-#endif
- // (6)
- if ((err = snd_card_register(card)) < 0) {
- snd_card_free(card);
- return err;
- }
- // (7)
- pci_set_drvdata(pci, chip);
- dev++;
- vortex_connect_default(chip, 1);
- vortex_enable_int(chip);
- return 0;
-}
-
-// destructor -- see "Destructor" sub-section
-static void __devexit snd_vortex_remove(struct pci_dev *pci) {
- vortex_t *vortex = snd_magic_cast(vortex_t,
- pci_get_drvdata(pci), return);
-
- if (vortex) {
- // Release ALSA stuff.
- snd_card_free(vortex->card);
- // Free Vortex struct.
- pci_set_drvdata(pci, NULL);
- } else
- printk("snd_vortex_remove called more than one time!\n");
-}
-
-// pci_driver definition
-static struct pci_driver driver = {
- .name = CARD_NAME_SHORT,
- .id_table = snd_vortex_ids,
- .probe = snd_vortex_probe,
- .remove = __devexit_p(snd_vortex_remove),
-};
-
-// initialization of the module
-static int __init alsa_card_vortex_init(void) {
- int err;
-
- if ((err = pci_module_init(&driver)) < 0) {
-#ifdef MODULE
- printk(KERN_ERR "Aureal soundcard not found " "or device busy\n");
-#endif
- return err;
- }
- return 0;
-}
-
-// clean up the module
-static void __exit alsa_card_vortex_exit(void) {
- pci_unregister_driver(&driver);
-}
-
-module_init(alsa_card_vortex_init)
-module_exit(alsa_card_vortex_exit)
Index: debian/alsa-driver/pci/au88x0/au88x0.h
diff -u debian/alsa-driver/pci/au88x0/au88x0.h:1.1.1.2 debian/alsa-driver/pci/au88x0/au88x0.h:removed
--- debian/alsa-driver/pci/au88x0/au88x0.h:1.1.1.2 Fri Nov 21 04:16:33 2003
+++ debian/alsa-driver/pci/au88x0/au88x0.h Tue Apr 13 13:39:27 2004
@@ -1,211 +0,0 @@
-/*
- Aureal Vortex Soundcard driver.
-
- IO addr collected from asp4core.vxd:
- function address
- 0005D5A0 13004
- 00080674 14004
- 00080AFF 12818
-
- */
-
-#ifndef __SOUND_AU88X0_H
-#define __SOUND_AU88X0_H
-
-#ifdef __KERNEL__
-#include <sound/driver.h>
-#include <sound/core.h>
-#include <sound/pcm.h>
-#include <sound/rawmidi.h>
-#include <sound/mpu401.h>
-#include <sound/hwdep.h>
-#include <sound/ac97_codec.h>
-#include <asm/io.h>
-#include <linux/init.h>
-#include "au88x0_eq.h"
-
-/*
-#ifndef PCI_VENDOR_ID_AUREAL
-#define PCI_VENDOR_ID_AUREAL 0x12eb
-#endif
-#ifndef PCI_VENDOR_ID_AUREAL_VORTEX
-#define PCI_DEVICE_ID_AUREAL_VORTEX 0x0001
-#endif
-#ifndef PCI_VENDOR_ID_AUREAL_VORTEX2
-#define PCI_DEVICE_ID_AUREAL_VORTEX2 0x0002
-#endif
-#ifndef PCI_VENDOR_ID_AUREAL_ADVANTAGE
-#define PCI_DEVICE_ID_AUREAL_ADVANTAGE 0x0003
-#endif
-*/
-#endif
-
-#define VORTEX_DMA_MASK 0xffffffff
-
-#define hwread(x,y) readl((x)+((y)>>2))
-#define hwwrite(x,y,z) writel((z),(x)+((y)>>2))
-
-/* Vortex MPU401 defines. */
-#define MIDI_CLOCK_DIV 0x61
-/* Standart MPU401 defines. */
-#define MPU401_RESET 0xff
-#define MPU401_ENTER_UART 0x3f
-#define MPU401_ACK 0xfe
-
-// Get src register value to convert from x to y.
-#define SRC_RATIO(x,y) ((((x<<15)/y) + 1)/2)
-
-/* FIFO software state constants. */
-#define FIFO_STOP 0
-#define FIFO_START 1
-#define FIFO_PAUSE 2
-
-/* ADB Resource */
-#define VORTEX_RESOURCE_DMA 0x00000000
-#define VORTEX_RESOURCE_SRC 0x00000001
-#define VORTEX_RESOURCE_MIXIN 0x00000002
-#define VORTEX_RESOURCE_MIXOUT 0x00000003
-#define VORTEX_RESOURCE_A3D 0x00000004
-#define VORTEX_RESOURCE_LAST 0x00000005
-
-/* Check for SDAC bit in "Extended audio ID" AC97 register */
-#define VORTEX_IS_QUAD(x) ((x->codec == NULL) ? 0 : (x->codec->ext_id|0x80))
-
-/* PCM devices */
-#define VORTEX_PCM_ADB 0
-#define VORTEX_PCM_SPDIF 1
-#define VORTEX_PCM_I2S 2
-#define VORTEX_PCM_A3D 3
-#define VORTEX_PCM_WT 4
-#define VORTEX_PCM_LAST 5
-
-#define MIX_CAPT(x) (vortex->mixcapt[x])
-#define MIX_PLAYB(x) (vortex->mixplayb[x])
-#define MIX_SPDIF(x) (vortex->mixspdif[x])
-
-/* Structs */
-typedef struct {
- int fifo_enabled; /* this_24 */
- int fifo_status; /* this_1c */
- int dma_ctrl; /* this_78 (ADB), this_7c (WT) */
- int dma_unknown; /* this_74 (ADB), this_78 (WT) */
- int cfg0;
- int cfg1;
-
- int nr_ch; /* Nr of PCM channels */
- int type; /* Output type (ac97, spdif, i2s, dsp)*/
- int dma; /* Hardware DMA index. */
- int dir; /* Stream Direction. */
- u32 resources[5];
-
- /* Virtual page extender stuff */
- int nr_periods;
- int period_bytes;
- unsigned long buf_addr;
- int period_real;
- int period_virt;
-
- snd_pcm_substream_t *substream;
-} stream_t;
-
-typedef struct snd_vortex vortex_t;
-struct snd_vortex {
- /* ALSA structs. */
- snd_card_t *card;
- snd_pcm_t *pcm[VORTEX_PCM_LAST];
-
- snd_rawmidi_t *rmidi; /* Legacy Midi interface. */
- ac97_t *codec;
-
- /* Stream structs. */
- stream_t dma_adb[NR_ADB];
- int spdif_sr;
-#ifndef CHIP_AU8810
- stream_t dma_wt[NR_WT];
- unsigned char mixwt[6]; /* WT mixin objects */
-#endif
- /* Global resources */
- unsigned char mixcapt[2];
- unsigned char mixplayb[4];
- unsigned char mixspdif[2];
- u32 fixed_res[5];
-
- /* Hardware equalizer structs */
- eqlzr_t eq;
-
- /* Extra controls */
- //snd_kcontrol_t *eqctrl[20];
-
- /* Gameport stuff. */
- struct gameport *gameport;
-
- /* PCI hardware resources */
- unsigned long io;
- u32 *mmio;
- unsigned int irq;
- spinlock_t lock;
-
- /* PCI device */
- struct pci_dev * pci_dev;
- u16 vendor;
- u16 device;
- u8 rev;
-};
-
-#define chip_t vortex_t
-
-/* Functions. */
-
-/* SRC */
-void vortex_adb_setsrc(vortex_t *vortex, int adbdma, unsigned int cvrt, int dir);
-
-/* DMA Engines. */
-void vortex_adbdma_setbuffers(vortex_t *vortex, int adbdma, unsigned int addr, int size, int count);
-void vortex_wtdma_setbuffers(vortex_t *vortex, int wtdma, unsigned int addr, int size, int count);
-void vortex_adbdma_setmode(vortex_t *vortex, int adbdma, int ie, int b, int fmt, int d, unsigned long offset);
-void vortex_wtdma_setmode(vortex_t *vortex, int wtdma, int ie, int b, int fmt, int d, unsigned long offset);
-void vortex_adbdma_setstartbuffer(vortex_t *vortex, int adbdma, int sb);
-void vortex_wtdma_setstartbuffer(vortex_t *vortex, int wtdma, int sb);
-
-void vortex_adbdma_startfifo(vortex_t *vortex, int adbdma);
-void vortex_adbdma_stopfifo(vortex_t *vortex, int adbdma);
-void vortex_wtdma_startfifo(vortex_t *vortex, int wtdma);
-void vortex_wtdma_stopfifo(vortex_t *vortex, int wtdma);
-void vortex_adbdma_pausefifo(vortex_t *vortex, int adbdma);
-void vortex_adbdma_resumefifo(vortex_t *vortex, int adbdma);
-void vortex_wtdma_pausefifo(vortex_t *vortex, int wtdma);
-void vortex_wtdma_resumefifo(vortex_t *vortex, int wtdma);
-
-int inline vortex_adbdma_getlinearpos(vortex_t *vortex, int adbdma);
-int inline vortex_wtdma_getlinearpos(vortex_t *vortex, int wtdma);
-
-/* global stuff. */
-void vortex_codec_init(vortex_t *vortex);
-void vortex_codec_write(ac97_t *codec, unsigned short addr,unsigned short data);
-unsigned short vortex_codec_read(ac97_t *codec, unsigned short addr);
-void vortex_spdif_init(vortex_t *vortex, int spdif_sr, int spdif_mode);
-
-int vortex_core_init(vortex_t *card);
-int vortex_core_shutdown(vortex_t *card);
-void vortex_enable_int(vortex_t *card);
-irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs);
-int vortex_alsafmt_aspfmt(int alsafmt);
-
-/* Connection stuff. */
-void vortex_connect_default(vortex_t *vortex, int en);
-int vortex_adb_allocroute(vortex_t *vortex, int dma, int nr_ch, int dir, int type);
-int vortex_wt_allocroute(vortex_t *vortex, int dma, int nr_ch);
-int vortex_adb_checkinout(vortex_t *vortex, int resmap[], int out, int restype);
-void vortex_wt_connect(vortex_t *vortex, int en, unsigned char mixers[]);
-void vortex_wt_InitializeWTRegs(vortex_t * vortex);
-
-/* Driver stuff. */
-int vortex_gameport_register(vortex_t *card);
-int vortex_gameport_unregister(vortex_t *card);
-int vortex_eq_init(vortex_t *vortex);
-int vortex_eq_free(vortex_t *vortex);
-/* ALSA stuff. */
-int snd_vortex_new_pcm(vortex_t *vortex, int idx, int nr);
-int snd_vortex_mixer(vortex_t *vortex);
-int snd_vortex_midi(vortex_t *vortex);
-#endif
Index: debian/alsa-driver/pci/au88x0/au88x0_core.c
diff -u debian/alsa-driver/pci/au88x0/au88x0_core.c:1.1.1.3 debian/alsa-driver/pci/au88x0/au88x0_core.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0_core.c:1.1.1.3 Thu Nov 20 03:48:03 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_core.c Tue Apr 13 13:39:27 2004
@@ -1,2342 +0,0 @@
-/*
- Vortex core low level functions.
-
- Author: Manuel Jander (mjander@users.sourceforge.cl)
- These functions are mainly the result of translations made
- from the original disassembly of the au88x0 binary drivers,
- written by Aureal before they went down.
- Many thanks to the Jeff Muizelar, Kester Maddock, and whoever
- contributed to the OpenVortex project.
- The author of this file, put the few available pieces together
- and translated the rest of the riddle (Mix, Src and connection stuff).
- Some things are still to be discovered, and their meanings are unclear.
-
- Some of these functions aren't intended to be really used, rather
- to help to understand how does the AU88X0 chips work. Keep them in, because
- they could be used somewhere in the future.
-
- This code hasn't been tested or proof read thoroughly. If you wanna help,
- take a look at the AU88X0 assembly and check if this matches.
- Functions tested ok so far are (they show the desired effect
- at least):
- vortex_routes(); (1 bug fixed).
- vortex_adb_addroute();
- vortex_adb_addroutes();
- vortex_connect_codecplay();
- vortex_src_flushbuffers();
- vortex_adbdma_setmode(); note: still some unknown arguments!
- vortex_adbdma_startfifo();
- vortex_adbdma_stopfifo();
- vortex_fifo_setadbctrl(); note: still some unknown arguments!
- vortex_mix_setinputvolumebyte();
- vortex_mix_enableinput();
- vortex_mixer_addWTD(); (fixed)
- vortex_connection_adbdma_src_src();
- vortex_connection_adbdma_src();
- vortex_src_change_convratio();
- vortex_src_addWTD(); (fixed)
-
- History:
-
- 01-03-2003 First revision.
- 01-21-2003 Some bug fixes.
- 17-02-2003 many bugfixes after a big versioning mess.
- 18-02-2003 JAAAAAHHHUUUUUU!!!! The mixer works !! I'm just so happy !
- (2 hours later...) I cant believe it! Im really lucky today.
- Now the SRC is working too! Yeah! XMMS works !
- 20-02-2003 First steps into the ALSA world.
- 28-02-2003 As my birthday present, i discovered how the DMA buffer pages really
- work :-). It was all wrong.
- 12-03-2003 ALSA driver starts working (2 channels).
- 16-03-2003 More srcblock_setupchannel discoveries.
- 12-04-2003 AU8830 playback support. Recording in the works.
- 17-04-2003 vortex_route() and vortex_routes() bug fixes. AU8830 recording
- works now, but chipn' dale effect is still there.
- 16-05-2003 SrcSetupChannel cleanup. Moved the Src setup stuff entirely
- into au88x0_pcm.c .
- 06-06-2003 Buffer shifter bugfix. Mixer volume fix.
-
-*/
-
-#include "au88x0.h"
-#include <linux/delay.h>
-
-
-/* MIXER (CAsp4Mix.s and CAsp4Mixer.s) */
-
-// FIXME: get rid of this.
-int mchannels[NR_MIXIN];
-int rampchs[NR_MIXIN];
-
-void vortex_mixer_en_sr(vortex_t *vortex, int channel) {
- hwwrite(vortex->mmio, VORTEX_MIXER_SR, hwread(vortex->mmio, VORTEX_MIXER_SR) | (0x1 << channel));
-}
-void vortex_mixer_dis_sr(vortex_t *vortex, int channel) {
- hwwrite(vortex->mmio, VORTEX_MIXER_SR,
- hwread(vortex->mmio, VORTEX_MIXER_SR) & ~(0x1 << channel));
-}
-
-void vortex_mix_muteinputgain(vortex_t *vortex, unsigned char mix, unsigned char channel) {
- hwwrite(vortex->mmio, VORTEX_MIX_INVOL_A + ((mix << 5) + channel), 0x80);
- hwwrite(vortex->mmio, VORTEX_MIX_INVOL_B + ((mix << 5) + channel), 0x80);
-}
-
-int vortex_mix_getvolume(vortex_t *vortex, unsigned char mix) {
- int a;
- a = hwread(vortex->mmio, VORTEX_MIX_VOL_A + (mix << 2)) & 0xff;
- //FP2LinearFrac(a);
- return (a);
-}
-
-void vortex_mix_setvolumebyte(vortex_t *vortex, unsigned char mix, unsigned char vol) {
- int temp;
- hwwrite(vortex->mmio, VORTEX_MIX_VOL_A + (mix << 2), vol);
- if (1) { /*if (this_10) */
- temp = hwread(vortex->mmio, VORTEX_MIX_VOL_B + (mix << 2));
- if ((temp != 0x80) || (vol == 0x80))
- return;
- }
- hwwrite(vortex->mmio, VORTEX_MIX_VOL_B + (mix << 2), vol);
-}
-
-int vortex_mix_getinputvolume(vortex_t *vortex, unsigned char mix, int channel, int *vol) {
- int a;
- if (!(mchannels[mix] & (1 << channel)))
- return 0;
- a = hwread(vortex->mmio,
- VORTEX_MIX_INVOL_A + (((mix << 5) + channel) << 2));
- /*
- if (rampchs[mix] == 0)
- a = FP2LinearFrac(a);
- else
- a = FP2LinearFracWT(a);
- */
- *vol = a;
- return (0);
-}
-
-void vortex_mix_setinputvolumebyte(vortex_t *vortex, unsigned char mix, int mixin, unsigned char vol) {
- int temp;
-
- hwwrite(vortex->mmio, VORTEX_MIX_INVOL_A + (((mix << 5) + mixin) << 2), vol);
- if (1) { /* this_10, initialized to 1. */
- temp = hwread(vortex->mmio, VORTEX_MIX_INVOL_B + (((mix << 5) + mixin) << 2));
- if ((temp != 0x80) || (vol == 0x80))
- return;
- }
- hwwrite(vortex->mmio, VORTEX_MIX_INVOL_B + (((mix << 5) + mixin) << 2), vol);
-}
-
-int vortex_mix_getenablebit(vortex_t *vortex, unsigned char mix, int mixin) {
- int addr, temp;
- if (mixin >= 0)
- addr = mixin;
- else
- addr = mixin + 3;
- addr = ((mix << 3) + (addr >> 2)) << 2;
- temp = hwread(vortex->mmio, VORTEX_MIX_ENIN + addr);
- return ((temp >> (mixin & 3)) & 1);
-}
-
-void vortex_mix_setenablebit(vortex_t *vortex, unsigned char mix, int mixin, int en) {
- int temp, addr;
-
- if (mixin < 0)
- addr = (mixin + 3);
- else
- addr = mixin;
- addr = ((mix << 3) + (addr >> 2)) << 2;
- temp = hwread(vortex->mmio, VORTEX_MIX_ENIN + addr);
- if (en)
- temp |= (1 << (mixin & 3));
- else
- temp &= ~(1 << (mixin & 3));
- /* Mute input. Avoid crackling? */
- hwwrite(vortex->mmio, VORTEX_MIX_INVOL_B + (((mix << 5) + mixin) << 2), 0x80);
- /* No idea what this does. */
- hwwrite(vortex->mmio, VORTEX_MIX_U0 + (mixin << 2), 0x0);
- hwwrite(vortex->mmio, VORTEX_MIX_U0 + 4 + (mixin << 2), 0x0);
- /* Write enable bit. */
- hwwrite(vortex->mmio, VORTEX_MIX_ENIN + addr, temp);
-}
-
-void vortex_mix_killinput(vortex_t *vortex, unsigned char mix, int mixin) {
- rampchs[mix] &= ~(1 << mixin);
- vortex_mix_setinputvolumebyte(vortex, mix, mixin, 0x80);
- mchannels[mix] &= ~(1 << mixin);
- vortex_mix_setenablebit(vortex, mix, mixin, 0);
-}
-
-void vortex_mix_enableinput(vortex_t *vortex, unsigned char mix, int mixin) {
- vortex_mix_killinput(vortex, mix, mixin);
- if ((mchannels[mix] & (1 << mixin)) == 0) {
- vortex_mix_setinputvolumebyte(vortex, mix, mixin, 0x80); /*0x80 : mute */
- mchannels[mix] |= (1 << mixin);
- }
- vortex_mix_setenablebit(vortex, mix, mixin, 1);
-}
-
-void vortex_mix_disableinput(vortex_t *vortex, unsigned char mix, int channel, int ramp) {
- if (ramp) {
- rampchs[mix] |= (1 << channel);
- // Register callback.
- //vortex_mix_startrampvolume(vortex);
- vortex_mix_killinput(vortex, mix, channel);
- } else
- vortex_mix_killinput(vortex, mix, channel);
-}
-
-int vortex_mixer_addWTD(vortex_t *vortex, unsigned char mix, unsigned char ch) {
- int temp, lifeboat = 0, prev;
-
-
- temp = hwread(vortex->mmio, VORTEX_MIXER_SR);
- if ((temp & (1 << ch)) == 0) {
- hwwrite(vortex->mmio, VORTEX_MIXER_CHNBASE + (ch << 2), mix);
- vortex_mixer_en_sr(vortex, ch);
- return 1;
- }
- prev = VORTEX_MIXER_CHNBASE + (ch << 2);
- temp = hwread(vortex->mmio, prev);
- while (temp & 0x10) {
- prev = VORTEX_MIXER_RTBASE + ((temp & 0xf) << 2);
- temp = hwread(vortex->mmio, prev);
- //printk(KERN_INFO "vortex: mixAddWTD: while addr=%x, val=%x\n", prev, temp);
- if ((++lifeboat) > 0xf) {
- printk(KERN_ERR "vortex_mixer_addWTD: lifeboat overflow\n");
- return 0;
- }
- }
- hwwrite(vortex->mmio, VORTEX_MIXER_RTBASE + ((temp & 0xf) << 2), mix);
- hwwrite(vortex->mmio, prev, (temp & 0xf) | 0x10);
- return 1;
-}
-
-int vortex_mixer_delWTD(vortex_t *vortex, unsigned char mix, unsigned char ch) {
- int esp14=-1, esp18, eax, ebx, edx, ebp, esi=0;
- //int esp1f=edi(while)=src, esp10=ch;
-
- eax = hwread(vortex->mmio, VORTEX_MIXER_SR);
- if (((1 << ch) & eax) == 0) {
- printk(KERN_ERR "mix ALARM %x\n", eax);
- return 0;
- }
- ebp = VORTEX_MIXER_CHNBASE + (ch << 2);
- esp18 = hwread(vortex->mmio, ebp);
- if (esp18 & 0x10) {
- ebx = (esp18 & 0xf);
- if (mix == ebx) {
- ebx = VORTEX_MIXER_RTBASE + (mix << 2);
- edx = hwread(vortex->mmio, ebx);
- //7b60
- hwwrite(vortex->mmio, ebp, edx);
- hwwrite(vortex->mmio, ebx, 0);
- } else {
- //7ad3
- edx = hwread(vortex->mmio, VORTEX_MIXER_RTBASE + (ebx << 2));
- //printk(KERN_INFO "vortex: mixdelWTD: 1 addr=%x, val=%x, src=%x\n", ebx, edx, src);
- while ((edx & 0xf) != mix) {
- if ((esi) > 0xf) {
- printk(KERN_ERR "vortex: mixdelWTD: error lifeboat overflow\n");
- return 0;
- }
- esp14 = ebx;
- ebx = edx & 0xf;
- ebp = ebx << 2;
- edx = hwread(vortex->mmio, VORTEX_MIXER_RTBASE + ebp);
- //printk(KERN_INFO "vortex: mixdelWTD: while addr=%x, val=%x\n", ebp, edx);
- esi++;
- }
- //7b30
- ebp = ebx << 2;
- if (edx & 0x10) { /* Delete entry in between others */
- ebx = VORTEX_MIXER_RTBASE + ((edx & 0xf) << 2);
- edx = hwread(vortex->mmio, ebx);
- //7b60
- hwwrite(vortex->mmio, VORTEX_MIXER_RTBASE + ebp, edx);
- hwwrite(vortex->mmio, ebx, 0);
- //printk(KERN_INFO "vortex mixdelWTD between addr= 0x%x, val= 0x%x\n", ebp, edx);
- } else { /* Delete last entry */
- //7b83
- if (esp14 == -1)
- hwwrite(vortex->mmio, VORTEX_MIXER_CHNBASE + (ch << 2), esp18 & 0xef);
- else {
- ebx = (0xffffffe0 & edx) | (0xf & ebx);
- hwwrite(vortex->mmio, VORTEX_MIXER_RTBASE + (esp14 << 2), ebx);
- //printk(KERN_INFO "vortex mixdelWTD last addr= 0x%x, val= 0x%x\n", esp14, ebx);
- }
- hwwrite(vortex->mmio, VORTEX_MIXER_RTBASE + ebp, 0);
- return 1;
- }
- }
- } else {
- //printk(KERN_INFO "removed last mix\n");
- //7be0
- vortex_mixer_dis_sr(vortex, ch);
- hwwrite(vortex->mmio, ebp, 0);
- }
- return 1;
-}
-
-unsigned int vortex_mix_boost6db(unsigned char vol) {
- return (vol + 8); /* WOW! what a complex function! */
-}
-
-void vortex_mix_rampvolume(vortex_t *vortex, int mix) {
- int ch;
- char a;
- // This function is intended for ramping down only (see vortex_disableinput()).
- for (ch = 0; ch < 0x20; ch++) {
- if (((1 << ch) & rampchs[mix]) == 0)
- continue;
- a = hwread(vortex->mmio,
- VORTEX_MIX_INVOL_B + (((mix << 5) + ch) << 2));
- if (a > -126) {
- a -= 2;
- hwwrite(vortex->mmio,
- VORTEX_MIX_INVOL_A + (((mix << 5) + ch) << 2), a);
- hwwrite(vortex->mmio,
- VORTEX_MIX_INVOL_B + (((mix << 5) + ch) << 2), a);
- } else
- vortex_mix_killinput(vortex, mix, ch);
- }
-}
-
-void vortex_mixer_init(vortex_t *vortex) {
- unsigned long addr;
- int x;
-
- // FIXME: get rid of this crap.
- memset(mchannels, 0, NR_MIXOUT*sizeof(int));
- memset(rampchs, 0, NR_MIXOUT*sizeof(int));
-
- addr = VORTEX_MIX_U0 + 0x17c;
- for (x = 0x5f; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0);
- addr -= 4;
- }
- addr = VORTEX_MIX_ENIN + 0x1fc;
- for (x = 0x7f; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0);
- addr -= 4;
- }
- addr = VORTEX_MIX_U0 + 0x17c;
- for (x = 0x5f; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0);
- addr -= 4;
- }
- addr = VORTEX_MIX_INVOL_A + 0x7fc;
- for (x = 0x1ff; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0x80);
- addr -= 4;
- }
- addr = VORTEX_MIX_VOL_A + 0x3c;
- for (x = 0xf; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0x80);
- addr -= 4;
- }
- addr = VORTEX_MIX_INVOL_B + 0x7fc;
- for (x = 0x1ff; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0x80);
- addr -= 4;
- }
- addr = VORTEX_MIX_VOL_B + 0x3c;
- for (x = 0xf; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0x80);
- addr -= 4;
- }
- addr = VORTEX_MIXER_RTBASE + (MIXER_RTBASE_SIZE-1)*4;
- for (x = (MIXER_RTBASE_SIZE-1); x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0x0);
- addr -= 4;
- }
- hwwrite(vortex->mmio, VORTEX_MIXER_SR, 0);
- /*
- call CAsp4Mix__Initialize_CAsp4HwIO____CAsp4Mixer____
- Register ISR callback for volume smooth fade out.
- Maybe this avoids clicks when press "stop" ?
- */
-}
-
-/* SRC (CAsp4Src.s and CAsp4SrcBlock) */
-
-void vortex_src_en_sr(vortex_t *vortex, int channel) {
- hwwrite(vortex->mmio, VORTEX_SRCBLOCK_SR, hwread(vortex->mmio, VORTEX_SRCBLOCK_SR) | (0x1 << channel));
-}
-
-void vortex_src_dis_sr(vortex_t *vortex, int channel) {
- hwwrite(vortex->mmio, VORTEX_SRCBLOCK_SR, hwread(vortex->mmio, VORTEX_SRCBLOCK_SR) & ~(0x1 << channel));
-}
-
-void vortex_src_flushbuffers(vortex_t *vortex, unsigned char src) {
- int i;
-
- for (i = 0x1f; i >= 0; i--)
- hwwrite(vortex->mmio, VORTEX_SRC_DATA0 + (src << 7) + (i << 2), 0);
- hwwrite(vortex->mmio, VORTEX_SRC_DATA + (src << 3), 0);
- hwwrite(vortex->mmio, VORTEX_SRC_DATA + (src << 3) + 4, 0);
-}
-
-void vortex_src_cleardrift(vortex_t *vortex, unsigned char src) {
- hwwrite(vortex->mmio, VORTEX_SRC_DRIFT0 + (src << 2), 0);
- hwwrite(vortex->mmio, VORTEX_SRC_DRIFT1 + (src << 2), 0);
- hwwrite(vortex->mmio, VORTEX_SRC_DRIFT2 + (src << 2), 1);
-}
-
-void vortex_src_slowlock(vortex_t *vortex, unsigned char src) {
- int temp;
-
- hwwrite(vortex->mmio, VORTEX_SRC_DRIFT2 + (src << 2), 1);
- hwwrite(vortex->mmio, VORTEX_SRC_DRIFT0 + (src << 2), 0);
- temp = hwread(vortex->mmio, VORTEX_SRC_U0 + (src << 2));
- if (temp & 0x200)
- hwwrite(vortex->mmio, VORTEX_SRC_U0 + (src << 2), temp & ~0x200L);
-}
-
-void vortex_src_set_throttlesource(vortex_t *vortex, unsigned char src, int en) {
- int temp;
-
- temp = hwread(vortex->mmio, VORTEX_SRC_SOURCE);
- if (en)
- temp |= 1 << src;
- else
- temp &= ~(1 << src);
- hwwrite(vortex->mmio, VORTEX_SRC_SOURCE, temp);
-}
-
-int vortex_src_persist_convratio(vortex_t *vortex, unsigned char src, int ratio) {
- int temp, lifeboat = 0;
-
- do {
- hwwrite(vortex->mmio, VORTEX_SRC_CONVRATIO + (src << 2), ratio);
- temp = hwread(vortex->mmio, VORTEX_SRC_CONVRATIO + (src << 2));
- if ((++lifeboat) > 0x9) {
- printk(KERN_ERR "Vortex: Src cvr fail\n");
- break;
- }
- } while (temp != ratio);
- return temp;
-}
-
-void vortex_src_change_convratio(vortex_t *vortex, unsigned char src, int ratio) {
- int temp, a;
-
- if ((ratio & 0x10000) && (ratio != 0x10000)) {
- if (ratio & 0x3fff)
- a = (0x11 - ((ratio >> 0xe) & 0x3)) - 1;
- else
- a = (0x11 - ((ratio >> 0xe) & 0x3)) - 2;
- } else
- a = 0xc;
- temp = hwread(vortex->mmio, VORTEX_SRC_U0 + (src << 2));
- if (((temp >> 4) & 0xf) != a)
- hwwrite(vortex->mmio, VORTEX_SRC_U0 + (src << 2), (temp & 0xf) | ((a & 0xf) << 4));
-
- vortex_src_persist_convratio(vortex, src, ratio);
-}
-
-int vortex_src_checkratio(vortex_t *vortex, unsigned char src, unsigned int desired_ratio) {
- int hw_ratio, lifeboat = 0;
-
- hw_ratio = hwread(vortex->mmio, VORTEX_SRC_CONVRATIO + (src << 2));
-
- while (hw_ratio != desired_ratio) {
- hwwrite(vortex->mmio, VORTEX_SRC_CONVRATIO + (src << 2), desired_ratio);
-
- if ((lifeboat++) > 15){
- printk(KERN_ERR "Vortex: could not set src-%d from %d to %d\n", src, hw_ratio, desired_ratio);
- break;
- }
- }
-
- return hw_ratio;
-}
-
-void vortex_src_setupchannel(vortex_t *card, unsigned char src, unsigned int cvr,
- unsigned int b, int c, int d, int dirplay, int f, unsigned int g, int thsource) {
- // noplayback: d=2,4,7,0xa,0xb when using first 2 src's.
- // c: enables pitch sweep.
- // looks like g is c related. Maybe g is a sweep parameter ?
- // g = cvr
- // dirplay: 0 = recording, 1 = playback
- // d = src hw index.
-
- int esi, ebp=0, esp10;
-
- vortex_src_flushbuffers(card, src);
-
- if (c) {
- if ((g & 0x10000) && (g != 0x10000)) {
- g = 0;
- esi = 0x7;
- } else {
- if ((((short)g) < 0) && (g != 0x8000)) {
- g = 0;
- esi = 0x8;
- } else {
- g = 1;
- esi = 0xc;
- }
- }
- } else {
- if ((cvr & 0x10000) && (cvr != 0x10000)) {
- g = 0; /*ebx = 0*/
- esi = 0x11 - ((cvr >> 0xe) & 7);
- if (cvr & 0x3fff)
- esi -= 1;
- else
- esi -= 2;
- } else {
- g = 1;
- esi = 0xc;
- }
- }
- vortex_src_cleardrift(card, src);
- vortex_src_set_throttlesource(card, src, thsource);
-
- if ((dirplay == 0)&&(c == 0)) {
- if (g)
- esp10 = 0xf;
- else
- esp10 = 0xc;
- ebp = 0;
- } else {
- if (g)
- ebp = 0xf;
- else
- ebp = 0xc;
- esp10 = 0;
- }
- hwwrite(card->mmio, VORTEX_SRC_U0 + (src << 2), (f << 0x9) | (c << 0x8) | ((esi&0xf)<<4) | d);
- /* 0xc0 esi=0xc c=f=0 d=0*/
- vortex_src_persist_convratio(card, src, cvr);
- hwwrite(card->mmio, VORTEX_SRC_U1 + (src << 2), b & 0xffff);
- /* 0 b=0 */
- hwwrite(card->mmio, VORTEX_SRC_U3 + (src << 2), (g << 0x11) | (dirplay << 0x10) | (ebp << 0x8) | esp10);
- /* 0x30f00 e=g=1 esp10=0 ebp=f */
- //printk(KERN_INFO "vortex: SRC %d, d=0x%x, esi=0x%x, esp10=0x%x, ebp=0x%x\n", src, d, esi, esp10, ebp);
-}
-
-void vortex_srcblock_init(vortex_t *vortex) {
- unsigned long addr;
- int x;
- hwwrite(vortex->mmio, VORTEX_SRC_SOURCE+4, 0x1ff);
- /*
- for (x=0; x<0x10; x++) {
- vortex_src_init(&vortex_src[x], x);
- }
- */
- //addr = 0xcc3c;
- //addr = 0x26c3c;
- addr = VORTEX_SRC_RTBASE + 0x3c;
- for (x = 0xf; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0);
- addr -= 4;
- }
- //addr = 0xcc94;
- //addr = 0x26c94;
- addr = VORTEX_SRC_CHNBASE + 0x54;
- for (x = 0x15; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, 0);
- addr -= 4;
- }
-}
-
-int vortex_src_addWTD(vortex_t *vortex, unsigned char src, unsigned char ch) {
- int temp, lifeboat = 0, prev;
- // esp13 = src
-
- temp = hwread(vortex->mmio, VORTEX_SRCBLOCK_SR);
- if ((temp & (1 << ch)) == 0) {
- hwwrite(vortex->mmio, VORTEX_SRC_CHNBASE + (ch << 2), src);
- vortex_src_en_sr(vortex, ch);
- return 1;
- }
- prev = VORTEX_SRC_CHNBASE + (ch << 2); /*ebp*/
- temp = hwread(vortex->mmio, prev);
- //while (temp & NR_SRC) {
- while (temp & 0x10) {
- prev = VORTEX_SRC_RTBASE + ((temp & 0xf) << 2); /*esp12*/
- //prev = VORTEX_SRC_RTBASE + ((temp & (NR_SRC-1)) << 2); /*esp12*/
- temp = hwread(vortex->mmio, prev);
- //printk(KERN_INFO "vortex: srcAddWTD: while addr=%x, val=%x\n", prev, temp);
- if ((++lifeboat) > 0xf) {
- printk(KERN_ERR "vortex_src_addWTD: lifeboat overflow\n");
- return 0;
- }
- }
- hwwrite(vortex->mmio, VORTEX_SRC_RTBASE + ((temp & 0xf) << 2), src);
- //hwwrite(vortex->mmio, prev, (temp & (NR_SRC-1)) | NR_SRC);
- hwwrite(vortex->mmio, prev, (temp & 0xf) | 0x10);
- return 1;
-}
-
-int vortex_src_delWTD(vortex_t *vortex, unsigned char src, unsigned char ch) {
- int esp14=-1, esp18, eax, ebx, edx, ebp, esi=0;
- //int esp1f=edi(while)=src, esp10=ch;
-
- eax = hwread(vortex->mmio, VORTEX_SRCBLOCK_SR);
- if (((1 << ch) & eax) == 0) {
- printk(KERN_ERR "src alarm\n");
- return 0;
- }
- ebp = VORTEX_SRC_CHNBASE + (ch << 2);
- esp18 = hwread(vortex->mmio, ebp);
- if (esp18 & 0x10) {
- ebx = (esp18 & 0xf);
- if (src == ebx) {
- ebx = VORTEX_SRC_RTBASE + (src << 2);
- edx = hwread(vortex->mmio, ebx);
- //7b60
- hwwrite(vortex->mmio, ebp, edx);
- hwwrite(vortex->mmio, ebx, 0);
- } else {
- //7ad3
- edx = hwread(vortex->mmio, VORTEX_SRC_RTBASE + (ebx << 2));
- //printk(KERN_INFO "vortex: srcdelWTD: 1 addr=%x, val=%x, src=%x\n", ebx, edx, src);
- while ((edx & 0xf) != src) {
- if ((esi) > 0xf) {
- printk("vortex: srcdelWTD: error, lifeboat overflow\n");
- return 0;
- }
- esp14 = ebx;
- ebx = edx & 0xf;
- ebp = ebx << 2;
- edx = hwread(vortex->mmio, VORTEX_SRC_RTBASE + ebp);
- //printk(KERN_INFO "vortex: srcdelWTD: while addr=%x, val=%x\n", ebp, edx);
- esi++;
- }
- //7b30
- ebp = ebx << 2;
- if (edx & 0x10) { /* Delete entry in between others */
- ebx = VORTEX_SRC_RTBASE + ((edx & 0xf) << 2);
- edx = hwread(vortex->mmio, ebx);
- //7b60
- hwwrite(vortex->mmio, VORTEX_SRC_RTBASE + ebp, edx);
- hwwrite(vortex->mmio, ebx, 0);
- //printk(KERN_INFO "vortex srcdelWTD between addr= 0x%x, val= 0x%x\n", ebp, edx);
- } else { /* Delete last entry */
- //7b83
- if (esp14 == -1)
- hwwrite(vortex->mmio, VORTEX_SRC_CHNBASE + (ch << 2), esp18 & 0xef);
- else {
- ebx = (0xffffffe0 & edx) | (0xf & ebx);
- hwwrite(vortex->mmio, VORTEX_SRC_RTBASE + (esp14 << 2), ebx);
- //printk(KERN_INFO"vortex srcdelWTD last addr= 0x%x, val= 0x%x\n", esp14, ebx);
- }
- hwwrite(vortex->mmio, VORTEX_SRC_RTBASE + ebp, 0);
- return 1;
- }
- }
- } else {
- //7be0
- vortex_src_dis_sr(vortex, ch);
- hwwrite(vortex->mmio, ebp, 0);
- }
- return 1;
-}
-
- /*FIFO*/
-
-void vortex_fifo_clearadbdata(vortex_t *vortex, int fifo, int x) {
- for (x--; x >= 0; x--)
- hwwrite(vortex->mmio, VORTEX_FIFO_ADBDATA + (((fifo << FIFO_SIZE_BITS) + x) << 2), 0);
-}
-
-void vortex_fifo_clearwtdata(vortex_t *vortex, int fifo, int x) {
- if (x < 1)
- return;
- for (x--; x >= 0; x--)
- hwwrite(vortex->mmio, VORTEX_FIFO_WTDATA + (((fifo << FIFO_SIZE_BITS) + x) << 2), 0);
-}
-
-void vortex_fifo_init(vortex_t *vortex) {
- int x;
- unsigned long addr;
-
- /* ADB DMA channels fifos. */
- addr = VORTEX_FIFO_ADBCTRL + ((NR_ADB-1)*4);
- for (x = NR_ADB-1; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, (FIFO_U0 | FIFO_U1));
- if (hwread(vortex->mmio, addr) != (FIFO_U0 | FIFO_U1))
- printk(KERN_ERR "bad adb fifo reset!");
- vortex_fifo_clearadbdata(vortex, x, FIFO_SIZE);
- addr -= 4;
- }
-
-#ifndef CHIP_AU8810
- /* WT DMA channels fifos. */
- addr = VORTEX_FIFO_WTCTRL + ((NR_WT-1)*4);
- for (x = NR_WT-1; x >= 0; x--) {
- hwwrite(vortex->mmio, addr, FIFO_U0);
- if (hwread(vortex->mmio, addr) != FIFO_U0)
- printk(KERN_ERR "bad wt fifo reset (0x%08lx, 0x%08x)!\n", addr, hwread(vortex->mmio, addr));
- vortex_fifo_clearwtdata(vortex, x, FIFO_SIZE);
- addr -= 4;
- }
-#endif
- /* below is weird stuff... */
-#ifndef CHIP_AU8820
- hwwrite(vortex->mmio, 0xf8c0, 0xd03); //0x0843 0xd6b
-#else
- hwwrite(vortex->mmio, 0x17000, 0x61);
- hwwrite(vortex->mmio, 0x17004, 0x61);
- hwwrite(vortex->mmio, 0x17008, 0x61);
-#endif
-}
-
-void vortex_fifo_adbinitialize(vortex_t *vortex, int fifo, int j) {
- vortex_fifo_clearadbdata(vortex, fifo, FIFO_SIZE);
-#ifdef CHIP_AU8820
- hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2), (FIFO_U1 | ((j & FIFO_MASK) << 0xb)));
-#else
- hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2), (FIFO_U1 | ((j & FIFO_MASK) << 0xc)));
-#endif
-}
-
-void vortex_fifo_wtinitialize(vortex_t *vortex, int fifo, int j) {
- vortex_fifo_clearwtdata(vortex, fifo, FIFO_SIZE);
-#ifdef CHIP_AU8820
- hwwrite(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2), (FIFO_U1 | ((j & FIFO_MASK) << 0xb)));
-#else
- hwwrite(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2), (FIFO_U1 | ((j & FIFO_MASK) << 0xc)));
-#endif
-}
-
-void vortex_fifo_setadbvalid(vortex_t *vortex, int fifo, int en) {
- hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2), (hwread(vortex->mmio,
- VORTEX_FIFO_ADBCTRL + (fifo << 2)) & 0xffffffef) | ((1 & en) << 4) | FIFO_U1);
-}
-
-void vortex_fifo_setwtvalid(vortex_t *vortex, int fifo, int en) {
- hwwrite(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2), (hwread(vortex->mmio,
- VORTEX_FIFO_WTCTRL + (fifo << 2)) & 0xffffffef) | ((en & 1) << 4) | FIFO_U1);
-}
-
-void vortex_fifo_setadbctrl(vortex_t *vortex, int fifo, int b, int priority, int empty, int valid, int f) {
- int temp, lifeboat=0;
- //int this_8[NR_ADB] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; /* position */
- int this_4=0x2;
- /* f seems priority related.
- * CAsp4AdbDma::SetPriority is the only place that calls SetAdbCtrl with f set to 1
- * every where else it is set to 0. It seems, however, that CAsp4AdbDma::SetPriority
- * is never called, thus the f related bits remain a mystery for now.
- */
- do {
- temp = hwread(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2));
- if (lifeboat++ > 0xbb8) {
- printk(KERN_ERR "Vortex: vortex_fifo_setadbctrl fail\n");
- break;
- }
- } while (temp & FIFO_RDONLY);
-
- // AU8830 semes to take some special care about fifo content (data).
- // But i'm just to lazy to translate that :)
- if (valid) {
- if ((temp & FIFO_VALID) == 0) {
- //this_8[fifo] = 0;
- vortex_fifo_clearadbdata(vortex, fifo, FIFO_SIZE); // this_4
-#ifdef CHIP_AU8820
- temp = (this_4 & 0x1f) << 0xb;
-#else
- temp = (this_4 & 0x3f) << 0xc;
-#endif
- temp = (temp & 0xfffffffd) | ((b & 1) << 1);
- temp = (temp & 0xfffffff3) | ((priority & 3) << 2);
- temp = (temp & 0xffffffef) | ((valid & 1) << 4);
- temp |= FIFO_U1;
- temp = (temp & 0xffffffdf) | ((empty & 1) << 5);
-#ifdef CHIP_AU8820
- temp = (temp & 0xfffbffff) | ((f & 1) << 0x12);
-#endif
-#ifdef CHIP_AU8830
- temp = (temp & 0xf7ffffff) | ((f & 1) << 0x1b);
- temp = (temp & 0xefffffff) | ((f & 1) << 0x1c);
-#endif
-#ifdef CHIP_AU8810
- temp = (temp & 0xfeffffff) | ((f & 1) << 0x18);
- temp = (temp & 0xfdffffff) | ((f & 1) << 0x19);
-#endif
- }
- } else {
- if (temp & FIFO_VALID) {
-#ifdef CHIP_AU8820
- temp = ((f & 1) << 0x12) | (temp & 0xfffbffef);
-#endif
-#ifdef CHIP_AU8830
- temp = ((f & 1) << 0x1b) | (temp & 0xe7ffffef) | FIFO_BITS;
-#endif
-#ifdef CHIP_AU8810
- temp = ((f & 1) << 0x1b) | (temp & 0xfcffffef) | FIFO_BITS;
-#endif
- } else
- /*if (this_8[fifo])*/ vortex_fifo_clearadbdata(vortex, fifo, FIFO_SIZE);
- }
- hwwrite(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2), temp);
- hwread(vortex->mmio, VORTEX_FIFO_ADBCTRL + (fifo << 2));
-}
-
-void vortex_fifo_setwtctrl(vortex_t *vortex, int fifo, int b, int priority, int empty, int valid, int f) {
- int temp=0;
- int this_4=2;
-
- if (valid) {
- vortex_fifo_clearwtdata(vortex, fifo, 0x20);
- temp = (this_4 & 0x1f) << 0xb;
- }
- temp = (temp & 0xfffffffd) | ((b & 1) << 1);
- temp = (temp & 0xfffdffff) | ((f & 1) << 0x11);
- temp = (temp & 0xfffffff3) | ((priority & 3) << 2);
- temp = (temp & 0xffffffef) | ((valid & 1) << 4);
- temp = (temp & 0xffffffdf) | ((empty & 1) << 5);
-#ifdef FIFO_BITS
- temp |= FIFO_BITS;
-#endif
- hwwrite(vortex->mmio, VORTEX_FIFO_WTCTRL + (fifo << 2), temp);
-}
-
-/* ADBDMA */
-
-void vortex_adbdma_init(vortex_t *vortex) {
-}
-
-void vortex_adbdma_setupbuffer(vortex_t *vortex, int adbdma, int sb, u32 addr, u32 size, int sb_next, int c) {
- // if "c" is 0, then DMA stops when reaching that buffer.
-
- int offset, shift, mask;
- stream_t *dma = &vortex->dma_adb[adbdma];
- int *cfg;
-
- if (sb_next == -1) {
- sb_next = sb;
- if (dma->dma_ctrl & IE_MASK)
- c = 0;
- }
-
- if ((sb >= 0)&&(sb < 4)) {
- if (sb & 1) {
- // subbuffer 1 and 3
- shift = 0x0;
- mask = 0xf8fff000;
- } else {
- // subbuffer 0 and 2
- shift = 0xc;
- mask = 0x8f000fff;
- }
- if (sb & 2) {
- // subbuffer 2 and 3
- cfg = &dma->cfg1;
- offset = 4;
- } else {
- // subbuffer 0 and 1
- cfg = &dma->cfg0;
- offset = 0;
- }
- *cfg = (*cfg & (mask|0xffffff)) | ((((sb_next & 3)<<4) | ((c&1)<<6))<<24) | 0x80;
- if (size)
- *cfg = (*cfg & (mask|0xff000000)) | (((size-1) & 0xfff) << shift);
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFCFG0 + offset + (adbdma << 3), *cfg);
- }
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFBASE + (((adbdma<<2)+sb)<<2), addr);
-}
-
-void vortex_adbdma_setfirstbuffer(vortex_t *vortex, int adbdma) {
- stream_t *dma = &vortex->dma_adb[adbdma];
-
- hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), dma->dma_ctrl);
-}
-
-void vortex_adbdma_setstartbuffer(vortex_t *vortex, int adbdma, int sb) {
- stream_t *dma = &vortex->dma_adb[adbdma];
- hwwrite(vortex->mmio, VORTEX_ADBDMA_START + (adbdma << 2), (sb << ((NR_ADB-adbdma)*2)));
- dma->period_real = dma->period_virt = sb;
-}
-
-void vortex_adbdma_setbuffers(vortex_t *vortex, int adbdma, unsigned int addr, int size, int count) {
- stream_t *dma = &vortex->dma_adb[adbdma];
-
- dma->period_bytes = size;
- dma->nr_periods = count;
- dma->buf_addr = addr;
-
- // Adb Buffers. Simple linear buffer.
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFBASE + (adbdma << 4), addr);
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFBASE + 0x4 + (adbdma << 4), addr + size);
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFBASE + 0x8 + (adbdma << 4), addr + (size*2));
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFBASE + 0xc + (adbdma << 4), addr + (size*3));
-
- size--;
- switch (count) {
- case 1:
- dma->cfg0 = 0x80000000 | 0x40000000 | 0x00000000 | (size << 0xc);
- dma->cfg1 = 0x00000000 | 0x00000000 | 0x00000000;
- break;
- case 2:
- dma->cfg0 = 0x88000000 | 0x44000000 | 0x10000000 | (size << 0xc) | size;
- dma->cfg1 = 0x00000000 | 0x00000000 | 0x00000000;
- break;
- case 3:
- dma->cfg0 = 0x88000000 | 0x44000000 | 0x12000000 | (size << 0xc) | size;
- dma->cfg1 = 0x80000000 | 0x40000000 | 0x00000000 | (size << 0xc);
- break;
- case 4:
- default:
- dma->cfg0 = 0x88000000 | 0x44000000 | 0x12000000 | (size << 0xc) | size;
- dma->cfg1 = 0x88000000 | 0x44000000 | 0x30000000 | (size << 0xc) | size;
- break;
- }
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFCFG0 + (adbdma << 3), dma->cfg0);
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFCFG1 + (adbdma << 3), dma->cfg1);
-
- vortex_adbdma_setfirstbuffer(vortex, adbdma);
- vortex_adbdma_setstartbuffer(vortex, adbdma, 0);
-}
-
-void vortex_adbdma_setmode(vortex_t *vortex, int adbdma, int ie, int dir, int fmt, int d, unsigned long offset) {
- stream_t *dma = &vortex->dma_adb[adbdma];
-
- dma->dma_unknown = d;
- dma->dma_ctrl = ((offset & OFFSET_MASK) | (dma->dma_ctrl & ~OFFSET_MASK));
- /* Enable PCMOUT interrupts. */
- dma->dma_ctrl = (dma->dma_ctrl & ~IE_MASK) | ((ie << IE_SHIFT) & IE_MASK);
-
- dma->dma_ctrl = (dma->dma_ctrl & ~U_MASK) | ((dir << U_SHIFT) & U_MASK);
- dma->dma_ctrl = (dma->dma_ctrl & ~FMT_MASK) | ((fmt << FMT_SHIFT) & FMT_MASK);
-
- hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), dma->dma_ctrl);
- hwread(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2));
-}
-
-void vortex_adbdma_bufshift(vortex_t *vortex, int adbdma) {
- stream_t *dma = &vortex->dma_adb[adbdma];
- int page, p, pp, delta, i;
-
- page = (hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (adbdma << 2)) & ADB_SUBBUF_MASK) >> ADB_SUBBUF_SHIFT;
- if (dma->nr_periods >= 4)
- delta = (page - dma->period_real) & 3;
- else {
- delta = (page - dma->period_real);
- if (delta < 0)
- delta += dma->nr_periods;
- }
- if (delta == 0)
- return;
-
- /* refresh hw page table */
- if (dma->nr_periods > 4) {
- for (i=0 ; i < delta; i++) {
- /* p: audio buffer page index */
- p = dma->period_virt + i + 4;
- if (p >= dma->nr_periods)
- p -= dma->nr_periods;
- /* pp: hardware DMA page index. */
- pp = dma->period_real + i;
- if (pp >= 4)
- pp -= 4;
- hwwrite(vortex->mmio, VORTEX_ADBDMA_BUFBASE+(((adbdma << 2)+pp) << 2), dma->buf_addr+((dma->period_bytes)*p));
- /* Force write thru cache. */
- hwread(vortex->mmio, VORTEX_ADBDMA_BUFBASE + (((adbdma << 2)+pp) << 2));
- }
- }
- dma->period_virt += delta;
- dma->period_real = page;
- if (dma->period_virt >= dma->nr_periods)
- dma->period_virt -= dma->nr_periods;
- if ((delta != 1) || (delta < 0))
- printk(KERN_INFO "vortex: % d virt=0x%d, real=0x%x, delta = %d\n", adbdma, dma->period_virt, dma->period_real, delta);
-}
-
-void vortex_adbdma_setctrl(vortex_t *vortex, int a, int b, int c, int d, int e, int f) {
- //FIXME
-}
-
-void vortex_adbdma_getposition(vortex_t *vortex, int adbdma, int *subbuf, int *pos) {
- int temp, edi, eax, ecx, esp10, edx;
- stream_t *dma = &vortex->dma_adb[adbdma];
-
- // dma->cfg0: this_7c, dma->cfg1: this_80.
-
- // Looks like several hardware bug workarounds are in here.
- // The most weird function. What a nightmare.
- do {
- // Potential lockup, no lifeboat.
- temp = hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (adbdma << 2));
- if (temp == -1) {
- // 3ae1
- //*subbuf = this_88;
- //*pos = this_84;
- return;
- }
- esp10 = adbdma;
- if ((esp10 == ((temp >> 0x13) & 0xf)) && ((char)((temp >> 0x10) & 0xff) < 0))
- continue;
- edx = temp >> 0x18;
- if ((edx & 0xf) != adbdma)
- break;
- } while (edx | 0x10);
-
- ecx = hwread(vortex->mmio, VORTEX_FIFO_ADBCTRL + (adbdma << 2));
- *subbuf = (ecx >> 0xc) & 3;
-
- switch (*subbuf) {
- case 0:
- edi = (dma->cfg0 >> 0xc) & 0xfff;
- eax = (dma->cfg0 >> 24) & 0xff;
- break;
- case 1:
- edi = dma->cfg0 & 0xfff;
- eax = (dma->cfg0 >> 24) & 0xff;
- break;
- case 2:
- edi = (dma->cfg1 >> 0xc) & 0xfff;
- eax = (dma->cfg1 >> 24) & 0xff;
- break;
- case 3:
- edi = dma->cfg1 & 0xfff;
- eax = (dma->cfg1 >> 24) & 0xff;
- break;
- default:
- return;
- }
- edi++;
- if (dma->fifo_enabled == 0)
- *subbuf = 0;
- else {
- esp10 = dma->dma_unknown;
- temp = (temp & 0xfff83fff) | ((((temp >> 0xe) & 0x1f) & ~esp10) << 0xe);
- if (dma->dma_ctrl & 0x2000) {
- if (esp10) {
- if ((dma->dma_ctrl & 0x3c000) == 0x20000) /* if stereo */
- eax = (0x1c - ((temp >> 0xe) & 0x1f))*2;
- else
- eax = 0x1c - ((temp >> 0xe) & 0x1f);
- } else {
- if ((dma->dma_ctrl & 0x3c000) == 0x20000) /* if stereo */
- eax = ((~(temp >> 0xe)) & 0x1f)*2;
- else
- eax = (~(temp >> 0xe)) & 0x1f;
- }
- if (((ecx & 0x10) == 0) && (dma->fifo_status != FIFO_PAUSE))
- eax = edi - eax;
- else
- eax = (temp & 0xfff) - eax;
- if (edi > eax)
- eax = edi;
- } else {
- // 3a87
- if ((dma->dma_ctrl & 0x3c000) == 0x20000) /* if stereo */
- eax = (temp >> 0xd) & 0x3e;
- else
- eax = (temp >> 0xe) & 0x1f;
- }
- // 3aa8
- edi--;
- if ((ecx & 0x10) == 0) {
- if (dma->fifo_status == FIFO_PAUSE) {
- edx = (temp & 0xfff) + eax;
- eax = edi + 1;
- if (eax < edx)
- eax = edx;
- } else
- eax = ((ecx >> 5) & 1) + edi;
- } else {
- // 3ad3
- eax += temp & 0xfff;
- if (edi >= eax)
- eax = edi; // 3b00
- }
- }
- // 3b02
- *subbuf = eax;
- // 3b08
- //this_84 = *pos;
- //this_88 = *subbuf;
-}
-
-int vortex_adbdma_getcursubuffer(vortex_t *vortex, int adbdma) {
- return((hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (adbdma << 2)) & ADB_SUBBUF_MASK) >> ADB_SUBBUF_SHIFT);
-}
-
-int inline vortex_adbdma_getlinearpos(vortex_t *vortex, int adbdma) {
- stream_t *dma = &vortex->dma_adb[adbdma];
- int temp;
-
- temp = hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (adbdma << 2));
- temp = (dma->period_virt * dma->period_bytes) + (temp & POS_MASK);
- return (temp);
-}
-
-void vortex_adbdma_startfifo(vortex_t *vortex, int adbdma) {
- int this_8=0/*empty*/, this_4=0/*priority*/;
- stream_t *dma = &vortex->dma_adb[adbdma];
-
- switch (dma->fifo_status) {
- case FIFO_START:
- vortex_fifo_setadbvalid(vortex, adbdma, dma->fifo_enabled ? 0xff:0);
- break;
- case FIFO_STOP:
- this_8 = 1;
- hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), dma->dma_ctrl);
- vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, this_4,
- this_8, dma->fifo_enabled ? 0xff:0, 0);
- break;
- case FIFO_PAUSE:
- vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, this_4,
- this_8, dma->fifo_enabled ? 0xff:0, 0);
- break;
- }
- dma->fifo_status = FIFO_START;
-}
-
-void vortex_adbdma_resumefifo(vortex_t *vortex, int adbdma) {
- stream_t *dma = &vortex->dma_adb[adbdma];
-
- int this_8=1, this_4=0;
- switch (dma->fifo_status) {
- case FIFO_STOP:
- hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), dma->dma_ctrl);
- vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, this_4, this_8,
- dma->fifo_enabled ? 0xff:0, 0);
- break;
- case FIFO_PAUSE:
- vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, this_4, this_8,
- dma->fifo_enabled ? 0xff:0, 0);
- break;
- }
- dma->fifo_status = FIFO_START;
-}
-
-void vortex_adbdma_pausefifo(vortex_t *vortex, int adbdma) {
- stream_t *dma = &vortex->dma_adb[adbdma];
-
- int this_8=0, this_4=0;
- switch (dma->fifo_status) {
- case FIFO_START:
- vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, this_4, this_8, 0, 0);
- break;
- case FIFO_STOP:
- hwwrite(vortex->mmio, VORTEX_ADBDMA_CTRL + (adbdma << 2), dma->dma_ctrl);
- vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, this_4, this_8, 0, 0);
- break;
- }
- dma->fifo_status = FIFO_PAUSE;
-}
-
-void vortex_adbdma_stopfifo(vortex_t *vortex, int adbdma) {
- stream_t *dma = &vortex->dma_adb[adbdma];
-
- int this_4=0, this_8=0;
- if (dma->fifo_status == FIFO_START)
- vortex_fifo_setadbctrl(vortex, adbdma, dma->dma_unknown, this_4, this_8, 0, 0);
- else if (dma->fifo_status == FIFO_STOP)
- return;
- dma->fifo_status = FIFO_STOP;
- dma->fifo_enabled = 0;
-}
-
-/* WTDMA */
-#ifndef CHIP_AU8810
-void vortex_wtdma_init(vortex_t *vortex) {
-}
-
-void vortex_wtdma_setupbuffer(vortex_t *vortex, int wtdma, int sb, u32 addr, u32 size, int sb_next, int c) {
- int offset, shift, mask;
- stream_t *dma = &vortex->dma_wt[wtdma];
- int *cfg;
-
- if (sb_next == -1) {
- sb_next = sb;
- if (dma->dma_ctrl & IE_MASK)
- c = 0;
- }
-
- if ((sb >= 0)&&(sb < 4)) {
- if (sb & 1) {
- /* subbuffer 1 and 3 */
- shift = 0x0;
- mask = 0xf8fff000;
- } else {
- /* subbuffer 0 and 2 */
- shift = 0xc;
- mask = 0x8f000fff;
- }
- if (sb & 2) {
- /* subbuffer 2 and 3 */
- cfg = &dma->cfg1;
- offset = 4;
- } else {
- /* subbuffer 0 and 1 */
- cfg = &dma->cfg0;
- offset = 0;
- }
- *cfg = (*cfg & (mask|0xffffff)) | ((((sb_next & 3)<<4) | ((c&1)<<6))<<24) | 0x80;
- if (size)
- *cfg = (*cfg & (mask|0xff000000)) | (((size-1) & 0xfff) << shift);
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFCFG0 + offset + (wtdma << 3), *cfg);
- }
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + (((wtdma<<2)+sb)<<2), addr);
-}
-
-void vortex_wtdma_setfirstbuffer(vortex_t *vortex, int wtdma) {
- //int this_7c=dma_ctrl;
- stream_t *dma = &vortex->dma_wt[wtdma];
-
- hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), dma->dma_ctrl);
-}
-
-void vortex_wtdma_setstartbuffer(vortex_t *vortex, int wtdma, int sb) {
- stream_t *dma = &vortex->dma_wt[wtdma];
- hwwrite(vortex->mmio, VORTEX_WTDMA_START + (wtdma << 2), (sb << ((~wtdma)&0xf)*2));
- dma->period_real = dma->period_virt = sb;
-}
-
-void vortex_wtdma_setbuffers(vortex_t *vortex, int wtdma, unsigned int addr, int size, int count) {
- stream_t *dma = &vortex->dma_wt[wtdma];
-
- /* Wt buffer. */
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + (wtdma << 4), addr);
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + 0x4 + (wtdma << 4), addr + size);
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + 0x8 + (wtdma << 4), addr + (size*2));
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE + 0xc + (wtdma << 4), addr + (size*3));
-
- switch (count) {
- case 1:
- dma->cfg0 = 0xce000000;
- dma->cfg1 = 0xfc000000;
- break;
- case 2:
- dma->cfg0 = 0xdc000000;
- dma->cfg1 = 0xfc000000;
- break;
- case 3:
- dma->cfg0 = 0xde000000;
- dma->cfg1 = 0xcc000000;
- break;
- case 4:
- default:
- dma->cfg0 = 0xde000000;
- dma->cfg1 = 0xfc000000;
- break;
- }
- size--;
- dma->cfg0 |= (size << 0xc) | size;
- dma->cfg1 |= (size << 0xc) | size;
- //printk(KERN_INFO "vortex: wt buffer cfg: 0x%8x 0x%8x\n", dma->cfg0, dma->cfg1);
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFCFG0 + (wtdma << 3), dma->cfg0);
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFCFG1 + (wtdma << 3), dma->cfg1);
-
- vortex_wtdma_setfirstbuffer(vortex, wtdma);
- vortex_wtdma_setstartbuffer(vortex, wtdma, 0);
-}
-
-void vortex_wtdma_setmode(vortex_t *vortex, int wtdma, int ie, int dir, int fmt, int d, unsigned long offset) {
- stream_t *dma = &vortex->dma_wt[wtdma];
-
- dma->dma_unknown = d;
- dma->dma_ctrl = ((offset & OFFSET_MASK) | (dma->dma_ctrl & ~OFFSET_MASK));
- /* PCMOUT interrupt */
- dma->dma_ctrl = (dma->dma_ctrl & ~IE_MASK) | ((ie << IE_SHIFT) & IE_MASK);
-
- dma->dma_ctrl = (dma->dma_ctrl & U_MASK) | ((dir << U_SHIFT) & U_MASK);
- dma->dma_ctrl = (dma->dma_ctrl & FMT_MASK) | ((fmt << FMT_SHIFT) & FMT_MASK);
-
- hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), dma->dma_ctrl);
-}
-
-void vortex_wtdma_bufshift(vortex_t *vortex, int wtdma) {
- stream_t *dma = &vortex->dma_wt[wtdma];
- int page, p, delta, i;
-
- page = (hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2)) >> 0xc) & 0x3;
- delta = (page - dma->period_real) & 3;
-
- /* refresh hw page table */
- if (dma->nr_periods > 4) {
- for (i=0 ; i < delta; i++) {
- p = dma->period_virt + i;
- if (p >= dma->nr_periods)
- p -= dma->nr_periods;
- hwwrite(vortex->mmio, VORTEX_WTDMA_BUFBASE+(((wtdma << 2)+(p & 3)) << 2), dma->buf_addr + ((dma->period_bytes)*p));
- }
- }
- dma->period_virt += delta;
- if (dma->period_virt >= dma->nr_periods)
- dma->period_virt -= dma->nr_periods;
- dma->period_real = page;
-
- if (delta != 1)
- printk(KERN_WARNING "vortex: wt page = %d, delta = %d\n", dma->period_virt, delta);
-}
-
-void vortex_wtdma_getposition(vortex_t *vortex, int wtdma, int *subbuf, int *pos) {
- int temp;
- temp = hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2));
- *subbuf = (temp >> WT_SUBBUF_SHIFT) & WT_SUBBUF_MASK;
- *pos = temp & POS_MASK;
-}
-
-int vortex_wtdma_getcursubuffer(vortex_t *vortex, int wtdma) {
- return((hwread(vortex->mmio, VORTEX_ADBDMA_STAT + (wtdma << 2)) >> POS_SHIFT) & POS_MASK);
-}
-
-int inline vortex_wtdma_getlinearpos(vortex_t *vortex, int wtdma) {
- stream_t *dma = &vortex->dma_wt[wtdma];
- int temp;
-
- temp = hwread(vortex->mmio, VORTEX_WTDMA_STAT + (wtdma << 2));
- //temp = (temp & POS_MASK) + (((temp>>WT_SUBBUF_SHIFT) & WT_SUBBUF_MASK)*(dma->cfg0&POS_MASK));
- temp = (temp & POS_MASK) + ((dma->period_virt)*(dma->period_bytes));
- return temp;
-}
-
-void vortex_wtdma_startfifo(vortex_t *vortex, int wtdma) {
- stream_t *dma = &vortex->dma_wt[wtdma];
- int this_8=0, this_4=0;
-
- switch (dma->fifo_status) {
- case FIFO_START:
- vortex_fifo_setwtvalid(vortex, wtdma, dma->fifo_enabled ? 0xff:0);
- break;
- case FIFO_STOP:
- this_8 = 1;
- hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), dma->dma_ctrl);
- vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, this_4,
- this_8, dma->fifo_enabled ? 0xff:0, 0);
- break;
- case FIFO_PAUSE:
- vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, this_4,
- this_8, dma->fifo_enabled ? 0xff:0, 0);
- break;
- }
- dma->fifo_status = FIFO_START;
-}
-
-void vortex_wtdma_resumefifo(vortex_t *vortex, int wtdma) {
- stream_t *dma = &vortex->dma_wt[wtdma];
-
- int this_8=0, this_4=0;
- switch (dma->fifo_status) {
- case FIFO_STOP:
- hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), dma->dma_ctrl);
- vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, this_4, this_8,
- dma->fifo_enabled ? 0xff:0, 0);
- break;
- case FIFO_PAUSE:
- vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, this_4, this_8,
- dma->fifo_enabled ? 0xff:0, 0);
- break;
- }
- dma->fifo_status = FIFO_START;
-}
-
-void vortex_wtdma_pausefifo(vortex_t *vortex, int wtdma) {
- stream_t *dma = &vortex->dma_wt[wtdma];
-
- int this_8=0, this_4=0;
- switch (dma->fifo_status) {
- case FIFO_START:
- vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, this_4, this_8, 0, 0);
- break;
- case FIFO_STOP:
- hwwrite(vortex->mmio, VORTEX_WTDMA_CTRL + (wtdma << 2), dma->dma_ctrl);
- vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, this_4, this_8, 0, 0);
- break;
- }
- dma->fifo_status = FIFO_PAUSE;
-}
-
-void vortex_wtdma_stopfifo(vortex_t *vortex, int wtdma) {
- stream_t *dma = &vortex->dma_wt[wtdma];
-
- int this_4=0, this_8=0;
- if (dma->fifo_status == FIFO_START)
- vortex_fifo_setwtctrl(vortex, wtdma, dma->dma_unknown, this_4, this_8, 0, 0);
- else if (dma->fifo_status == FIFO_STOP)
- return;
- dma->fifo_status = FIFO_STOP;
- dma->fifo_enabled = 0;
-}
-
-void vortex_wtdma_chain(vortex_t *vortex, int wtdma, char sb1, char sb0) {
- stream_t *dma = &vortex->dma_wt[wtdma];
- int *cfg;
- int offset;
-
- if (sb0 == -1)
- sb1 = sb0;
- // this_0x80: cfg0, this_0x84: cfg1.
-
- switch (sb0) {
- case 0:
- dma->cfg0 = (dma->cfg0 & 0xcfffffff) | ((((sb1 & 0x3) | 4) <<4 ) << 24);
- cfg = &dma->cfg0;
- offset = VORTEX_WTDMA_BUFCFG0;
- break;
- case 1:
- dma->cfg0 = (dma->cfg0 & 0xfcffffff) | (((sb1 & 0x3) | 0x4) << 24);
- cfg = &dma->cfg0;
- offset = VORTEX_WTDMA_BUFCFG0;
- break;
- case 2:
- dma->cfg1 = (dma->cfg1 & 0xfcffffff) | ((((sb1 & 0x3) | 4) << 4) << 24);
- cfg = &dma->cfg1;
- offset = VORTEX_WTDMA_BUFCFG1;
- break;
- case 3:
- dma->cfg1 = (dma->cfg1 & 0xfcffffff) | (((sb1 & 0x3) | 0x4) << 24);
- cfg = &dma->cfg1;
- offset = VORTEX_WTDMA_BUFCFG1;
- break;
- default:
- return;
- }
- hwwrite(vortex->mmio, offset + (wtdma << 3), *cfg);
-}
-
-#endif
-/* ADB */
-
-typedef int ADBRamLink;
-void vortex_adb_init(vortex_t *vortex) {
- int i;
- /* it looks like we are writing more than we need to...
- * if we write what we are supposed to it breaks things... */
- hwwrite(vortex->mmio, VORTEX_ADB_SR, 0);
- for(i=0; i<VORTEX_ADB_RTBASE_SIZE; i++)
- hwwrite(vortex->mmio, VORTEX_ADB_RTBASE + (i<<2),
- hwread(vortex->mmio, VORTEX_ADB_RTBASE + (i<<2)) | ROUTE_MASK);
- for(i=0; i<VORTEX_ADB_CHNBASE_SIZE; i++){
- hwwrite(vortex->mmio, VORTEX_ADB_CHNBASE + (i<<2),
- hwread(vortex->mmio, VORTEX_ADB_CHNBASE + (i<<2)) | ROUTE_MASK);
- }
-}
-
-void vortex_adb_en_sr(vortex_t *vortex, int channel) {
- hwwrite(vortex->mmio, VORTEX_ADB_SR,
- hwread(vortex->mmio, VORTEX_ADB_SR) | (0x1 << channel));
-}
-
-void vortex_adb_dis_sr(vortex_t *vortex, int channel) {
- hwwrite(vortex->mmio, VORTEX_ADB_SR,
- hwread(vortex->mmio, VORTEX_ADB_SR) & ~(0x1 << channel));
-}
-
-void vortex_adb_addroutes(vortex_t *vortex, unsigned char channel, ADBRamLink *route, int rnum) {
- int temp, prev, lifeboat = 0;
-
- if ((rnum <= 0)||(route == NULL))
- return;
- /* Write last routes. */
- rnum--;
- hwwrite(vortex->mmio, VORTEX_ADB_RTBASE + ((route[rnum] & ADB_MASK) << 2), ROUTE_MASK);
- while (rnum > 0) {
- hwwrite(vortex->mmio, VORTEX_ADB_RTBASE + ((route[rnum-1] & ADB_MASK) << 2), route[rnum]);
- rnum--;
- }
- /* Write first route. */
- temp = hwread(vortex->mmio, VORTEX_ADB_CHNBASE + (channel << 2)) & ADB_MASK;
- if (temp == ADB_MASK) {
- /* First entry on this channel. */
- hwwrite(vortex->mmio, VORTEX_ADB_CHNBASE + (channel << 2), route[0]);
- vortex_adb_en_sr(vortex, channel);
- return;
- }
- /* Not first entry on this channel. Need to link. */
- do {
- prev = temp;
- temp = hwread(vortex->mmio, VORTEX_ADB_RTBASE + (temp << 2)) & ADB_MASK;
- if ((lifeboat++) > ADB_MASK) {
- printk(KERN_ERR "vortex_adb_addroutes: unending route!\n");
- return;
- }
- } while (temp != ADB_MASK);
- hwwrite(vortex->mmio, VORTEX_ADB_RTBASE + (prev << 2), route[0]);
-}
-
-void vortex_adb_delroutes(vortex_t *vortex, unsigned char channel, ADBRamLink route0, ADBRamLink route1) {
- int temp, lifeboat = 0, prev;
-
- /* Find route. */
- temp = hwread(vortex->mmio, VORTEX_ADB_CHNBASE + (channel << 2)) & ADB_MASK;
- if (temp == (route0 & ADB_MASK)) {
- temp = hwread(vortex->mmio, VORTEX_ADB_RTBASE + ((route1 & ADB_MASK) << 2));
- if ((temp & ADB_MASK) == ADB_MASK)
- vortex_adb_dis_sr(vortex, channel);
- hwwrite(vortex->mmio, VORTEX_ADB_CHNBASE + (channel << 2), temp);
- return;
- }
- do {
- prev = temp;
- temp = hwread(vortex->mmio, VORTEX_ADB_RTBASE + (prev << 2)) & ADB_MASK;
- if (((lifeboat++) > ADB_MASK) || (temp == ADB_MASK)) {
- printk(KERN_ERR "vortex_adb_delroutes: route not found!\n");
- return;
- }
- } while (temp != (route0 & ADB_MASK));
- temp = hwread(vortex->mmio, VORTEX_ADB_RTBASE + (temp << 2));
- if ((temp & ADB_MASK) == route1)
- temp = hwread(vortex->mmio, VORTEX_ADB_RTBASE + (temp << 2));
- /* Make bridge over deleted route. */
- hwwrite(vortex->mmio, VORTEX_ADB_RTBASE + (prev << 2), temp);
-}
-
-void vortex_route(vortex_t *vortex, int en, unsigned char channel, unsigned char source, unsigned char dest) {
- ADBRamLink route;
-
- route = ((source & ADB_MASK) << ADB_SHIFT) | (dest & ADB_MASK);
- if (en) {
- vortex_adb_addroutes(vortex, channel, &route, 1);
- if ((source < (OFFSET_SRCOUT+NR_SRC)) && (source >= OFFSET_SRCOUT))
- vortex_src_addWTD(vortex, (source - OFFSET_SRCOUT), channel);
- else if ((source < (OFFSET_MIXOUT+NR_MIXOUT)) && (source >= OFFSET_MIXOUT))
- vortex_mixer_addWTD(vortex, (source - OFFSET_MIXOUT), channel);
- } else {
- vortex_adb_delroutes(vortex, channel, route, route);
- if ((source < (OFFSET_SRCOUT+NR_SRC)) && (source >= OFFSET_SRCOUT))
- vortex_src_delWTD(vortex, (source - OFFSET_SRCOUT), channel);
- else if ((source < (OFFSET_MIXOUT+NR_MIXOUT)) && (source >= OFFSET_MIXOUT))
- vortex_mixer_delWTD(vortex, (source - OFFSET_MIXOUT), channel);
- }
-}
-
-void vortex_routes(vortex_t *vortex, int en, unsigned char channel, unsigned char source,
- unsigned char dest0, unsigned char dest1) {
- ADBRamLink route[2];
-
- route[0] = ((source & ADB_MASK) << ADB_SHIFT) | (dest0 & ADB_MASK);
- route[1] = ((source & ADB_MASK) << ADB_SHIFT) | (dest1 & ADB_MASK);
-
- if (en) {
- vortex_adb_addroutes(vortex, channel, route, 2);
- if ((source < (OFFSET_SRCOUT+NR_SRC)) && (source >= (OFFSET_SRCOUT)))
- vortex_src_addWTD(vortex, (source - OFFSET_SRCOUT), channel);
- else if ((source < (OFFSET_MIXOUT+NR_MIXOUT)) && (source >= (OFFSET_MIXOUT)))
- vortex_mixer_addWTD(vortex, (source - OFFSET_MIXOUT), channel);
- } else {
- vortex_adb_delroutes(vortex, channel, route[0], route[1]);
- if ((source < (OFFSET_SRCOUT+NR_SRC)) && (source >= (OFFSET_SRCOUT)))
- vortex_src_delWTD(vortex, (source - OFFSET_SRCOUT), channel);
- else if ((source < (OFFSET_MIXOUT+NR_MIXOUT)) && (source >= (OFFSET_MIXOUT)))
- vortex_mixer_delWTD(vortex, (source - OFFSET_MIXOUT), channel);
- }
-}
-
-/* Route two sources to same target. Sources must be of same class !!! */
-void vortex_routeLRT(vortex_t *vortex, int en, unsigned char ch, unsigned char source0,
- unsigned char source1, unsigned char dest) {
- ADBRamLink route[2];
-
- route[0] = ((source0 & ADB_MASK) << ADB_SHIFT) | (dest & ADB_MASK);
- route[1] = ((source1 & ADB_MASK) << ADB_SHIFT) | (dest & ADB_MASK);
-
- if (dest < 0x10)
- route[1] = (route[1] & ~ADB_MASK) | (dest + 0x20);
-
- if (en) {
- vortex_adb_addroutes(vortex, ch, route, 2);
- if ((source0 < (OFFSET_SRCOUT+NR_SRC)) && (source0 >= OFFSET_SRCOUT)) {
- vortex_src_addWTD(vortex, (source0 - OFFSET_SRCOUT), ch);
- vortex_src_addWTD(vortex, (source1 - OFFSET_SRCOUT), ch);
- }
- else if ((source0 < (OFFSET_MIXOUT+NR_MIXOUT)) && (source0 >= OFFSET_MIXOUT)) {
- vortex_mixer_addWTD(vortex, (source0 - OFFSET_MIXOUT), ch);
- vortex_mixer_addWTD(vortex, (source1 - OFFSET_MIXOUT), ch);
- }
- } else {
- vortex_adb_delroutes(vortex, ch, route[0], route[1]);
- if ((source0 < (OFFSET_SRCOUT+NR_SRC)) && (source0 >= OFFSET_SRCOUT)) {
- vortex_src_delWTD(vortex, (source0 - OFFSET_SRCOUT), ch);
- vortex_src_delWTD(vortex, (source1 - OFFSET_SRCOUT), ch);
- }
- else if ((source0 < (OFFSET_MIXOUT+NR_MIXOUT)) && (source0 >= OFFSET_MIXOUT)) {
- vortex_mixer_delWTD(vortex, (source0 - OFFSET_MIXOUT), ch);
- vortex_mixer_delWTD(vortex, (source1 - OFFSET_MIXOUT), ch);
- }
- }
-}
-
-/* Connection stuff */
-
-// Connect adbdma to src('s).
-void vortex_connection_adbdma_src(vortex_t *vortex, int en, unsigned char ch,
- unsigned char adbdma, unsigned char src) {
- vortex_route(vortex, en, ch, ADB_DMA(adbdma), ADB_SRCIN(src));
-}
-
-void vortex_connection_adbdma_src_src(vortex_t *vortex, int en, unsigned char channel,
- unsigned char adbdma, unsigned char src0, unsigned char src1) {
- vortex_routes(vortex, en, channel, ADB_DMA(adbdma), ADB_SRCIN(src0), ADB_SRCIN(src1));
-}
-
-// Connect SRC to mixin.
-void vortex_connection_src_mixin(vortex_t *vortex, int en, unsigned char channel,
- unsigned char src, unsigned char mixin) {
- vortex_route(vortex, en, channel, ADB_SRCOUT(src), ADB_MIXIN(mixin));
-}
-
-// Connect mixin with mix output.
-void vortex_connection_mixin_mix(vortex_t *vortex, int en, unsigned char mixin, unsigned char mix, int a) {
- if (en) {
- vortex_mix_enableinput(vortex, mix, mixin);
- vortex_mix_setinputvolumebyte(vortex, mix, mixin, MIX_DEFIGAIN); // added to original code.
- } else
- vortex_mix_disableinput(vortex, mix, mixin, a);
-}
-
-// Connect absolut address to mixin.
-void vortex_connection_adb_mixin(vortex_t *vortex, int en, unsigned char channel,
- unsigned char source, unsigned char mixin) {
- vortex_route(vortex, en, channel, source, ADB_MIXIN(mixin));
-}
-
-// Connect two mix to AdbDma.
-void vortex_connection_mix_mix_adbdma(vortex_t *vortex, int en, unsigned char ch,
- unsigned char mix0, unsigned char mix1, unsigned char adbdma) {
-
- ADBRamLink routes[2];
- routes[0] = (((mix0 + OFFSET_MIXOUT) & ADB_MASK) << ADB_SHIFT) | (adbdma & ADB_MASK);
- routes[1] = (((mix1 + OFFSET_MIXOUT) & ADB_MASK) << ADB_SHIFT) | ((adbdma + 0x20 /*OFFSET_MIXOUT*/) & ADB_MASK);
- if (en) {
- vortex_adb_addroutes(vortex, ch, routes, 0x2);
- vortex_mixer_addWTD(vortex, mix0, ch);
- vortex_mixer_addWTD(vortex, mix1, ch);
- }
- else {
- vortex_adb_delroutes(vortex, ch, routes[0], routes[1]);
- vortex_mixer_delWTD(vortex, mix0, ch);
- vortex_mixer_delWTD(vortex, mix1, ch);
- }
-}
-
-void vortex_connection_src_adbdma(vortex_t *vortex, int en, unsigned char ch,
- unsigned char src, unsigned char adbdma) {
- vortex_route(vortex, en, ch, ADB_SRCOUT(src), ADB_DMA(adbdma));
-}
-
-void vortex_connection_src_src_adbdma(vortex_t *vortex, int en, unsigned char ch,
- unsigned char src0, unsigned char src1, unsigned char adbdma) {
-
- vortex_routeLRT(vortex, en, ch, ADB_SRCOUT(src0), ADB_SRCOUT(src1), ADB_DMA(adbdma));
-}
-
-// mix to absolut address.
-void vortex_connection_mix_adb(vortex_t *vortex, int en, unsigned char ch,
- unsigned char mix, unsigned char dest) {
- vortex_route(vortex, en, ch, ADB_MIXOUT(mix), dest);
- vortex_mix_setvolumebyte(vortex, mix, MIX_DEFOGAIN); // added to original code.
-}
-
-// mixer to src.
-void vortex_connection_mix_src(vortex_t *vortex, int en, unsigned char ch,
- unsigned char mix, unsigned char src) {
- vortex_route(vortex, en, ch, ADB_MIXOUT(mix), ADB_SRCIN(src));
- vortex_mix_setvolumebyte(vortex, mix, MIX_DEFOGAIN); // added to original code.
-}
-
-/* CODEC connect. */
-void vortex_connect_codecplay(vortex_t *vortex, int en, unsigned char mixers[]) {
-#ifdef CHIP_AU8820
- vortex_connection_mix_adb(vortex, en, 0x11, mixers[0], ADB_CODECOUT(0));
- vortex_connection_mix_adb(vortex, en, 0x11, mixers[1], ADB_CODECOUT(1));
-#else
-#if 1
- // Connect front channels through EQ.
- vortex_connection_mix_adb(vortex, en, 0x11, mixers[0], ADB_EQIN(0));
- vortex_connection_mix_adb(vortex, en, 0x11, mixers[1], ADB_EQIN(1));
- vortex_route(vortex, en, 0x11, ADB_EQOUT(0), ADB_CODECOUT(0));
- vortex_route(vortex, en, 0x11, ADB_EQOUT(1), ADB_CODECOUT(1));
- /* Check if reg 0x28 has SDAC bit set. */
- if (VORTEX_IS_QUAD(vortex)) {
- /* Rear channel. Note: ADB_CODECOUT(0+2) and (1+2) is for AC97 modem */
- vortex_connection_mix_adb(vortex, en, 0x11, mixers[2], ADB_CODECOUT(0+4));
- vortex_connection_mix_adb(vortex, en, 0x11, mixers[3], ADB_CODECOUT(1+4));
- printk("SDAC detected ");
- }
-#else
- // Use plain direct output to codec.
- vortex_connection_mix_adb(vortex, en, 0x11, mixers[0], ADB_CODECOUT(0));
- vortex_connection_mix_adb(vortex, en, 0x11, mixers[1], ADB_CODECOUT(1));
-#endif
-#endif
-}
-
-void vortex_connect_codecrec(vortex_t *vortex, int en, unsigned char mixin0, unsigned char mixin1) {
- /*
- Enable: 0x1, 0x1
- Channel: 0x11, 0x11
- ADB Source address: 0x48, 0x49
- Destination Asp4Topology_0x9c,0x98
- */
- vortex_connection_adb_mixin(vortex, en, 0x11, ADB_CODECIN(0), mixin0);
- vortex_connection_adb_mixin(vortex, en, 0x11, ADB_CODECIN(1), mixin1);
-}
-
-// Higher level audio path (de)allocator.
-
-/* Resource manager */
-static int resnum[VORTEX_RESOURCE_LAST] = {NR_ADB, NR_SRC, NR_MIXIN, NR_MIXOUT, NR_A3D};
-/*
- Checkout/Checkin resource of given type.
- stream: resource map to be used. If NULL means that we want to allocate
- the DMA resource (root of all other resources).
- out: Mean checkout if != 0. Else mean Checkin resource.
- restype: Indicates type of resource to be checked in or out.
-*/
-int vortex_adb_checkinout(vortex_t *vortex, int resmap[], int out, int restype) {
- int i, qty = resnum[restype], resinuse=0;
-
- if (out) {
- /* Gather used resources by all streams. */
- for (i=0; i<NR_ADB; i++) {
- resinuse |= vortex->dma_adb[i].resources[restype];
- }
- resinuse |= vortex->fixed_res[restype];
- /* Find and take free resource. */
- for (i=0; i<qty; i++) {
- if ((resinuse & (1 << i)) == 0) {
- if (resmap != NULL)
- resmap[restype] |= (1 << i);
- else
- vortex->dma_adb[i].resources[restype] |= (1 << i);
- //printk("vortex: ResManager: type %d out %d\n", restype, i);
- return i;
- }
- }
- } else {
- if (resmap == NULL)
- return -EINVAL;
- /* Checkin first resource of type restype. */
- for (i=0; i<qty; i++) {
- if (resmap[restype] & (1 << i)) {
- resmap[restype] &= ~(1 << i);
- //printk("vortex: ResManager: type %d in %d\n",restype, i);
- return i;
- }
- }
- if (vortex->fixed_res[restype] & (1 << i)) {
- vortex->fixed_res[restype] &= ~(1 << i);
- //printk("vortex: ResManager (fixed rsc): type %d in %d\n",restype, i);
- return i;
- }
- }
- printk("vortex: ResManager: type %d FATAL\n", restype);
- return -ENOMEM;
-}
-
-/* Default Connections */
-void vortex_connect_default(vortex_t *vortex, int en) {
-
- // FIXME: check if checkout was succesful.
- // Connect AC97 codec.
- vortex->mixplayb[0] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXOUT);
- vortex->mixplayb[1] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXOUT);
- if (VORTEX_IS_QUAD(vortex)) {
- vortex->mixplayb[2] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXOUT);
- vortex->mixplayb[3] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXOUT);
- }
- vortex_connect_codecplay(vortex, en, vortex->mixplayb);
-
- vortex->mixcapt[0] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXIN);
- vortex->mixcapt[1] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXIN);
- vortex_connect_codecrec(vortex, en, MIX_CAPT(0), MIX_CAPT(1));
-
- // Connect SPDIF
- vortex->mixspdif[0] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXOUT);
- vortex->mixspdif[1] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXOUT);
- vortex_connection_mix_adb(vortex, en, 0x14, vortex->mixspdif[0], ADB_SPDIFOUT(0));
- vortex_connection_mix_adb(vortex, en, 0x14, vortex->mixspdif[1], ADB_SPDIFOUT(1));
-
- // Connect I2S
-
- // Connect DSP interface (not here i think...)
-
- // Connect MODEM
-
-#ifndef CHIP_AU8810
- //vortex_wt_connect(vortex, en, vortex->mixplayb);
-#endif
- /* Fast Play Workaround */
-#ifndef CHIP_AU8820
- vortex->fixed_res[VORTEX_RESOURCE_DMA] = 0x00000001;
-#endif
-}
-
-/*
- Allocate nr_ch pcm audio routes if dma < 0. If dma >= 0, existing routes
- are deallocated.
- dma: DMA engine routes to be deallocated when dma >= 0.
- nr_ch: Number of channels to be de/allocated.
- dir: direction of stream. Uses same values as substream->stream.
- type: Type of audio output/source (codec, spdif, i2s, dsp, etc)
- Return: Return allocated DMA or same DMA passed as "dma" when dma >= 0.
-*/
-int vortex_adb_allocroute(vortex_t *vortex, int dma, int nr_ch, int dir, int type) {
- stream_t *stream;
- int i, en;
-
- if ((nr_ch == 3) || ((dir == SNDRV_PCM_STREAM_CAPTURE)&&(nr_ch > 2)))
- return -EBUSY;
-
- spin_lock(&vortex->lock);
- if (dma >= 0) {
- en = 0;
- vortex_adb_checkinout(vortex, vortex->dma_adb[dma].resources, en, VORTEX_RESOURCE_DMA);
- } else {
- en = 1;
- if ((dma = vortex_adb_checkinout(vortex, NULL, en, VORTEX_RESOURCE_DMA)) < 0)
- return -EBUSY;
- }
-
- stream = &vortex->dma_adb[dma];
- stream->dma = dma;
- stream->dir = dir;
- stream->type = type;
-
- // FIXME: check for success of checkout or checkin.
- if (dir == SNDRV_PCM_STREAM_PLAYBACK) {
- int src[4], mix[4], a3d=0, ch_top;
-
- /* Get SRC and MIXER hardware resources. */
- if (stream->type != VORTEX_PCM_SPDIF) {
- for (i=0; i<nr_ch; i++) {
- if ((src[i] = vortex_adb_checkinout(vortex, stream->resources, en, VORTEX_RESOURCE_SRC))<0) {
- memset(stream->resources, 0, sizeof(unsigned char)*VORTEX_RESOURCE_LAST);
- return -EBUSY;
- }
- if ((mix[i] = vortex_adb_checkinout(vortex, stream->resources, en, VORTEX_RESOURCE_MIXIN))<0) {
- memset(stream->resources, 0, sizeof(unsigned char)*VORTEX_RESOURCE_LAST);
- return -EBUSY;
- }
- }
- }
- if (stream->type == VORTEX_PCM_A3D) {
- if ((a3d = vortex_adb_checkinout(vortex, stream->resources, en, VORTEX_RESOURCE_A3D))<0) {
- memset(stream->resources, 0, sizeof(unsigned char)*VORTEX_RESOURCE_LAST);
- return -EBUSY;
- }
- }
- /* Make SPDIF out exclusive to "spdif" device when in use. */
- if ((stream->type == VORTEX_PCM_SPDIF)&&(en)) {
- vortex_route(vortex, 0, 0x14, ADB_MIXOUT(vortex->mixspdif[0]), ADB_SPDIFOUT(0));
- vortex_route(vortex, 0, 0x14, ADB_MIXOUT(vortex->mixspdif[1]), ADB_SPDIFOUT(1));
- }
- /* Make playback routes. */
- for (i=0; i<nr_ch; i++) {
- if (stream->type == VORTEX_PCM_ADB) {
- vortex_connection_adbdma_src(vortex, en, src[nr_ch-1], dma, src[i]);
- vortex_connection_src_mixin(vortex, en, 0x11, src[i], mix[i]);
- vortex_connection_mixin_mix(vortex, en, mix[i], MIX_PLAYB(i), 0);
- vortex_connection_mixin_mix(vortex, en, mix[i], MIX_SPDIF(i % 2), 0);
- vortex_mix_setinputvolumebyte(vortex, MIX_SPDIF(i % 2), mix[i], MIX_DEFIGAIN);
- }
- if (stream->type == VORTEX_PCM_A3D) {
- vortex_connection_adbdma_src(vortex, en, src[nr_ch-1], dma, src[i]);
- vortex_route(vortex, en, 0x11, ADB_SRCOUT(src[i]), ADB_A3DIN(a3d));
- vortex_route(vortex, en, 0x11, ADB_A3DOUT(a3d), ADB_MIXIN(mix[i]));
- vortex_connection_mixin_mix(vortex, en, mix[i], MIX_PLAYB(i), 0);
- vortex_connection_mixin_mix(vortex, en, mix[i], MIX_SPDIF(i % 2), 0);
- vortex_mix_setinputvolumebyte(vortex, MIX_SPDIF(i % 2), mix[i], MIX_DEFIGAIN);
- }
- if (stream->type == VORTEX_PCM_SPDIF)
- vortex_route(vortex, en, 0x14, ADB_DMA(stream->dma), ADB_SPDIFOUT(i));
- }
- if (stream->type != VORTEX_PCM_SPDIF) {
- ch_top = (VORTEX_IS_QUAD(vortex) ? 4 : 2);
- for (i=nr_ch; i<ch_top; i++) {
- vortex_connection_mixin_mix(vortex, en, mix[i % nr_ch], MIX_PLAYB(i), 0);
- vortex_connection_mixin_mix(vortex, en, mix[i % nr_ch], MIX_SPDIF(i % 2), 0);
- vortex_mix_setinputvolumebyte(vortex, MIX_SPDIF(i % 2), mix[i % nr_ch], MIX_DEFIGAIN);
- }
- } else {
- if (nr_ch == 1)
- vortex_route(vortex, en, 0x14, ADB_DMA(stream->dma), ADB_SPDIFOUT(1));
- }
- /* Reconnect SPDIF out when "spdif" device is down. */
- if ((stream->type == VORTEX_PCM_SPDIF)&&(!en)) {
- vortex_route(vortex, 1, 0x14, ADB_MIXOUT(vortex->mixspdif[0]), ADB_SPDIFOUT(0));
- vortex_route(vortex, 1, 0x14, ADB_MIXOUT(vortex->mixspdif[1]), ADB_SPDIFOUT(1));
- }
- } else {
- int src[2], mix[2];
-
- /* Get SRC and MIXER hardware resources. */
- for (i=0; i<nr_ch; i++) {
- if ((mix[i] = vortex_adb_checkinout(vortex, stream->resources, en, VORTEX_RESOURCE_MIXOUT))<0) {
- memset(stream->resources, 0, sizeof(unsigned char)*VORTEX_RESOURCE_LAST);
- return -EBUSY;
- }
- if ((src[i] = vortex_adb_checkinout(vortex, stream->resources, en, VORTEX_RESOURCE_SRC))<0) {
- memset(stream->resources, 0, sizeof(unsigned char)*VORTEX_RESOURCE_LAST);
- return -EBUSY;
- }
- }
-
- /* Make capture routes. */
- vortex_connection_mixin_mix(vortex, en, MIX_CAPT(0), mix[0], 0);
- vortex_connection_mix_src(vortex, en, 0x11, mix[0], src[0]);
- if (nr_ch == 1) {
- vortex_connection_mixin_mix(vortex, en, MIX_CAPT(1), mix[0], 0);
- vortex_connection_src_adbdma(vortex, en, src[nr_ch-1], src[0], dma);
- } else {
- vortex_connection_mixin_mix(vortex, en, MIX_CAPT(1), mix[1], 0);
- vortex_connection_mix_src(vortex, en, 0x11, mix[1], src[1]);
- vortex_connection_src_src_adbdma(vortex, en, src[0], src[0], src[1], dma);
- }
- }
- vortex->dma_adb[dma].nr_ch = nr_ch;
- spin_unlock(&vortex->lock);
-
-#if 0
- /* AC97 Codec channel setup. FIXME: this has no effect !! */
- if (nr_ch < 4) {
- /* Copy stereo to rear channel (surround) */
- snd_ac97_write_cache(vortex->codec, AC97_SIGMATEL_DAC2INVERT, snd_ac97_read(vortex->codec, AC97_SIGMATEL_DAC2INVERT) | 4);
- } else {
- /* Allow separate front a rear channels. */
- snd_ac97_write_cache(vortex->codec, AC97_SIGMATEL_DAC2INVERT, snd_ac97_read(vortex->codec, AC97_SIGMATEL_DAC2INVERT) & ~((u32)4));
- }
-#endif
- return dma;
-}
-/*
- Set the SampleRate of the SRC's attached to the given DMA engine.
- */
-void vortex_adb_setsrc(vortex_t *vortex, int adbdma, unsigned int rate, int dir) {
- stream_t *stream = &(vortex->dma_adb[adbdma]);
- int i, cvrt;
-
- /* dir=1:play ; dir=0:rec */
- if (dir)
- cvrt = SRC_RATIO(rate,48000);
- else
- cvrt = SRC_RATIO(48000,rate);
-
- /* Setup SRC's */
- for (i=0; i<NR_SRC; i++) {
- if (stream->resources[VORTEX_RESOURCE_SRC] & (1<<i))
- vortex_src_setupchannel(vortex, i, cvrt, 0, 0, i, dir, 0, cvrt, dir);
- }
-}
-
-// Timer and ISR functions.
-
-void vortex_settimer(vortex_t *vortex, int period) {
- //set the timer period to <period> 48000ths of a second.
- hwwrite(vortex->mmio, VORTEX_IRQ_STAT, period);
-}
-
-void vortex_enable_timer_int(vortex_t *card){
- hwwrite(card->mmio, VORTEX_IRQ_CTRL, hwread(card->mmio, VORTEX_IRQ_CTRL) | IRQ_TIMER | 0x60);
-}
-
-void vortex_disable_timer_int(vortex_t *card){
- hwwrite(card->mmio, VORTEX_IRQ_CTRL, hwread(card->mmio, VORTEX_IRQ_CTRL) & ~IRQ_TIMER);
-}
-
-void vortex_enable_int(vortex_t *card){
- // CAsp4ISR__EnableVortexInt_void_
- hwwrite(card->mmio, VORTEX_CTRL, hwread(card->mmio, VORTEX_CTRL) | CTRL_IRQ_ENABLE);
- hwwrite(card->mmio, VORTEX_IRQ_CTRL, (hwread(card->mmio, VORTEX_IRQ_CTRL) & 0xffffefc0) | 0x24);
-}
-
-void vortex_disable_int(vortex_t *card){
- hwwrite(card->mmio, VORTEX_CTRL, hwread(card->mmio, VORTEX_CTRL) & ~CTRL_IRQ_ENABLE);
-}
-
-irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs) {
- vortex_t *vortex = snd_magic_cast(vortex_t, dev_id, return IRQ_NONE);
- int i, handled;
- u32 source;
- //check if the interrupt is ours.
- if (!(hwread(vortex->mmio, VORTEX_IRQ_U0) & 0x1))
- return IRQ_NONE;
-
- // This is the Interrrupt Enable flag we set before (consistency check).
- if ((hwread(vortex->mmio, VORTEX_CTRL) & 0x0000ff00) == CTRL_IRQ_ENABLE)
- return IRQ_HANDLED;
-
- source = hwread(vortex->mmio, VORTEX_IRQ_SOURCE);
- // Reset IRQ flags.
- hwwrite(vortex->mmio, VORTEX_IRQ_SOURCE, source);
- hwread(vortex->mmio, VORTEX_IRQ_SOURCE);
- // Is at least one IRQ flag set?
- if (source == 0) {
- printk(KERN_ERR "vortex: missing irq source\n");
- return IRQ_NONE;
- }
-
- //printk(KERN_INFO "IRQ: 0x%x\n", source);
-
- handled = 0;
- // Attend every interrupt source.
- if (source & IRQ_FATAL) {
- printk(KERN_ERR "vortex: IRQ fatal error\n");
- handled = 1;
- }
- if (source & IRQ_PARITY) {
- printk(KERN_ERR "vortex: IRQ parity error\n");
- handled = 1;
- }
- if (source & IRQ_PCMOUT) {
- /* ALSA period acknowledge. */
- for (i=0; i<NR_ADB; i++) {
- if (vortex->dma_adb[i].fifo_status == FIFO_START) {
- vortex_adbdma_bufshift(vortex, i);
- snd_pcm_period_elapsed(vortex->dma_adb[i].substream);
- }
- }
-#ifndef CHIP_AU8810
- for (i=0; i<NR_WT; i++) {
- if (vortex->dma_wt[i].fifo_status == FIFO_START) {
- vortex_wtdma_bufshift(vortex, i);
- snd_pcm_period_elapsed(vortex->dma_wt[i].substream);
- }
- }
-#endif
- handled = 1;
- }
- //Acknowledge the Timer interrupt
- if (source & IRQ_TIMER) {
- hwread(vortex->mmio, VORTEX_IRQ_STAT);
- handled = 1;
- }
- if (source & IRQ_MIDI) {
- snd_mpu401_uart_interrupt(vortex->irq, vortex->rmidi->private_data, regs);
- handled = 1;
- }
-
- if (!handled) {
- printk(KERN_ERR "vortex: unknown irq source %x\n", source);
- }
- return IRQ_RETVAL(handled);
-}
-
-/* Codec */
-
-#define POLL_COUNT 1000
-void vortex_codec_init(vortex_t *vortex) {
- int i;
-
- for(i =0; i<32; i++){
- hwwrite(vortex->mmio,(VORTEX_CODEC_CHN+(i<<2)),0);
- udelay(2000);
- }
- if (0) {
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0x8068);
- udelay(1000);
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0x00e8);
- udelay(1000);
- } else {
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0x00a8);
- udelay(2000);
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0x80a8);
- udelay(2000);
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0x80e8);
- udelay(2000);
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0x80a8);
- udelay(2000);
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0x00a8);
- udelay(2000);
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0x00e8);
- }
- for(i =0; i<32; i++){
- hwwrite(vortex->mmio,(VORTEX_CODEC_CHN+(i<<2)),0);
- udelay(5000);
- }
- hwwrite(vortex->mmio,VORTEX_CODEC_CTRL,0xe8);
- udelay(1000);
- /* Enable codec channels 0 and 1. */
- hwwrite(vortex->mmio,VORTEX_CODEC_EN, hwread(vortex->mmio,VORTEX_CODEC_EN) | EN_CODEC);
-}
-
-void vortex_codec_write(ac97_t *codec, unsigned short addr, unsigned short data){
-
- vortex_t *card = (vortex_t*)codec->private_data;
- unsigned long flags;
- unsigned int lifeboat = 0;
- spin_lock_irqsave(&card->lock, flags);
-
- /* wait for transactions to clear */
- while (!(hwread(card->mmio, VORTEX_CODEC_CTRL) & 0x100)) {
- udelay(100);
- if (lifeboat++ > POLL_COUNT) {
- printk(KERN_ERR "vortex: ac97 codec stuck busy\n");
- spin_unlock_irqrestore(&card->lock, flags);
- return;
- }
- }
- /* write register */
- hwwrite(card->mmio, VORTEX_CODEC_IO, ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK) |
- ((data << VORTEX_CODEC_DATSHIFT) & VORTEX_CODEC_DATMASK) | VORTEX_CODEC_WRITE);
-
- /* Flush Caches.*/
- hwread(card->mmio, VORTEX_CODEC_IO);
-
- spin_unlock_irqrestore(&card->lock, flags);
-}
-
-unsigned short vortex_codec_read(ac97_t *codec, unsigned short addr) {
-
- vortex_t *card = (vortex_t*)codec->private_data;
- u32 read_addr, data;
- unsigned long flags;
- unsigned lifeboat = 0;
-
- spin_lock_irqsave(&card->lock, flags);
-
- /* wait for transactions to clear */
- while (!(hwread(card->mmio, VORTEX_CODEC_CTRL) & 0x100)) {
- udelay(100);
- if (lifeboat++ > POLL_COUNT) {
- printk(KERN_ERR "vortex: ac97 codec stuck busy\n");
- spin_unlock_irqrestore(&card->lock, flags);
- return 0xffff;
- }
- }
- /* set up read address */
- read_addr = ((addr << VORTEX_CODEC_ADDSHIFT) & VORTEX_CODEC_ADDMASK);
- hwwrite(card->mmio, VORTEX_CODEC_IO, read_addr);
-
- /* wait for address */
- {
- udelay(100);
- data = hwread(card->mmio, VORTEX_CODEC_IO);
- if (lifeboat++ > POLL_COUNT) {
- printk(KERN_ERR "vortex: ac97 address never arrived\n");
- spin_unlock_irqrestore(&card->lock, flags);
- return 0xffff;
- }
- } while ((data & VORTEX_CODEC_ADDMASK) != (addr << VORTEX_CODEC_ADDSHIFT));
-
- /* Unlock. */
- spin_unlock_irqrestore(&card->lock, flags);
-
- /* return data. */
- return (u16)(data & VORTEX_CODEC_DATMASK);
-}
-
-/* SPDIF support */
-void vortex_spdif_init(vortex_t *vortex, int spdif_sr, int spdif_mode) {
- int i, this_38 = 0, this_04=0, this_08=0, this_0c=0;
-
- /* CAsp4Spdif::InitializeSpdifHardware(void) */
- hwwrite(vortex->mmio, VORTEX_SPDIF_FLAGS, hwread(vortex->mmio, VORTEX_SPDIF_FLAGS) & 0xfff3fffd);
- //for (i=0x291D4; i<0x29200; i+=4)
- for (i=0; i<11; i++)
- hwwrite(vortex->mmio, VORTEX_SPDIF_CFG1 + (i<<2), 0);
- //hwwrite(vortex->mmio, 0x29190, hwread(vortex->mmio, 0x29190) | 0xc0000);
- hwwrite(vortex->mmio, VORTEX_CODEC_EN, hwread(vortex->mmio, VORTEX_CODEC_EN) | EN_SPDIF);
-
- /* CAsp4Spdif::ProgramSRCInHardware(enum SPDIF_SR,enum SPDIFMODE) */
- if (this_04 && this_08) {
- int edi;
-
- i = (((0x5DC00000 / spdif_sr) + 1) >> 1);
- if (i > 0x800) {
- if (i < 0x1ffff)
- edi = (i >> 1);
- else
- edi = 0x1ffff;
- } else {
- i = edi = 0x800;
- }
- /* this_04 and this_08 are the CASp4Src's (samplerate converters) */
- vortex_src_setupchannel(vortex, this_04, edi, 0, 1, this_0c, 1, 0, edi, 1);
- vortex_src_setupchannel(vortex, this_08, edi, 0, 1, this_0c, 1, 0, edi, 1);
- }
-
- i = spdif_sr;
- spdif_sr |= 0x8c;
- switch (i) {
- case 32000:
- this_38 &= 0xFFFFFFFE;
- this_38 &= 0xFFFFFFFD;
- this_38 &= 0xF3FFFFFF;
- this_38 |= 0x03000000;
- this_38 &= 0xFFFFFF3F;
- spdif_sr &= 0xFFFFFFFD;
- spdif_sr |= 1;
- break;
- case 44100:
- this_38 &= 0xFFFFFFFE;
- this_38 &= 0xFFFFFFFD;
- this_38 &= 0xF0FFFFFF;
- this_38 |= 0x03000000;
- this_38 &= 0xFFFFFF3F;
- spdif_sr &= 0xFFFFFFFC;
- break;
- case 48000:
- if (spdif_mode == 1) {
- this_38 &= 0xFFFFFFFE;
- this_38 &= 0xFFFFFFFD;
- this_38 &= 0xF2FFFFFF;
- this_38 |= 0x02000000;
- this_38 &= 0xFFFFFF3F;
- } else {
- this_38 |= 0x00000003;
- this_38 &= 0xFFFFFFBF;
- this_38 |= 0x80;
- }
- spdif_sr |= 2;
- spdif_sr &= 0xFFFFFFFE;
- break;
-
- }
- hwwrite(vortex->mmio, VORTEX_SPDIF_CFG0, this_38 & 0xffff);
- hwwrite(vortex->mmio, VORTEX_SPDIF_CFG1, this_38 >> 0x10);
- hwwrite(vortex->mmio, VORTEX_SPDIF_SMPRATE, spdif_sr);
-}
-
-/* Initialization */
-
-int vortex_core_init(vortex_t *vortex) {
-
- printk(KERN_INFO "Vortex: hardware init.... ");
- /* Hardware Init. */
- hwwrite(vortex->mmio, VORTEX_CTRL, 0xffffffff);
- udelay(5000);
- hwwrite(vortex->mmio, VORTEX_CTRL, hwread(vortex->mmio, VORTEX_CTRL) & 0xffdfffff);
- udelay(5000);
- /* Reset IRQ flags */
- hwwrite(vortex->mmio, VORTEX_IRQ_SOURCE, 0xffffffff);
- hwread(vortex->mmio, VORTEX_IRQ_STAT);
-
- vortex_codec_init(vortex);
-
-#ifdef CHIP_AU8830
- hwwrite(vortex->mmio, VORTEX_CTRL, hwread(vortex->mmio, VORTEX_CTRL) | 0x1000000);
-#endif
-
- /* Audio engine init. */
- vortex_fifo_init(vortex);
- hwwrite(vortex->mmio, VORTEX_ENGINE_CTRL, 0x0); //, 0xc83c7e58, 0xc5f93e58
- vortex_adb_init(vortex);
- /* Routing blocks init. */
- vortex_adbdma_init(vortex);
- vortex_mixer_init(vortex);
- vortex_srcblock_init(vortex);
-#ifndef CHIP_AU8820
- vortex_eq_init(vortex);
- vortex_spdif_init(vortex, 48000, 1);
-#endif
-#ifndef CHIP_AU8810
- vortex_wt_InitializeWTRegs(vortex);
-#endif
- // Moved to au88x0.c
- //vortex_connect_default(vortex, 1);
-
- vortex_settimer(vortex, 0x90);
- // Enable Interrupts.
- // vortex_enable_int() must be first !!
- // hwwrite(vortex->mmio, VORTEX_IRQ_CTRL, 0);
- // vortex_enable_int(vortex);
- //vortex_enable_timer_int(vortex);
- //vortex_disable_timer_int(vortex);
-
- printk(KERN_INFO "done.\n");
-
- return 0;
-}
-
-int vortex_core_shutdown(vortex_t *vortex) {
-
- printk(KERN_INFO "Vortex: hardware shutdown...");
-#ifndef CHIP_AU8820
- vortex_eq_free(vortex);
-#endif
- vortex_disable_timer_int(vortex);
- vortex_disable_int(vortex);
- vortex_connect_default(vortex, 0);
- /* Reset all DMA fifos. */
- vortex_fifo_init(vortex);
- /* Erase all audio routes. */
- vortex_adb_init(vortex);
-
- /* Disable MPU401 */
- //hwwrite(vortex->mmio, VORTEX_IRQ_CTRL, hwread(vortex->mmio, VORTEX_IRQ_CTRL) & ~IRQ_MIDI);
- //hwwrite(vortex->mmio, VORTEX_CTRL, hwread(vortex->mmio, VORTEX_CTRL) & ~CTRL_MIDI_EN);
-
- hwwrite(vortex->mmio, VORTEX_IRQ_CTRL, 0);
- hwwrite(vortex->mmio, VORTEX_CTRL, 0);
- udelay(5000);
- hwwrite(vortex->mmio, VORTEX_IRQ_SOURCE, 0xffff);
-
- printk(KERN_INFO "done.\n");
- return 0;
-}
-
-/* Alsa support. */
-
-int vortex_alsafmt_aspfmt(int alsafmt) {
- int fmt;
-
- switch (alsafmt) {
- case SNDRV_PCM_FORMAT_U8: fmt = 0x1;
- break;
- case SNDRV_PCM_FORMAT_MU_LAW: fmt = 0x2;
- break;
- case SNDRV_PCM_FORMAT_A_LAW: fmt = 0x3;
- break;
- case SNDRV_PCM_FORMAT_SPECIAL: fmt = 0x4; /* guess. */
- break;
- case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE: fmt = 0x5; /* guess. */
- break;
- case SNDRV_PCM_FORMAT_S16_LE: fmt = 0x8;
- break;
- default: fmt = 0x8;
- printk(KERN_ERR "vortex: format unsupported %d\n", alsafmt);
- break;
- }
- return fmt;
-}
-
-/* Some not yet useful translations. */
-
-typedef enum {
- ASPFMTLINEAR16 = 0, /* 0x8 */
- ASPFMTLINEAR8, /* 0x1 */
- ASPFMTULAW, /* 0x2 */
- ASPFMTALAW, /* 0x3 */
- ASPFMTSPORT, /* ? */
- ASPFMTSPDIF, /* ? */
-} ASPENCODING;
-
-int vortex_translateformat(vortex_t *vortex, char bits, char nch, int encod) {
- int a, this_194;
-
- if ((bits != 8) || (bits != 16))
- return -1;
-
- switch (encod) {
- case 0:
- if (bits == 0x10)
- a = 8; // 16 bit
- break;
- case 1:
- if (bits == 8)
- a = 1; // 8 bit
- break;
- case 2: a = 2; // U_LAW
- break;
- case 3: a = 3; // A_LAW
- break;
- }
- switch (nch) {
- case 1: this_194 = 0;
- break;
- case 2: this_194 = 1;
- break;
- case 4: this_194 = 1;
- break;
- case 6: this_194 = 1;
- break;
- }
- return(a);
-}
-
-void vortex_cdmacore_setformat(vortex_t *vortex, int bits, int nch) {
- short int d, this_148;
-
- d = ((bits >> 3)*nch);
- this_148 = 0xbb80 / d;
-}
Index: debian/alsa-driver/pci/au88x0/au88x0_eq.c
diff -u debian/alsa-driver/pci/au88x0/au88x0_eq.c:1.1.1.1 debian/alsa-driver/pci/au88x0/au88x0_eq.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0_eq.c:1.1.1.1 Mon Oct 6 08:01:04 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_eq.c Tue Apr 13 13:39:27 2004
@@ -1,833 +0,0 @@
-/***************************************************************************
- * au88x0_eq.c
- * Aureal Vortex Hardware EQ control/access.
- *
- * Sun Jun 8 18:19:19 2003
- * 2003 Manuel Jander (mjander@users.sourceforge.net)
- *
- * 02 July 2003: First time something works :)
- *
- * TODO:
- * - Debug (testing)
- * - Implement peak visualization support.
- *
- ****************************************************************************/
-#include "au88x0.h"
-#include "au88x0_eq.h"
-#include "au88x0_eqdata.c"
-
-/* CEqHw.s */
-void vortex_EqHw_SetTimeConsts(vortex_t *vortex, u16 a, u16 b) {
- hwwrite(vortex->mmio, 0x2b3c4, a);
- hwwrite(vortex->mmio, 0x2b3c8, b);
-}
-
-void vortex_EqHw_GetTimeConsts(vortex_t *vortex, u16 *a, u16 *b) {
- *a = hwread(vortex->mmio, 0x2b3c4);
- *b = hwread(vortex->mmio, 0x2b3c8);
-}
-
-void vortex_EqHw_SetLeftCoefs(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int eax, i = 0, n /*esp2c*/ = 0;
-
- if (eqhw->this04 <= n)
- return;
-
- do {
- hwwrite(vortex->mmio, 0x2b000 + n*0x30, a[i+0]);
- hwwrite(vortex->mmio, 0x2b004 + n*0x30, a[i+1]);
-
- if (eqhw->this08 == 0) {
- hwwrite(vortex->mmio, 0x2b008 + n*0x30, a[i+2]);
- hwwrite(vortex->mmio, 0x2b00c + n*0x30, a[i+3]);
- eax = a[i+4]; //esp24;
- } else {
- if (a[2+i] == 0x8000)
- eax = 0x7fff;
- else
- eax = ~a[2+i];
- hwwrite(vortex->mmio, 0x2b008 + n*0x30, eax & 0xffff);
- if (a[3+i] == 0x8000)
- eax = 0x7fff;
- else
- eax = ~a[3+i];
- hwwrite(vortex->mmio, 0x2b00c + n*0x30, eax & 0xffff);
- if (a[4+i] == 0x8000)
- eax = 0x7fff;
- else
- eax = ~a[4+i];
- }
- hwwrite(vortex->mmio, 0x2b010 + n*0x30, eax);
-
- n++;
- i += 5;
- } while(n < eqhw->this04);
-}
-
-void vortex_EqHw_GetLeftCoefs(vortex_t *vortex, u16 a[]) {
-
-
-}
-
-void vortex_EqHw_SetRightCoefs(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int i = 0, n /*esp2c*/ = 0, eax;
-
- if (eqhw->this04 <= n)
- return;
-
- do {
- hwwrite(vortex->mmio, 0x2b1e0 + n*0x30, a[0+i]);
- hwwrite(vortex->mmio, 0x2b1e4 + n*0x30, a[1+i]);
-
- if (eqhw->this08 == 0) {
- hwwrite(vortex->mmio, 0x2b1e8 + n*0x30, a[2+i]);
- hwwrite(vortex->mmio, 0x2b1ec + n*0x30, a[3+i]);
- eax = a[4+i]; //*esp24;
- } else {
- if (a[2+i] == 0x8000)
- eax = 0x7fff;
- else
- eax = ~(a[2+i]);
- hwwrite(vortex->mmio, 0x2b1e8 + n*0x30, eax & 0xffff);
- if (a[3+i] == 0x8000)
- eax = 0x7fff;
- else
- eax = ~a[3+i];
- hwwrite(vortex->mmio, 0x2b1ec + n*0x30, eax & 0xffff);
- if (a[4+i] == 0x8000)
- eax = 0x7fff;
- else
- eax = ~a[4+i];
- }
- hwwrite(vortex->mmio, 0x2b1f0 + n*0x30, eax);
- i += 5;
- n++;
- } while (n < eqhw->this04);
-
-}
-
-void vortex_EqHw_GetRightCoefs(vortex_t *vortex, u16 a[]) {
-
-
-}
-
-void vortex_EqHw_SetLeftStates(vortex_t *vortex, u16 a[], u16 b[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int i = 0, ebx = 0;
-
- hwwrite(vortex->mmio, 0x2b3fc, a[0]);
- hwwrite(vortex->mmio, 0x2b400, a[1]);
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- hwwrite(vortex->mmio, 0x2b014 + (i*0xc), b[i]);
- hwwrite(vortex->mmio, 0x2b018 + (i*0xc), b[1+i]);
- hwwrite(vortex->mmio, 0x2b01c + (i*0xc), b[2+i]);
- hwwrite(vortex->mmio, 0x2b020 + (i*0xc), b[3+i]);
- i += 4;
- ebx++;
- } while (eqhw->this04 > ebx);
-}
-
-void vortex_EqHw_GetLeftStates(vortex_t *vortex, u16 *a, u16 b[]) {
-
-
-}
-
-void vortex_EqHw_SetRightStates(vortex_t *vortex, u16 a[], u16 b[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int i = 0, ebx = 0;
-
- hwwrite(vortex->mmio, 0x2b404, a[0]);
- hwwrite(vortex->mmio, 0x2b408, a[1]);
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- hwwrite(vortex->mmio, 0x2b1f4 + (i*0xc), b[i]);
- hwwrite(vortex->mmio, 0x2b1f8 + (i*0xc), b[1+i]);
- hwwrite(vortex->mmio, 0x2b1fc + (i*0xc), b[2+i]);
- hwwrite(vortex->mmio, 0x2b200 + (i*0xc), b[3+i]);
- i += 4;
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_GetRightStates(vortex_t *vortex, u16 *a, u16 b[]) {
-
-}
-
-void vortex_EqHw_SetBypassGain(vortex_t *vortex, u16 a, u16 b) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int eax;
-
- if (eqhw->this08 == 0) {
- hwwrite(vortex->mmio, 0x2b3d4, a);
- hwwrite(vortex->mmio, 0x2b3ec, b);
- } else {
- if (a == 0x8000)
- eax = 0x7fff;
- else
- eax = ~a;
- hwwrite(vortex->mmio, 0x2b3d4, eax & 0xffff);
- if (b == 0x8000)
- eax = 0x7fff;
- else
- eax = ~b;
- hwwrite(vortex->mmio, 0x2b3ec, eax & 0xffff);
- }
-}
-
-void vortex_EqHw_SetA3DBypassGain(vortex_t *vortex, u16 a, u16 b) {
-
- hwwrite(vortex->mmio, 0x2b3e0, a);
- hwwrite(vortex->mmio, 0x2b3f8, b);
-}
-
-void vortex_EqHw_SetCurrBypassGain(vortex_t *vortex, u16 a, u16 b) {
-
- hwwrite(vortex->mmio, 0x2b3d0, a);
- hwwrite(vortex->mmio, 0x2b3e8, b);
-}
-
-void vortex_EqHw_SetCurrA3DBypassGain(vortex_t *vortex, u16 a, u16 b) {
-
- hwwrite(vortex->mmio, 0x2b3dc, a);
- hwwrite(vortex->mmio, 0x2b3f4, b);
-}
-
-void vortex_EqHw_SetLeftGainsSingleTarget(vortex_t *vortex, u16 index, u16 b) {
- hwwrite(vortex->mmio, 0x2b02c + (index*0x30), b);
-}
-
-void vortex_EqHw_SetRightGainsSingleTarget(vortex_t *vortex, u16 index, u16 b) {
- hwwrite(vortex->mmio, 0x2b20c + (index*0x30), b);
-}
-
-void vortex_EqHw_SetLeftGainsTarget(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx=0;
-
- if (eqhw->this04 < 0)
- return;
- do {
- hwwrite(vortex->mmio, 0x2b02c + ebx*0x30, a[ebx]);
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_SetRightGainsTarget(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx=0;
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- hwwrite(vortex->mmio, 0x2b20c + ebx*0x30, a[ebx]);
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_GetLeftGainsTarget(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx=0;
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- a[ebx] = hwread(vortex->mmio, 0x2b02c + ebx*0x30);
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_GetRightGainsTarget(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx=0;
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- a[ebx] = hwread(vortex->mmio, 0x2b20c + ebx*0x30);
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_SetLeftGainsCurrent(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx=0;
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- hwwrite(vortex->mmio, 0x2b028 + ebx*0x30, a[ebx]);
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_SetRightGainsCurrent(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx=0;
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- hwwrite(vortex->mmio, 0x2b208 + ebx*0x30, a[ebx]);
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_GetLeftGainsCurrent(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx=0;
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- a[ebx] = hwread(vortex->mmio, 0x2b028 + ebx*0x30);
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_GetRightGainsCurrent(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx=0;
-
- if (eqhw->this04 < 0)
- return;
-
- do {
- a[ebx] = hwread(vortex->mmio, 0x2b208 + ebx*0x30);
- ebx++;
- } while (ebx < eqhw->this04);
-}
-
-void vortex_EqHw_SetLevels(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx;
-
- if (eqhw->this04 < 0)
- return;
-
- ebx = 0;
- do {
- hwwrite(vortex->mmio, 0x2b024 + ebx*0x30, a[ebx]);
- ebx++;
- } while (ebx < eqhw->this04);
-
- hwwrite(vortex->mmio, 0x2b3cc, a[eqhw->this04]);
- hwwrite(vortex->mmio, 0x2b3d8, a[eqhw->this04+1]);
-
- ebx = 0;
- do {
- hwwrite(vortex->mmio, 0x2b204 + ebx*0x30, a[ebx + (eqhw->this04+2)]);
- ebx++;
- } while (ebx < eqhw->this04);
-
- hwwrite(vortex->mmio, 0x2b3e4, a[2+(eqhw->this04*2)]);
- hwwrite(vortex->mmio, 0x2b3f0, a[3+(eqhw->this04*2)]);
-}
-
-void vortex_EqHw_GetLevels(vortex_t *vortex, u16 a[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int ebx;
-
- if (eqhw->this04 < 0)
- return;
-
- ebx = 0;
- do {
- a[ebx] = hwread(vortex->mmio, 0x2b024 + ebx*0x30);
- ebx++;
- } while (ebx < eqhw->this04);
-
- a[eqhw->this04] = hwread(vortex->mmio, 0x2b3cc);
- a[eqhw->this04+1] = hwread(vortex->mmio, 0x2b3d8);
-
- ebx = 0;
- do {
- a[ebx+(eqhw->this04+2)] = hwread(vortex->mmio, 0x2b204 + ebx*0x30);
- ebx++;
- } while (ebx < eqhw->this04);
-
- a[2+(eqhw->this04*2)] = hwread(vortex->mmio, 0x2b3e4);
- a[3+(eqhw->this04*2)] = hwread(vortex->mmio, 0x2b3f0);
-}
-
-void vortex_EqHw_SetControlReg(vortex_t *vortex, unsigned long reg) {
- hwwrite(vortex->mmio, 0x2b440, reg);
-}
-
-void vortex_EqHw_GetControlReg(vortex_t *vortex, unsigned long *reg) {
- *reg = hwread(vortex->mmio, 0x2b440);
-}
-
-void vortex_EqHw_SetSampleRate(vortex_t *vortex, int sr) {
- hwwrite(vortex->mmio, 0x2b440, ((sr & 0x1f) << 3) | 0xb800);
-}
-
-void vortex_EqHw_GetSampleRate(vortex_t *vortex, int *sr) {
- *sr = (hwread(vortex->mmio, 0x2b440) >> 3) & 0x1f;
-}
-
-void vortex_EqHw_Enable(vortex_t *vortex) {
- hwwrite(vortex->mmio, 0x2b440, 0xf001);
-}
-
-void vortex_EqHw_Disable(vortex_t *vortex) {
- hwwrite(vortex->mmio, 0x2b440, 0xf000);
-}
-
-/* Reset (zero) buffers */
-void vortex_EqHw_ZeroIO(vortex_t *vortex) {
- int i;
- for (i=0; i<0x8; i++)
- hwwrite(vortex->mmio, 0x2b410 + (i<<2), 0x0);
- for (i=0; i<0x4; i++)
- hwwrite(vortex->mmio, 0x2b430 + (i<<2), 0x0);
-}
-
-void vortex_EqHw_ZeroA3DIO(vortex_t *vortex) {
- int i;
- for (i=0; i<0x4; i++)
- hwwrite(vortex->mmio, 0x2b410 + (i<<2), 0x0);
-}
-
-void vortex_EqHw_ZeroState(vortex_t *vortex) {
-
- vortex_EqHw_SetControlReg(vortex, 0);
- vortex_EqHw_ZeroIO(vortex);
- hwwrite(vortex->mmio, 0x2b3c0, 0);
-
- vortex_EqHw_SetTimeConsts(vortex, 0, 0);
-
- vortex_EqHw_SetLeftCoefs(vortex, asEqCoefsZeros);
- vortex_EqHw_SetRightCoefs(vortex, asEqCoefsZeros);
-
- vortex_EqHw_SetLeftGainsCurrent(vortex, eq_gains_zero);
- vortex_EqHw_SetRightGainsCurrent(vortex, eq_gains_zero);
- vortex_EqHw_SetLeftGainsTarget(vortex, eq_gains_zero);
- vortex_EqHw_SetRightGainsTarget(vortex, eq_gains_zero);
-
- vortex_EqHw_SetBypassGain(vortex, 0, 0);
- vortex_EqHw_SetA3DBypassGain(vortex, 0, 0);
- vortex_EqHw_SetLeftStates(vortex, eq_states_zero, asEqOutStateZeros);
- vortex_EqHw_SetRightStates(vortex, eq_states_zero, asEqOutStateZeros);
- vortex_EqHw_SetLevels(vortex, (u16*)eq_levels);
-}
-
-/* Program coeficients as pass through */
-void vortex_EqHw_ProgramPipe(vortex_t *vortex) {
- vortex_EqHw_SetTimeConsts(vortex, 0, 0);
-
- vortex_EqHw_SetLeftCoefs(vortex, asEqCoefsPipes);
- vortex_EqHw_SetRightCoefs(vortex, asEqCoefsPipes);
-
- vortex_EqHw_SetLeftGainsCurrent(vortex, eq_gains_current);
- vortex_EqHw_SetRightGainsCurrent(vortex, eq_gains_current);
- vortex_EqHw_SetLeftGainsTarget(vortex, eq_gains_current);
- vortex_EqHw_SetRightGainsTarget(vortex, eq_gains_current);
-}
-/* Program EQ block as 10 band Equalizer */
-void vortex_EqHw_Program10Band(vortex_t *vortex, auxxEqCoeffSet_t *coefset) {
-
- vortex_EqHw_SetTimeConsts(vortex, 0xc, 0x7fe0);
-
- vortex_EqHw_SetLeftCoefs(vortex, coefset->LeftCoefs);
- vortex_EqHw_SetRightCoefs(vortex, coefset->RightCoefs);
-
- vortex_EqHw_SetLeftGainsCurrent(vortex, coefset->LeftGains);
-
- vortex_EqHw_SetRightGainsTarget(vortex, coefset->RightGains);
- vortex_EqHw_SetLeftGainsTarget(vortex, coefset->LeftGains);
-
- vortex_EqHw_SetRightGainsCurrent(vortex, coefset->RightGains);
-}
-
-
-void vortex_EqHw_GetTenBandLevels(vortex_t *vortex, u16 peaks[]) {
- eqhw_t *eqhw = &(vortex->eq.this04);
- int i;
-
- if (eqhw->this04 > 0)
- return;
-
- for (i=0; i<eqhw->this04; i++)
- peaks[i] = hwread(vortex->mmio, 0x2B024 + i*0x30);
- for (i=0; i<eqhw->this04; i++)
- peaks[i+eqhw->this04] = hwread(vortex->mmio, 0x2B204 + i*0x30);
-}
-/* CEqlzr.s */
-
-int vortex_Eqlzr_GetLeftGain(vortex_t *vortex, u16 index, u16 *gain) {
- eqlzr_t *eq = &(vortex->eq);
-
- if (eq->this28) {
- *gain = eq->this130[index];
- return 0;
- }
- return 1;
-}
-
-void vortex_Eqlzr_SetLeftGain(vortex_t *vortex, u16 index, u16 gain) {
- eqlzr_t *eq = &(vortex->eq);
-
- if (eq->this28 == 0)
- return;
-
- eq->this130[index] = gain;
- if (eq->this54)
- return;
-
- vortex_EqHw_SetLeftGainsSingleTarget(vortex, index, gain);
-}
-
-int vortex_Eqlzr_GetRightGain(vortex_t *vortex, u16 index, u16 *gain) {
- eqlzr_t *eq = &(vortex->eq);
-
- if (eq->this28) {
- *gain = eq->this130[index + eq->this10];
- return 0;
- }
- return 1;
-}
-
-void vortex_Eqlzr_SetRightGain(vortex_t *vortex, u16 index, u16 gain) {
- eqlzr_t *eq = &(vortex->eq);
-
- if (eq->this28 == 0)
- return;
-
- eq->this130[index + eq->this10] = gain;
- if (eq->this54)
- return;
-
- vortex_EqHw_SetRightGainsSingleTarget(vortex, index, gain);
-}
-
-int vortex_Eqlzr_GetAllBands(vortex_t *vortex, u16 *gains, unsigned long *cnt) {
- eqlzr_t *eq = &(vortex->eq);
- int si=0;
-
- if (eq->this10 == 0)
- return 1;
-
- {
- if (vortex_Eqlzr_GetLeftGain(vortex, si, &gains[si]))
- return 1;
- if (vortex_Eqlzr_GetRightGain(vortex, si, &gains[si + eq->this10]))
- return 1;
- si++;
- } while (eq->this10 > si);
- *cnt = si*2;
- return 0;
-}
-
-int vortex_Eqlzr_SetAllBandsFromActiveCoeffSet(vortex_t *vortex) {
- eqlzr_t *eq = &(vortex->eq);
-
- vortex_EqHw_SetLeftGainsTarget(vortex, eq->this130);
- vortex_EqHw_SetRightGainsTarget(vortex, &(eq->this130[eq->this10]));
-
- return 0;
-}
-
-int vortex_Eqlzr_SetAllBands(vortex_t *vortex, u16 gains[], unsigned long count) {
- eqlzr_t *eq = &(vortex->eq);
- int i;
-
- if (((eq->this10)*2 != count) || (eq->this28 == 0))
- return 1;
-
- if (0 < count) {
- for (i=0; i<count; i++) {
- eq->this130[i] = gains[i];
- }
- }
- if (eq->this54)
- return 0;
- return vortex_Eqlzr_SetAllBandsFromActiveCoeffSet(vortex);
-}
-
-void vortex_Eqlzr_ProgramA3dBypassGain(vortex_t *vortex) {
- eqlzr_t *eq = &(vortex->eq);
- int eax, ebx;
-
- if (eq->this54)
- eax = eq->this0e;
- else
- eax = eq->this0a;
- ebx = (eax * eq->this58) >> 0x10;
- eax = (eax * eq->this5c) >> 0x10;
- vortex_EqHw_SetA3DBypassGain(vortex, ebx, eax);
-}
-
-void vortex_Eqlzr_SetBypass(vortex_t *vortex, long bp) {
- eqlzr_t *eq = &(vortex->eq);
-
- if ((eq->this28) && (bp == 0)) {
- vortex_Eqlzr_SetAllBandsFromActiveCoeffSet(vortex);
- vortex_EqHw_SetBypassGain(vortex, eq->this08, eq->this08);
- } else {
- vortex_EqHw_SetLeftGainsTarget(vortex, (u16*)(eq->this14));
- vortex_EqHw_SetRightGainsTarget(vortex, (u16*)(eq->this14));
- vortex_EqHw_SetBypassGain(vortex, eq->this0c, eq->this0c);
- }
- // FIXME: no yet implemented.
- vortex_Eqlzr_ProgramA3dBypassGain(vortex);
-}
-
-void vortex_Eqlzr_ReadAndSetActiveCoefSet(vortex_t *vortex) {
- eqlzr_t *eq = &(vortex->eq);
-
- /* Set EQ BiQuad filter coeficients */
- memcpy(&(eq->coefset), &asEqCoefsNormal, sizeof(auxxEqCoeffSet_t));
- /* Set EQ Band gain levels and dump into hardware registers. */
- vortex_Eqlzr_SetAllBands(vortex, eq_gains_normal, eq->this10*2);
-}
-
-#if 0
-void vortex_Eqlzr_vortex_SetA3dBypassVolume()
-void vortex_Eqlzr_ShutDownA3d()
-#endif
-
-int vortex_Eqlzr_GetAllPeaks(vortex_t *vortex, u16 *peaks, int *count) {
- eqlzr_t *eq = &(vortex->eq);
-
- if (eq->this10 == 0)
- return 1;
- *count = eq->this10 * 2;
- vortex_EqHw_GetTenBandLevels(vortex, peaks);
- return 0;
-}
-
-auxxEqCoeffSet_t *vortex_Eqlzr_GetActiveCoefSet(vortex_t *vortex) {
- eqlzr_t *eq = &(vortex->eq);
-
- return (&(eq->coefset));
-}
-
-void vortex_Eqlzr_init(vortex_t *vortex) {
- eqlzr_t *eq = &(vortex->eq);
-
- /* Object constructor */
- //eq->this04 = 0;
- eq->this08 = 0; /* Bypass gain with EQ in use. */
- eq->this0a = 0x5999;
- eq->this0c = 0x5999; /* Bypass gain with EQ disabled. */
- eq->this0e = 0x5999;
-
- eq->this10 = 0xa; /* 10 eq frequency bands. */
- eq->this04.this04 = eq->this10;
- eq->this28 = 0x1; /* if 1 => Allow read access to this130 (gains) */
- eq->this54 = 0x0; /* if 1 => Dont Allow access to hardware (gains) */
- eq->this58 = 0xffff;
- eq->this5c = 0xffff;
-
- /* Set gains. */
- memset(eq->this14, 0, 2*10);
-
- /* Actual init. */
- vortex_EqHw_ZeroState(vortex);
- vortex_EqHw_SetSampleRate(vortex, 0x11);
- vortex_Eqlzr_ReadAndSetActiveCoefSet(vortex);
-
- vortex_EqHw_Program10Band(vortex, &(eq->coefset));
- vortex_Eqlzr_SetBypass(vortex, eq->this54);
- vortex_EqHw_Enable(vortex);
-}
-
-/* ALSA interface */
-
-/* Control interface */
-static int snd_vortex_eqtoggle_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) {
- uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
- uinfo->count = 1;
- uinfo->value.integer.min = 0;
- uinfo->value.integer.max = 1;
- return 0;
-}
-
-static int snd_vortex_eqtoggle_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) {
- vortex_t *vortex = snd_kcontrol_chip(kcontrol);
- eqlzr_t *eq = &(vortex->eq);
- //int i = kcontrol->private_value;
-
- ucontrol->value.integer.value[0] = eq->this54 ? 0 : 1;
-
- return 0;
-}
-
-static int snd_vortex_eqtoggle_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) {
- vortex_t *vortex = snd_kcontrol_chip(kcontrol);
- eqlzr_t *eq = &(vortex->eq);
- //int i = kcontrol->private_value;
-
- eq->this54 = ucontrol->value.integer.value[0] ? 0 : 1;
- vortex_Eqlzr_SetBypass(vortex, eq->this54);
-
- return 1; /* Allways changes */
-}
-
-static snd_kcontrol_new_t vortex_eqtoggle_kcontrol __devinitdata = {
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
- .name = "EQ Enable",
- .index = 0,
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .private_value = 0,
- .info = snd_vortex_eqtoggle_info,
- .get = snd_vortex_eqtoggle_get,
- .put = snd_vortex_eqtoggle_put
-};
-
-static int snd_vortex_eq_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) {
- uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
- uinfo->count = 2;
- uinfo->value.integer.min = 0x0000;
- uinfo->value.integer.max = 0x7fff;
- return 0;
-}
-
-static int snd_vortex_eq_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) {
- vortex_t *vortex = snd_kcontrol_chip(kcontrol);
- int i = kcontrol->private_value;
- u16 gainL, gainR;
-
- vortex_Eqlzr_GetLeftGain(vortex, i, &gainL);
- vortex_Eqlzr_GetRightGain(vortex, i, &gainR);
- ucontrol->value.integer.value[0] = gainL;
- ucontrol->value.integer.value[1] = gainR;
- return 0;
-}
-
-static int snd_vortex_eq_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) {
- vortex_t *vortex = snd_kcontrol_chip(kcontrol);
- int changed = 0, i = kcontrol->private_value;
- u16 gainL, gainR;
-
- vortex_Eqlzr_GetLeftGain(vortex, i, &gainL);
- vortex_Eqlzr_GetRightGain(vortex, i, &gainR);
-
- if (gainL != ucontrol->value.integer.value[0]) {
- vortex_Eqlzr_SetLeftGain(vortex, i, ucontrol->value.integer.value[0]);
- changed = 1;
- }
- if (gainR != ucontrol->value.integer.value[1]) {
- vortex_Eqlzr_SetRightGain(vortex, i, ucontrol->value.integer.value[1]);
- changed = 1;
- }
- return changed;
-}
-
-static snd_kcontrol_new_t vortex_eq_kcontrol __devinitdata = {
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
- .name = " .",
- .index = 0,
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .private_value = 0,
- .info = snd_vortex_eq_info,
- .get = snd_vortex_eq_get,
- .put = snd_vortex_eq_put
-};
-
-static int snd_vortex_peaks_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) {
- uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
- uinfo->count = 20;
- uinfo->value.integer.min = 0x0000;
- uinfo->value.integer.max = 0xffff;
- return 0;
-}
-
-static int snd_vortex_peaks_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol) {
- vortex_t *vortex = snd_kcontrol_chip(kcontrol);
- int i, count;
- u16 peaks[20];
-
- vortex_Eqlzr_GetAllPeaks(vortex, peaks, &count);
- if (count != 20) {
- printk("vortex: peak count error 20 != %d \n", count);
- return -1;
- }
- for (i=0; i<20; i++)
- ucontrol->value.integer.value[i] = peaks[i];
-
- return 0;
-}
-
-static snd_kcontrol_new_t vortex_levels_kcontrol __devinitdata = {
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
- .name = "EQ Peaks",
- .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE,
- .info = snd_vortex_peaks_info,
- .get = snd_vortex_peaks_get,
-};
-
-/* EQ band gain labels. */
-static char *EqBandLabels[10] __devinitdata = {
- "EQ0 31Hz\0",
- "EQ1 63Hz\0",
- "EQ2 125Hz\0",
- "EQ3 250Hz\0",
- "EQ4 500Hz\0",
- "EQ5 1KHz\0",
- "EQ6 2KHz\0",
- "EQ7 4KHz\0",
- "EQ8 8KHz\0",
- "EQ9 16KHz\0",
-};
-
-/* ALSA driver entry points. Init and exit. */
-int vortex_eq_init(vortex_t *vortex) {
- snd_kcontrol_t *kcontrol;
- int err, i;
-
- vortex_Eqlzr_init(vortex);
-
- if ((kcontrol = snd_ctl_new1(&vortex_eqtoggle_kcontrol, vortex)) == NULL)
- return -ENOMEM;
- kcontrol->private_value = 0;
- if ((err = snd_ctl_add(vortex->card, kcontrol)) < 0)
- return err;
-
- /* EQ gain controls */
- for (i=0; i<10; i++) {
- if ((kcontrol = snd_ctl_new1(&vortex_eq_kcontrol, vortex)) == NULL)
- return -ENOMEM;
- strcpy(kcontrol->id.name, EqBandLabels[i]);
- kcontrol->private_value = i;
- if ((err = snd_ctl_add(vortex->card, kcontrol)) < 0)
- return err;
- //vortex->eqctrl[i] = kcontrol;
- }
- /* EQ band levels */
- if ((kcontrol = snd_ctl_new1(&vortex_levels_kcontrol, vortex)) == NULL)
- return -ENOMEM;
- if ((err = snd_ctl_add(vortex->card, kcontrol)) < 0)
- return err;
-
- return 0;
-}
-
-int vortex_eq_free(vortex_t *vortex) {
- /*
- //FIXME: segfault because vortex->eqctrl[i] == 4
- int i;
- for (i=0; i<10; i++) {
- if (vortex->eqctrl[i])
- snd_ctl_remove(vortex->card, vortex->eqctrl[i]);
- }
- */
- return 0;
-}
-
-/* End */
Index: debian/alsa-driver/pci/au88x0/au88x0_eq.h
diff -u debian/alsa-driver/pci/au88x0/au88x0_eq.h:1.1.1.1 debian/alsa-driver/pci/au88x0/au88x0_eq.h:removed
--- debian/alsa-driver/pci/au88x0/au88x0_eq.h:1.1.1.1 Mon Oct 6 08:01:05 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_eq.h Tue Apr 13 13:39:27 2004
@@ -1,45 +0,0 @@
-#ifndef AU88X0_EQ_H
-#define AU88X0_EQ_H
-
-/***************************************************************************
- * au88x0_eq.h
- *
- * Definitions and constant data for the Aureal Hardware EQ.
- *
- * Sun Jun 8 18:23:38 2003
- * Author: Manuel Jander (mjander@users.sourceforge.net)
- ****************************************************************************/
-
-typedef struct {
- u16 LeftCoefs[50]; //0x4
- u16 RightCoefs[50]; // 0x68
- u16 LeftGains[20]; //0xd0
- u16 RightGains[20]; //0xe4
-} auxxEqCoeffSet_t;
-
-typedef struct {
- unsigned int *this00; /*CAsp4HwIO*/
- long this04; /* How many filters for each side (default = 10) */
- long this08; /* inited to cero. Stereo flag? */
-} eqhw_t;
-
-typedef struct {
- unsigned int *this00; /*CAsp4Core*/
- eqhw_t this04; /* CHwEq */
- short this08; /* Bad codec flag ? SetBypassGain: bypass gain */
- short this0a;
- short this0c; /* SetBypassGain: bypass gain when this28 is not set. */
- short this0e;
-
- long this10; /* How many gains are used for each side (right or left). */
- u16 this14[32]; /* SetLeftGainsTarget: Left (and right?) EQ gains */
- long this24;
- long this28; /* flag related to EQ enabled or not. Gang flag ? */
- long this54; /* SetBypass */
- long this58;
- long this5c;
- /*0x60*/ auxxEqCoeffSet_t coefset; /* 50 u16 word each channel. */
- u16 this130[20]; /* Left and Right gains */
-} eqlzr_t;
-
-#endif
Index: debian/alsa-driver/pci/au88x0/au88x0_eqdata.c
diff -u debian/alsa-driver/pci/au88x0/au88x0_eqdata.c:1.1.1.1 debian/alsa-driver/pci/au88x0/au88x0_eqdata.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0_eqdata.c:1.1.1.1 Mon Oct 6 08:01:05 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_eqdata.c Tue Apr 13 13:39:27 2004
@@ -1,111 +0,0 @@
-/* Data structs */
-
-static u16 asEqCoefsZeros[50] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-};
-
-static u16 asEqCoefsPipes[64] = {
- 0x0000, 0x0000,
- 0x0000, 0x0666, 0x0000, 0x0000, 0x0666,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0666, 0x0000, 0x0000, 0x0666,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0666, 0x0000, 0x0000, 0x0666,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0666, 0x0000, 0x0000, 0x0666,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0666, 0x0000, 0x0000, 0x066a,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
-
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000
-};
-
-/* More coef sets can be found in the win2k "inf" file. */
-static auxxEqCoeffSet_t asEqCoefsNormal = {
- .LeftCoefs = {
- 0x7e60, 0xc19e, 0x0001, 0x0002, 0x0001,
- 0x7fa0, 0xc05f, 0x004f, 0x0000, 0xffb1,
- 0x7f3f, 0xc0bc, 0x00c2, 0x0000, 0xff3e,
- 0x7e78, 0xc177, 0x011f, 0x0000, 0xfee1,
- 0x7cd6, 0xc2e5, 0x025c, 0x0000, 0xfda4,
- 0x7949, 0xc5aa, 0x0467, 0x0000, 0xfb99,
- 0x7120, 0xcadf, 0x0864, 0x0000, 0xf79c,
- 0x5d33, 0xd430, 0x0f7e, 0x0000, 0xf082,
- 0x2beb, 0xe3ca, 0x1bd3, 0x0000, 0xe42d,
- 0xd740, 0xf01d, 0x2ac5, 0x0000, 0xd53b },
-
- .RightCoefs = {
- 0x7e60, 0xc19e, 0x0001, 0x0002, 0x0001,
- 0x7fa0, 0xc05f, 0x004f, 0x0000, 0xffb1,
- 0x7f3f, 0xc0bc, 0x00c2, 0x0000, 0xff3e,
- 0x7e78, 0xc177, 0x011f, 0x0000, 0xfee1,
- 0x7cd6, 0xc2e5, 0x025c, 0x0000, 0xfda4,
- 0x7949, 0xc5aa, 0x0467, 0x0000, 0xfb99,
- 0x7120, 0xcadf, 0x0864, 0x0000, 0xf79c,
- 0x5d33, 0xd430, 0x0f7e, 0x0000, 0xf082,
- 0x2beb, 0xe3ca, 0x1bd3, 0x0000, 0xe42d,
- 0xd740, 0xf01d, 0x2ac5, 0x0000, 0xd53b },
-
- .LeftGains = {
- 0x3e96, 0x3e96, 0x3e96, 0x3e96, 0x3e96,
- 0x3e96, 0x3e96, 0x3e96, 0x3e96, 0x3e96 },
- .RightGains = {
- 0x3e96, 0x3e96, 0x3e96, 0x3e96, 0x3e96,
- 0x3e96, 0x3e96, 0x3e96, 0x3e96, 0x3e96 }
-};
-
-static u16 eq_gains_normal[20] = {
- 0x3e96, 0x3e96, 0x3e96, 0x3e96, 0x3e96,
- 0x3e96, 0x3e96, 0x3e96, 0x3e96, 0x3e96,
- 0x3e96, 0x3e96, 0x3e96, 0x3e96, 0x3e96,
- 0x3e96, 0x3e96, 0x3e96, 0x3e96, 0x3e96
-};
-
-/* _rodatab60 */
-static u16 eq_gains_zero[10] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-};
-
-/* _rodatab7c: ProgramPipe */
-static u16 eq_gains_current[12] = {
- 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff, 0x7fff,
- 0x7fff, 0x7fff, 0x7fff
-};
-
-/* _rodatab78 */
-static u16 eq_states_zero[2] = {0x0000, 0x0000};
-
-static u16 asEqOutStateZeros[48] = {
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000
-};
-
-/*_rodataba0:*/
-static long eq_levels[32] = {
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
- 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
-};
Index: debian/alsa-driver/pci/au88x0/au88x0_game.c
diff -u debian/alsa-driver/pci/au88x0/au88x0_game.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au88x0_game.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0_game.c:1.1.1.2 Thu Oct 16 05:51:22 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_game.c Tue Apr 13 13:39:27 2004
@@ -1,131 +0,0 @@
-/*
- * au88x0_game.c,v 1.2 2003/10/16 11:51:22 tiwai Exp
- *
- * Manuel Jander.
- *
- * Based on the work of:
- * Vojtech Pavlik
- * Raymond Ingles
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- * Should you need to contact me, the author, you can do so either by
- * e-mail - mail your message to <vojtech@suse.cz>, or by paper mail:
- * Vojtech Pavlik, Ucitelska 1576, Prague 8, 182 00 Czech Republic
- *
- * Based 90% on Vojtech Pavlik pcigame driver.
- * Merged and modified by Manuel Jander, for the OpenVortex
- * driver. (email: mjander@embedded.cl).
- */
-
-#include <sound/driver.h>
-#include <linux/time.h>
-#include <linux/init.h>
-#include <sound/core.h>
-#include "au88x0.h"
-#include <linux/gameport.h>
-
-#if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
-
-#define VORTEX_GAME_DWAIT 20 /* 20 ms */
-
-struct au88x0_gameport {
- struct gameport info;
- vortex_t *chip;
-};
-
-static unsigned char vortex_game_read(struct gameport *gameport) {
- struct au88x0_gameport *gp = (struct au88x0_gameport *)gameport;
- vortex_t *vortex = gp->chip;
- return hwread(vortex->mmio, VORTEX_GAME_LEGACY);
-}
-
-static void vortex_game_trigger(struct gameport *gameport) {
- struct au88x0_gameport *gp = (struct au88x0_gameport *)gameport;
- vortex_t *vortex = gp->chip;
- hwwrite(vortex->mmio, VORTEX_GAME_LEGACY, 0xff);
-}
-
-static int vortex_game_cooked_read(struct gameport *gameport, int *axes, int *buttons) {
- struct au88x0_gameport *gp = (struct au88x0_gameport *)gameport;
- vortex_t *vortex = gp->chip;
- int i;
-
- *buttons = (~hwread(vortex->mmio, VORTEX_GAME_LEGACY) >> 4) & 0xf;
-
- for (i = 0; i < 4; i++) {
- axes[i] = hwread(vortex->mmio, VORTEX_GAME_AXIS + (i * AXIS_SIZE));
- if (axes[i] == AXIS_RANGE) axes[i] = -1;
- }
- return 0;
-}
-
-static int vortex_game_open(struct gameport *gameport, int mode) {
- struct au88x0_gameport *gp = (struct au88x0_gameport *)gameport;
- vortex_t *vortex = gp->chip;
-
- switch (mode) {
- case GAMEPORT_MODE_COOKED:
- hwwrite(vortex->mmio, VORTEX_CTRL2, hwread(vortex->mmio, VORTEX_CTRL2) | CTRL2_GAME_ADCMODE);
- wait_ms(VORTEX_GAME_DWAIT);
- return 0;
- case GAMEPORT_MODE_RAW:
- hwwrite(vortex->mmio, VORTEX_CTRL2, hwread(vortex->mmio, VORTEX_CTRL2) & ~CTRL2_GAME_ADCMODE);
- return 0;
- default:
- return -1;
- }
-
- return 0;
-}
-
-int vortex_gameport_register(vortex_t *vortex) {
-
- struct au88x0_gameport *gp;
- gp = kmalloc(sizeof(*gp), GFP_KERNEL);
- if (! gp)
- return -ENOMEM;
- memset(gp, 0, sizeof(*gp));
- gp->chip = vortex;
-
- vortex->gameport = &gp->info;
- vortex->gameport->fuzz = 64;
-
- vortex->gameport->read = vortex_game_read;
- vortex->gameport->trigger = vortex_game_trigger;
- vortex->gameport->cooked_read = vortex_game_cooked_read;
- vortex->gameport->open = vortex_game_open;
-
- gameport_register_port(vortex->gameport);
-
-/* printk(KERN_INFO "gameport%d: %s at speed %d kHz\n",
- vortex->gameport->number, vortex->pci_dev->name, vortex->gameport->speed);
-*/
- return 0;
-}
-
-int vortex_gameport_unregister(vortex_t *vortex) {
- if (vortex->gameport != NULL) {
- gameport_unregister_port(vortex->gameport);
- kfree(vortex->gameport);
- vortex->gameport = NULL;
- }
- return 0;
-}
-
-#else /* GAMEPORT */
-int vortex_gameport_register(vortex_t *vortex) { return 0; }
-int vortex_gameport_unregister(vortex_t *vortex) { return 0; }
-#endif /* GAMEPORT */
Index: debian/alsa-driver/pci/au88x0/au88x0_mixer.c
diff -u debian/alsa-driver/pci/au88x0/au88x0_mixer.c:1.1.1.2 debian/alsa-driver/pci/au88x0/au88x0_mixer.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0_mixer.c:1.1.1.2 Thu Oct 23 08:34:51 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_mixer.c Tue Apr 13 13:39:27 2004
@@ -1,28 +0,0 @@
-/*
- * Vortex Mixer support.
- *
- * There is much more than just the AC97 mixer...
- *
- */
-
-#include <sound/driver.h>
-#include <linux/time.h>
-#include <linux/init.h>
-#include <sound/core.h>
-#include "au88x0.h"
-
-int __devinit snd_vortex_mixer(vortex_t *vortex) {
- ac97_bus_t bus, *pbus;
- ac97_t ac97;
- int err;
-
- memset(&bus, 0, sizeof(bus));
- bus.write = vortex_codec_write;
- bus.read = vortex_codec_read;
- if ((err = snd_ac97_bus(vortex->card, &bus, &pbus)) < 0)
- return err;
- memset(&ac97, 0, sizeof(ac97));
- // Intialize AC97 codec stuff.
- ac97.private_data = vortex;
- return snd_ac97_mixer(pbus, &ac97, &vortex->codec);
-}
Index: debian/alsa-driver/pci/au88x0/au88x0_mpu401.c
diff -u debian/alsa-driver/pci/au88x0/au88x0_mpu401.c:1.1.1.1 debian/alsa-driver/pci/au88x0/au88x0_mpu401.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0_mpu401.c:1.1.1.1 Mon Oct 6 08:01:05 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_mpu401.c Tue Apr 13 13:39:27 2004
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) by Jaroslav Kysela <perex@suse.cz>
- * Routines for control of MPU-401 in UART mode
- *
- * Modified for the Aureal Vortex based Soundcards
- * by Manuel Jander (mjande@embedded.cl).
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- *
- */
-
-#include <sound/driver.h>
-#include <linux/time.h>
-#include <linux/init.h>
-#include <sound/core.h>
-#include <sound/mpu401.h>
-#include "au88x0.h"
-
-/* Check for mpu401 mmio support. */
-/* MPU401 legacy support is only provided as a emergency fallback *
- * for older versions of ALSA. Its usage is strongly discouraged. */
-#ifndef MPU401_HW_AUREAL
-#define VORTEX_MPU401_LEGACY
-#endif
-
-/* Vortex MPU401 defines. */
-#define MIDI_CLOCK_DIV 0x61
-/* Standart MPU401 defines. */
-#define MPU401_RESET 0xff
-#define MPU401_ENTER_UART 0x3f
-#define MPU401_ACK 0xfe
-
-int __devinit snd_vortex_midi(vortex_t *vortex) {
- snd_rawmidi_t *rmidi;
- int temp, mode;
- mpu401_t *mpu;
- int port;
-
-#ifdef VORTEX_MPU401_LEGACY
- /* EnableHardCodedMPU401Port() */
- /* Enable Legacy MIDI Interface port. */
- port = (0x03 << 5); /* FIXME: static address. 0x330 */
- temp = (hwread(vortex->mmio, VORTEX_CTRL) & ~CTRL_MIDI_PORT) | CTRL_MIDI_EN | port;
- hwwrite(vortex->mmio, VORTEX_CTRL, temp);
-#else
- /* Disable Legacy MIDI Interface port. */
- temp = (hwread(vortex->mmio, VORTEX_CTRL) & ~CTRL_MIDI_PORT) & ~CTRL_MIDI_EN;
- hwwrite(vortex->mmio, VORTEX_CTRL, temp);
-#endif
- /* Mpu401UartInit() */
- mode = 1;
- temp = hwread(vortex->mmio, VORTEX_CTRL2) & 0xffff00cf;
- temp |= (MIDI_CLOCK_DIV << 8) | ((mode >> 24) & 0xff) << 4;
- hwwrite(vortex->mmio, VORTEX_CTRL2, temp);
- hwwrite(vortex->mmio, VORTEX_MIDI_CMD, MPU401_RESET);
- /* Set some kind of mode */
- if (mode)
- hwwrite(vortex->mmio, VORTEX_MIDI_CMD, MPU401_ENTER_UART);
-
- /* Check if anything is OK. */
- temp = hwread(vortex->mmio, VORTEX_MIDI_DATA);
- if (temp != MPU401_ACK /*0xfe*/) {
- printk(KERN_ERR "midi port doesn't acknowledge!\n");
- return -ENODEV;
- }
- /* Enable MPU401 interrupts. */
- hwwrite(vortex->mmio, VORTEX_IRQ_CTRL, hwread(vortex->mmio, VORTEX_IRQ_CTRL) | IRQ_MIDI);
-
- /* Create MPU401 instance. */
-#ifdef VORTEX_MPU401_LEGACY
- if ((temp = snd_mpu401_uart_new(vortex->card, 0, MPU401_HW_MPU401, 0x330, 0, 0, 0, &rmidi)) != 0) {
- hwwrite(vortex->mmio, VORTEX_CTRL, (hwread(vortex->mmio, VORTEX_CTRL) & ~CTRL_MIDI_PORT) & ~CTRL_MIDI_EN);
- return temp;
- }
-#else
- port = (unsigned long)(vortex->mmio + (VORTEX_MIDI_DATA >> 2));
- if ((temp = snd_mpu401_uart_new(vortex->card, 0, MPU401_HW_AUREAL, port, 1, 0, 0, &rmidi)) != 0) {
- hwwrite(vortex->mmio, VORTEX_CTRL, (hwread(vortex->mmio, VORTEX_CTRL) & ~CTRL_MIDI_PORT) & ~CTRL_MIDI_EN);
- return temp;
- }
- mpu = snd_magic_cast(mpu401_t, rmidi->private_data, return -ENOMEM);
- mpu->cport = (unsigned long)(vortex->mmio + (VORTEX_MIDI_CMD >> 2));
-#endif
- vortex->rmidi = rmidi;
- return 0;
-}
Index: debian/alsa-driver/pci/au88x0/au88x0_pcm.c
diff -u debian/alsa-driver/pci/au88x0/au88x0_pcm.c:1.1.1.1 debian/alsa-driver/pci/au88x0/au88x0_pcm.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0_pcm.c:1.1.1.1 Mon Oct 6 08:01:05 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_pcm.c Tue Apr 13 13:39:27 2004
@@ -1,417 +0,0 @@
-/*
- * Vortex PCM ALSA driver.
- *
- * Supports ADB and WT DMA. Unfortunately, WT routing is still a
- * mistery. To discover that, we need to disassemble the windoze
- * driver too.
- *
- *
- */
-
-#include <sound/driver.h>
-#include <linux/time.h>
-#include <sound/core.h>
-#include <sound/pcm.h>
-#include <sound/pcm_params.h>
-#include "au88x0.h"
-
-#define chip_t vortex_t
-#define VORTEX_PCM_TYPE(x) (x->name[40])
-
-/* hardware definition */
-static snd_pcm_hardware_t snd_vortex_playback_hw_adb = {
- .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_RESUME| SNDRV_PCM_INFO_PAUSE |
- SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID),
- .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U8 |
- SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW,
- .rates = SNDRV_PCM_RATE_CONTINUOUS,
- .rate_min = 5000,
- .rate_max = 48000,
- .channels_min = 1,
-#ifdef CHIP_AU8830
- .channels_max = 4,
-#else
- .channels_max = 2,
-#endif
- .buffer_bytes_max = 0x10000,
- .period_bytes_min = 0x100,
- .period_bytes_max = 0x1000,
- .periods_min = 1,
- .periods_max = 64,
-};
-static snd_pcm_hardware_t snd_vortex_playback_hw_spdif = {
- .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_RESUME| SNDRV_PCM_INFO_PAUSE |
- SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_MMAP_VALID),
- .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U8 |
- SNDRV_PCM_FMTBIT_IEC958_SUBFRAME_LE | SNDRV_PCM_FMTBIT_MU_LAW |
- SNDRV_PCM_FMTBIT_A_LAW,
- .rates = SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
- .rate_min = 32000,
- .rate_max = 48000,
- .channels_min = 1,
- .channels_max = 2,
- .buffer_bytes_max = 0x10000,
- .period_bytes_min = 0x100,
- .period_bytes_max = 0x1000,
- .periods_min = 1,
- .periods_max = 64,
-};
-
-#ifndef CHIP_AU8810
-static snd_pcm_hardware_t snd_vortex_playback_hw_wt = {
- .info = (SNDRV_PCM_INFO_MMAP |
- SNDRV_PCM_INFO_INTERLEAVED |
- SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_MMAP_VALID),
- .formats = SNDRV_PCM_FMTBIT_S16_LE,
- .rates = SNDRV_PCM_RATE_8000_48000 | SNDRV_PCM_RATE_CONTINUOUS, // SNDRV_PCM_RATE_48000,
- .rate_min = 8000,
- .rate_max = 48000,
- .channels_min = 1,
- .channels_max = 2,
- .buffer_bytes_max = 0x10000,
- .period_bytes_min = 0x0400,
- .period_bytes_max = 0x1000,
- .periods_min = 1,
- .periods_max = 64,
-};
-#endif
-/* open callback */
-static int snd_vortex_pcm_open(snd_pcm_substream_t *substream) {
- vortex_t *vortex = snd_pcm_substream_chip(substream);
- snd_pcm_runtime_t *runtime = substream->runtime;
- int err;
-
- /* Force equal size periods */
- if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0)
- return err;
- /* Force DMA 32 bit alignment */
- if ((err = snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 4)) < 0)
- return err;
-
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
- if (VORTEX_PCM_TYPE(substream->pcm) == VORTEX_PCM_SPDIF) {
- runtime->hw = snd_vortex_playback_hw_spdif;
- switch (vortex->spdif_sr) {
- case 32000:
- runtime->hw.rates = SNDRV_PCM_RATE_32000;
- break;
- case 44100:
- runtime->hw.rates = SNDRV_PCM_RATE_44100;
- break;
- case 48000:
- runtime->hw.rates = SNDRV_PCM_RATE_48000;
- break;
- }
- } else
- runtime->hw = snd_vortex_playback_hw_adb;
- substream->runtime->private_data = NULL;
- }
-#ifndef CHIP_AU8810
- else {
- runtime->hw = snd_vortex_playback_hw_wt;
- substream->runtime->private_data = NULL;
- }
-#endif
- return 0;
-}
-
-/* close callback */
-static int snd_vortex_pcm_close(snd_pcm_substream_t *substream) {
- //vortex_t *chip = snd_pcm_substream_chip(substream);
- stream_t *stream = (stream_t*)substream->runtime->private_data;
-
- // the hardware-specific codes will be here
- if (stream != NULL) {
- stream->substream = NULL;
- stream->nr_ch = 0;
- }
- substream->runtime->private_data = NULL;
- return 0;
-}
-
-/* hw_params callback */
-static int snd_vortex_pcm_hw_params(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *hw_params) {
- chip_t *chip = snd_pcm_substream_chip(substream);
- snd_pcm_runtime_t *runtime = substream->runtime;
- stream_t *stream = (stream_t*)(substream->runtime->private_data);
- int err;
-
- // Alloc buffer memory.
- err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
- if (err < 0) {
- printk(KERN_ERR "Vortex: pcm page alloc failed!\n");
- return err;
- }
- /*
- printk(KERN_INFO "Vortex: periods %d, period_bytes %d, channels = %d\n", params_periods(hw_params),
- params_period_bytes(hw_params), params_channels(hw_params));
- */
- // Make audio routes and config buffer DMA.
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
- int dma, type = VORTEX_PCM_TYPE(substream->pcm);
- /* Dealloc any routes. */
- if (stream != NULL)
- vortex_adb_allocroute(chip, stream->dma, stream->nr_ch, stream->dir, stream->type);
- /* Alloc routes. */
- dma = vortex_adb_allocroute(chip, -1, params_channels(hw_params), substream->stream, type);
- if (dma < 0)
- return dma;
- stream = substream->runtime->private_data = &chip->dma_adb[dma];
- stream->substream = substream;
- /* Setup Buffers. */
- vortex_adbdma_setbuffers(chip, dma, (u32)(runtime->dma_addr), params_period_bytes(hw_params), params_periods(hw_params));
- }
-#ifndef CHIP_AU8810
- else {
- if (stream != NULL)
- vortex_wt_allocroute(chip, substream->number, 0);
- vortex_wt_allocroute(chip, substream->number, params_channels(hw_params));
- stream = substream->runtime->private_data = &chip->dma_wt[substream->number];
- stream->substream = substream;
- vortex_wtdma_setbuffers(chip, substream->number, (u32)(runtime->dma_addr), params_period_bytes(hw_params), params_periods(hw_params));
- }
-#endif
- return 0;
-}
-
-/* hw_free callback */
-static int snd_vortex_pcm_hw_free(snd_pcm_substream_t *substream) {
- chip_t *chip = snd_pcm_substream_chip(substream);
- stream_t *stream = (stream_t*)(substream->runtime->private_data);
-
- // Delete audio routes.
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
- if (stream != NULL)
- vortex_adb_allocroute(chip, stream->dma, stream->nr_ch, stream->dir, stream->type);
- }
-#ifndef CHIP_AU8810
- else {
- if (stream != NULL)
- vortex_wt_allocroute(chip, stream->dma, 0);
- }
-#endif
- substream->runtime->private_data = NULL;
-
- return snd_pcm_lib_free_pages(substream);
-}
-
-/* prepare callback */
-static int snd_vortex_pcm_prepare(snd_pcm_substream_t *substream) {
- vortex_t *chip = snd_pcm_substream_chip(substream);
- snd_pcm_runtime_t *runtime = substream->runtime;
- stream_t *stream = (stream_t*)substream->runtime->private_data;
- int dma = stream->dma, fmt, dir;
-
- // set up the hardware with the current configuration.
- if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
- dir = 1;
- else
- dir = 0;
- fmt = vortex_alsafmt_aspfmt(runtime->format);
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
- vortex_adbdma_setmode(chip, dma, 1, dir, fmt, 0/*?*/, 0);
- vortex_adbdma_setstartbuffer(chip, dma, 0);
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_SPDIF)
- vortex_adb_setsrc(chip, dma, runtime->rate, dir);
- }
-#ifndef CHIP_AU8810
- else {
- vortex_wtdma_setmode(chip, dma, 1, dir, fmt, 0, 0);
- // FIXME: Set rate (i guess using vortex_wt_writereg() somehow).
- vortex_wtdma_setstartbuffer(chip, dma, 0);
- }
-#endif
- return 0;
-}
-
-/* trigger callback */
-static int snd_vortex_pcm_trigger(snd_pcm_substream_t *substream, int cmd) {
- chip_t *chip = snd_pcm_substream_chip(substream);
- stream_t *stream = (stream_t*)substream->runtime->private_data;
- int dma = stream->dma;
-
- switch (cmd) {
- case SNDRV_PCM_TRIGGER_START:
- // do something to start the PCM engine
- //printk(KERN_INFO "vortex: start %d\n", dma);
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
- stream->fifo_enabled = 1;
- vortex_adbdma_startfifo(chip, dma);
- }
-#ifndef CHIP_AU8810
- else {
- stream->fifo_enabled = 1;
- vortex_wtdma_startfifo(chip, dma);
- }
-#endif
- break;
- case SNDRV_PCM_TRIGGER_STOP:
- // do something to stop the PCM engine
- //printk(KERN_INFO "vortex: stop %d\n", dma)
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT) {
- stream->fifo_enabled = 0;
- vortex_adbdma_stopfifo(chip, dma);
- }
-#ifndef CHIP_AU8810
- else {
- stream->fifo_enabled = 0;
- vortex_wtdma_stopfifo(chip, dma);
- }
-#endif
- break;
- case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
- //printk(KERN_INFO "vortex: pause %d\n", dma);
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT)
- vortex_adbdma_pausefifo(chip, dma);
-#ifndef CHIP_AU8810
- else
- vortex_wtdma_pausefifo(chip, dma);
-#endif
- break;
- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
- //printk(KERN_INFO "vortex: resume %d\n", dma);
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT)
- vortex_adbdma_resumefifo(chip, dma);
-#ifndef CHIP_AU8810
- else
- vortex_wtdma_resumefifo(chip, dma);
-#endif
- break;
- default:
- return -EINVAL;
- }
- return 0;
-}
-
-/* pointer callback */
-static snd_pcm_uframes_t snd_vortex_pcm_pointer(snd_pcm_substream_t *substream) {
- vortex_t *chip = snd_pcm_substream_chip(substream);
- stream_t *stream = (stream_t*)substream->runtime->private_data;
- int dma = stream->dma;
- snd_pcm_uframes_t current_ptr = 0;
-
- spin_lock(&chip->lock);
- if (VORTEX_PCM_TYPE(substream->pcm) != VORTEX_PCM_WT)
- current_ptr = vortex_adbdma_getlinearpos(chip, dma);
-#ifndef CHIP_AU8810
- else
- current_ptr = vortex_wtdma_getlinearpos(chip, dma);
-#endif
- //printk(KERN_INFO "vortex: pointer = 0x%x\n", current_ptr);
- spin_unlock(&chip->lock);
- return (bytes_to_frames(substream->runtime, current_ptr));
-}
-
-/* operators */
-static snd_pcm_ops_t snd_vortex_playback_ops = {
- .open = snd_vortex_pcm_open,
- .close = snd_vortex_pcm_close,
- .ioctl = snd_pcm_lib_ioctl,
- .hw_params = snd_vortex_pcm_hw_params,
- .hw_free = snd_vortex_pcm_hw_free,
- .prepare = snd_vortex_pcm_prepare,
- .trigger = snd_vortex_pcm_trigger,
- .pointer = snd_vortex_pcm_pointer,
- //.page = snd_pcm_sgbuf_ops_page,
-};
-
-/*
-* definitions of capture are omitted here...
-*/
-
-static char *vortex_pcm_prettyname[VORTEX_PCM_LAST] = {
- "AU88x0 ADB",
- "AU88x0 SPDIF",
- "AU88x0 I2S",
- "AU88x0 A3D",
- "AU88x0 WT",
-};
-static char *vortex_pcm_name[VORTEX_PCM_LAST] = {
- "adb",
- "spdif",
- "i2s",
- "a3d",
- "wt",
-};
-
-/* SPDIF kcontrol */
-static int snd_vortex_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo) {
- static char *texts[] = { "32000", "44100", "48000"};
-
- uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
- uinfo->count = 1;
- uinfo->value.enumerated.items = 3;
- if (uinfo->value.enumerated.item >= uinfo->value.enumerated.items)
- uinfo->value.enumerated.item = uinfo->value.enumerated.items - 1;
- strcpy(uinfo->value.enumerated.name, texts[uinfo->value.enumerated.item]);
- return 0;
-}
-static int snd_vortex_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) {
- vortex_t *vortex = snd_kcontrol_chip(kcontrol);
-
- if (vortex->spdif_sr == 32000)
- ucontrol->value.enumerated.item[0]=0;
- if (vortex->spdif_sr == 44100)
- ucontrol->value.enumerated.item[0]=1;
- if (vortex->spdif_sr == 48000)
- ucontrol->value.enumerated.item[0]=2;
- return 0;
-}
-static int snd_vortex_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) {
- vortex_t * vortex = snd_kcontrol_chip(kcontrol);
- static unsigned int sr[3] = {32000, 44100, 48000};
-
- //printk("vortex: spdif sr = %d\n", ucontrol->value.enumerated.item[0]);
- vortex->spdif_sr = sr[ucontrol->value.enumerated.item[0] % 3];
- vortex_spdif_init(vortex, sr[ucontrol->value.enumerated.item[0] % 3], 1);
- return 1;
-}
-static snd_kcontrol_new_t vortex_spdif_kcontrol __devinitdata = {
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
- .name = "SPDIF SR",
- .index = 0,
- .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
- .private_value = 0,
- .info = snd_vortex_spdif_info,
- .get = snd_vortex_spdif_get,
- .put = snd_vortex_spdif_put
-};
-
-/* create a pcm device */
-int __devinit snd_vortex_new_pcm(vortex_t *chip, int idx, int nr) {
- snd_pcm_t *pcm;
- int err, nr_capt;
- //static int __devinit pcm_idx=0;
- if ((chip == 0)||(idx < 0)||(idx>VORTEX_PCM_LAST))
- return -ENODEV;
-
- /* idx indicates which kind of PCM device. ADB, SPDIF, I2S and A3D share the
- * same dma engine. WT uses it own separate dma engine whcih cant capture. */
- if (idx == VORTEX_PCM_WT)
- nr_capt = 0;
- else
- nr_capt = nr;
- if ((err = snd_pcm_new(chip->card, vortex_pcm_prettyname[idx], idx, nr, nr_capt, &pcm)) < 0)
- return err;
- strcpy(pcm->name, vortex_pcm_name[idx]);
- chip->pcm[idx] = pcm;
- // This is an evil hack, but it saves a lot of duplicated code.
- VORTEX_PCM_TYPE(pcm) = idx;
- pcm->private_data = chip;
- /* set operators */
- snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_vortex_playback_ops);
- if (idx == VORTEX_PCM_ADB)
- snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_vortex_playback_ops);
- /* pre-allocation of buffers */
- snd_pcm_lib_preallocate_pci_pages_for_all(chip->pci_dev, pcm, 0x10000, 0x10000);
-
- if (VORTEX_PCM_TYPE(pcm) == VORTEX_PCM_SPDIF) {
- snd_kcontrol_t *kcontrol;
-
- if ((kcontrol = snd_ctl_new1(&vortex_spdif_kcontrol, chip)) == NULL)
- return -ENOMEM;
- if ((err = snd_ctl_add(chip->card, kcontrol)) < 0)
- return err;
- }
- return 0;
-}
Index: debian/alsa-driver/pci/au88x0/au88x0_synth.c
diff -u debian/alsa-driver/pci/au88x0/au88x0_synth.c:1.1.1.1 debian/alsa-driver/pci/au88x0/au88x0_synth.c:removed
--- debian/alsa-driver/pci/au88x0/au88x0_synth.c:1.1.1.1 Mon Oct 6 08:01:05 2003
+++ debian/alsa-driver/pci/au88x0/au88x0_synth.c Tue Apr 13 13:39:27 2004
@@ -1,2256 +0,0 @@
-/*
- * Someday its supposed to make use of the WT DMA engine
- * for a Wavetable synthesizer.
- */
-#include "au88x0.h"
-
-void vortex_fifo_setwtvalid(vortex_t *vortex, int fifo, int en);
-void vortex_connection_adb_mixin(vortex_t *vortex, int en, unsigned char channel,
- unsigned char source, unsigned char mixin);
-void vortex_connection_mixin_mix(vortex_t *vortex, int en, unsigned char mixin, unsigned char mix, int a);
-void vortex_fifo_wtinitialize(vortex_t *vortex, int fifo, int j);
-
-/* WT */
-
-void vortex_wt_setstereo(vortex_t *vortex, u32 wt, u32 stereo) {
- int temp;
-
- temp = hwread(vortex->mmio, 0x80 + ((wt >> 0x5)<< 0xf) + (((wt & 0x1f) >> 1) << 2));
- temp = (temp & 0xfe) | (stereo & 1);
- hwwrite(vortex->mmio, 0x80 + ((wt >> 0x5)<< 0xf) + (((wt & 0x1f) >> 1) << 2), temp);
-}
-
-void vortex_wt_setdsout(vortex_t *vortex, u32 wt, int en) {
-#ifndef CHIP_AU8820
- int temp;
-
- temp = hwread(vortex->mmio, ((wt >> 0x5)<< 0xf) + 0x8);
- if (en)
- temp |= (1 << (wt & 0x1f));
- else
- temp &= (1 << ~(wt & 0x1f));
- hwwrite(vortex->mmio, ((wt >> 0x5)<< 0xf) + 0x8, temp);
-#endif
-}
-
-// WT routing is still a mistery.
-int vortex_wt_allocroute(vortex_t *vortex, int dma, int nr_ch) {
- //FIXME: WT audio routing.
- if (nr_ch) {
- vortex_fifo_wtinitialize(vortex, dma, 1);
- vortex_wt_setstereo(vortex, dma, nr_ch-1);
- } else
- vortex_fifo_setwtvalid(vortex, dma, 0);
- vortex_wt_setdsout(vortex, dma, 1);
- return 0;
-}
-void vortex_wt_connect(vortex_t *vortex, int en, unsigned char mixers[]) {
-
- vortex->mixwt[0] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXIN);
- vortex->mixwt[1] = vortex_adb_checkinout(vortex, vortex->fixed_res, en, VORTEX_RESOURCE_MIXIN);
-
- vortex_connection_adb_mixin(vortex, en, 0x11, ADB_WTOUT(0), vortex->mixwt[0]);
- vortex_connection_adb_mixin(vortex, en, 0x11, ADB_WTOUT(1), vortex->mixwt[1]);
- vortex_connection_mixin_mix(vortex, en, vortex->mixwt[0], mixers[0], 0);
- vortex_connection_mixin_mix(vortex, en, vortex->mixwt[1], mixers[1], 0);
- if (VORTEX_IS_QUAD(vortex)) {
- vortex_connection_mixin_mix(vortex, en, vortex->mixwt[0], mixers[2], 0);
- vortex_connection_mixin_mix(vortex, en, vortex->mixwt[1], mixers[3], 0);
- }
-}
-
-/* Read WT Register */
-int vortex_wt_GetReg(vortex_t *vortex, char a, int *b) {
- int eax, esi;
-
- if (a != 4) {
- if (a == 7)
- return 0;
- return hwread(vortex->mmio, (*b << 0xf) + 0x10);
- }
- esi = b[1];
- eax = ((((a & 0x1f) + b[1]) / 32) & 0xff) << 0xb;
- if (esi < 0)
- esi = ((esi-1)|0x0FFFFFFE0)+1;
- esi &= 0xff;
- hwread(vortex->mmio, ((eax + esi) << 4) + 0x20c);
-
- return 8;
-}
-
-/*
- WT hardware abstraction layer generic register interface.
- a: type of register or register set to be accessed.
- b: Register offset
- c: Register value (or values) to be written.
-*/
-int vortex_wt_SetReg2(vortex_t *vortex, unsigned char a, int b, unsigned short c) {
- int eax, edx;
-
- if (b >= NR_WT) // 0x40 -> NR_WT
- return 0;
-
- /* cdq: 64 bit sign extender */
- eax = b;
- if (eax<0)
- edx = 0xffffffff & 0x1f;
- else
- edx = 0;
- eax += edx;
- edx = b & 0x8000001f;
- eax = (eax / 32) | ((char)b);
- if (eax < 0)
- edx = ((edx-1)|0x0FFFFFFE0)+1;
-
- // esp+4 = edx & 0xff
-
- if ((eax & 0xff) >= 2)
- return 0;
-
- if ((a & 0xff) - 0x20) {
- if ((a & 0xff) - 0x21)
- return 0;
- eax = ((((b & 0xff) << 0xb) + (edx & 0xff)) << 4) + 0x208;
- } else {
- eax = ((((b & 0xff) << 0xb) + (edx & 0xff)) << 4) + 0x20a;
- }
- hwwrite(vortex->mmio, eax, c);
- return 1;
-}
-
-
-/*public: void __thiscall CWTHal::SetReg(unsigned char,int,unsigned long) */
-int vortex_wt_SetReg(vortex_t *vortex, unsigned char a, int b, unsigned long c) {
- // a : type
- // b : voice
- // c : data
-
- int ecx, edx, esp4, eax;
-
- if (b >= NR_WT) // 0x40 -> NR_WT
- return 0;
-
-#if 0 //original_code
- eax = ecx = b;
- /* cdq: 64 bit sign extender */
- if (eax<0)
- edx = 0xffffffff;
- else
- edx = 0;
- eax += edx & 0x1f;
- edx = ecx & 0x8000001f;
- eax = (eax / 32) | ((char)b);
- // This "if" semes to be useless ...
- if (eax < 0)
- edx = ((edx-1)|0x0FFFFFFE0)+1;
-
- esp4 = (char)edx;
-
- // eax is the WT bank. AU8830 has 2 banks: 0 and 1.
- if ((char)eax >= 2)
- return 0;
-
-#else //rewritting_code
- esp4 = b & 0x1f;
- b = b >> 5;
-
-#endif
-
- if (a > 0xc)
- return 0;
-
- switch (a) {
- case 0 :
- eax = ((b << 0xd) + esp4) << 2;
- hwwrite(vortex->mmio, 0x180 + eax, c);
- return 0xc;
- break;
- case 1 :
- edx = ((b & 0xff) << 0xb) + (esp4 & 0xff);
- hwwrite(vortex->mmio, 0x20 + (edx << 4), c);
- return 0xc;
- break;
- case 2 :
- eax = ((b & 0xff) << 0xb) + (esp4 & 0xff);
- hwwrite(vortex->mmio, 0x204 + (eax << 4), c);
- return 0xc;
- break;
- case 3 :
- eax = ((b & 0xff) << 0xb) + (esp4 & 0xff);
- hwwrite(vortex->mmio, 0x208 + (eax << 4), c);
- return 0xc;
- break;
- case 4 :
- eax = ((b & 0xff) << 0xb) + (esp4 & 0xff);
- hwwrite(vortex->mmio, 0x20c + (eax << 4), c);
- return 0xc;
- break;
- case 6 :
- edx = ((b & 0xff) << 0xd) + (esp4 & 0xff);
- hwwrite(vortex->mmio, 0x100 + (edx << 2), c);
- return 0xc;
- break;
- case 0xb :
- {
- int ebx, esi;
- // FIXME: Here is something wrong ... (check admaud30.asm)
- edx = ((b & 0xff) << 0xb) + (esp4 & 0xff);
- ebx = b + esp4;
- esi = ebx << 4;
-
- hwwrite(vortex->mmio, 0x40c + esi, c);
- hwwrite(vortex->mmio, 0x408 + esi, c);
- hwwrite(vortex->mmio, 0x404 + esi, c);
- hwwrite(vortex->mmio, 0x400 + esi, c);
- return 0xc;
- }
- break;
- case 5 :
- ecx = (b << 0xf) + 0x4;
- break;
- case 8 :
- ecx = (b << 0xf) + 0x14;
- break;
- case 9 :
- ecx = (b << 0xf) + 0xc;
- break;
- case 0xa :
- ecx = (b << 0xf) + 0x0;
- break;
- case 0xc :
- ecx = (b << 0xf) + 0x8;
- break;
- default:
- return 0;
- break;
- }
- eax = ecx;
- hwwrite(vortex->mmio, eax, c);
- return 1;
-}
-
-void vortex_wt_WriteReg(vortex_t *vortex, int wt, char addr, int data) {
- hwwrite(vortex->mmio, ((wt << 0xf) + wt) + addr, data);
-}
-void vortex_wt_ReadReg(vortex_t *vortex, int wt, char addr, int *data) {
- *data = hwread(vortex->mmio, ((wt << 0xf) + wt) + addr);
-}
-
-void vortex_wt_InitializeWTRegs(vortex_t * vortex) {
- int ebx=0, var4, var8, varc, var10=0, edi;
-
- var10 &= 0xe3;
- var10 |= 0x22;
- var10 &= 0xFFFFFEBF;
- var10 |= 0x80;
- var10 |= 0x2;
- var10 &= 0xfffffffe;
- var10 &= 0xfffffffb;
- var10 |= 0x18;
- var4 = 0x10000000;
- varc = 0x00830000;
- var8 = 0x00830000;
-
- for (edi=0; edi<2; edi++) {
- vortex_wt_SetReg(vortex, 0xc, edi, ebx);
- vortex_wt_SetReg(vortex, 0xa, edi, var10);
- vortex_wt_SetReg(vortex, 0x9, edi, var4);
- vortex_wt_SetReg(vortex, 0x8, edi, varc);
- vortex_wt_SetReg(vortex, 0x5, edi, var8);
- }
-
- for (edi=0; edi<NR_WT; edi++) {
- vortex_wt_SetReg(vortex, 0x4, edi, ebx);
- vortex_wt_SetReg(vortex, 0x3, edi, ebx);
- vortex_wt_SetReg(vortex, 0x2, edi, ebx);
- vortex_wt_SetReg(vortex, 0x1, edi, ebx);
- vortex_wt_SetReg(vortex, 0xb, edi, ebx);
- }
- var10 |= 1;
- for (edi=0; edi<2; edi++)
- vortex_wt_SetReg(vortex, 0xa, edi, var10);
-}
-/* Extract of CAdbTopology::SetVolume(struct _ASPVOLUME *) */
-void vortex_wt_SetVolume(vortex_t *vortex, int wt, int a, int vol[]) {
- int x=0, y=0;
- // CAdbTopology->this_1E4, CAdbTopology->this_1E8
- vortex_wt_WriteReg(vortex, wt, 0x200 + (a<<4), (x & 0xff) << 0x10);
- vortex_wt_WriteReg(vortex, wt, 0x204 + (a<<4), ((x & 0xff) << 0x10) | 1);
- // In this case x semes to a set of 7 bit values.
- // y = CAdbTopology->this_1F0
- vortex_wt_WriteReg(vortex, wt, 0x20c + (a<<4), y);
-}
-
-/* The rest of this file is only for information purpose. */
-#if 0
-void Asp4SynthTopology::Asp4SynthTopology(class CResource * res, class Asp4Topology * asp) {
- this00 = res;
- this04 = asp;
-
- this08 = 0xff; // MixIn 0x65
- this0c = 0xff; // MixIn 0x66
- this10 = 0xff; // MixIn 0x67
- this14 = 0xff; // MixIn 0x68
- this18 = 0xff; // MixIn 0x6b
- this1c = 0xff; // MixIn 0x6c
- this20 = 0xff; // MixIn 0x6d
- this24 = 0xff; // MixIn 0x6e
- this28 = 0xff; // MixIn 0x6f
- this2c = 0xff; // MixIn 0x70
- this30 = 0; // MixOut 0x8b
- this34 = 0; // MixOut 0x8c
- this38 = 0; // MixOut 0x81
- this3c = 0; // MixOut 0x82
- this40 = 0; // MixOut 0x8f
- this44 = 0; // MixOut 0x90
- this48 = 0;
- this4c = 0;
- this50 = 0; // ADB DMA
- this54 = 0; // ADB DMA
- this58 = 0;
- this5c = 0;
- this60 = 0;
- this64 = 0;
- thisa0 = 0;
-
- //GetMixObject@CResource@@QAEJW4_eReservedFor@@PAPAVCAsp4Mix@@K@
-}
-
-void Asp4SynthTopology::Create(int a, int b, int c, int d) {
-
- eax = Asp4SynthTopology::GetMixerResources(a, b)
- if (eax == 0)
- return eax;
- if ((a==0)||(b==0))
- return eax;
- /* Here goes a condition thats allways true ... */
- if (eax) {
- eax = _OsLibAllocate@12(0x4000, 0, 0x46425846, 8);
- *esi = eax;
- eax = __imp__IoAllocateMdl@20(eax, 0x4000, 0,0,0);
- *(esi + 4) = eax;
- __imp__MmBuildMdlForNonPagedPool@4(eax);
- } else
- esi = 0;
- this_60 = esi;
- if (esi == 0)
- return eax;
- CResource = this_00;
- eax = CResource::GetAdbDmaObject(&this_50, 2);
- if (eax == 0)
- return 0;
- esi = operator new(8);
- if (esi) {
- eax = _OsLibAllocate@12(0x4000, 0, 0x46425846, 8);
- *esi = eax;
- eax = __imp__IoAllocateMdl@20(eax, 0x4000, 0,0,0);
- *(esi + 4) = eax;
- __imp__MmBuildMdlForNonPagedPool@4(eax);
- } else
- esi = 0;
- this_64 = esi;
- if (esi == 0)
- return eax;
- CResource = this_00;
- eax = CResource::GetAdbDmaObject(&this_54, 2);
- if (eax == 0)
- return 0;
- return 1;
-}
-
-void ~Asp4SynthTopology(void) {
-
- asp = this04;
- edi = asp->this74; /* CAsp4HwIO */
- asp->this9c = 0x3e8;
-
- if (this38 && (this08 != 0xff))
- asp->this64 = ReadDWORD(VORTEX_WT_BASE + ((this38->this08 << 5)+this08)<<2) & 0xff;
- (0x420 << 7)
- if (this3c && (this0c != 0xff))
- asp->this68 = ReadDWORD(VORTEX_WT_BASE + ((this3c->this08 << 5)+this0c)<<2) & 0xff;
-
- if (this08 != 0xff) {
-#ifdef CHIP_AU8830
- Route(0, 0x11, 0x62, this08 + 0x50);
-#elifdef CHIP_AU8820
- Route(0, 0x11, 0x00, this08);
-#endif
- if (this38)
- DisableInput(this38, this08, 0);
- if (this40)
- DisableInput(this40, this08, 0);
- }
- if (this0c != 0xff) {
-#ifdef CHIP_AU8830
- Route(0, 0x11, 0x62, this0c + 0x50);
-#elifdef CHIP_AU8820
- Route(0, 0x11, 0x00, this0c);
-#endif
- if (this3c)
- DisableInput(this3c, this0c, 0);
- if (this44)
- DisableInput(this44, this0c, 0);
- }
-#ifdef CHIP_AU8830
- if (this18 != 0xff) {
- Route(0, 0x11, 0xA2, this18 + 0x50);
- if (this38)
- DisableInput(this38, this18, 0);
- if (this40)
- DisableInput(this40, this18, 0);
- }
- if (this1c != 0xff) {
- Route(0, 0x11, 0xA2, this1c + 0x50);
- if (this38)
- DisableInput(this38, this1c, 0);
- if (this40)
- DisableInput(this40, this1c, 0);
- }
-#endif
- if (this10 != 0xff) {
- if (this38)
- DisableInput(this38, this10, 0);
- if (this40)
- DisableInput(this40, this10, 0);
- }
- if (this14 != 0xff) {
- if (this38)
- DisableInput(this38, this14, 0);
- if (this40)
- DisableInput(this40, this14, 0);
- }
- if (this28 != 0xff) {
- if (GetInputChannelRefCount(this28) == 1) {
- Route(0, 0x11, 0x64, this28 + 0x50);
- if (this34)
- DisableInput(this34, this28, 0);
- }
- }
- if (this2c != 0xff) {
- if (GetInputChannelRefCount(this2c) == 1) {
- Route(0, 0x11, 0xa4, this2c + 0x50);
- if (this34)
- DisableInput(this34, this2c, 0);
- }
- }
- if (this20 != 0xff) {
- if (GetInputChannelRefCount(this20) == 1) {
- Route(0, 0x11, 0x65, this20 + 0x50);
- if (this30)
- DisableInput(this30, this20, 0);
- }
- }
- if (this24 != 0xff) {
- if (GetInputChannelRefCount(this24) == 1) {
- Route(0, 0x11, 0xa5, this24 + 0x50);
- if (this30)
- DisableInput(this30, this24, 0);
- }
- }
-
- if (this50) {
- SetADBValid(asp->thiscc, this50->this04, 0);
- if (this30 && this34)
- Asp4Topology::Connection(this04, 0, 0x11, (CAsp4Mix *) this34, (int) this30, (CAsp4AdbDma *)this50)
- }
- if (this54) {
- SetADBValid(asp->thiscc, this54->this04, 0);
- if (this10 && this14)
- Asp4Topology::Connection(this04, 0, 0x11, (CAsp4Mix *) this14, (int) this10, (CAsp4AdbDma *)this54)
- }
- Asp4SynthTopology::ReleaseMixerResources(void);
- if (this50)
- CAsp4DmaChannel::CheckIn(this50);
- if (this54)
- CAsp4DmaChannel::CheckIn(this54);
- free(thsis60);
- free(tthis64);
-}
-
-// admaud30.asm: line 67609
-void Asp4Topology::ConfigureWT(int arg_0 ,int arg_4 ,int arg_8) {
- // ...
- ebx = arg_0;
- // ...
-
- arg_0 = some_weird_operations(ebx) + 0xA4;
- Asp4Topology::Route((int)ebp ,(uchar) 0x11, (uchar) arg_0, (uchar) (*edi + 0x50));
- arg_0 = some_weird_operations(ebx) + 0xA5;
- Asp4Topology::Route((int)ebp ,(uchar) 0x11, (uchar) arg_0, (uchar) (*(esi+ebx*4+0x16C) + 0x50));
-
-}
-
-int CResource::GetMixObject(enum _eReservedFor, class CAsp4Mix **CAsp4Mix,unsigned long) {
-
- if (thisc4 == 0)
- return 0x92EB0014;
- if (CAsp4Mix == 0)
- return 0x80070057;
-
- *CAsp4Mix = CAsp4Mixer::GetMixObject(_eReservedFor, ulong 0xFFFFFFFF)
-
- eax = ~CAsp4Mix;
-
- neg eax
- sbb eax, eax
- and eax, 6D14FFF6h
- add eax, 92EB000Ah
-
- return eax;
-}
-
-CAsp4Mix * CAsp4Mixer::GetMixObject(_eReservedFor, ulong a) {
- //CAsp4Mixer->this188 CMixArray.
-
- var04 = CMixArray::GetOutput(_eReservedFor, ulong a);
- if (var04 == 0xff)
- return 0;
- var_A40 = *(this_188 + var04*0xc + 0x188);
- if (var_a40 == 1) {
- CMixArray::GetPropertyIndexes(_eReservedFor, (_mixIndex *)&var_A1C);
-
- for (var08=0; var08<var_A1C; var08++) {
-
- eax = CMixArray::GetPendingProperty((ulong)var08*4+var_A18, (_mixProperty *)&var_A34);
- if (eax == 0)
- return 0;
- var_A38 == 0;
- var_A48 = var_A34;
- if (var_A48 == 1) {
- CAsp4Mix = var04*0x18 + this_08;
- CAsp4Mix::SetVolume((ulong) var_A28);
- var_A38 = 1;
- }
- if (var_A48 == 0) {
- var_A3C = CMixArray::SearchInput(_eReservedFor,(ulong) 0x0FFFFFFFF);
- if (var_a3c != 0xff) {
- CAsp4Mix = var04*0x18 + this_08;
- CAsp4Mix::SetInputVolume(var_A3C, var_A28, var_A24, 0);
- var_A38 = 1;
-
- }
- }
- if (var_A38 == 0) {
- CMixArray = this_188;
- CMixArray::DeletePendingProperty((_mixProperty *)&var_A34);
- }
- }
- }
- return (var04*0x18 + &this_08);
-}
-
-void CMixArray::GetOutput(enum _eReservedFor,unsigned long a) {
-
- eax = CMixArray::GiveIndex(_eReservedFor, ulong a);
- if (eax != 0FFFFFFFF) {
- *(eax*3*4 + CMixArray->this_188)++;
- return;
- }
- eax = 0;
- ecx = &this_180;
- {
- if (*ecx != 0xff) {
- ecx = &this_00 + eax*3*4;
- *(ecx + 0x184) = a;
- *((eax*3 + 0x60)*4 + this_00) = _eReservedFor;
- *(ecx + 0x188)++;
- return;
- }
- eax++;
- ecx += 0xc;
- } while (eax < 0x10);
- return 0xff;
-}
-
-int CMixArray::GiveIndex(enum _eReservedFor, unsigned long a) {
- eax = 0;
- if (_eReservedFor < 0x80) {
- ecx = &this00;
- {
- if ((_eReservedFor == *ecx) && (a == *(ecx+4)))
- return eax;
- ecx += 0xc;
- eax++;
- } while(eax < 0x20);
- } else {
- ecx = &this184;
- {
- if ((_eReservedFor == *(ecx-4)) && (a == *ecx))
- return eax;
- ecx += 0xc;
- eax++;
- } while(eax < 0x10);
- }
- eax |= 0xFFFFFFFF;
-}
-
-
-
-
-// Voice related stuff.
-void vortex_AspSynth_VoiceInit(void) {
- int i;
- struct voice_t *voice;
- //Asp4Synth::ResetPerformanceStats(void);
- //Asp4Synth::ProfileSynth(void);
-
- // Hardware Voices.
- for (i=0; i<NR_WT; i++) {
- voice = (this_bc + i*0x198);
- voice->this_b8 = 0xffff;
- voice->this_114 = 0xffff;
-
- voice->this_174 = 0;
- voice->this_5d = 0;
- voice->this_60 = 0;
- voice->this_190 = 0;
- voice->this_58 = i;
- voice->this_62 = 0;
- voice->this_4c = 0;
- voice->this_50 = 0;
-
- if (voice->this_180) {
- vortex_SetReg(vortex, 1, i, 0);
- vortex_SetReg(vortex, 2, i, 0);
- //CSynth::Stop(void);
- //CSynth::Release(void);
- voice->this_180 = 0;
- vortex_SetReg(vortex, 0, i, 1);
- }
- }
- // Software voices ...
-
- //CDmDlsDownloadManager::DownloadInstrument(void * *,void * *,_DMUS_DOWNLOADINFO *,void * * const,void *);
-}
-
-void Asp4Synth::MuteVoices(uchar a,ulong b) {
- int ebx=0;
- if (ebx != this_180) {
- vortex_SetReg(vortex, 6, i, 1);
- vortex_SetReg(vortex, 1, i, ebx);
- vortex_SetReg(vortex, 2, i, ebx);
- CSynth::Stop(void);
- CSynth::Release(void);
- this_180 = ebx;
- }
-
-}
-void Asp4Synth::ResetControllers(unsigned char) {
-
-}
-
-int CAdmHilObject::wtMidiDeviceOpen(void) {
- if (this_2c == 0)
- return 0;
- this_2c->this52794 = 0;
- if (this_2c->this52790)
- return 0;
- this_2c->this52790 = 1;
- this_2c->Asp4Synth::VoiceInit(void);
- this_2c->Asp4Synth::BankChange((CAbeSndFont *)this_2c->this_08, (int) 0);
- if (this_2c) {
- var_c = __imp__RtlConvertLongToLargeInteger@4(0x0FFFFB1E0);
- __imp__KeDelayExecutionThread@12(0, 0, *var_c);
- this_2c->Asp4Synth::Close((int) 0);
- eax = this_2c->Asp4Synth::Open(void);
- if (eax == 0)
- return 0C0000001;
- this_2c->this_53888 = 1;
- }
- // Some "repe" things i dont understand. Basically semes to be initializers.
-
-}
-void Asp4MidiEvent::handler(void *) {
- switch (a) {
-
- case x:
- if (this_60)
- CWTHal::SetReg((uchar) 6, (int) this_58, (ulong) 1);
- break;
-
- }
-
-}
-
-void CAsp4Core::CreateSynthBuffer(_ASPWAVEFORMAT *,CSynth * *) {
-
-
-}
-
-void fragment_of_wtcallback(void) {
- vortex_SetReg(vortex, 0xb, i, 0);
- vortex_SetReg2(vortex, 0x21, i, 0);
- CSynth::Start(void);
- // ..
- vortex_SetReg(vortex, 1, i, 0x50000000);
- vortex_SetReg(vortex, 2, i, 0x50000000);
- // ..
- vortex_SetReg(vortex, 5, 0, 0x8800);
- vortex_SetReg(vortex, 5, 1, 0x8800);
-
-}
-#endif
-
-/*
-CSynth constructor
-
-; public: class Asp4SynthTopology * __thiscall Asp4Topology::AllocSynth(class CResource *)
-
-?AllocSynth@Asp4Topology@@QAEPAVAsp4SynthTopology@@PAVCResource@@@Z proc near
- ; CODE XREF: CAsp4Core::SetWavetableTopology(int)+3Fp
- ; .text:0002565Dp
-
-var_14 = dword ptr -14h
-var_10 = dword ptr -10h
-var_C = dword ptr -0Ch
-var_8 = dword ptr -8
-var_4 = dword ptr -4
-arg_0 = dword ptr 4
-
- sub esp, 14h
- push ebx
- push ebp
- push esi
- push edi
- mov edi, ecx
- push 70h
- call ??2@YAPAXI@Z ; operator new(uint)
-
- add esp, 4
- test eax, eax
- jz short loc_2F3BA
-
- mov ebp, [esp+24h+arg_0]
- push edi
- push ebp
- mov ecx, eax
- call ??0Asp4SynthTopology@@QAE@PAVCResource@@PAVAsp4Topology@@@Z ; Asp4SynthTopology::Asp4SynthTopology(CResource *,Asp4Topology *)
-
- mov esi, eax
- test esi, esi
- jnz short loc_2F3C6
-
-
-loc_2F3BA: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+15j
- pop edi
- pop esi
- pop ebp
- xor eax, eax
- pop ebx
- add esp, 14h
- retn 4
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F3C6: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+28j
- mov eax, [ebp+3A4h]
- mov ecx, [ebp+3ACh]
- mov ebx, [ebp+3A8h]
- lea edx, [esp+24h+var_14]
- push edx
- push offset aA_0 ; "A"
- push offset asc_814A0 ; "s"
- push 80000002h
- mov [esp+34h+var_4], eax
- mov [esp+34h+arg_0], ecx
- call _AspReadRegDwordValue@16
-
- test eax, eax
- jz short loc_2F403
-
- mov eax, [esp+24h+var_14]
- jmp short loc_2F41C
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F403: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+6Bj
- cmp ebx, 0C8h
- jb short loc_2F41A
-
- mov eax, [esp+24h+arg_0]
- test eax, eax
- jz short loc_2F41A
-
- mov eax, 1
- jmp short loc_2F41C
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F41A: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+79j
- ; Asp4Topology::AllocSynth(CResource *)+81j
- xor eax, eax
-
-loc_2F41C: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+71j
- ; Asp4Topology::AllocSynth(CResource *)+88j
- lea ecx, [esp+24h+var_14]
- mov [edi+88h], eax
- push ecx
- push offset asc_81514 ; "S"
- push offset asc_81528 ; "s"
- push 80000002h
- call _AspReadRegDwordValue@16
-
- test eax, eax
- jz short loc_2F44B
-
- mov edx, [esp+24h+var_14]
- mov [edi+8Ch], edx
- jmp short loc_2F46A
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F44B: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+ADj
- cmp ebx, 0C8h
- jb short loc_2F462
-
- mov eax, [esp+24h+arg_0]
- test eax, eax
- jz short loc_2F462
-
- mov eax, 1
- jmp short loc_2F464
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F462: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+C1j
- ; Asp4Topology::AllocSynth(CResource *)+C9j
- xor eax, eax
-
-loc_2F464: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+D0j
- mov [edi+8Ch], eax
-
-loc_2F46A: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+B9j
- lea eax, [esp+24h+var_14]
- push eax
- push offset asc_8159C ; "H"
- push offset asc_815B8 ; "s"
- push 80000002h
- call _AspReadRegDwordValue@16
-
- test eax, eax
- jz short loc_2F493
-
- mov ecx, [esp+24h+var_14]
- mov [edi+90h], ecx
- jmp short loc_2F49D
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F493: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+F5j
- mov dword ptr [edi+90h], 1
-
-loc_2F49D: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+101j
- lea edx, [esp+24h+var_14]
- push edx
- push offset aG_15 ; "G"
- push offset asc_81640 ; "s"
- push 80000002h
- call _AspReadRegDwordValue@16
-
- test eax, eax
- jz short loc_2F4C8
-
- mov eax, [esp+24h+var_14]
- lea ebx, [edi+94h]
- mov [ebx], eax
- jmp short loc_2F4F9
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F4C8: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+128j
- cmp [esp+24h+var_4], 6
- jnb short loc_2F4ED
-
- cmp ebx, 0C8h
- jb short loc_2F4ED
-
- mov eax, [esp+24h+arg_0]
- test eax, eax
- jz short loc_2F4ED
-
- lea ebx, [edi+94h]
- mov dword ptr [ebx], 1
- jmp short loc_2F4F9
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F4ED: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+13Dj
- ; Asp4Topology::AllocSynth(CResource *)+145j ...
- lea ebx, [edi+94h]
- mov dword ptr [ebx], 0
-
-loc_2F4F9: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+136j
- ; Asp4Topology::AllocSynth(CResource *)+15Bj
- xor eax, eax
- mov dword ptr [edi+9Ch], 3E8h
- mov [esp+24h+var_10], eax
- mov [esp+24h+var_C], eax
- cmp dword ptr [edi+64h], 0FFFFFFFFh
- jnz short loc_2F564
-
- lea ecx, [esp+24h+var_10]
- push 0FFFFFFFFh
- push ecx
- push 81h
- mov ecx, ebp
- call ?SearchMixerOutputChannel@CResource@@QAEJW4_eReservedFor@@PAKK@Z ; CResource::SearchMixerOutputChannel(_eReservedFor,ulong *,ulong)
-
- test eax, eax
- jnz short loc_2F564
-
- lea edx, [esp+24h+var_C]
- push 0FFFFFFFFh
- push edx
- push 65h
- mov ecx, ebp
- call ?SearchMixerInputChannel@CResource@@QAEJW4_eReservedFor@@PAKK@Z ; CResource::SearchMixerInputChannel(_eReservedFor,ulong *,ulong)
-
- test eax, eax
- jnz short loc_2F564
-
- mov eax, [esp+24h+var_10]
- mov edx, [esp+24h+var_C]
- add eax, 420h
- mov ecx, [edi+74h]
- shl eax, 5
- add eax, edx
- shl eax, 2
- push eax
- call ?ReadDWORD@CAsp4HwIO@@QAEKK@Z ; CAsp4HwIO::ReadDWORD(ulong)
-
- and eax, 0FFh
- mov [edi+64h], eax
-
-loc_2F564: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+181j
- ; Asp4Topology::AllocSynth(CResource *)+198j ...
- cmp dword ptr [edi+68h], 0FFFFFFFFh
- jnz short loc_2F5BB
-
- lea ecx, [esp+24h+var_10]
- push 0FFFFFFFFh
- push ecx
- push 82h
- mov ecx, ebp
- call ?SearchMixerOutputChannel@CResource@@QAEJW4_eReservedFor@@PAKK@Z ; CResource::SearchMixerOutputChannel(_eReservedFor,ulong *,ulong)
-
- test eax, eax
- jnz short loc_2F5BB
-
- lea edx, [esp+24h+var_C]
- push 0FFFFFFFFh
- push edx
- push 66h
- mov ecx, ebp
- call ?SearchMixerInputChannel@CResource@@QAEJW4_eReservedFor@@PAKK@Z ; CResource::SearchMixerInputChannel(_eReservedFor,ulong *,ulong)
-
- test eax, eax
- jnz short loc_2F5BB
-
- mov eax, [esp+24h+var_10]
- mov edx, [esp+24h+var_C]
- add eax, 420h
- mov ecx, [edi+74h]
- shl eax, 5
- add eax, edx
- shl eax, 2
- push eax
- call ?ReadDWORD@CAsp4HwIO@@QAEKK@Z ; CAsp4HwIO::ReadDWORD(ulong)
-
- and eax, 0FFh
- mov [edi+68h], eax
-
-loc_2F5BB: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+1D8j
- ; Asp4Topology::AllocSynth(CResource *)+1EFj ...
- mov ecx, [ebp+0C4h]
- lea edx, [esp+24h+var_8]
- push edx
- push 66h
- push 82h
- mov [esp+30h+var_8], 0
- call ?IsInputVolPending@CAsp4Mixer@@QAEHW4_eReservedFor@@0PAK@Z ; CAsp4Mixer::IsInputVolPending(_eReservedFor,_eReservedFor,ulong *)
-
- test eax, eax
- jz short loc_2F5F0
-
- mov eax, [esp+24h+var_8]
- push eax
- call ?LinearFrac2WtFP@@YGEK@Z ; LinearFrac2WtFP(ulong)
-
- and eax, 0FFh
- mov [edi+68h], eax
-
-loc_2F5F0: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+24Cj
- mov ecx, [ebp+0C4h]
- lea edx, [esp+24h+var_8]
- push edx
- push 65h
- push 81h
- call ?IsInputVolPending@CAsp4Mixer@@QAEHW4_eReservedFor@@0PAK@Z ; CAsp4Mixer::IsInputVolPending(_eReservedFor,_eReservedFor,ulong *)
-
- test eax, eax
- jz short loc_2F61D
-
- mov eax, [esp+24h+var_8]
- push eax
- call ?LinearFrac2WtFP@@YGEK@Z ; LinearFrac2WtFP(ulong)
-
- and eax, 0FFh
- mov [edi+64h], eax
-
-loc_2F61D: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+279j
- mov ecx, [ebx]
- mov edx, [edi+90h]
- mov eax, [edi+8Ch]
- push ecx
- mov ecx, [edi+88h]
- push edx
- push eax
- push ecx
- mov ecx, esi
- call ?Create@Asp4SynthTopology@@QAEHHHHH@Z ; Asp4SynthTopology::Create(int,int,int,int)
-
- test eax, eax
- jnz loc_2F719
-
- mov ecx, esi
- call ??1Asp4SynthTopology@@QAE@XZ ; Asp4SynthTopology::~Asp4SynthTopology(void)
-
- push esi
- call ??3@YAXPAX@Z ; operator delete(void *)
-
- add esp, 4
- lea eax, [edi+88h]
- lea esi, [edi+8Ch]
- mov dword ptr [ebx], 0
- push eax
- push offset asc_816B4 ; "A"
- push offset asc_816E0 ; "s"
- push 80000002h
- mov dword ptr [eax], 0
- mov dword ptr [esi], 0
- call _AspSetRegDwordValue@16
-
- push esi
- push offset asc_81754 ; "S"
- push offset asc_81768 ; "s"
- push 80000002h
- call _AspSetRegDwordValue@16
-
- push ebx
- push offset aG_16 ; "G"
- push offset asc_817F0 ; "s"
- push 80000002h
- call _AspSetRegDwordValue@16
-
- push 70h
- call ??2@YAPAXI@Z ; operator new(uint)
-
- add esp, 4
- test eax, eax
- jz short loc_2F6CE
-
- push edi
- push ebp
- mov ecx, eax
- call ??0Asp4SynthTopology@@QAE@PAVCResource@@PAVAsp4Topology@@@Z ; Asp4SynthTopology::Asp4SynthTopology(CResource *,Asp4Topology *)
-
- mov esi, eax
- test esi, esi
- jnz short loc_2F6DA
-
-
-loc_2F6CE: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+32Dj
- pop edi
- pop esi
- pop ebp
- xor eax, eax
- pop ebx
- add esp, 14h
- retn 4
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F6DA: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+33Cj
- mov edx, [ebx]
- mov eax, [edi+90h]
- mov ecx, [edi+8Ch]
- push edx
- mov edx, [edi+88h]
- push eax
- push ecx
- push edx
- mov ecx, esi
- call ?Create@Asp4SynthTopology@@QAEHHHHH@Z ; Asp4SynthTopology::Create(int,int,int,int)
-
- test eax, eax
- jnz short loc_2F719
-
- mov ecx, esi
- call ??1Asp4SynthTopology@@QAE@XZ ; Asp4SynthTopology::~Asp4SynthTopology(void)
-
- push esi
- call ??3@YAXPAX@Z ; operator delete(void *)
-
- add esp, 4
- xor eax, eax
- pop edi
- pop esi
- pop ebp
- pop ebx
- add esp, 14h
- retn 4
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2F719: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+2AEj
- ; Asp4Topology::AllocSynth(CResource *)+36Bj
- mov eax, [edi+90h]
- test eax, eax
- jz loc_2F823
-
- mov eax, [esi+8]
- mov ecx, edi
- add al, 50h
- push eax
- push 62h
- push 11h
- push 1
- call ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
-
- mov ecx, [esi+0Ch]
- add cl, 50h
- push ecx
- push 63h
- push 11h
- push 1
- mov ecx, edi
- call ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
-
- mov edx, [esi+18h]
- mov ecx, edi
- add dl, 50h
- push edx
- push 0A2h
- push 11h
- push 1
- call ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
-
- mov eax, [esi+1Ch]
- mov ecx, edi
- add al, 50h
- push eax
- push 0A3h
- push 11h
- push 1
- call ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
-
- push 2
- push 1
- mov ecx, ebp
- call ?GetWTRefCount@CResource@@QAEKHW4WTSOURCE@@@Z ; CResource::GetWTRefCount(int,WTSOURCE)
-
- test eax, eax
- jnz short loc_2F7CF
-
- mov eax, [edi+194h]
- test eax, eax
- jnz short loc_2F7CF
-
- mov ecx, [esi+18h]
- push ecx
- mov ecx, [esi+38h]
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov edx, [esi+1Ch]
- mov ecx, [esi+3Ch]
- push edx
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov ecx, [esi+40h]
- test ecx, ecx
- jz short loc_2F7CF
-
- mov eax, [esi+44h]
- test eax, eax
- jz short loc_2F7CF
-
- mov eax, [esi+18h]
- push eax
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov ecx, [esi+1Ch]
- push ecx
- mov ecx, [esi+44h]
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
-
-loc_2F7CF: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+3F8j
- ; Asp4Topology::AllocSynth(CResource *)+402j ...
- push 2
- push 0
- mov ecx, ebp
- call ?GetWTRefCount@CResource@@QAEKHW4WTSOURCE@@@Z ; CResource::GetWTRefCount(int,WTSOURCE)
-
- test eax, eax
- jnz short loc_2F823
-
- mov eax, [edi+190h]
- test eax, eax
- jnz short loc_2F823
-
- mov edx, [esi+8]
- mov ecx, [esi+38h]
- push edx
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov eax, [esi+0Ch]
- mov ecx, [esi+3Ch]
- push eax
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov ecx, [esi+40h]
- test ecx, ecx
- jz short loc_2F823
-
- mov eax, [esi+44h]
- test eax, eax
- jz short loc_2F823
-
- mov edx, [esi+8]
- push edx
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov eax, [esi+0Ch]
- mov ecx, [esi+44h]
- push eax
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
-
-loc_2F823: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+391j
- ; Asp4Topology::AllocSynth(CResource *)+44Cj ...
- mov eax, [edi+8Ch]
- test eax, eax
- jnz short loc_2F83B
-
- mov eax, [edi+88h]
- test eax, eax
- jz loc_2FB41
-
-
-loc_2F83B: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+49Bj
- mov ecx, [esi+10h]
- push ecx
- mov ecx, [esi+38h]
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov edx, [esi+14h]
- mov ecx, [esi+3Ch]
- push edx
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov ecx, [esi+40h]
- test ecx, ecx
- jz short loc_2F876
-
- mov eax, [esi+44h]
- test eax, eax
- jz short loc_2F876
-
- mov eax, [esi+10h]
- push eax
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov ecx, [esi+14h]
- push ecx
- mov ecx, [esi+44h]
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
-
-loc_2F876: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+4C8j
- ; Asp4Topology::AllocSynth(CResource *)+4CFj
- mov eax, [esi+28h]
- mov ecx, ebp
- push eax
- call ?GetInputChannelRefCount@CResource@@QAEKK@Z ; CResource::GetInputChannelRefCount(ulong)
-
- cmp eax, 1
- jnz short loc_2F8C4
-
- mov edx, [esi+28h]
- mov ecx, edi
- add dl, 50h
- push edx
- push 64h
- push 11h
- push eax
- call ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
-
- mov eax, [esi+20h]
- mov ecx, edi
- add al, 50h
- push eax
- push 65h
- push 11h
- push 1
- call ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
-
- mov ecx, [esi+28h]
- push ecx
- mov ecx, [esi+34h]
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov edx, [esi+20h]
- mov ecx, [esi+30h]
- push edx
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
-
-loc_2F8C4: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+4F4j
- mov eax, [esi+2Ch]
- mov ecx, ebp
- push eax
- call ?GetInputChannelRefCount@CResource@@QAEKK@Z ; CResource::GetInputChannelRefCount(ulong)
-
- cmp eax, 1
- jnz short loc_2F919
-
- mov eax, [esi+2Ch]
- mov ecx, edi
- add al, 50h
- push eax
- push 0A4h
- push 11h
- push 1
- call ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
-
- mov ecx, [esi+24h]
- add cl, 50h
- push ecx
- push 0A5h
- push 11h
- push 1
- mov ecx, edi
- call ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
-
- mov edx, [esi+2Ch]
- mov ecx, [esi+34h]
- push edx
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
- mov eax, [esi+24h]
- mov ecx, [esi+30h]
- push eax
- call ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
-
-
-loc_2F919: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+542j
- mov ecx, [esi+50h]
- mov edx, [esi+30h]
- mov eax, [esi+34h]
- push ecx
- push edx
- push eax
- push 11h
- push 1
- mov ecx, edi
- call ?Connection@Asp4Topology@@QAEXHEPAVCAsp4Mix@@0PAVCAsp4AdbDma@@@Z ; Asp4Topology::Connection(int,uchar,CAsp4Mix *,int,CAsp4AdbDma *)
-
- mov ecx, [esi+50h]
- test ecx, ecx
- jz loc_2FA2D
-
- mov edx, [ecx]
- push 0
- push 0
- push 1
- push 8
- push 0
- push 0
- call dword ptr [edx+4]
-
- mov eax, [esi+50h]
- push 56FFFFFFh
- mov ecx, [eax+4]
- lea edx, ds:27800h[ecx*8]
- mov ecx, [edi+74h]
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov eax, [esi+50h]
- push 74FFFFFFh
- mov ecx, [eax+4]
- lea edx, ds:27804h[ecx*8]
- mov ecx, [edi+74h]
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov eax, [esi+60h]
- mov ecx, [eax+4]
- mov eax, [esi+50h]
- mov edx, [ecx+1Ch]
- mov ecx, [eax+4]
- add ecx, 2740h
- shl edx, 0Ch
- shl ecx, 4
- push edx
- push ecx
- mov ecx, [edi+74h]
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov edx, [esi+60h]
- mov eax, [edx+4]
- mov edx, [esi+50h]
- mov ecx, [eax+20h]
- mov eax, [edx+4]
- shl eax, 4
- shl ecx, 0Ch
- add eax, (offset loc_27402+2)
- push ecx
- mov ecx, [edi+74h]
- push eax
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+60h]
- mov edx, [ecx+4]
- mov ecx, [esi+50h]
- mov eax, [edx+24h]
- mov edx, [ecx+4]
- mov ecx, [edi+74h]
- shl edx, 4
- shl eax, 0Ch
- add edx, offset nullsub_2
- push eax
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov eax, [esi+60h]
- mov ecx, [eax+4]
- mov eax, [esi+50h]
- mov edx, [ecx+28h]
- mov ecx, [eax+4]
- shl ecx, 4
- shl edx, 0Ch
- add ecx, offset dword_2740C
- push edx
- push ecx
- mov ecx, [edi+74h]
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov edx, [esi+50h]
- push 0
- mov eax, [edx+4]
- lea ecx, ds:27C00h[eax*4]
- push ecx
- mov ecx, [edi+74h]
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
-
-loc_2FA2D: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+5A5j
- mov edx, [esi+14h]
- mov eax, [esi+10h]
- mov ecx, [esi+54h]
- add dl, 50h
- push edx
- add al, 50h
- mov edx, [ecx+4]
- push eax
- push edx
- push 11h
- push 1
- mov ecx, edi
- call ?Route@Asp4Topology@@QAEXHEEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar,uchar)
-
- mov ecx, [esi+54h]
- push 0
- push 0
- push 1
- mov eax, [ecx]
- push 8
- push 1
- push 0
- call dword ptr [eax+4]
-
- mov ecx, [esi+54h]
- push 56FFFFFFh
- mov edx, [ecx+4]
- mov ecx, [edi+74h]
- lea eax, ds:27800h[edx*8]
- push eax
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+54h]
- push 74FFFFFFh
- mov edx, [ecx+4]
- mov ecx, [edi+74h]
- lea eax, ds:27804h[edx*8]
- push eax
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+64h]
- mov edx, [ecx+4]
- mov ecx, [esi+54h]
- mov eax, [edx+1Ch]
- mov edx, [ecx+4]
- mov ecx, [edi+74h]
- add edx, 2740h
- shl eax, 0Ch
- shl edx, 4
- push eax
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov eax, [esi+64h]
- mov ecx, [eax+4]
- mov eax, [esi+54h]
- mov edx, [ecx+20h]
- mov ecx, [eax+4]
- shl ecx, 4
- shl edx, 0Ch
- add ecx, (offset loc_27402+2)
- push edx
- push ecx
- mov ecx, [edi+74h]
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov edx, [esi+64h]
- mov eax, [edx+4]
- mov edx, [esi+54h]
- mov ecx, [eax+24h]
- mov eax, [edx+4]
- shl eax, 4
- shl ecx, 0Ch
- add eax, offset nullsub_2
- push ecx
- mov ecx, [edi+74h]
- push eax
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+64h]
- mov edx, [ecx+4]
- mov ecx, [esi+54h]
- mov eax, [edx+28h]
- mov edx, [ecx+4]
- shl eax, 0Ch
- shl edx, 4
- push eax
- add edx, offset dword_2740C
- mov ecx, [edi+74h]
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov eax, [esi+54h]
- push 0
- mov ecx, [eax+4]
- lea edx, ds:27C00h[ecx*4]
- mov ecx, [edi+74h]
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
-
-loc_2FB41: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+4A5j
- mov ecx, [esi+38h]
- mov ebx, [esi+10h]
- mov eax, [edi+64h]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- push eax
- shl edx, 5
- add edx, ebx
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+3Ch]
- mov eax, [edi+68h]
- push eax
- mov eax, [esi+14h]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- shl edx, 5
- add edx, eax
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov eax, [esi+40h]
- test eax, eax
- jz short loc_2FBDC
-
- mov ecx, [esi+44h]
- test ecx, ecx
- jz short loc_2FBDC
-
- mov edx, [eax+8]
- mov eax, [esi+10h]
- mov ecx, [edi+64h]
- add edx, 420h
- shl edx, 5
- add edx, eax
- push ecx
- mov ecx, [edi+74h]
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+44h]
- mov ebx, [esi+14h]
- mov eax, [edi+68h]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- push eax
- shl edx, 5
- add edx, ebx
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
-
-loc_2FBDC: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+7FEj
- ; Asp4Topology::AllocSynth(CResource *)+805j
- mov ecx, [esi+38h]
- mov ebx, [esi+8]
- mov eax, [edi+64h]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- push eax
- shl edx, 5
- add edx, ebx
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+3Ch]
- mov eax, [edi+68h]
- push eax
- mov eax, [esi+0Ch]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- shl edx, 5
- add edx, eax
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov eax, [esi+40h]
- test eax, eax
- jz short loc_2FC77
-
- mov ecx, [esi+44h]
- test ecx, ecx
- jz short loc_2FC77
-
- mov edx, [eax+8]
- mov eax, [esi+8]
- mov ecx, [edi+64h]
- add edx, 420h
- shl edx, 5
- add edx, eax
- push ecx
- mov ecx, [edi+74h]
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+44h]
- mov ebx, [esi+0Ch]
- mov eax, [edi+68h]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- push eax
- shl edx, 5
- add edx, ebx
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
-
-loc_2FC77: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+899j
- ; Asp4Topology::AllocSynth(CResource *)+8A0j
- mov ecx, [esi+38h]
- mov ebx, [esi+18h]
- mov eax, [edi+64h]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- push eax
- shl edx, 5
- add edx, ebx
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+3Ch]
- mov eax, [edi+68h]
- push eax
- mov eax, [esi+1Ch]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- shl edx, 5
- add edx, eax
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov eax, [esi+40h]
- test eax, eax
- jz short loc_2FD12
-
- mov ecx, [esi+44h]
- test ecx, ecx
- jz short loc_2FD12
-
- mov edx, [eax+8]
- mov eax, [esi+18h]
- mov ecx, [edi+64h]
- add edx, 420h
- shl edx, 5
- add edx, eax
- push ecx
- mov ecx, [edi+74h]
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
- mov ecx, [esi+44h]
- mov ebx, [esi+1Ch]
- mov eax, [edi+68h]
- mov edx, [ecx+8]
- mov ecx, [edi+74h]
- add edx, 420h
- push eax
- shl edx, 5
- add edx, ebx
- shl edx, 2
- push edx
- call ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
-
-
-loc_2FD12: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+934j
- ; Asp4Topology::AllocSynth(CResource *)+93Bj
- mov eax, [edi+8Ch]
- test eax, eax
- jnz short loc_2FD26
-
- mov eax, [edi+88h]
- test eax, eax
- jz short loc_2FD72
-
-
-loc_2FD26: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+98Aj
- mov eax, [esi+28h]
- mov ecx, [esi+34h]
- push 8
- push eax
- call ?SetInputVolumeByte@CAsp4Mix@@QAEXHE@Z ; CAsp4Mix::SetInputVolumeByte(int,uchar)
-
- mov ecx, [esi+2Ch]
- push 8
- push ecx
- mov ecx, [esi+34h]
- call ?SetInputVolumeByte@CAsp4Mix@@QAEXHE@Z ; CAsp4Mix::SetInputVolumeByte(int,uchar)
-
- mov edx, [esi+20h]
- mov ecx, [esi+30h]
- push 8
- push edx
- call ?SetInputVolumeByte@CAsp4Mix@@QAEXHE@Z ; CAsp4Mix::SetInputVolumeByte(int,uchar)
-
- mov eax, [esi+24h]
- mov ecx, [esi+30h]
- push 8
- push eax
- call ?SetInputVolumeByte@CAsp4Mix@@QAEXHE@Z ; CAsp4Mix::SetInputVolumeByte(int,uchar)
-
- mov ecx, [esi+30h]
- push 8
- call ?SetVolumeByte@CAsp4Mix@@QAEXE@Z ; CAsp4Mix::SetVolumeByte(uchar)
-
- mov ecx, [esi+34h]
- push 8
- call ?SetVolumeByte@CAsp4Mix@@QAEXE@Z ; CAsp4Mix::SetVolumeByte(uchar)
-
-
-loc_2FD72: ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+994j
- mov [edi+7Ch], esi
- mov eax, esi
- pop edi
- pop esi
- pop ebp
- pop ebx
- add esp, 14h
- retn 4
-
-?AllocSynth@Asp4Topology@@QAEPAVAsp4SynthTopology@@PAVCResource@@@Z endp ; sp = -30h
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- align 10h
-
-; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
-
-
-; public: void __thiscall Asp4Topology::DeleteSynth(void)
-
-?DeleteSynth@Asp4Topology@@QAEXXZ proc near
- ; CODE XREF: CAsp4Core::SetWavetableTopology(int)+25p
- ; .text:0002564Bp
- push esi
- push edi
- mov edi, ecx
- mov esi, [edi+7Ch]
- test esi, esi
- jz short loc_2FDAB
-
- mov ecx, esi
- call ??1Asp4SynthTopology@@QAE@XZ ; Asp4SynthTopology::~Asp4SynthTopology(void)
-
- push esi
- call ??3@YAXPAX@Z ; operator delete(void *)
-
- add esp, 4
-
-loc_2FDAB: ; CODE XREF: Asp4Topology::DeleteSynth(void)+9j
- mov dword ptr [edi+7Ch], 0
- pop edi
- pop esi
- retn
-
-?DeleteSynth@Asp4Topology@@QAEXXZ endp
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- align 10h
-
-; public: static void __cdecl Asp4Topology::Appy_Handler(void *,unsigned long)
-?Appy_Handler@Asp4Topology@@SAXPAXK@Z:
- retn
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- align 10h
-
-; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
-
-
-; public: void __thiscall Asp4Topology::Route(int,unsigned char,unsigned char,unsigned char)
-
-?Route@Asp4Topology@@QAEXHEEE@Z proc near
- ; CODE XREF: Asp4Topology::MakeDefaultConnections(void)+2Ap
- ; Asp4Topology::MakeDefaultConnections(void)+75p ...
-
-arg_0 = dword ptr 8
-arg_4 = dword ptr 0Ch
-arg_8 = dword ptr 10h
-arg_C = dword ptr 14h
-
- push ebx
- mov ebx, [esp+arg_8]
- push ebp
- push esi
- push edi
- mov edi, ebx
- mov esi, ecx
- and edi, 0FFh
- mov eax, [esp+0Ch+arg_8]
- mov ecx, edi
- and ah, 0
- shl ecx, 8
- or eax, ecx
- mov [esp+0Ch+arg_8], eax
- mov edx, [esp+0Ch+arg_8]
- mov eax, [esp+0Ch+arg_C]
- and dl, 0
- and eax, 0FFh
- or edx, eax
- mov [esp+0Ch+arg_8], edx
- mov eax, [esp+0Ch+arg_0]
- test eax, eax
- jz short loc_2FE74
-
- mov ebp, [esp+0Ch+arg_4]
- lea ecx, [esp+0Ch+arg_8]
- push 1
- push ecx
- mov ecx, [esi+6Ch]
- push ebp
- call ?AddRoutes@CAsp4Adb@@QAEXEPATADBRamLink@@H@Z ; CAsp4Adb::AddRoutes(uchar,ADBRamLink *,int)
-
- cmp bl, 20h
- jb short loc_2FE4D
-
- lea edx, [edi-20h]
- cmp edx, 10h
- jge short loc_2FE4D
-
- mov eax, [esi+70h]
- sub bl, 20h
- push ebp
- push ebx
- mov ecx, [eax+0C8h]
- call ?AddWTD@CAsp4SrcBlock@@QAEHEE@Z ; CAsp4SrcBlock::AddWTD(uchar,uchar)
-
- pop edi
- pop esi
- pop ebp
- pop ebx
- retn 10h
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2FE4D: ; CODE XREF: Asp4Topology::Route(int,uchar,uchar,uchar)+59j
- ; Asp4Topology::Route(int,uchar,uchar,uchar)+61j
- cmp bl, 30h
- jb short loc_2FECE
-
- add edi, 0FFFFFFD0h
- cmp edi, 10h
- jge short loc_2FECE
-
- mov ecx, [esi+70h]
- sub bl, 30h
- push ebp
- push ebx
- mov ecx, [ecx+0C4h]
- call ?AddWTD@CAsp4Mixer@@QAEHEE@Z ; CAsp4Mixer::AddWTD(uchar,uchar)
-
- pop edi
- pop esi
- pop ebp
- pop ebx
- retn 10h
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2FE74: ; CODE XREF: Asp4Topology::Route(int,uchar,uchar,uchar)+40j
- mov eax, [esp+0Ch+arg_8]
- mov ebp, [esp+0Ch+arg_4]
- mov ecx, [esi+6Ch]
- push eax
- push eax
- push ebp
- call ?DeleteRoutes@CAsp4Adb@@QAEXETADBRamLink@@0@Z ; CAsp4Adb::DeleteRoutes(uchar,ADBRamLink,uchar)
-
- cmp bl, 20h
- jb short loc_2FEAE
-
- lea edx, [edi-20h]
- cmp edx, 10h
- jge short loc_2FEAE
-
- mov eax, [esi+70h]
- sub bl, 20h
- push ebp
- push ebx
- mov ecx, [eax+0C8h]
- call ?DeleteWTD@CAsp4SrcBlock@@QAEHEE@Z ; CAsp4SrcBlock::DeleteWTD(uchar,uchar)
-
- pop edi
- pop esi
- pop ebp
- pop ebx
- retn 10h
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_2FEAE: ; CODE XREF: Asp4Topology::Route(int,uchar,uchar,uchar)+BAj
- ; Asp4Topology::Route(int,uchar,uchar,uchar)+C2j
- cmp bl, 30h
- jb short loc_2FECE
-
- add edi, 0FFFFFFD0h
- cmp edi, 10h
- jge short loc_2FECE
-
- mov ecx, [esi+70h]
- sub bl, 30h
- push ebp
- push ebx
- mov ecx, [ecx+0C4h]
- call ?DeleteWTD@CAsp4Mixer@@QAEHEE@Z ; CAsp4Mixer::DeleteWTD(uchar,uchar)
-
-
-loc_2FECE: ; CODE XREF: Asp4Topology::Route(int,uchar,uchar,uchar)+80j
- ; Asp4Topology::Route(int,uchar,uchar,uchar)+88j ...
- pop edi
- pop esi
- pop ebp
- pop ebx
- retn 10h
-
-?Route@Asp4Topology@@QAEXHEEE@Z endp
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- align 10h
-
-
-
-
-*/
-
-/*
-
-
-
-; public: void __thiscall CWTHal::SetReg(unsigned char,int,unsigned short)
-
-?SetReg@CWTHal@@QAEXEHG@Z proc near ; CODE XREF: Asp4Synth::WTTimerCallback(ulong)+E45p
- ; Asp4Synth::WTTimerCallback(ulong)+1294p
-
-arg_0 = dword ptr 0Ch
-arg_4 = dword ptr 10h
-arg_8 = dword ptr 14h
-
- push ecx
- push esi
- mov esi, [esp+arg_4]
- cmp esi, 40h
- jge loc_54507
-
- mov eax, esi
- cdq
- and edx, 1Fh
- add eax, edx
- mov edx, esi
- sar eax, 5
- and edx, 8000001Fh
- mov byte ptr [esp+arg_4], al
- jns short loc_5448D
-
- dec edx
- or edx, 0FFFFFFE0h
- inc edx
-
-loc_5448D: ; CODE XREF: CWTHal::SetReg(uchar,int,ushort)+26j
- cmp al, 2
- mov [esp+4], dl
- jnb short loc_54507
-
- mov eax, [esp+arg_0]
- and eax, 0FFh
- sub eax, 20h
- jz short loc_544D9
-
- dec eax
- jnz short loc_54507
-
- mov eax, [esp+arg_4]
- mov edx, [esp+4]
- and eax, 0FFh
- and edx, 0FFh
- shl eax, 0Bh
- add eax, edx
- mov edx, [esp+arg_8]
- shl eax, 4
- add eax, 208h
- push edx
- push eax
- mov eax, [ecx]
- push eax
- call ?WriteWORD@CAsp4HIO@@QAGXKG@Z ; CAsp4HIO::WriteWORD(ulong,ushort)
-
- pop esi
- pop ecx
- retn 0Ch
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
-
-loc_544D9: ; CODE XREF: CWTHal::SetReg(uchar,int,ushort)+41j
- mov eax, [esp+arg_4]
- mov edx, [esp+4]
- and eax, 0FFh
- and edx, 0FFh
- shl eax, 0Bh
- add eax, edx
- mov edx, [esp+arg_8]
- shl eax, 4
- add eax, 20Ah
- push edx
- push eax
- mov eax, [ecx]
- push eax
- call ?WriteWORD@CAsp4HIO@@QAGXKG@Z ; CAsp4HIO::WriteWORD(ulong,ushort)
-
-
-loc_54507: ; CODE XREF: CWTHal::SetReg(uchar,int,ushort)+9j
- ; CWTHal::SetReg(uchar,int,ushort)+33j ...
- pop esi
- pop ecx
- retn 0Ch
-
-?SetReg@CWTHal@@QAEXEHG@Z endp
-
-; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- align 8
-
-; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
-
-
-; public: void __thiscall CWTHal::InitializeWTRegs(void)
-
-?InitializeWTRegs@CWTHal@@QAEXXZ proc near ; CODE XREF: Asp4Synth::init(void)+242p
-
-var_10 = dword ptr -10h
-var_C = dword ptr -0Ch
-var_8 = dword ptr -8
-var_4 = dword ptr -4
-
- sub esp, 10h
- push ebx
- push ebp
- push esi
- xor ebx, ebx
- push edi
- mov esi, ecx
- mov [esp+20h+var_10], ebx
- mov eax, [esp+20h+var_10]
- and al, 0E3h
- or al, 22h
- mov [esp+20h+var_10], eax
- mov ecx, [esp+20h+var_10]
- and ecx, 0FFFFFEBFh
- or cl, 80h
- mov [esp+20h+var_10], ecx
- mov edx, [esp+20h+var_10]
- or dh, 2
- mov [esp+20h+var_10], edx
- mov eax, [esp+20h+var_10]
- and al, 0FEh
- mov [esp+20h+var_10], eax
- mov ecx, [esp+20h+var_10]
- and ch, 0FBh
- or ch, 18h
- mov [esp+20h+var_10], ecx
- mov [esp+20h+var_8], ebx
- mov edx, [esp+20h+var_8]
- mov [esp+20h+var_C], edx
- mov eax, [esp+20h+var_C]
- mov [esp+20h+var_4], eax
- mov word ptr [esp+20h+var_4+2], 1000h
- mov eax, 83h
- mov word ptr [esp+20h+var_C+2], ax
- mov word ptr [esp+20h+var_8+2], ax
- xor edi, edi
- mov ebp, 2
-
-loc_54590: ; CODE XREF: CWTHal::InitializeWTRegs(void)+C9j
- push ebx
- push edi
- push 0Ch
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- mov ecx, [esp+20h+var_10]
- push ecx
- push edi
- push 0Ah
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- mov edx, [esp+20h+var_4]
- push edx
- push edi
- push 9
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- mov eax, [esp+20h+var_C]
- push eax
- push edi
- push 8
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- mov ecx, [esp+20h+var_8]
- push ecx
- push edi
- push 5
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- inc edi
- dec ebp
- jnz short loc_54590
-
- mov eax, ?g_num_hw_voices@@3HA ; int g_num_hw_voices
- xor bl, bl
- test eax, eax
- jle short loc_5463D
-
- xor edi, edi
-
-loc_545E8: ; CODE XREF: CWTHal::InitializeWTRegs(void)+12Bj
- push 0
- push edi
- push 4
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- push 0
- push edi
- push 3
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- push 0
- push edi
- push 2
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- push 0
- push edi
- push 1
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- push 0
- push edi
- push 0Bh
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- mov eax, ?g_num_hw_voices@@3HA ; int g_num_hw_voices
- inc bl
- mov byte ptr [esp+20h+var_4], bl
- mov edi, [esp+20h+var_4]
- and edi, 0FFh
- cmp edi, eax
- jl short loc_545E8
-
-
-loc_5463D: ; CODE XREF: CWTHal::InitializeWTRegs(void)+D4j
- mov edx, [esp+20h+var_10]
- or edx, 1
- mov [esp+20h+var_10], edx
- xor edi, edi
- mov ebx, 2
-
-loc_5464F: ; CODE XREF: CWTHal::InitializeWTRegs(void)+150j
- mov eax, [esp+20h+var_10]
- push eax
- push edi
- push 0Ah
- mov ecx, esi
- call ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
-
- inc edi
- dec ebx
- jnz short loc_5464F
-
- pop edi
- pop esi
- pop ebp
- pop ebx
- add esp, 10h
- retn
-
-?InitializeWTRegs@CWTHal@@QAEXXZ endp
-
-
-
-*/
Index: debian/alsa-driver/pci/au88x0/migrate
diff -u debian/alsa-driver/pci/au88x0/migrate:1.1.1.1 debian/alsa-driver/pci/au88x0/migrate:removed
--- debian/alsa-driver/pci/au88x0/migrate:1.1.1.1 Mon Oct 6 08:01:05 2003
+++ debian/alsa-driver/pci/au88x0/migrate Tue Apr 13 13:39:27 2004
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-# This script is intended to be used AFTER moving this
-# source code files into the alsa-kernel/ directory
-# to create the .c and .h stub files for THIS directory.
-# It was written for the alsa-driver tarball. If aplied
-# to the CVS tree, you may need add another "../"
-# on the include path.
-
-FILES=$(ls -1 -A $1/*.c $1/*.h)
-
-for file in $FILES
-do
- fil=$(basename $file)
- echo $file -- $fil
- echo "#define __NO_VERSION__" > $fil
- echo "#include \"../../alsa-kernel/pci/au88x0/$fil\"" >> $fil
- echo >> $fil
-done
-
Index: debian/alsa-driver/usb/usx2y/Kconfig
diff -u debian/alsa-driver/usb/usx2y/Kconfig:1.1.1.1 debian/alsa-driver/usb/usx2y/Kconfig:removed
--- debian/alsa-driver/usb/usx2y/Kconfig:1.1.1.1 Tue Nov 25 04:21:49 2003
+++ debian/alsa-driver/usb/usx2y/Kconfig Tue Apr 13 13:39:27 2004
@@ -1,6 +0,0 @@
-config SND_USB_USX2Y
- tristate "Tascam USB US-122 and US-428 driver"
- depends on SND && USB
- help
- Say 'Y' or 'M' to include support for Tascam USB US-122 and US-428.
-
Index: debian/alsa-driver/utils/Modules.dep
diff -u debian/alsa-driver/utils/Modules.dep:1.1.1.11 debian/alsa-driver/utils/Modules.dep:removed
--- debian/alsa-driver/utils/Modules.dep:1.1.1.11 Tue Feb 24 08:23:10 2004
+++ debian/alsa-driver/utils/Modules.dep Tue Apr 13 13:39:27 2004
@@ -1,28 +0,0 @@
-#
-# Extra dependencies
-#
-
-%dir linux/sound/drivers
-|snd-serialmidi snd-seq-midi
-
-%dir linux/sound/pci
-|snd-intel8x0m snd-pcm
-|snd-hdspm snd-pcm snd-seq-midi snd-hwdep
-|snd-atiixp snd-pcm
-
-%dir linux/sound/pci/pdplus
-|snd-pdplus snd-pcm
-
-%dir linux/sound/isa/msnd
-|snd-msnd-pinnacle snd-pcm snd-seq-midi
-
-%dir linux/sound/pcmcia/pdaudiocf
-|snd-pdaudiocf snd-pcm
-
-%dir linux/sound/usb/usx2y
-|snd-usb-usx2y snd-usb-audio snd-hwdep
-
-%dir linux/sound/pci/au88x0
-|snd-au8810 snd-pcm snd-ac97-codec snd-mpu401-uart
-|snd-au8820 snd-pcm snd-ac97-codec snd-mpu401-uart
-|snd-au8830 snd-pcm snd-ac97-codec snd-mpu401-uart