[Pkg-alsa-devel] [Debian ALSA CVS] debian/alsa-driver (38 files)
David B Harris
dbharris-guest@haydn.debian.org
Wed, 09 Jun 2004 16:50:49 -0600
Date: Wednesday, June 9, 2004 @ 16:50:49
Author: dbharris-guest
Path: /cvsroot/pkg-alsa/debian/alsa-driver
Modified: Makefile Rules.make alsa-kernel/core/memalloc.c
alsa-kernel/include/ac97_codec.h alsa-kernel/isa/azt2320.c
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 configure configure.in
debian/changelog drivers/serialmidi.c include/adriver.h
include/config1.h.in pci/ali5451/ali5451.c pci/cs4281.c
pci/cs46xx/cs46xx.c pci/es1968.c pci/maestro3.c
pci/nm256/nm256.c pci/trident/trident.c pci/ymfpci/ymfpci.c
Removed: acore/seq/seq.c alsa-kernel/pci/ice1712/prodigy.c
alsa-kernel/pci/ice1712/prodigy.h pci/ac97/ac97_proc.c
pci/ali5451/ali5451.patch pci/cs4281.patch
pci/cs46xx/cs46xx.patch pci/es1968.patch pci/ice1712/prodigy.c
pci/maestro3.patch pci/nm256/nm256.patch
pci/trident/trident.patch pci/ymfpci/ymfpci.patch
pcmcia/vx/vxpocket.c
New upstream release of alsa-driver, 1.0.5a
------------------------------------------+
Makefile | 7
Rules.make | 10
acore/seq/seq.c | 1
alsa-kernel/core/memalloc.c | 63 --
alsa-kernel/include/ac97_codec.h | 26 +
alsa-kernel/isa/azt2320.c | 55 --
alsa-kernel/isa/es18xx.c | 124 -----
alsa-kernel/isa/opti9xx/opti92x-ad1848.c | 72 ---
alsa-kernel/isa/sb/sb16.c | 88 ---
alsa-kernel/pci/emu10k1/emu10k1_main.c | 2
alsa-kernel/pci/emu10k1/emufx.c | 20
alsa-kernel/pci/ice1712/prodigy.c | 663 -----------------------------
alsa-kernel/pci/ice1712/prodigy.h | 67 --
configure | 198 +++++++-
configure.in | 24 -
debian/changelog | 8
drivers/serialmidi.c | 124 +++--
include/adriver.h | 25 +
include/config1.h.in | 14
pci/ac97/ac97_proc.c | 2
pci/ali5451/ali5451.c | 2
pci/ali5451/ali5451.patch | 33 -
pci/cs4281.c | 2
pci/cs4281.patch | 33 -
pci/cs46xx/cs46xx.c | 2
pci/cs46xx/cs46xx.patch | 33 -
pci/es1968.c | 2
pci/es1968.patch | 33 -
pci/ice1712/prodigy.c | 2
pci/maestro3.c | 2
pci/maestro3.patch | 33 -
pci/nm256/nm256.c | 2
pci/nm256/nm256.patch | 33 -
pci/trident/trident.c | 1
pci/trident/trident.patch | 28 -
pci/ymfpci/ymfpci.c | 2
pci/ymfpci/ymfpci.patch | 33 -
pcmcia/vx/vxpocket.c | 17
38 files changed, 445 insertions(+), 1441 deletions(-)
Index: debian/alsa-driver/Makefile
diff -u debian/alsa-driver/Makefile:1.15 debian/alsa-driver/Makefile:1.16
--- debian/alsa-driver/Makefile:1.15 Tue Apr 13 13:58:07 2004
+++ debian/alsa-driver/Makefile Wed Jun 9 16:50:47 2004
@@ -167,8 +167,8 @@
.PHONY: check-snd-prefix
check-snd-prefix:
- @ if [ x"$(DESTDIR)" = x ]; then \
- if /sbin/modprobe -c | grep -s -q snd_; then \
+ @ if [ x"$(DESTDIR)" = x -a -f /etc/modules.conf ]; then \
+ if grep -s -q snd_ /etc/modules.conf; then \
echo;\
echo " ===== WARNING =====";\
echo;\
@@ -188,9 +188,8 @@
.PHONY: clean
clean: clean1
ifdef NEW_KBUILD
- find . \( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' -o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \) -type f -print | xargs rm -f
rm -rf kbuild/.tmp_versions
- @for d in $(SUBDIRS); do if ! $(MAKE) -C $(CONFIG_SND_KERNELDIR) SUBDIRS=$(MAINSRCDIR)/$$d clean; then exit 1; fi; done
+ @for d in $(SUBDIRS); do if ! $(MAKE) -C $$d cleanup; then exit 1; fi; done
else
@for d in $(SUBDIRS); do if ! $(MAKE) -C $$d clean; then exit 1; fi; done
endif
Index: debian/alsa-driver/Rules.make
diff -u debian/alsa-driver/Rules.make:1.14 debian/alsa-driver/Rules.make:1.15
--- debian/alsa-driver/Rules.make:1.14 Sun Feb 8 22:10:32 2004
+++ debian/alsa-driver/Rules.make Wed Jun 9 16:50:47 2004
@@ -27,11 +27,19 @@
modules_install:
ifneq "$(strip $(ALL_MOBJS))" ""
mkdir -p $(DESTDIR)$(moddir)/$(MODCURDIR)
- cp $(ALL_MOBJS:.o=.ko) $(DESTDIR)$(moddir)/$(MODCURDIR)
+ cp $(sort $(ALL_MOBJS:.o=.ko)) $(DESTDIR)$(moddir)/$(MODCURDIR)
endif
@for d in $(patsubst %/,%,$(filter %/, $(obj-y))) \
$(patsubst %/,%,$(filter %/, $(obj-m))) DUMMY; do \
if [ $$d != DUMMY ]; then $(MAKE) -C $$d modules_install; fi; \
+ done
+
+# apply patches beforehand
+cleanup:
+ rm -f *.[oas] *.ko .*.cmd .*.d .*.tmp *.mod.c $(clean-files)
+ @for d in $(patsubst %/,%,$(filter %/, $(obj-y))) \
+ $(patsubst %/,%,$(filter %/, $(obj-m))) DUMMY; do \
+ if [ $$d != DUMMY ]; then $(MAKE) -C $$d cleanup; fi; \
done
else
Index: debian/alsa-driver/acore/seq/seq.c
diff -u debian/alsa-driver/acore/seq/seq.c:1.1.1.1 debian/alsa-driver/acore/seq/seq.c:removed
--- debian/alsa-driver/acore/seq/seq.c:1.1.1.1 Sat Dec 22 12:53:30 2001
+++ debian/alsa-driver/acore/seq/seq.c Wed Jun 9 16:50:49 2004
@@ -1 +0,0 @@
-#include "../../alsa-kernel/core/seq/seq.c"
Index: debian/alsa-driver/alsa-kernel/core/memalloc.c
diff -u debian/alsa-driver/alsa-kernel/core/memalloc.c:1.14 debian/alsa-driver/alsa-kernel/core/memalloc.c:1.15
--- debian/alsa-driver/alsa-kernel/core/memalloc.c:1.14 Tue Apr 13 13:39:25 2004
+++ debian/alsa-driver/alsa-kernel/core/memalloc.c Wed Jun 9 16:50:47 2004
@@ -29,6 +29,7 @@
#include <linux/slab.h>
#include <linux/mm.h>
#include <linux/dma-mapping.h>
+#include <linux/moduleparam.h>
#include <asm/semaphore.h>
#include <sound/memalloc.h>
#ifdef CONFIG_SBUS
@@ -44,9 +45,14 @@
#ifndef SNDRV_CARDS
#define SNDRV_CARDS 8
#endif
+
+/* FIXME: so far only some PCI devices have the preallocation table */
+#ifdef CONFIG_PCI
static int enable[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS-1)] = 1};
-MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+static int boot_devs;
+module_param_array(enable, bool, boot_devs, 0444);
MODULE_PARM_DESC(enable, "Enable cards to allocate buffers.");
+#endif
/*
*/
@@ -89,32 +95,7 @@
* 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__)
-
/*
* A hack to allocate large buffers via dma_alloc_coherent()
*
@@ -135,14 +116,17 @@
dma_addr_t *dma_handle, int flags)
{
void *ret;
- u64 dma_mask;
+ u64 dma_mask, coherent_dma_mask;
if (dev == NULL || !dev->dma_mask)
return dma_alloc_coherent(dev, size, dma_handle, flags);
dma_mask = *dev->dma_mask;
+ coherent_dma_mask = dev->coherent_dma_mask;
*dev->dma_mask = 0xffffffff; /* do without masking */
+ dev->coherent_dma_mask = 0xffffffff; /* do without masking */
ret = dma_alloc_coherent(dev, size, dma_handle, flags);
*dev->dma_mask = dma_mask; /* restore */
+ dev->coherent_dma_mask = coherent_dma_mask; /* restore */
if (ret) {
/* obtained address is out of range? */
if (((unsigned long)*dma_handle + size - 1) & ~dma_mask) {
@@ -152,8 +136,12 @@
}
} else {
/* wish to success now with the proper mask... */
- if (dma_mask != 0xffffffffUL)
+ if (dma_mask != 0xffffffffUL) {
+ /* allocation with GFP_ATOMIC to avoid the long stall */
+ flags &= ~GFP_KERNEL;
+ flags |= GFP_ATOMIC;
ret = dma_alloc_coherent(dev, size, dma_handle, flags);
+ }
}
return ret;
}
@@ -841,25 +829,6 @@
module_init(snd_mem_init)
module_exit(snd_mem_exit)
-
-#ifndef MODULE
-
-/* format is: snd-page-alloc=enable */
-
-static int __init snd_mem_setup(char *str)
-{
- static unsigned __initdata nr_dev = 0;
-
- if (nr_dev >= SNDRV_CARDS)
- return 0;
- (void)(get_option(&str,&enable[nr_dev]) == 2);
- nr_dev++;
- return 1;
-}
-
-__setup("snd-page-alloc=", snd_mem_setup);
-
-#endif
/*
* exports
Index: debian/alsa-driver/alsa-kernel/include/ac97_codec.h
diff -u debian/alsa-driver/alsa-kernel/include/ac97_codec.h:1.10 debian/alsa-driver/alsa-kernel/include/ac97_codec.h:1.11
--- debian/alsa-driver/alsa-kernel/include/ac97_codec.h:1.10 Tue Apr 13 13:39:25 2004
+++ debian/alsa-driver/alsa-kernel/include/ac97_codec.h Wed Jun 9 16:50:48 2004
@@ -51,7 +51,7 @@
#define AC97_REC_GAIN_MIC 0x1e /* Record Gain MIC (optional) */
#define AC97_GENERAL_PURPOSE 0x20 /* General Purpose (optional) */
#define AC97_3D_CONTROL 0x22 /* 3D Control (optional) */
-#define AC97_RESERVED 0x24 /* Reserved */
+#define AC97_INT_PAGING 0x24 /* Audio Interrupt & Paging (AC'97 2.3) */
#define AC97_POWERDOWN 0x26 /* Powerdown control / status */
/* range 0x28-0x3a - AUDIO AC'97 2.0 extensions */
#define AC97_EXTENDED_ID 0x28 /* Extended Audio ID */
@@ -82,6 +82,13 @@
/* range 0x5a-0x7b - Vendor Specific */
#define AC97_VENDOR_ID1 0x7c /* Vendor ID1 */
#define AC97_VENDOR_ID2 0x7e /* Vendor ID2 / revision */
+/* range 0x60-0x6f (page 1) - extended codec registers */
+#define AC97_CODEC_CLASS_REV 0x60 /* Codec Class/Revision */
+#define AC97_PCI_SVID 0x62 /* PCI Subsystem Vendor ID */
+#define AC97_PCI_SID 0x64 /* PCI Subsystem ID */
+#define AC97_FUNC_SELECT 0x66 /* Function Select */
+#define AC97_FUNC_INFO 0x68 /* Function Information */
+#define AC97_SENSE_INFO 0x6a /* Sense Details */
/* slot allocation */
#define AC97_SLOT_TAG 0
@@ -139,6 +146,7 @@
#define AC97_EI_AMAP 0x0200 /* indicates optional slot/DAC mapping based on codec ID */
#define AC97_EI_REV_MASK 0x0c00 /* AC'97 revision mask */
#define AC97_EI_REV_22 0x0400 /* AC'97 revision 2.2 */
+#define AC97_EI_REV_23 0x0800 /* AC'97 revision 2.3 */
#define AC97_EI_REV_SHIFT 10
#define AC97_EI_ADDR_MASK 0xc000 /* physical codec ID (address) */
#define AC97_EI_ADDR_SHIFT 14
@@ -180,6 +188,16 @@
#define AC97_SC_DRS 0x4000 /* Double Rate S/PDIF */
#define AC97_SC_V 0x8000 /* Validity status */
+/* Interrupt and Paging bit defines (AC'97 2.3) */
+#define AC97_PAGE_MASK 0x000f /* Page Selector */
+#define AC97_PAGE_VENDOR 0 /* Vendor-specific registers */
+#define AC97_PAGE_1 1 /* Extended Codec Registers page 1 */
+#define AC97_INT_ENABLE 0x0800 /* Interrupt Enable */
+#define AC97_INT_SENSE 0x1000 /* Sense Cycle */
+#define AC97_INT_CAUSE_SENSE 0x2000 /* Sense Cycle Completed (RO) */
+#define AC97_INT_CAUSE_GPIO 0x4000 /* GPIO bits changed (RO) */
+#define AC97_INT_STATUS 0x8000 /* Interrupt Status */
+
/* extended modem ID bit defines */
#define AC97_MEI_LINE1 0x0001 /* Line1 present */
#define AC97_MEI_LINE2 0x0002 /* Line2 present */
@@ -423,6 +441,7 @@
unsigned short subsystem_vendor;
unsigned short subsystem_device;
spinlock_t reg_lock;
+ struct semaphore mutex; /* mutex for AD18xx multi-codecs and paging (2.3) */
unsigned short num; /* number of codec: 0 = primary, 1 = secondary */
unsigned short addr; /* physical address of codec [0-3] */
unsigned int id; /* identification of codec */
@@ -443,7 +462,6 @@
unsigned short id[3]; // codec IDs (lower 16-bit word)
unsigned short pcmreg[3]; // PCM registers
unsigned short codec_cfg[3]; // CODEC_CFG bits
- struct semaphore mutex;
} ad18xx;
unsigned int dev_flags; /* device specific */
} spec;
@@ -465,6 +483,10 @@
static inline int ac97_can_amap(ac97_t * ac97)
{
return (ac97->ext_id & AC97_EI_AMAP) != 0;
+}
+static inline int ac97_can_spdif(ac97_t * ac97)
+{
+ return (ac97->ext_id & AC97_EI_SPDIF) != 0;
}
/* functions */
Index: debian/alsa-driver/alsa-kernel/isa/azt2320.c
diff -u debian/alsa-driver/alsa-kernel/isa/azt2320.c:1.8 debian/alsa-driver/alsa-kernel/isa/azt2320.c:1.9
--- debian/alsa-driver/alsa-kernel/isa/azt2320.c:1.8 Tue Feb 3 11:36:41 2004
+++ debian/alsa-driver/alsa-kernel/isa/azt2320.c Wed Jun 9 16:50:48 2004
@@ -36,8 +36,8 @@
#include <linux/time.h>
#include <linux/wait.h>
#include <linux/pnp.h>
+#include <linux/moduleparam.h>
#include <sound/core.h>
-#define SNDRV_GET_ID
#include <sound/initval.h>
#include <sound/cs4231.h>
#include <sound/mpu401.h>
@@ -68,38 +68,39 @@
static int mpu_irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* Pnp setup */
static int dma1[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* PnP setup */
static int dma2[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* PnP setup */
+static int boot_devs;
-MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(index, int, boot_devs, 0444);
MODULE_PARM_DESC(index, "Index value for azt2320 based soundcard.");
MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
-MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
+module_param_array(id, charp, boot_devs, 0444);
MODULE_PARM_DESC(id, "ID string for azt2320 based soundcard.");
MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
-MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(enable, bool, boot_devs, 0444);
MODULE_PARM_DESC(enable, "Enable azt2320 based soundcard.");
MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
-MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(port, long, boot_devs, 0444);
MODULE_PARM_DESC(port, "Port # for azt2320 driver.");
MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
-MODULE_PARM(wss_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(wss_port, long, boot_devs, 0444);
MODULE_PARM_DESC(wss_port, "WSS Port # for azt2320 driver.");
MODULE_PARM_SYNTAX(wss_port, SNDRV_PORT12_DESC);
-MODULE_PARM(mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(mpu_port, long, boot_devs, 0444);
MODULE_PARM_DESC(mpu_port, "MPU-401 port # for azt2320 driver.");
MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
-MODULE_PARM(fm_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(fm_port, long, boot_devs, 0444);
MODULE_PARM_DESC(fm_port, "FM port # for azt2320 driver.");
MODULE_PARM_SYNTAX(fm_port, SNDRV_PORT12_DESC);
-MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(irq, int, boot_devs, 0444);
MODULE_PARM_DESC(irq, "IRQ # for azt2320 driver.");
MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
-MODULE_PARM(mpu_irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(mpu_irq, int, boot_devs, 0444);
MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for azt2320 driver.");
MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
-MODULE_PARM(dma1, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(dma1, int, boot_devs, 0444);
MODULE_PARM_DESC(dma1, "1st DMA # for azt2320 driver.");
MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
-MODULE_PARM(dma2, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(dma2, int, boot_devs, 0444);
MODULE_PARM_DESC(dma2, "2nd DMA # for azt2320 driver.");
MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
@@ -378,33 +379,3 @@
module_init(alsa_card_azt2320_init)
module_exit(alsa_card_azt2320_exit)
-
-#ifndef MODULE
-
-/* format is: snd-azt2320=enable,index,id,port,
- wss_port,mpu_port,fm_port,
- irq,mpu_irq,dma1,dma2 */
-
-static int __init alsa_card_azt2320_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 &&
- get_option_long(&str,&port[nr_dev]) == 2 &&
- get_option_long(&str,&wss_port[nr_dev]) == 2 &&
- get_option_long(&str,&mpu_port[nr_dev]) == 2 &&
- get_option(&str,&irq[nr_dev]) == 2 &&
- get_option(&str,&mpu_irq[nr_dev]) == 2 &&
- get_option(&str,&dma1[nr_dev]) == 2 &&
- get_option(&str,&dma2[nr_dev]) == 2);
- nr_dev++;
- return 1;
-}
-
-__setup("snd-azt2320=", alsa_card_azt2320_setup);
-
-#endif /* ifndef MODULE */
Index: debian/alsa-driver/alsa-kernel/isa/es18xx.c
diff -u debian/alsa-driver/alsa-kernel/isa/es18xx.c:1.5 debian/alsa-driver/alsa-kernel/isa/es18xx.c:1.6
--- debian/alsa-driver/alsa-kernel/isa/es18xx.c:1.5 Tue Apr 13 13:39:25 2004
+++ debian/alsa-driver/alsa-kernel/isa/es18xx.c Wed Jun 9 16:50:48 2004
@@ -72,6 +72,7 @@
#include <linux/slab.h>
#include <linux/pnp.h>
#include <linux/isapnp.h>
+#include <linux/moduleparam.h>
#include <sound/core.h>
#include <sound/control.h>
#include <sound/pcm.h>
@@ -81,7 +82,6 @@
#define SNDRV_LEGACY_AUTO_PROBE
#define SNDRV_LEGACY_FIND_FREE_IRQ
#define SNDRV_LEGACY_FIND_FREE_DMA
-#define SNDRV_GET_ID
#include <sound/initval.h>
#define PFX "es18xx: "
@@ -124,7 +124,6 @@
spinlock_t mixer_lock;
spinlock_t ctrl_lock;
#ifdef CONFIG_PM
- struct pm_dev *pm_dev;
unsigned char pm_reg;
#endif
};
@@ -1610,12 +1609,9 @@
/* Power Management support functions */
#ifdef CONFIG_PM
-static void snd_es18xx_suspend(es18xx_t *chip)
+static int snd_es18xx_suspend(snd_card_t *card, unsigned int state)
{
- snd_card_t *card = chip->card;
-
- if (card->power_state == SNDRV_CTL_POWER_D3hot)
- return;
+ es18xx_t *chip = snd_magic_cast(es18xx_t, card->pm_private_data, return -EINVAL);
snd_pcm_suspend_all(chip->pcm);
@@ -1626,63 +1622,23 @@
snd_es18xx_write(chip, ES18XX_PM, chip->pm_reg ^= ES18XX_PM_SUS);
snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
+ return 0;
}
-static void snd_es18xx_resume(es18xx_t *chip)
+static int snd_es18xx_resume(snd_card_t *card, unsigned int state)
{
- snd_card_t *card = chip->card;
-
- if (card->power_state == SNDRV_CTL_POWER_D0)
- return;
+ es18xx_t *chip = snd_magic_cast(es18xx_t, card->pm_private_data, return -EINVAL);
/* restore PM register, we won't wake till (not 0x07) i/o activity though */
snd_es18xx_write(chip, ES18XX_PM, chip->pm_reg ^= ES18XX_PM_FM);
snd_power_change_state(card, SNDRV_CTL_POWER_D0);
-}
-
-/* callback for control API */
-static int snd_es18xx_set_power_state(snd_card_t *card, unsigned int power_state)
-{
- es18xx_t *chip = (es18xx_t *) card->power_state_private_data;
- switch (power_state) {
- case SNDRV_CTL_POWER_D0:
- case SNDRV_CTL_POWER_D1:
- case SNDRV_CTL_POWER_D2:
- snd_es18xx_resume(chip);
- break;
- case SNDRV_CTL_POWER_D3hot:
- case SNDRV_CTL_POWER_D3cold:
- snd_es18xx_suspend(chip);
- break;
- default:
- return -EINVAL;
- }
- return 0;
-}
-
-static int snd_es18xx_pm_callback(struct pm_dev *dev, pm_request_t rqst, void *data)
-{
- es18xx_t *chip = snd_magic_cast(es18xx_t, dev->data, return 0);
-
- switch (rqst) {
- case PM_SUSPEND:
- snd_es18xx_suspend(chip);
- break;
- case PM_RESUME:
- snd_es18xx_resume(chip);
- break;
- }
return 0;
}
#endif /* CONFIG_PM */
static int snd_es18xx_free(es18xx_t *chip)
{
-#ifdef CONFIG_PM
- if (chip->pm_dev)
- pm_unregister(chip->pm_dev);
-#endif
if (chip->res_port) {
release_resource(chip->res_port);
kfree_nocheck(chip->res_port);
@@ -1900,37 +1856,38 @@
static int irq[SNDRV_CARDS] = SNDRV_DEFAULT_IRQ; /* 5,7,9,10 */
static int dma1[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3 */
static int dma2[SNDRV_CARDS] = SNDRV_DEFAULT_DMA; /* 0,1,3 */
+static int boot_devs;
-MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(index, int, boot_devs, 0444);
MODULE_PARM_DESC(index, "Index value for ES18xx soundcard.");
MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
-MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
+module_param_array(id, charp, boot_devs, 0444);
MODULE_PARM_DESC(id, "ID string for ES18xx soundcard.");
MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
-MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(enable, bool, boot_devs, 0444);
MODULE_PARM_DESC(enable, "Enable ES18xx soundcard.");
MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
#ifdef CONFIG_PNP
-MODULE_PARM(isapnp, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(isapnp, bool, boot_devs, 0444);
MODULE_PARM_DESC(isapnp, "PnP detection for specified soundcard.");
MODULE_PARM_SYNTAX(isapnp, SNDRV_ISAPNP_DESC);
#endif
-MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(port, long, boot_devs, 0444);
MODULE_PARM_DESC(port, "Port # for ES18xx driver.");
MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0x220,0x280,0x20}},prefers:{0x220},base:16,dialog:list");
-MODULE_PARM(mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(mpu_port, long, boot_devs, 0444);
MODULE_PARM_DESC(mpu_port, "MPU-401 port # for ES18xx driver.");
MODULE_PARM_SYNTAX(mpu_port, SNDRV_ENABLED ",allows:{{0x300,0x330,0x30},{0x800,0xffe,0x2}},prefers:{0x330,0x300},base:16,dialog:combo");
-MODULE_PARM(fm_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(fm_port, long, boot_devs, 0444);
MODULE_PARM_DESC(fm_port, "FM port # for ES18xx driver.");
MODULE_PARM_SYNTAX(fm_port, SNDRV_ENABLED ",allows:{{0x388},{0x800,0xffc,0x4}},prefers:{0x388},base:16,dialog:combo");
-MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(irq, int, boot_devs, 0444);
MODULE_PARM_DESC(irq, "IRQ # for ES18xx driver.");
MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC ",prefers:{5}");
-MODULE_PARM(dma1, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(dma1, int, boot_devs, 0444);
MODULE_PARM_DESC(dma1, "DMA 1 # for ES18xx driver.");
MODULE_PARM_SYNTAX(dma1, SNDRV_DMA8_DESC ",prefers:{1}");
-MODULE_PARM(dma2, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(dma2, int, boot_devs, 0444);
MODULE_PARM_DESC(dma2, "DMA 2 # for ES18xx driver.");
MODULE_PARM_SYNTAX(dma2, SNDRV_ENABLED ",allows:{{0},{1},{3},{5}},dialog:list,prefers:{0}");
@@ -2149,16 +2106,9 @@
chip->rmidi = rmidi;
}
-#ifdef CONFIG_PM
/* Power Management */
- chip->pm_dev = pm_register(PM_ISA_DEV, 0, snd_es18xx_pm_callback);
- if (chip->pm_dev) {
- chip->pm_dev->data = chip;
- /* set control api callback */
- card->set_power_state = snd_es18xx_set_power_state;
- card->power_state_private_data = chip;
- }
-#endif
+ snd_card_set_isa_pm_callback(card, snd_es18xx_suspend, snd_es18xx_resume, chip);
+
if ((err = snd_card_register(card)) < 0) {
snd_card_free(card);
return err;
@@ -2283,39 +2233,3 @@
module_init(alsa_card_es18xx_init)
module_exit(alsa_card_es18xx_exit)
-
-
-#ifndef MODULE
-
-/* format is: snd-es18xx=enable,index,id,isapnp,
- port,mpu_port,fm_port,irq,
- dma1,dma2 */
-
-static int __init alsa_card_es18xx_setup(char *str)
-{
- static unsigned __initdata nr_dev = 0;
- int __attribute__ ((__unused__)) pnp = INT_MAX;
-
- 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 &&
- get_option(&str,&pnp) == 2 &&
- get_option_long(&str,&port[nr_dev]) == 2 &&
- get_option_long(&str,&mpu_port[nr_dev]) == 2 &&
- get_option_long(&str,&fm_port[nr_dev]) == 2 &&
- get_option(&str,&irq[nr_dev]) == 2 &&
- get_option(&str,&dma1[nr_dev]) == 2 &&
- get_option(&str,&dma2[nr_dev]) == 2);
-#ifdef CONFIG_PNP
- if (pnp != INT_MAX)
- isapnp[nr_dev] = pnp;
-#endif
- nr_dev++;
- return 1;
-}
-
-__setup("snd-es18xx=", alsa_card_es18xx_setup);
-
-#endif /* ifndef MODULE */
Index: debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c
diff -u debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c:1.9 debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c:1.10
--- debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c:1.9 Tue Apr 13 13:39:25 2004
+++ debian/alsa-driver/alsa-kernel/isa/opti9xx/opti92x-ad1848.c Wed Jun 9 16:50:48 2004
@@ -30,6 +30,7 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/pnp.h>
+#include <linux/moduleparam.h>
#include <sound/core.h>
#ifdef CS4231
#include <sound/cs4231.h>
@@ -48,7 +49,6 @@
#endif
#define SNDRV_LEGACY_FIND_FREE_IRQ
#define SNDRV_LEGACY_FIND_FREE_DMA
-#define SNDRV_GET_ID
#include <sound/initval.h>
MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
@@ -84,38 +84,38 @@
static int dma2 = SNDRV_DEFAULT_DMA1; /* 0,1,3 */
#endif /* CS4231 || OPTi93X */
-MODULE_PARM(index, "i");
+module_param(index, int, 0444);
MODULE_PARM_DESC(index, "Index value for opti9xx based soundcard.");
MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
-MODULE_PARM(id, "s");
+module_param(id, charp, 0444);
MODULE_PARM_DESC(id, "ID string for opti9xx based soundcard.");
MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
-//MODULE_PARM(enable, "i");
+//module_param(enable, bool, 0444);
//MODULE_PARM_DESC(enable, "Enable opti9xx soundcard.");
//MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
-MODULE_PARM(isapnp, "i");
+module_param(isapnp, bool, 0444);
MODULE_PARM_DESC(isapnp, "Enable ISA PnP detection for specified soundcard.");
MODULE_PARM_SYNTAX(isapnp, SNDRV_ISAPNP_DESC);
-MODULE_PARM(port, "l");
+module_param(port, long, 0444);
MODULE_PARM_DESC(port, "WSS port # for opti9xx driver.");
MODULE_PARM_SYNTAX(port, SNDRV_PORT_DESC);
-MODULE_PARM(mpu_port, "l");
+module_param(mpu_port, long, 0444);
MODULE_PARM_DESC(mpu_port, "MPU-401 port # for opti9xx driver.");
MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT_DESC);
-MODULE_PARM(fm_port, "l");
+module_param(fm_port, long, 0444);
MODULE_PARM_DESC(fm_port, "FM port # for opti9xx driver.");
MODULE_PARM_SYNTAX(fm_port, SNDRV_PORT_DESC);
-MODULE_PARM(irq, "i");
+module_param(irq, int, 0444);
MODULE_PARM_DESC(irq, "WSS irq # for opti9xx driver.");
MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
-MODULE_PARM(mpu_irq, "i");
+module_param(mpu_irq, int, 0444);
MODULE_PARM_DESC(mpu_irq, "MPU-401 irq # for opti9xx driver.");
MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
-MODULE_PARM(dma1, "i");
+module_param(dma1, int, 0444);
MODULE_PARM_DESC(dma1, "1st dma # for opti9xx driver.");
MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
#if defined(CS4231) || defined(OPTi93X)
-MODULE_PARM(dma2, "i");
+module_param(dma2, int, 0444);
MODULE_PARM_DESC(dma2, "2nd dma # for opti9xx driver.");
MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
#endif /* CS4231 || OPTi93X */
@@ -602,7 +602,11 @@
#endif /* CS4231 || OPTi93X */
spin_lock_irqsave(&chip->lock, flags);
+#ifndef OPTi93X
+ outb(irq_bits << 3 | dma_bits, chip->wss_base);
+#else /* OPTi93X */
snd_opti9xx_write(chip, OPTi9XX_MC_REG(3), (irq_bits << 3 | dma_bits));
+#endif /* OPTi93X */
spin_unlock_irqrestore(&chip->lock, flags);
__skip_resources:
@@ -2253,47 +2257,3 @@
module_init(alsa_card_opti9xx_init)
module_exit(alsa_card_opti9xx_exit)
-
-#ifndef MODULE
-
-/* format is: snd-opti9xx=enable,index,id,isapnp,
- port,mpu_port,fm_port,
- irq,mpu_irq,
- dma1,[dma2] */
-
-static int __init alsa_card_opti9xx_setup(char *str)
-{
- int __attribute__ ((__unused__)) enable = 1;
- int __attribute__ ((__unused__)) pnp = INT_MAX;
-
- (void)(get_option(&str,&enable) == 2 &&
- get_option(&str,&index) == 2 &&
- get_id(&str,&id) == 2 &&
- get_option(&str,&pnp) == 2 &&
- get_option_long(&str,&port) == 2 &&
- get_option_long(&str,&mpu_port) == 2 &&
- get_option_long(&str,&fm_port) == 2 &&
- get_option(&str,&irq) == 2 &&
- get_option(&str,&mpu_irq) == 2 &&
- get_option(&str,&dma1) == 2
-#if defined(CS4231) || defined(OPTi93X)
- &&
- get_option(&str,&dma2) == 2
-#endif
- );
-#ifdef CONFIG_PNP
- if (pnp != INT_MAX)
- isapnp = pnp;
-#endif
- return 1;
-}
-
-#if defined(OPTi93X)
-__setup("snd-opti93x=", alsa_card_opti9xx_setup);
-#elif defined(CS4231)
-__setup("snd-opti92x-cs4231=", alsa_card_opti9xx_setup);
-#else
-__setup("snd-opti92x-ad1848=", alsa_card_opti9xx_setup);
-#endif
-
-#endif /* ifndef MODULE */
Index: debian/alsa-driver/alsa-kernel/isa/sb/sb16.c
diff -u debian/alsa-driver/alsa-kernel/isa/sb/sb16.c:1.9 debian/alsa-driver/alsa-kernel/isa/sb/sb16.c:1.10
--- debian/alsa-driver/alsa-kernel/isa/sb/sb16.c:1.9 Tue Apr 13 13:39:25 2004
+++ debian/alsa-driver/alsa-kernel/isa/sb/sb16.c Wed Jun 9 16:50:48 2004
@@ -24,6 +24,7 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/pnp.h>
+#include <linux/moduleparam.h>
#include <sound/core.h>
#include <sound/sb.h>
#include <sound/sb16_csp.h>
@@ -34,7 +35,6 @@
#define SNDRV_LEGACY_AUTO_PROBE
#define SNDRV_LEGACY_FIND_FREE_IRQ
#define SNDRV_LEGACY_FIND_FREE_DMA
-#define SNDRV_GET_ID
#include <sound/initval.h>
#define chip_t sb_t
@@ -92,54 +92,55 @@
#ifdef SNDRV_SBAWE_EMU8000
static int seq_ports[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 4};
#endif
+static int boot_devs;
-MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(index, int, boot_devs, 0444);
MODULE_PARM_DESC(index, "Index value for SoundBlaster 16 soundcard.");
MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
-MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
+module_param_array(id, charp, boot_devs, 0444);
MODULE_PARM_DESC(id, "ID string for SoundBlaster 16 soundcard.");
MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
-MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(enable, bool, boot_devs, 0444);
MODULE_PARM_DESC(enable, "Enable SoundBlaster 16 soundcard.");
MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
#ifdef CONFIG_PNP
-MODULE_PARM(isapnp, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(isapnp, bool, boot_devs, 0444);
MODULE_PARM_DESC(isapnp, "PnP detection for specified soundcard.");
MODULE_PARM_SYNTAX(isapnp, SNDRV_ISAPNP_DESC);
#endif
-MODULE_PARM(port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(port, long, boot_devs, 0444);
MODULE_PARM_DESC(port, "Port # for SB16 driver.");
MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0x220},{0x240},{0x260},{0x280}},dialog:list");
-MODULE_PARM(mpu_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(mpu_port, long, boot_devs, 0444);
MODULE_PARM_DESC(mpu_port, "MPU-401 port # for SB16 driver.");
MODULE_PARM_SYNTAX(mpu_port, SNDRV_ENABLED ",allows:{{0x330},{0x300}},dialog:list");
-MODULE_PARM(fm_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(fm_port, long, boot_devs, 0444);
MODULE_PARM_DESC(fm_port, "FM port # for SB16 PnP driver.");
MODULE_PARM_SYNTAX(fm_port, SNDRV_ENABLED ",allows:{{0x388},{0x38c},{0x390},{0x394}},dialog:list");
#ifdef SNDRV_SBAWE_EMU8000
-MODULE_PARM(awe_port, "1-" __MODULE_STRING(SNDRV_CARDS) "l");
+module_param_array(awe_port, long, boot_devs, 0444);
MODULE_PARM_DESC(awe_port, "AWE port # for SB16 PnP driver.");
MODULE_PARM_SYNTAX(awe_port, SNDRV_ENABLED ",allows:{{0x620},{0x640},{0x660},{0x680}},dialog:list");
#endif
-MODULE_PARM(irq, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(irq, int, boot_devs, 0444);
MODULE_PARM_DESC(irq, "IRQ # for SB16 driver.");
MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
-MODULE_PARM(dma8, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(dma8, int, boot_devs, 0444);
MODULE_PARM_DESC(dma8, "8-bit DMA # for SB16 driver.");
MODULE_PARM_SYNTAX(dma8, SNDRV_DMA8_DESC);
-MODULE_PARM(dma16, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(dma16, int, boot_devs, 0444);
MODULE_PARM_DESC(dma16, "16-bit DMA # for SB16 driver.");
MODULE_PARM_SYNTAX(dma16, SNDRV_DMA16_DESC);
-MODULE_PARM(mic_agc, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(mic_agc, int, boot_devs, 0444);
MODULE_PARM_DESC(mic_agc, "Mic Auto-Gain-Control switch.");
MODULE_PARM_SYNTAX(mic_agc, SNDRV_ENABLED "," SNDRV_BOOLEAN_TRUE_DESC);
#ifdef CONFIG_SND_SB16_CSP
-MODULE_PARM(csp, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(csp, int, boot_devs, 0444);
MODULE_PARM_DESC(csp, "ASP/CSP chip support.");
MODULE_PARM_SYNTAX(csp, SNDRV_ENABLED "," SNDRV_ENABLE_DESC);
#endif
#ifdef SNDRV_SBAWE_EMU8000
-MODULE_PARM(seq_ports, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(seq_ports, int, boot_devs, 0444);
MODULE_PARM_DESC(seq_ports, "Number of sequencer ports for WaveTable synth.");
MODULE_PARM_SYNTAX(seq_ports, SNDRV_ENABLED ",allows:{{0,8}},skill:advanced");
#endif
@@ -691,60 +692,3 @@
module_init(alsa_card_sb16_init)
module_exit(alsa_card_sb16_exit)
-
-#ifndef MODULE
-
-/* format is: snd-sb16=enable,index,id,isapnp,
- port,mpu_port,fm_port,
- irq,dma8,dma16,
- mic_agc,csp,
- [awe_port,seq_ports] */
-
-static int __init alsa_card_sb16_setup(char *str)
-{
- static unsigned __initdata nr_dev = 0;
- int __attribute__ ((__unused__)) pnp = INT_MAX;
- int __attribute__ ((__unused__)) xcsp = INT_MAX;
-
- 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 &&
- get_option(&str,&pnp) == 2 &&
- get_option_long(&str,&port[nr_dev]) == 2 &&
- get_option_long(&str,&mpu_port[nr_dev]) == 2 &&
- get_option_long(&str,&fm_port[nr_dev]) == 2 &&
- get_option(&str,&irq[nr_dev]) == 2 &&
- get_option(&str,&dma8[nr_dev]) == 2 &&
- get_option(&str,&dma16[nr_dev]) == 2 &&
- get_option(&str,&mic_agc[nr_dev]) == 2
-#ifdef CONFIG_SND_SB16_CSP
- &&
- get_option(&str,&xcsp) == 2
-#endif
-#ifdef SNDRV_SBAWE_EMU8000
- &&
- get_option_long(&str,&awe_port[nr_dev]) == 2 &&
- get_option(&str,&seq_ports[nr_dev]) == 2
-#endif
- );
-#ifdef CONFIG_PNP
- if (pnp != INT_MAX)
- isapnp[nr_dev] = pnp;
-#endif
-#ifdef CONFIG_SND_SB16_CSP
- if (xcsp != INT_MAX)
- csp[nr_dev] = xcsp;
-#endif
- nr_dev++;
- return 1;
-}
-
-#ifndef SNDRV_SBAWE_EMU8000
-__setup("snd-sb16=", alsa_card_sb16_setup);
-#else
-__setup("snd-sbawe=", alsa_card_sb16_setup);
-#endif
-
-#endif /* ifndef MODULE */
Index: debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c
diff -u debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c:1.9 debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c:1.10
--- debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c:1.9 Tue Apr 13 13:39:26 2004
+++ debian/alsa-driver/alsa-kernel/pci/emu10k1/emu10k1_main.c Wed Jun 9 16:50:48 2004
@@ -690,7 +690,7 @@
if (extin_mask == 0)
extin_mask = 0x3fcf;
if (extout_mask == 0)
- extout_mask = 0x1fff;
+ extout_mask = 0x7fff;
emu->fx8010.extin_mask = extin_mask;
emu->fx8010.extout_mask = extout_mask;
Index: debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c
diff -u debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c:1.14 debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c:1.15
--- debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c:1.14 Tue Apr 13 13:39:26 2004
+++ debian/alsa-driver/alsa-kernel/pci/emu10k1/emufx.c Wed Jun 9 16:50:48 2004
@@ -120,8 +120,8 @@
/* 0x0a */ "PCM Capture Left",
/* 0x0b */ "PCM Capture Right",
/* 0x0c */ "MIC Capture",
- /* 0x0d */ NULL,
- /* 0x0e */ NULL,
+ /* 0x0d */ "AC97 Surround Left",
+ /* 0x0e */ "AC97 Surround Right",
/* 0x0f */ NULL,
/* 0x10 */ NULL,
/* 0x11 */ "Analog Center",
@@ -2113,22 +2113,26 @@
for (z = 0; z < 2; z++)
OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_REAR_L + z), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 2 + z), C_00000000, C_00000000);
- if (emu->fx8010.extout_mask & (1<<EXTOUT_CENTER)) {
+ if (emu->fx8010.extout_mask & ((1<<EXTOUT_AC97_REAR_L)|(1<<EXTOUT_AC97_REAR_R)))
+ for (z = 0; z < 2; z++)
+ OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_AC97_REAR_L + z), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 2 + z), C_00000000, C_00000000);
+
+ if (emu->fx8010.extout_mask & (1<<EXTOUT_AC97_CENTER)) {
#ifndef EMU10K1_CENTER_LFE_FROM_FRONT
- OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_CENTER), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 4), C_00000000, C_00000000);
+ OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_AC97_CENTER), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 4), C_00000000, C_00000000);
OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_ACENTER), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 4), C_00000000, C_00000000);
#else
- OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_CENTER), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 0), C_00000000, C_00000000);
+ OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_AC97_CENTER), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 0), C_00000000, C_00000000);
OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_ACENTER), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 0), C_00000000, C_00000000);
#endif
}
- if (emu->fx8010.extout_mask & (1<<EXTOUT_LFE)) {
+ if (emu->fx8010.extout_mask & (1<<EXTOUT_AC97_LFE)) {
#ifndef EMU10K1_CENTER_LFE_FROM_FRONT
- OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_LFE), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 5), C_00000000, C_00000000);
+ OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_AC97_LFE), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 5), C_00000000, C_00000000);
OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_ALFE), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 5), C_00000000, C_00000000);
#else
- OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_LFE), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 1), C_00000000, C_00000000);
+ OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_AC97_LFE), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 1), C_00000000, C_00000000);
OP(icode, &ptr, iACC3, EXTOUT(EXTOUT_ALFE), GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 1), C_00000000, C_00000000);
#endif
}
Index: debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.c
diff -u debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.c:1.1.1.2 debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.c:removed
--- debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.c:1.1.1.2 Fri Mar 5 02:08:39 2004
+++ debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.c Wed Jun 9 16:50:49 2004
@@ -1,663 +0,0 @@
-/*
- * ALSA driver for ICEnsemble VT1724 (Envy24HT)
- *
- * Lowlevel functions for AudioTrak Prodigy 7.1 (and possibly 192) cards
- * Copyright (c) 2003 Dimitromanolakis Apostolos <apostol@cs.utoronto.ca>
- * based on the aureon.c code (c) 2003 by Takashi Iwai <tiwai@suse.de>
- *
- * version 0.82: Stable / not all features work yet (no communication with AC97 secondary)
- * added 64x/128x oversampling switch (should be 64x only for 96khz)
- * fixed some recording labels (still need to check the rest)
- * recording is working probably thanks to correct wm8770 initialization
- *
- * version 0.5: Initial release:
- * working: analog output, mixer, headphone amplifier switch
- * not working: prety much everything else, at least i could verify that
- * we have no digital output, no capture, pretty bad clicks and poops
- * on mixer switch and other coll stuff.
- *
- * 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
- *
- *
- * NOTES:
- *
- *
- *
- * - we reuse the akm4xxx_t record for storing the wm8770 codec data.
- * both wm and akm codecs are pretty similar, so we can integrate
- * both controls in the future, once if wm codecs are reused in
- * many boards.
- *
- * - writing over SPI is implemented but reading is not yet.
- * the SPDIF-in channel status, etc. can be read from CS chip.
- *
- * - DAC digital volumes are not implemented in the mixer.
- * if they show better response than DAC analog volumes, we can use them
- * instead.
- *
- * - Prodigy boards are equipped with AC97 STAC9744 chip , too. it's used to do
- * the analog mixing but not easily controllable (it's not connected
- * directly from envy24ht chip). so let's leave it as it is.
- *
- */
-
-#define REVISION 0.82b
-
-#include <sound/driver.h>
-#include <asm/io.h>
-#include <linux/delay.h>
-#include <linux/interrupt.h>
-#include <linux/init.h>
-#include <linux/slab.h>
-#include <sound/core.h>
-
-#include "ice1712.h"
-#include "envy24ht.h"
-#include "prodigy.h"
-
-
-static int prodigy_set_headphone_amp(ice1712_t *ice, int enable)
-{
- unsigned int tmp, tmp2;
-
- tmp2 = tmp = snd_ice1712_gpio_read(ice);
- if (enable)
- tmp |= PRODIGY_HP_AMP_EN;
- else
- tmp &= ~ PRODIGY_HP_AMP_EN;
- if (tmp != tmp2) {
- snd_ice1712_gpio_write(ice, tmp);
- return 1;
- }
- return 0;
-}
-
-
-static int prodigy_get_headphone_amp(ice1712_t *ice)
-{
- unsigned int tmp = snd_ice1712_gpio_read(ice);
-
- return ( tmp & PRODIGY_HP_AMP_EN )!= 0;
-}
-
-
-/*
- * write data in the SPI mode
- */
-static void prodigy_spi_write(ice1712_t *ice, unsigned int cs, unsigned int data, int bits)
-{
- unsigned int tmp;
- int i;
-
- tmp = snd_ice1712_gpio_read(ice);
-
- snd_ice1712_gpio_set_mask(ice, ~(PRODIGY_WM_RW|PRODIGY_WM_DATA|PRODIGY_WM_CLK|
- PRODIGY_WM_CS|PRODIGY_CS8415_CS|PRODIGY_HP_AMP_EN));
- tmp |= PRODIGY_WM_RW;
- tmp &= ~cs;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
-
- for (i = bits - 1; i >= 0; i--) {
- tmp &= ~PRODIGY_WM_CLK;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
- if (data & (1 << i))
- tmp |= PRODIGY_WM_DATA;
- else
- tmp &= ~PRODIGY_WM_DATA;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
- tmp |= PRODIGY_WM_CLK;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
- }
-
- tmp &= ~PRODIGY_WM_CLK;
- tmp |= cs;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
- tmp |= PRODIGY_WM_CLK;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
-}
-
-
-/*
- * get the current register value of WM codec
- */
-static unsigned short wm_get(ice1712_t *ice, int reg)
-{
- reg <<= 1;
- return ((unsigned short)ice->akm[0].images[reg] << 8) |
- ice->akm[0].images[reg + 1];
-}
-
-/*
- * set the register value of WM codec and remember it
- */
-static void wm_put(ice1712_t *ice, int reg, unsigned short val)
-{
- prodigy_spi_write(ice, PRODIGY_WM_CS, (reg << 9) | (val & 0x1ff), 16);
- reg <<= 1;
- ice->akm[0].images[reg] = val >> 8;
- ice->akm[0].images[reg + 1] = val;
-}
-
-
-/*********************************
- ********* Controls section ******
- *********************************/
-
-#define PRODIGY_CON_HPAMP \
- { \
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
- .name = "Headphone Amplifier", \
- .info = prodigy_hpamp_info, \
- .get = prodigy_hpamp_get, \
- .put = prodigy_hpamp_put \
- }
-
-static int prodigy_hpamp_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo)
-{
- static char *texts[2] = {
- "Off", "On"
- };
-
- uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
- uinfo->count = 1;
- uinfo->value.enumerated.items = 2;
-
- 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 prodigy_hpamp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
-
- ucontrol->value.integer.value[0] = prodigy_get_headphone_amp(ice);
- return 0;
-}
-
-
-static int prodigy_hpamp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
-
- return prodigy_set_headphone_amp(ice,ucontrol->value.integer.value[0]);
-}
-
-
-
-#define PRODIGY_CON_DEEMP \
- { \
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
- .name = "DAC De-emphasis", \
- .info = prodigy_deemp_info, \
- .get = prodigy_deemp_get, \
- .put = prodigy_deemp_put \
- }
-
-static int prodigy_deemp_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo)
-{
- static char *texts[2] = { "Off", "On" };
-
- uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
- uinfo->count = 1;
- uinfo->value.enumerated.items = 2;
-
- 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 prodigy_deemp_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- ucontrol->value.integer.value[0] = (wm_get(ice, 0x15) & 0xf) == 0xf;
- return 0;
-}
-
-static int prodigy_deemp_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- int temp, temp2;
- temp2 = temp = wm_get(ice, 0x15);
- temp = (temp & ~0xf) | ((ucontrol->value.integer.value[0])*0xf);
- if (temp != temp2) {
- wm_put(ice,0x15,temp);
- return 1;
- }
- return 0;
-}
-
-
-#define PRODIGY_CON_OVERSAMPLING \
- { \
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
- .name = "ADC Oversampling", \
- .info = prodigy_oversampling_info, \
- .get = prodigy_oversampling_get, \
- .put = prodigy_oversampling_put \
- }
-
-static int prodigy_oversampling_info(snd_kcontrol_t *k, snd_ctl_elem_info_t *uinfo)
-{
- static char *texts[2] = { "128x", "64x" };
-
- uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
- uinfo->count = 1;
- uinfo->value.enumerated.items = 2;
-
- 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 prodigy_oversampling_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- ucontrol->value.integer.value[0] = (wm_get(ice, 0x17) & 0x8) == 0x8;
- return 0;
-}
-
-static int prodigy_oversampling_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- int temp, temp2;
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
-
- temp2 = temp = wm_get(ice, 0x17);
-
- if( ucontrol->value.integer.value[0] ) {
- temp |= 0x8;
- } else {
- temp &= ~0x8;
- }
-
- if (temp != temp2) {
- wm_put(ice,0x17,temp);
- return 1;
- }
- return 0;
-}
-
-
-
-
-/*
- * DAC volume attenuation mixer control
- */
-static int wm_dac_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
-{
- uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
- uinfo->count = 1;
- uinfo->value.integer.min = 0; /* mute */
- uinfo->value.integer.max = 101; /* 0dB */
- return 0;
-}
-
-static int wm_dac_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- int idx;
- unsigned short vol;
-
- down(&ice->gpio_mutex);
- if (kcontrol->private_value)
- idx = WM_DAC_MASTER_ATTEN;
- else
- idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id) + WM_DAC_ATTEN;
- vol = wm_get(ice, idx) & 0x7f;
- if (vol <= 0x1a)
- ucontrol->value.integer.value[0] = 0;
- else
- ucontrol->value.integer.value[0] = vol - 0x1a;
- up(&ice->gpio_mutex);
-
- return 0;
-}
-
-static int wm_dac_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- int idx;
- unsigned short ovol, nvol;
- int change;
-
- snd_ice1712_save_gpio_status(ice);
- if (kcontrol->private_value)
- idx = WM_DAC_MASTER_ATTEN;
- else
- idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id) + WM_DAC_ATTEN;
- nvol = ucontrol->value.integer.value[0] + 0x1a;
- ovol = wm_get(ice, idx) & 0x7f;
- change = (ovol != nvol);
- if (change) {
- if (nvol <= 0x1a && ovol <= 0x1a)
- change = 0;
- else
- wm_put(ice, idx, nvol | 0x180); /* update on zero detect */
- }
- snd_ice1712_restore_gpio_status(ice);
- return change;
-}
-
-/*
- * ADC gain mixer control
- */
-static int wm_adc_vol_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
-{
- uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
- uinfo->count = 1;
- uinfo->value.integer.min = 0; /* -12dB */
- uinfo->value.integer.max = 0x1f; /* 19dB */
- return 0;
-}
-
-static int wm_adc_vol_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- int idx;
- unsigned short vol;
-
- down(&ice->gpio_mutex);
- idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id) + WM_ADC_GAIN;
- vol = wm_get(ice, idx) & 0x1f;
- ucontrol->value.integer.value[0] = vol;
- up(&ice->gpio_mutex);
- return 0;
-}
-
-static int wm_adc_vol_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- int idx;
- unsigned short ovol, nvol;
- int change;
-
- snd_ice1712_save_gpio_status(ice);
- idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id) + WM_ADC_GAIN;
- nvol = ucontrol->value.integer.value[0];
- ovol = wm_get(ice, idx) & 0x1f;
- change = (ovol != nvol);
- if (change)
- wm_put(ice, idx, nvol);
- snd_ice1712_restore_gpio_status(ice);
- return change;
-}
-
-/*
- * ADC input mux mixer control
- */
-static int wm_adc_mux_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
-{
- static char *texts[] = {
- "CD Left",
- "CD Right",
- "Line Left",
- "Line Right",
- "Aux Left",
- "Aux Right",
- "Mic Left",
- "Mic Right",
- };
- uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
- uinfo->count = 2;
- uinfo->value.enumerated.items = 8;
- 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 wm_adc_mux_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- unsigned short val;
-
- down(&ice->gpio_mutex);
- val = wm_get(ice, WM_ADC_MUX);
- ucontrol->value.integer.value[0] = val & 7;
- ucontrol->value.integer.value[1] = (val >> 4) & 7;
- up(&ice->gpio_mutex);
- return 0;
-}
-
-static int wm_adc_mux_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol)
-{
- ice1712_t *ice = snd_kcontrol_chip(kcontrol);
- unsigned short oval, nval;
- int change;
-
- snd_ice1712_save_gpio_status(ice);
- oval = wm_get(ice, WM_ADC_MUX);
- nval = oval & ~0x77;
- nval |= ucontrol->value.integer.value[0] & 7;
- nval |= (ucontrol->value.integer.value[1] & 7) << 4;
- change = (oval != nval);
- if (change)
- wm_put(ice, WM_ADC_MUX, nval);
- snd_ice1712_restore_gpio_status(ice);
- return 0;
-}
-
-/*
- * mixers
- */
-
-static snd_kcontrol_new_t prodigy71_dac_control __devinitdata = {
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
- .name = "DAC Volume",
- .count = 8,
- .info = wm_dac_vol_info,
- .get = wm_dac_vol_get,
- .put = wm_dac_vol_put,
-};
-
-static snd_kcontrol_new_t wm_controls[] __devinitdata = {
- {
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
- .name = "Master Playback Volume",
- .info = wm_dac_vol_info,
- .get = wm_dac_vol_get,
- .put = wm_dac_vol_put,
- .private_value = 1,
- },
- {
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
- .name = "ADC Volume",
- .count = 2,
- .info = wm_adc_vol_info,
- .get = wm_adc_vol_get,
- .put = wm_adc_vol_put,
- },
- {
- .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
- .name = "Capture Route",
- .info = wm_adc_mux_info,
- .get = wm_adc_mux_get,
- .put = wm_adc_mux_put,
- },
- PRODIGY_CON_HPAMP ,
- PRODIGY_CON_DEEMP ,
- PRODIGY_CON_OVERSAMPLING
-};
-
-
-static int __devinit prodigy_add_controls(ice1712_t *ice)
-{
- unsigned int i;
- int err;
-
- err = snd_ctl_add(ice->card, snd_ctl_new1(&prodigy71_dac_control, ice));
- if (err < 0)
- return err;
-
- for (i = 0; i < ARRAY_SIZE(wm_controls); i++) {
- err = snd_ctl_add(ice->card, snd_ctl_new1(&wm_controls[i], ice));
- if (err < 0)
- return err;
- }
- return 0;
-}
-
-
-/*
- * initialize the chip
- */
-static int __devinit prodigy_init(ice1712_t *ice)
-{
- static unsigned short wm_inits[] = {
-
- /* These come first to reduce init pop noise */
- 0x1b, 0x000, /* ADC Mux */
- 0x1c, 0x009, /* Out Mux1 */
- 0x1d, 0x009, /* Out Mux2 */
-
- 0x18, 0x000, /* All power-up */
-
- 0x16, 0x022, /* I2S, normal polarity, 24bit, high-pass on */
- 0x17, 0x006, /* 128fs, slave mode */
-
- 0x00, 0, /* DAC1 analog mute */
- 0x01, 0, /* DAC2 analog mute */
- 0x02, 0, /* DAC3 analog mute */
- 0x03, 0, /* DAC4 analog mute */
- 0x04, 0, /* DAC5 analog mute */
- 0x05, 0, /* DAC6 analog mute */
- 0x06, 0, /* DAC7 analog mute */
- 0x07, 0, /* DAC8 analog mute */
- 0x08, 0x100, /* master analog mute */
-
- 0x09, 0x7f, /* DAC1 digital full */
- 0x0a, 0x7f, /* DAC2 digital full */
- 0x0b, 0x7f, /* DAC3 digital full */
- 0x0c, 0x7f, /* DAC4 digital full */
- 0x0d, 0x7f, /* DAC5 digital full */
- 0x0e, 0x7f, /* DAC6 digital full */
- 0x0f, 0x7f, /* DAC7 digital full */
- 0x10, 0x7f, /* DAC8 digital full */
- 0x11, 0x1FF, /* master digital full */
-
- 0x12, 0x000, /* phase normal */
- 0x13, 0x090, /* unmute DAC L/R */
- 0x14, 0x000, /* all unmute */
- 0x15, 0x000, /* no deemphasis, no ZFLG */
-
- 0x19, 0x000, /* -12dB ADC/L */
- 0x1a, 0x000 /* -12dB ADC/R */
-
- };
-
- static unsigned short cs_inits[] = {
- 0x0441, /* RUN */
- 0x0100, /* no mute */
- 0x0200, /* */
- 0x0600, /* slave, 24bit */
- };
-
- unsigned int tmp;
- unsigned int i;
-
- printk(KERN_INFO "ice1724: AudioTrak Prodigy 7.1 driver rev. 0.82b\n");
- printk(KERN_INFO "ice1724: This driver is in beta stage. Forsuccess/failure reporting contact\n");
- printk(KERN_INFO "ice1724: Apostolos Dimitromanolakis <apostol@cs.utoronto.ca>\n");
-
- ice->num_total_dacs = 8;
- ice->num_total_adcs = 8;
-
- /* to remeber the register values */
- ice->akm = snd_kcalloc(sizeof(akm4xxx_t), GFP_KERNEL);
- if (! ice->akm)
- return -ENOMEM;
- ice->akm_codecs = 1;
-
- snd_ice1712_gpio_set_dir(ice, 0xbfffff); /* fix this for the time being */
-
- /* reset the wm codec as the SPI mode */
- snd_ice1712_save_gpio_status(ice);
- snd_ice1712_gpio_set_mask(ice,~( PRODIGY_WM_RESET|PRODIGY_WM_CS|
- PRODIGY_CS8415_CS|PRODIGY_HP_AMP_EN ));
-
- tmp = snd_ice1712_gpio_read(ice);
- tmp &= ~PRODIGY_WM_RESET;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
- tmp |= PRODIGY_WM_CS | PRODIGY_CS8415_CS;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
- tmp |= PRODIGY_WM_RESET;
- snd_ice1712_gpio_write(ice, tmp);
- udelay(1);
-
- /* initialize WM8770 codec */
- for (i = 0; i < ARRAY_SIZE(wm_inits); i += 2)
- wm_put(ice, wm_inits[i], wm_inits[i+1]);
-
- /* initialize CS8415A codec */
- for (i = 0; i < ARRAY_SIZE(cs_inits); i++)
- prodigy_spi_write(ice, PRODIGY_CS8415_CS,
- cs_inits[i] | 0x200000, 24);
-
-
- prodigy_set_headphone_amp(ice, 1);
-
- snd_ice1712_restore_gpio_status(ice);
-
- return 0;
-}
-
-/*
- * Prodigy boards don't provide the EEPROM data except for the vendor IDs.
- * hence the driver needs to sets up it properly.
- */
-
-static unsigned char prodigy71_eeprom[] __devinitdata = {
- 0x2b, /* SYSCONF: clock 512, mpu401, spdif-in/ADC, 4DACs */
- 0x80, /* ACLINK: I2S */
- 0xf8, /* I2S: vol, 96k, 24bit, 192k */
- 0xc3, /* SPDIF: out-en, out-int, spdif-in */
- 0xff, /* GPIO_DIR */
- 0xff, /* GPIO_DIR1 */
- 0xbf, /* GPIO_DIR2 */
- 0x00, /* GPIO_MASK */
- 0x00, /* GPIO_MASK1 */
- 0x00, /* GPIO_MASK2 */
- 0x00, /* GPIO_STATE */
- 0x00, /* GPIO_STATE1 */
- 0x00, /* GPIO_STATE2 */
-};
-
-/* entry point */
-struct snd_ice1712_card_info snd_vt1724_prodigy_cards[] __devinitdata = {
- {
- .subvendor = VT1724_SUBDEVICE_PRODIGY71,
- .name = "Audiotrak Prodigy 7.1",
- .chip_init = prodigy_init,
- .build_controls = prodigy_add_controls,
- .eeprom_size = sizeof(prodigy71_eeprom),
- .eeprom_data = prodigy71_eeprom,
- },
- { } /* terminator */
-};
Index: debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.h
diff -u debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.h:1.1.1.1 debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.h:removed
--- debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.h:1.1.1.1 Mon Nov 10 11:00:50 2003
+++ debian/alsa-driver/alsa-kernel/pci/ice1712/prodigy.h Wed Jun 9 16:50:49 2004
@@ -1,67 +0,0 @@
-#ifndef __SOUND_PRODIGY_H
-#define __SOUND_PRODIGY_H
-
-/*
- * ALSA driver for VIA VT1724 (Envy24HT)
- *
- * Lowlevel functions for Terratec PRODIGY cards
- *
- * Copyright (c) 2003 Takashi Iwai <tiwai@suse.de>
- *
- * 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
- *
- */
-
-#define PRODIGY_DEVICE_DESC "{AudioTrak,Prodigy 7.1},"
-
-#define VT1724_SUBDEVICE_PRODIGY71 0x33495345 /* PRODIGY 7.1 */
-
-extern struct snd_ice1712_card_info snd_vt1724_prodigy_cards[];
-
-/* GPIO bits */
-#define PRODIGY_CS8415_CS (1 << 23)
-#define PRODIGY_CS8415_CDTO (1 << 22)
-#define PRODIGY_WM_RESET (1 << 20)
-#define PRODIGY_WM_CLK (1 << 19)
-#define PRODIGY_WM_DATA (1 << 18)
-#define PRODIGY_WM_RW (1 << 17)
-#define PRODIGY_AC97_RESET (1 << 16)
-#define PRODIGY_DIGITAL_SEL1 (1 << 15)
-// #define PRODIGY_HP_SEL (1 << 14)
-#define PRODIGY_WM_CS (1 << 12)
-
-#define PRODIGY_HP_AMP_EN (1 << 14)
-
-
-/* WM8770 registers */
-#define WM_DAC_ATTEN 0x00 /* DAC1-8 analog attenuation */
-#define WM_DAC_MASTER_ATTEN 0x08 /* DAC master analog attenuation */
-#define WM_DAC_DIG_ATTEN 0x09 /* DAC1-8 digital attenuation */
-#define WM_DAC_DIG_MATER_ATTEN 0x11 /* DAC master digital attenuation */
-#define WM_PHASE_SWAP 0x12 /* DAC phase */
-#define WM_DAC_CTRL1 0x13 /* DAC control bits */
-#define WM_MUTE 0x14 /* mute controls */
-#define WM_DAC_CTRL2 0x15 /* de-emphasis and zefo-flag */
-#define WM_INT_CTRL 0x16 /* interface control */
-#define WM_MASTER 0x17 /* master clock and mode */
-#define WM_POWERDOWN 0x18 /* power-down controls */
-#define WM_ADC_GAIN 0x19 /* ADC gain L(19)/R(1a) */
-#define WM_ADC_MUX 0x1b /* input MUX */
-#define WM_OUT_MUX1 0x1c /* output MUX */
-#define WM_OUT_MUX2 0x1e /* output MUX */
-#define WM_RESET 0x1f /* software reset */
-
-
-#endif /* __SOUND_PRODIGY_H */
Index: debian/alsa-driver/configure
diff -u debian/alsa-driver/configure:1.23 debian/alsa-driver/configure:1.24
--- debian/alsa-driver/configure:1.23 Tue Apr 13 13:39:25 2004
+++ debian/alsa-driver/configure Wed Jun 9 16:50:47 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_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_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_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_MIPS64 CONFIG_SPARC64 CONFIG_PPC64 CONFIG_X86_64 CONFIG_IA32_EMULATION 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_EMU10K1X CONFIG_SND_ATIIXP_MODEM 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.
@@ -838,9 +838,10 @@
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
+ hdspm, emu10k1x, atiixp-modem, powermac,
+ sa11xx-uda1341, usb-audio, usb-usx2y, vxpocket,
+ vxp440, pdaudiocf, sun-amd7930, sun-cs4231,
+ harmony
Some influential environment variables:
CC C compiler command
@@ -1257,7 +1258,7 @@
-CONFIG_SND_VERSION="1.0.4"
+CONFIG_SND_VERSION="1.0.5a"
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
@@ -2986,11 +2987,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=""
@@ -3001,6 +2997,12 @@
CONFIG_SND_MIXER_OSS=""
CONFIG_SND_PCM_OSS=""
CONFIG_SND_SEQUENCER_OSS=""
+ CONFIG_SND_BIT32_EMUL=""
+ CONFIG_MIPS64=""
+ CONFIG_SPARC64=""
+ CONFIG_PPC64=""
+ CONFIG_X86_64=""
+ CONFIG_IA32_EMULATION=""
CONFIG_SND_RTCTIMER=""
CONFIG_RTC=""
CONFIG_SND_VERBOSE_PRINTK=""
@@ -3050,6 +3052,7 @@
CONFIG_SND_SGALAXY=""
CONFIG_SND_SSCAPE=""
CONFIG_SND_MSND_PINNACLE=""
+ CONFIG_X86=""
CONFIG_PCI=""
CONFIG_SND_AC97_CODEC=""
CONFIG_SND_ALI5451=""
@@ -3092,6 +3095,8 @@
CONFIG_SND_VX222=""
CONFIG_SND_PDPLUS=""
CONFIG_SND_HDSPM=""
+ CONFIG_SND_EMU10K1X=""
+ CONFIG_SND_ATIIXP_MODEM=""
CONFIG_PPC=""
CONFIG_SND_POWERMAC=""
CONFIG_ARM=""
@@ -3143,17 +3148,18 @@
echo "$as_me:$LINENO: checking for directory with kernel source" >&5
echo $ECHO_N "checking for directory with kernel source... $ECHO_C" >&6
+if test -d "/lib/modules/`uname -r`/build" -o -L "/lib/modules/`uname -r`/build"; then
+ DEFAULT_KERNEL_DIR="/lib/modules/`uname -r`/build"
+else
+ DEFAULT_KERNEL_DIR="/usr/src/linux"
+fi
# Check whether --with-kernel or --without-kernel was given.
if test "${with_kernel+set}" = set; then
withval="$with_kernel"
kerneldir="$withval"
else
- if test -d "/lib/modules/`uname -r`/build" -o -L "/lib/modules/`uname -r`/build"; then
- kerneldir="/lib/modules/`uname -r`/build"
- else
- kerneldir="/usr/src/linux"
- fi
+ kerneldir="$DEFAULT_KERNEL_DIR"
fi;
cat >>confdefs.h <<_ACEOF
@@ -3172,7 +3178,7 @@
The file $CONFIG_SND_KERNELDIR/include/linux/version.h does not exist.
Please, install the package with full kernel sources for your distribution
or use --with-kernel=dir option to specify another directory with kernel
-sources (default is /usr/src/linux).
+sources (default is $DEFAULT_KERNEL_DIR).
EOF
exit 1
fi
@@ -4243,6 +4249,64 @@
fi
+ echo "$as_me:$LINENO: checking for kernel linux/moduleparam.h" >&5
+echo $ECHO_N "checking for kernel linux/moduleparam.h... $ECHO_C" >&6
+ if test -f "$CONFIG_SND_KERNELDIR/include/linux/moduleparam.h"; then
+ echo "$as_me:$LINENO: result: \"yes\"" >&5
+echo "${ECHO_T}\"yes\"" >&6
+ if test -f include/linux/moduleparam.h; then
+ echo "Removing a dummy linux/moduleparam.h."
+ rm -f include/linux/moduleparam.h
+ fi
+ else
+ echo "$as_me:$LINENO: result: \"no\"" >&5
+echo "${ECHO_T}\"no\"" >&6
+ if test ! -f include/linux/moduleparam.h; then
+ if test -z "" ; then
+ echo "Creating a dummy <linux/moduleparam.h>..."
+ mkdir -p include/linux
+ mkdir -p include/asm
+ touch include/linux/moduleparam.h
+ else
+ echo "Creating <linux/moduleparam.h>..."
+ mkdir -p include/linux
+ mkdir -p include/asm
+ echo "" > include/linux/moduleparam.h
+ fi
+ fi
+ fi
+
+
+ echo "$as_me:$LINENO: checking for kernel linux/syscalls.h" >&5
+echo $ECHO_N "checking for kernel linux/syscalls.h... $ECHO_C" >&6
+ if test -f "$CONFIG_SND_KERNELDIR/include/linux/syscalls.h"; then
+ echo "$as_me:$LINENO: result: \"yes\"" >&5
+echo "${ECHO_T}\"yes\"" >&6
+ if test -f include/linux/syscalls.h; then
+ echo "Removing a dummy linux/syscalls.h."
+ rm -f include/linux/syscalls.h
+ fi
+ else
+ echo "$as_me:$LINENO: result: \"no\"" >&5
+echo "${ECHO_T}\"no\"" >&6
+ if test ! -f include/linux/syscalls.h; then
+ if test -z "#include \"syscalls_26.h\"
+" ; then
+ echo "Creating a dummy <linux/syscalls.h>..."
+ mkdir -p include/linux
+ mkdir -p include/asm
+ touch include/linux/syscalls.h
+ else
+ echo "Creating <linux/syscalls.h>..."
+ mkdir -p include/linux
+ mkdir -p include/asm
+ echo "#include \"syscalls_26.h\"
+" > include/linux/syscalls.h
+ fi
+ fi
+ fi
+
+
if test "$kversion.$kpatchlevel" = "2.6"; then
cat >>confdefs.h <<\_ACEOF
#define CONFIG_HAVE_DUMP_STACK 1
@@ -4681,12 +4745,14 @@
fprintf(file, "i586tsc");
#elif defined(CONFIG_M586MMX)
fprintf(file, "i586mmx");
-#elif defined(CONFIG_M686) || defined(CONFIG_MPENTIUMIII) || defined(CONFIG_MPENTIUM4)
+#elif defined(CONFIG_M686) || defined(CONFIG_MPENTIUMII) || defined(CONFIG_MPENTIUMIII) || defined(CONFIG_MPENTIUM4) || defined(CONFIG_MPENTIUMM)
fprintf(file, "i686");
#elif defined(CONFIG_MK6)
fprintf(file, "k6");
#elif defined(CONFIG_MK7)
fprintf(file, "k7");
+#elif defined(CONFIG_MK8)
+ fprintf(file, "k8");
#elif defined(CONFIG_MCRUSOE)
fprintf(file, "crusoe");
#elif defined(CONFIG_MWINCHIPC6) || defined(CONFIG_MWINCHIP2) || defined(CONFIG_MWINCHIP3D)
@@ -4792,7 +4858,7 @@
c_opts="-march=i586"
fi
;;
- k7)
+ k7|k8)
if $CC -march=athlon -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
c_opts="-march=athlon"
else
@@ -6690,6 +6756,11 @@
_ACEOF
fi
+ CONFIG_MIPS64="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_MIPS64_MODULE 1
+_ACEOF
+
CONFIG_SND_DUMMY="m"
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_DUMMY_MODULE 1
@@ -6766,11 +6837,6 @@
_ACEOF
fi
- 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"
@@ -6938,7 +7004,8 @@
_ACEOF
fi
- if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ); then
+ if ( test "$CONFIG_ISA" == "y" -o "$CONFIG_ISA" == "m" ) &&
+ ( test "$CONFIG_X86" == "y" -o "$CONFIG_X86" == "m" ); then
CONFIG_SND_MSND_PINNACLE="m"
cat >>confdefs.h <<\_ACEOF
#define CONFIG_SND_MSND_PINNACLE_MODULE 1
@@ -7221,6 +7288,20 @@
_ACEOF
fi
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_EMU10K1X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_EMU10K1X_MODULE 1
+_ACEOF
+
+ fi
+ if ( test "$CONFIG_PCI" == "y" -o "$CONFIG_PCI" == "m" ); then
+ CONFIG_SND_ATIIXP_MODEM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ATIIXP_MODEM_MODULE 1
+_ACEOF
+
+ fi
if ( test "$CONFIG_PPC" == "y" -o "$CONFIG_PPC" == "m" ); then
CONFIG_SND_POWERMAC="m"
cat >>confdefs.h <<\_ACEOF
@@ -9779,6 +9860,60 @@
_ACEOF
;;
+ emu10k1x)
+ 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_EMU10K1X="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_EMU10K1X_MODULE 1
+_ACEOF
+
+ ;;
+ atiixp-modem)
+ 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_MODEM="m"
+ cat >>confdefs.h <<\_ACEOF
+#define CONFIG_SND_ATIIXP_MODEM_MODULE 1
+_ACEOF
+
+ ;;
powermac)
CONFIG_SND="m"
cat >>confdefs.h <<\_ACEOF
@@ -10189,6 +10324,10 @@
+
+
+
+
c_opts="$c_opts -DLINUX"
m_opts=""
if test -r /etc/asound/make_opts; then
@@ -10878,10 +11017,6 @@
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
@@ -10891,6 +11026,11 @@
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_MIPS64@,$CONFIG_MIPS64,;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_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
@@ -10974,6 +11114,8 @@
s,@CONFIG_SND_VX222@,$CONFIG_SND_VX222,;t t
s,@CONFIG_SND_PDPLUS@,$CONFIG_SND_PDPLUS,;t t
s,@CONFIG_SND_HDSPM@,$CONFIG_SND_HDSPM,;t t
+s,@CONFIG_SND_EMU10K1X@,$CONFIG_SND_EMU10K1X,;t t
+s,@CONFIG_SND_ATIIXP_MODEM@,$CONFIG_SND_ATIIXP_MODEM,;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
Index: debian/alsa-driver/configure.in
diff -u debian/alsa-driver/configure.in:1.23 debian/alsa-driver/configure.in:1.24
--- debian/alsa-driver/configure.in:1.23 Tue Apr 13 13:39:25 2004
+++ debian/alsa-driver/configure.in Wed Jun 9 16:50:47 2004
@@ -5,7 +5,7 @@
AC_PREREQ(2.53)
AC_INIT(acore/sound.patch)
AC_PREFIX_DEFAULT(/usr)
-CONFIG_SND_VERSION="1.0.4"
+CONFIG_SND_VERSION="1.0.5a"
dnl Checks for programs.
AC_PROG_CC
@@ -63,15 +63,16 @@
dnl Check for directory with kernel source...
AC_MSG_CHECKING(for directory with kernel source)
+if test -d "/lib/modules/`uname -r`/build" -o -L "/lib/modules/`uname -r`/build"; then
+ DEFAULT_KERNEL_DIR="/lib/modules/`uname -r`/build"
+else
+ DEFAULT_KERNEL_DIR="/usr/src/linux"
+fi
AC_ARG_WITH(kernel,
[ --with-kernel=dir give the directory with kernel sources]
[ [/usr/src/linux]],
kerneldir="$withval",
- if test -d "/lib/modules/`uname -r`/build" -o -L "/lib/modules/`uname -r`/build"; then
- kerneldir="/lib/modules/`uname -r`/build"
- else
- kerneldir="/usr/src/linux"
- fi
+ kerneldir="$DEFAULT_KERNEL_DIR"
)
AC_DEFINE_UNQUOTED(CONFIG_SND_KERNELDIR, "$kerneldir")
CONFIG_SND_KERNELDIR="$kerneldir"
@@ -85,7 +86,7 @@
The file $CONFIG_SND_KERNELDIR/include/linux/version.h does not exist.
Please, install the package with full kernel sources for your distribution
or use --with-kernel=dir option to specify another directory with kernel
-sources (default is /usr/src/linux).
+sources (default is $DEFAULT_KERNEL_DIR).
EOF
exit 1
fi
@@ -476,6 +477,9 @@
])
CHECK_KERNEL_HEADER(linux/pmu.h, [#include <asm/pmu.h>
])
+CHECK_KERNEL_HEADER(linux/moduleparam.h)
+CHECK_KERNEL_HEADER(linux/syscalls.h, [#include \"syscalls_26.h\"
+])
dnl Check for dump_stack
if test "$kversion.$kpatchlevel" = "2.6"; then
@@ -623,12 +627,14 @@
fprintf(file, "i586tsc");
#elif defined(CONFIG_M586MMX)
fprintf(file, "i586mmx");
-#elif defined(CONFIG_M686) || defined(CONFIG_MPENTIUMIII) || defined(CONFIG_MPENTIUM4)
+#elif defined(CONFIG_M686) || defined(CONFIG_MPENTIUMII) || defined(CONFIG_MPENTIUMIII) || defined(CONFIG_MPENTIUM4) || defined(CONFIG_MPENTIUMM)
fprintf(file, "i686");
#elif defined(CONFIG_MK6)
fprintf(file, "k6");
#elif defined(CONFIG_MK7)
fprintf(file, "k7");
+#elif defined(CONFIG_MK8)
+ fprintf(file, "k8");
#elif defined(CONFIG_MCRUSOE)
fprintf(file, "crusoe");
#elif defined(CONFIG_MWINCHIPC6) || defined(CONFIG_MWINCHIP2) || defined(CONFIG_MWINCHIP3D)
@@ -713,7 +719,7 @@
c_opts="-march=i586"
fi
;;
- k7)
+ k7|k8)
if $CC -march=athlon -S -o /dev/null -xc /dev/null >/dev/null 2>&1; then
c_opts="-march=athlon"
else
Index: debian/alsa-driver/debian/changelog
diff -u debian/alsa-driver/debian/changelog:1.249 debian/alsa-driver/debian/changelog:1.250
--- debian/alsa-driver/debian/changelog:1.249 Wed Jun 9 11:44:41 2004
+++ debian/alsa-driver/debian/changelog Wed Jun 9 16:50:48 2004
@@ -1,3 +1,11 @@
+alsa-driver (1.0.5a-1) unstable; urgency=low
+
+ * UNRELEASED
+ * New upstream release.
+ * UNRELEASED
+
+ -- David B. Harris <dbharris@debian.org> Wed, 9 Jun 2004 18:50:03 -0400
+
alsa-driver (1.0.4-4) unstable; urgency=low
* Steve Kowalik:
Index: debian/alsa-driver/drivers/serialmidi.c
diff -u debian/alsa-driver/drivers/serialmidi.c:1.8 debian/alsa-driver/drivers/serialmidi.c:1.9
--- debian/alsa-driver/drivers/serialmidi.c:1.8 Tue Feb 3 11:36:44 2004
+++ debian/alsa-driver/drivers/serialmidi.c Wed Jun 9 16:50:48 2004
@@ -27,10 +27,10 @@
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/tty.h>
+#include <linux/moduleparam.h>
#include <asm/uaccess.h>
#include <sound/core.h>
#include <sound/rawmidi.h>
-#define SNDRV_GET_ID
#include <sound/initval.h>
#include <linux/delay.h>
@@ -57,28 +57,35 @@
static int speed[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 38400}; /* 9600,19200,38400,57600,115200 */
static int adaptor[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = SERIAL_ADAPTOR_SOUNDCANVAS};
static int outs[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 16 */
+static int devices[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* 1 to 8 */
+static int handshake[SNDRV_CARDS] = {[0 ... (SNDRV_CARDS - 1)] = 1}; /* bool */
+static int boot_devs;
-MODULE_PARM(index, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(index, int, boot_devs, 0444);
MODULE_PARM_DESC(index, "Index value for serial device.");
MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
-MODULE_PARM(id, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
+module_param_array(id, charp, boot_devs, 0444);
MODULE_PARM_DESC(id, "ID string for serial device.");
MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
-MODULE_PARM(enable, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(enable, bool, boot_devs, 0444);
MODULE_PARM_DESC(enable, "Enable serial device.");
MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
-MODULE_PARM(sdev, "1-" __MODULE_STRING(SNDRV_CARDS) "s");
+module_param_array(sdev, charp, boot_devs, 0444);
MODULE_PARM_DESC(sdev, "Device file string for serial device.");
MODULE_PARM_SYNTAX(sdev, SNDRV_ID_DESC);
-MODULE_PARM(speed, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(speed, int, boot_devs, 0444);
MODULE_PARM_DESC(speed, "Speed in bauds.");
MODULE_PARM_SYNTAX(speed, SNDRV_ENABLED ",allows:{9600,19200,38400,57600,115200},dialog:list");
-MODULE_PARM(adaptor, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(adaptor, int, boot_devs, 0444);
MODULE_PARM_DESC(adaptor, "Type of adaptor.");
MODULE_PARM_SYNTAX(adaptor, SNDRV_ENABLED ",allows:{{0=Soundcanvas,1=MS-124T,2=MS-124W S/A,3=MS-124W M/B}},dialog:list");
-MODULE_PARM(outs, "1-" __MODULE_STRING(SNDRV_CARDS) "i");
+module_param_array(outs, int, boot_devs, 0444);
MODULE_PARM_DESC(outs, "Number of MIDI outputs.");
MODULE_PARM_SYNTAX(outs, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");
+module_param_array(devices, int, boot_devs, 0444);
+MODULE_PARM_DESC(devices, "Number of devices to attach to the card.");
+module_param_array(handshake, int, boot_devs, 0444);
+MODULE_PARM_DESC(handshake, "Do handshaking.");
#define SERIAL_MODE_NOT_OPENED (0)
#define SERIAL_MODE_BIT_INPUT (0)
@@ -89,6 +96,7 @@
typedef struct _snd_serialmidi {
snd_card_t *card;
char *sdev; /* serial device name (e.g. /dev/ttyS0) */
+ int dev_idx;
unsigned int speed; /* speed in bauds */
unsigned int adaptor; /* see SERIAL_ADAPTOR_ */
unsigned long mode; /* see SERIAL_MODE_* */
@@ -104,6 +112,7 @@
void (*old_write_wakeup)(struct tty_struct *);
int old_exclusive;
int old_low_latency;
+ int handshake;
unsigned char tx_buf[TX_BUF_SIZE];
} serialmidi_t;
@@ -203,14 +212,16 @@
break;
}
- cflag = speed | CREAD | CSIZE | CS8 | CRTSCTS | HUPCL;
- // cflag = speed | CREAD | CSIZE | CS8 | HUPCL;
+ if (serial->handshake)
+ cflag = speed | CREAD | CSIZE | CS8 | CRTSCTS | HUPCL;
+ else
+ cflag = speed | CREAD | CSIZE | CS8 | HUPCL;
switch (serial->adaptor) {
case SERIAL_ADAPTOR_MS124W_SA:
case SERIAL_ADAPTOR_MS124W_MB:
case SERIAL_ADAPTOR_MS124T:
-
+ /* TODO */
break;
}
@@ -435,11 +446,11 @@
snd_rawmidi_t *rrawmidi;
int err;
- if ((err = snd_rawmidi_new(serial->card, "UART Serial MIDI", 0, serial->outs, 1, &rrawmidi)) < 0)
+ if ((err = snd_rawmidi_new(serial->card, "UART Serial MIDI", serial->dev_idx, serial->outs, 1, &rrawmidi)) < 0)
return err;
snd_rawmidi_set_ops(rrawmidi, SNDRV_RAWMIDI_STREAM_INPUT, &snd_serialmidi_input);
snd_rawmidi_set_ops(rrawmidi, SNDRV_RAWMIDI_STREAM_OUTPUT, &snd_serialmidi_output);
- sprintf(rrawmidi->name, "Serial MIDI #0");
+ snprintf(rrawmidi->name, sizeof(rrawmidi->name), "%s %d", serial->card->shortname, serial->dev_idx);
rrawmidi->info_flags = SNDRV_RAWMIDI_INFO_OUTPUT |
SNDRV_RAWMIDI_INFO_INPUT |
SNDRV_RAWMIDI_INFO_DUPLEX;
@@ -450,7 +461,8 @@
static int __init snd_serialmidi_create(snd_card_t *card, const char *sdev,
unsigned int speed, unsigned int adaptor,
- unsigned int outs, serialmidi_t **rserial)
+ unsigned int outs, int idx, int hshake,
+ serialmidi_t **rserial)
{
static snd_device_ops_t ops = {
.dev_free = snd_serialmidi_dev_free,
@@ -483,6 +495,7 @@
init_MUTEX(&serial->open_lock);
serial->card = card;
+ serial->dev_idx = idx;
serial->sdev = snd_kmalloc_strdup(sdev, GFP_KERNEL);
if (serial->sdev == NULL) {
snd_serialmidi_free(serial);
@@ -491,6 +504,7 @@
serial->adaptor = adaptor;
serial->speed = speed;
serial->outs = outs;
+ serial->handshake = hshake;
memset(serial->prev_status, 0x80, sizeof(unsigned char) * SNDRV_SERIAL_MAX_OUTS);
/* Register device */
@@ -519,16 +533,52 @@
if (card == NULL)
return -ENOMEM;
strcpy(card->driver, "Serial MIDI");
- strcpy(card->shortname, card->driver);
-
- if ((err = snd_serialmidi_create(card,
- sdev[dev],
- speed[dev],
- adaptor[dev],
- outs[dev],
- &serial)) < 0) {
- snd_card_free(card);
- return err;
+ if (id[dev] && *id[dev])
+ snprintf(card->shortname, sizeof(card->shortname), "Serial MIDI %s", card->id);
+ else
+ strcpy(card->shortname, card->driver);
+
+ if (devices[dev] > 1) {
+ int i, start_dev;
+ char devname[32];
+ /* assign multiple devices to a single card */
+ if (devices[dev] > 8) {
+ printk(KERN_ERR "serialmidi: invalid devices %d\n", devices[dev]);
+ snd_card_free(card);
+ return -EINVAL;
+ }
+ /* device name mangling */
+ strncpy(devname, sdev[dev], sizeof(devname));
+ devname[31] = 0;
+ i = strlen(devname);
+ if (i > 0) i--;
+ if (devname[i] >= '0' && devname[i] <= '9') {
+ for (; i > 0; i--)
+ if (devname[i] < '0' || devname[i] > '9') {
+ i++;
+ break;
+ }
+ start_dev = simple_strtoul(devname + i, NULL, 0);
+ devname[i] = 0;
+ } else
+ start_dev = 0;
+ for (i = 0; i < devices[dev]; i++) {
+ char devname2[33];
+ sprintf(devname2, "%s%d", devname, start_dev + i);
+ if ((err = snd_serialmidi_create(card, devname2, speed[dev],
+ adaptor[dev], outs[dev], i,
+ handshake[dev], &serial)) < 0) {
+ snd_card_free(card);
+ return err;
+ }
+ }
+ } else {
+ if ((err = snd_serialmidi_create(card, sdev[dev], speed[dev],
+ adaptor[dev], outs[dev], 0,
+ handshake[dev], &serial)) < 0) {
+ snd_card_free(card);
+ return err;
+ }
}
sprintf(card->longname, "%s at %s", card->shortname, sdev[dev]);
@@ -569,29 +619,3 @@
module_init(alsa_card_serialmidi_init)
module_exit(alsa_card_serialmidi_exit)
-
-#ifndef MODULE
-
-/* format is: snd-serialmidi=enable,index,id,
- sdev,speed,adaptor,outs */
-
-static int __init alsa_card_serialmidi_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 &&
- get_id(&str,&sdev[nr_dev]) == 2 &&
- get_option(&str,&speed[nr_dev]) == 2 &&
- get_option(&str,&adaptor[nr_dev]) == 2 &&
- get_option(&str,&outs[nr_dev]) == 2);
- nr_dev++;
- return 1;
-}
-
-__setup("snd-serialmidi=", alsa_card_serialmidi_setup);
-
-#endif /* ifndef MODULE */
Index: debian/alsa-driver/include/adriver.h
diff -u debian/alsa-driver/include/adriver.h:1.18 debian/alsa-driver/include/adriver.h:1.19
--- debian/alsa-driver/include/adriver.h:1.18 Tue Apr 13 13:39:26 2004
+++ debian/alsa-driver/include/adriver.h Wed Jun 9 16:50:48 2004
@@ -478,4 +478,29 @@
#define snd_dma_continuous_data(x) ((struct device *)(unsigned long)(x))
#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+#include <linux/moduleparam.h>
+#undef module_param
+#define SNDRV_MODULE_TYPE_int "i"
+#define SNDRV_MODULE_TYPE_bool "b"
+#define SNDRV_MODULE_TYPE_uint "i"
+#define SNDRV_MODULE_TYPE_charp "s"
+#define SNDRV_MODULE_TYPE_long "l"
+#define module_param_array(name, type, num, perm) \
+ MODULE_PARM(name, "1-" __MODULE_STRING(SNDRV_CARDS) SNDRV_MODULE_TYPE_##type)
+#define module_param(name, type, perm) \
+ MODULE_PARM(name, SNDRV_MODULE_TYPE_##type)
+#endif
+
+/* power management compatibility layer */
+#ifdef CONFIG_PM
+#ifdef PCI_OLD_SUSPEND
+void snd_card_pci_suspend(struct pci_dev *dev);
+void snd_card_pci_resume(struct pci_dev *dev);
+#define SND_PCI_PM_CALLBACKS \
+ .suspend = snd_card_pci_suspend, .resume = snd_card_pci_resume
+#endif
+#endif
+
+
#endif /* __SOUND_LOCAL_DRIVER_H */
Index: debian/alsa-driver/include/config1.h.in
diff -u debian/alsa-driver/include/config1.h.in:1.12 debian/alsa-driver/include/config1.h.in:1.13
--- debian/alsa-driver/include/config1.h.in:1.12 Tue Apr 13 13:39:26 2004
+++ debian/alsa-driver/include/config1.h.in Wed Jun 9 16:50:48 2004
@@ -4,11 +4,6 @@
#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
@@ -19,6 +14,12 @@
#undef CONFIG_SND_MIXER_OSS_MODULE
#undef CONFIG_SND_PCM_OSS_MODULE
#undef CONFIG_SND_SEQUENCER_OSS
+#undef CONFIG_SND_BIT32_EMUL_MODULE
+#undef CONFIG_MIPS64_MODULE
+#undef CONFIG_SPARC64_MODULE
+#undef CONFIG_PPC64_MODULE
+#undef CONFIG_X86_64_MODULE
+#undef CONFIG_IA32_EMULATION_MODULE
#undef CONFIG_SND_RTCTIMER_MODULE
#undef CONFIG_RTC_MODULE
#undef CONFIG_SND_VERBOSE_PRINTK
@@ -68,6 +69,7 @@
#undef CONFIG_SND_SGALAXY_MODULE
#undef CONFIG_SND_SSCAPE_MODULE
#undef CONFIG_SND_MSND_PINNACLE_MODULE
+#undef CONFIG_X86_MODULE
#undef CONFIG_PCI_MODULE
#undef CONFIG_SND_AC97_CODEC_MODULE
#undef CONFIG_SND_ALI5451_MODULE
@@ -110,6 +112,8 @@
#undef CONFIG_SND_VX222_MODULE
#undef CONFIG_SND_PDPLUS_MODULE
#undef CONFIG_SND_HDSPM_MODULE
+#undef CONFIG_SND_EMU10K1X_MODULE
+#undef CONFIG_SND_ATIIXP_MODEM_MODULE
#undef CONFIG_PPC_MODULE
#undef CONFIG_SND_POWERMAC_MODULE
#undef CONFIG_ARM_MODULE
Index: debian/alsa-driver/pci/ac97/ac97_proc.c
diff -u debian/alsa-driver/pci/ac97/ac97_proc.c:1.1.1.1 debian/alsa-driver/pci/ac97/ac97_proc.c:removed
--- debian/alsa-driver/pci/ac97/ac97_proc.c:1.1.1.1 Tue Jun 17 12:43:19 2003
+++ debian/alsa-driver/pci/ac97/ac97_proc.c Wed Jun 9 16:50:49 2004
@@ -1,2 +0,0 @@
-#define __NO_VERSION__
-#include "../../alsa-kernel/pci/ac97/ac97_proc.c"
Index: debian/alsa-driver/pci/ali5451/ali5451.c
diff -u /dev/null debian/alsa-driver/pci/ali5451/ali5451.c:1.3
--- /dev/null Wed Jun 9 16:50:49 2004
+++ debian/alsa-driver/pci/ali5451/ali5451.c Wed Jun 9 16:50:48 2004
@@ -0,0 +1,2 @@
+#include "../../alsa-kernel/pci/ali5451/ali5451.c"
+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/ali5451/ali5451.patch
diff -u debian/alsa-driver/pci/ali5451/ali5451.patch:1.1.1.1 debian/alsa-driver/pci/ali5451/ali5451.patch:removed
--- debian/alsa-driver/pci/ali5451/ali5451.patch:1.1.1.1 Wed Jun 18 05:12:52 2003
+++ debian/alsa-driver/pci/ali5451/ali5451.patch Wed Jun 9 16:50:49 2004
@@ -1,34 +0,0 @@
---- ali5451.c 2003-06-10 15:18:52.000000000 +0200
-+++ ali5451.c.old 2003-06-10 15:18:39.000000000 +0200
-@@ -1963,6 +1963,7 @@
- return;
- }
-
-+#ifndef PCI_OLD_SUSPEND
- static int snd_ali_suspend(struct pci_dev *dev, u32 state)
- {
- ali_t *chip = snd_magic_cast(ali_t, pci_get_drvdata(dev), return -ENXIO);
-@@ -1975,6 +1976,18 @@
- ali_resume(chip);
- return 0;
- }
-+#else
-+static void snd_ali_suspend(struct pci_dev *dev)
-+{
-+ ali_t *chip = snd_magic_cast(ali_t, pci_get_drvdata(dev), return);
-+ ali_suspend(chip);
-+}
-+static void snd_ali_resume(struct pci_dev *dev)
-+{
-+ ali_t *chip = snd_magic_cast(ali_t, pci_get_drvdata(dev), return);
-+ ali_resume(chip);
-+}
-+#endif
- #endif /* CONFIG_PM */
-
- static int snd_ali_free(ali_t * codec)
-@@ -2314,3 +2327,4 @@
- __setup("snd-ali5451=", alsa_card_ali_setup);
-
- #endif /* ifndef */
-+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/cs4281.c
diff -u /dev/null debian/alsa-driver/pci/cs4281.c:1.3
--- /dev/null Wed Jun 9 16:50:49 2004
+++ debian/alsa-driver/pci/cs4281.c Wed Jun 9 16:50:48 2004
@@ -0,0 +1,2 @@
+#include "../alsa-kernel/pci/cs4281.c"
+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/cs4281.patch
diff -u debian/alsa-driver/pci/cs4281.patch:1.1.1.1 debian/alsa-driver/pci/cs4281.patch:removed
--- debian/alsa-driver/pci/cs4281.patch:1.1.1.1 Wed Jun 18 05:12:52 2003
+++ debian/alsa-driver/pci/cs4281.patch Wed Jun 9 16:50:49 2004
@@ -1,34 +0,0 @@
---- cs4281.c 2003-06-10 15:21:01.000000000 +0200
-+++ cs4281.c.old 2003-06-10 15:20:49.000000000 +0200
-@@ -2119,6 +2119,7 @@
- snd_power_change_state(card, SNDRV_CTL_POWER_D0);
- }
-
-+#ifndef PCI_OLD_SUSPEND
- static int snd_cs4281_suspend(struct pci_dev *dev, u32 state)
- {
- cs4281_t *chip = snd_magic_cast(cs4281_t, pci_get_drvdata(dev), return -ENXIO);
-@@ -2131,6 +2132,18 @@
- cs4281_resume(chip);
- return 0;
- }
-+#else
-+static void snd_cs4281_suspend(struct pci_dev *dev)
-+{
-+ cs4281_t *chip = snd_magic_cast(cs4281_t, pci_get_drvdata(dev), return);
-+ cs4281_suspend(chip);
-+}
-+static void snd_cs4281_resume(struct pci_dev *dev)
-+{
-+ cs4281_t *chip = snd_magic_cast(cs4281_t, pci_get_drvdata(dev), return);
-+ cs4281_resume(chip);
-+}
-+#endif
-
- /* callback */
- static int snd_cs4281_set_power_state(snd_card_t *card, unsigned int power_state)
-@@ -2206,3 +2219,4 @@
- __setup("snd-cs4281=", alsa_card_cs4281_setup);
-
- #endif /* ifndef MODULE */
-+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/cs46xx/cs46xx.c
diff -u /dev/null debian/alsa-driver/pci/cs46xx/cs46xx.c:1.3
--- /dev/null Wed Jun 9 16:50:49 2004
+++ debian/alsa-driver/pci/cs46xx/cs46xx.c Wed Jun 9 16:50:49 2004
@@ -0,0 +1,2 @@
+#include "../../alsa-kernel/pci/cs46xx/cs46xx.c"
+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/cs46xx/cs46xx.patch
diff -u debian/alsa-driver/pci/cs46xx/cs46xx.patch:1.1.1.1 debian/alsa-driver/pci/cs46xx/cs46xx.patch:removed
--- debian/alsa-driver/pci/cs46xx/cs46xx.patch:1.1.1.1 Wed Jun 18 05:12:52 2003
+++ debian/alsa-driver/pci/cs46xx/cs46xx.patch Wed Jun 9 16:50:49 2004
@@ -1,34 +0,0 @@
---- cs46xx.c 2003-06-10 15:29:36.000000000 +0200
-+++ cs46xx.c.old 2003-06-10 15:29:26.000000000 +0200
-@@ -163,6 +163,7 @@
- }
-
- #ifdef CONFIG_PM
-+#ifndef PCI_OLD_SUSPEND
- static int snd_card_cs46xx_suspend(struct pci_dev *pci, u32 state)
- {
- cs46xx_t *chip = snd_magic_cast(cs46xx_t, pci_get_drvdata(pci), return -ENXIO);
-@@ -175,6 +176,18 @@
- snd_cs46xx_resume(chip);
- return 0;
- }
-+#else
-+static void snd_card_cs46xx_suspend(struct pci_dev *pci)
-+{
-+ cs46xx_t *chip = snd_magic_cast(cs46xx_t, pci_get_drvdata(pci), return);
-+ snd_cs46xx_suspend(chip);
-+}
-+static void snd_card_cs46xx_resume(struct pci_dev *pci)
-+{
-+ cs46xx_t *chip = snd_magic_cast(cs46xx_t, pci_get_drvdata(pci), return);
-+ snd_cs46xx_resume(chip);
-+}
-+#endif
- #endif
-
- static void __devexit snd_card_cs46xx_remove(struct pci_dev *pci)
-@@ -237,3 +250,4 @@
- __setup("snd-cs46xx=", alsa_card_cs46xx_setup);
-
- #endif /* ifndef MODULE */
-+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/es1968.c
diff -u /dev/null debian/alsa-driver/pci/es1968.c:1.3
--- /dev/null Wed Jun 9 16:50:49 2004
+++ debian/alsa-driver/pci/es1968.c Wed Jun 9 16:50:48 2004
@@ -0,0 +1,2 @@
+#include "../alsa-kernel/pci/es1968.c"
+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/es1968.patch
diff -u debian/alsa-driver/pci/es1968.patch:1.1.1.1 debian/alsa-driver/pci/es1968.patch:removed
--- debian/alsa-driver/pci/es1968.patch:1.1.1.1 Wed Jun 18 05:12:52 2003
+++ debian/alsa-driver/pci/es1968.patch Wed Jun 9 16:50:49 2004
@@ -1,34 +0,0 @@
---- es1968.c 2003-06-10 15:20:37.000000000 +0200
-+++ es1968.c.old 2003-06-10 15:20:22.000000000 +0200
-@@ -2468,6 +2468,7 @@
- snd_power_change_state(card, SNDRV_CTL_POWER_D0);
- }
-
-+#ifndef PCI_OLD_SUSPEND
- static int snd_es1968_suspend(struct pci_dev *dev, u32 state)
- {
- es1968_t *chip = snd_magic_cast(es1968_t, pci_get_drvdata(dev), return -ENXIO);
-@@ -2480,6 +2481,18 @@
- es1968_resume(chip);
- return 0;
- }
-+#else
-+static void snd_es1968_suspend(struct pci_dev *dev)
-+{
-+ es1968_t *chip = snd_magic_cast(es1968_t, pci_get_drvdata(dev), return);
-+ es1968_suspend(chip);
-+}
-+static void snd_es1968_resume(struct pci_dev *dev)
-+{
-+ es1968_t *chip = snd_magic_cast(es1968_t, pci_get_drvdata(dev), return);
-+ es1968_resume(chip);
-+}
-+#endif
-
- /* callback */
- static int snd_es1968_set_power_state(snd_card_t *card, unsigned int power_state)
-@@ -2868,3 +2881,4 @@
- __setup("snd-es1968=", alsa_card_es1968_setup);
-
- #endif /* ifndef MODULE */
-+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/ice1712/prodigy.c
diff -u debian/alsa-driver/pci/ice1712/prodigy.c:1.1.1.1 debian/alsa-driver/pci/ice1712/prodigy.c:removed
--- debian/alsa-driver/pci/ice1712/prodigy.c:1.1.1.1 Mon Nov 10 11:01:21 2003
+++ debian/alsa-driver/pci/ice1712/prodigy.c Wed Jun 9 16:50:49 2004
@@ -1,2 +0,0 @@
-#define __NO_VERSION__
-#include "../../alsa-kernel/pci/ice1712/prodigy.c"
Index: debian/alsa-driver/pci/maestro3.c
diff -u /dev/null debian/alsa-driver/pci/maestro3.c:1.3
--- /dev/null Wed Jun 9 16:50:50 2004
+++ debian/alsa-driver/pci/maestro3.c Wed Jun 9 16:50:48 2004
@@ -0,0 +1,2 @@
+#include "../alsa-kernel/pci/maestro3.c"
+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/maestro3.patch
diff -u debian/alsa-driver/pci/maestro3.patch:1.1.1.1 debian/alsa-driver/pci/maestro3.patch:removed
--- debian/alsa-driver/pci/maestro3.patch:1.1.1.1 Wed Jun 18 05:12:52 2003
+++ debian/alsa-driver/pci/maestro3.patch Wed Jun 9 16:50:50 2004
@@ -1,34 +0,0 @@
---- maestro3.c 2003-06-10 15:23:49.000000000 +0200
-+++ maestro3.c.old 2003-06-10 15:23:56.000000000 +0200
-@@ -2458,6 +2458,7 @@
- snd_power_change_state(card, SNDRV_CTL_POWER_D0);
- }
-
-+#ifndef PCI_OLD_SUSPEND
- static int snd_m3_suspend(struct pci_dev *pci, u32 state)
- {
- m3_t *chip = snd_magic_cast(m3_t, pci_get_drvdata(pci), return -ENXIO);
-@@ -2470,6 +2471,18 @@
- m3_resume(chip);
- return 0;
- }
-+#else
-+static void snd_m3_suspend(struct pci_dev *pci)
-+{
-+ m3_t *chip = snd_magic_cast(m3_t, pci_get_drvdata(pci), return);
-+ m3_suspend(chip);
-+}
-+static void snd_m3_resume(struct pci_dev *pci)
-+{
-+ m3_t *chip = snd_magic_cast(m3_t, pci_get_drvdata(pci), return);
-+ m3_resume(chip);
-+}
-+#endif
-
- /* callback */
- static int snd_m3_set_power_state(snd_card_t *card, unsigned int power_state)
-@@ -2769,3 +2782,4 @@
- __setup("snd-maestro3=", alsa_card_maestro3_setup);
-
- #endif /* ifndef MODULE */
-+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/nm256/nm256.c
diff -u /dev/null debian/alsa-driver/pci/nm256/nm256.c:1.3
--- /dev/null Wed Jun 9 16:50:50 2004
+++ debian/alsa-driver/pci/nm256/nm256.c Wed Jun 9 16:50:49 2004
@@ -0,0 +1,2 @@
+#include "../../alsa-kernel/pci/nm256/nm256.c"
+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/nm256/nm256.patch
diff -u debian/alsa-driver/pci/nm256/nm256.patch:1.1.1.1 debian/alsa-driver/pci/nm256/nm256.patch:removed
--- debian/alsa-driver/pci/nm256/nm256.patch:1.1.1.1 Wed Jun 18 05:12:53 2003
+++ debian/alsa-driver/pci/nm256/nm256.patch Wed Jun 9 16:50:50 2004
@@ -1,34 +0,0 @@
---- nm256.c 2003-06-10 15:13:55.000000000 +0200
-+++ nm256.c.old 2003-06-10 15:14:45.000000000 +0200
-@@ -1307,6 +1307,7 @@
- snd_power_change_state(card, SNDRV_CTL_POWER_D0);
- }
-
-+#ifndef PCI_OLD_SUSPEND
- static int snd_nm256_suspend(struct pci_dev *dev, u32 state)
- {
- nm256_t *chip = snd_magic_cast(nm256_t, pci_get_drvdata(dev), return -ENXIO);
-@@ -1319,6 +1320,18 @@
- nm256_resume(chip);
- return 0;
- }
-+#else
-+static void snd_nm256_suspend(struct pci_dev *dev)
-+{
-+ nm256_t *chip = snd_magic_cast(nm256_t, pci_get_drvdata(dev), return);
-+ nm256_suspend(chip);
-+}
-+static void snd_nm256_resume(struct pci_dev *dev)
-+{
-+ nm256_t *chip = snd_magic_cast(nm256_t, pci_get_drvdata(dev), return);
-+ nm256_resume(chip);
-+}
-+#endif
-
- /* callback */
- static int snd_nm256_set_power_state(snd_card_t *card, unsigned int power_state)
-@@ -1707,3 +1720,4 @@
- __setup("snd-nm256=", alsa_card_nm256_setup);
-
- #endif /* ifndef MODULE */
-+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/trident/trident.c
diff -u /dev/null debian/alsa-driver/pci/trident/trident.c:1.3
--- /dev/null Wed Jun 9 16:50:50 2004
+++ debian/alsa-driver/pci/trident/trident.c Wed Jun 9 16:50:49 2004
@@ -0,0 +1 @@
+#include "../../alsa-kernel/pci/trident/trident.c"
Index: debian/alsa-driver/pci/trident/trident.patch
diff -u debian/alsa-driver/pci/trident/trident.patch:1.1.1.1 debian/alsa-driver/pci/trident/trident.patch:removed
--- debian/alsa-driver/pci/trident/trident.patch:1.1.1.1 Wed Jun 18 05:12:53 2003
+++ debian/alsa-driver/pci/trident/trident.patch Wed Jun 9 16:50:50 2004
@@ -1,29 +0,0 @@
---- trident.c 2003-06-10 15:25:34.000000000 +0200
-+++ trident.c.old 2003-06-10 15:25:09.000000000 +0200
-@@ -182,6 +182,7 @@
- }
-
- #ifdef CONFIG_PM
-+#ifndef PCI_OLD_SUSPEND
- static int snd_card_trident_suspend(struct pci_dev *pci, u32 state)
- {
- trident_t *chip = snd_magic_cast(trident_t, pci_get_drvdata(pci), return -ENXIO);
-@@ -194,6 +195,18 @@
- snd_trident_resume(chip);
- return 0;
- }
-+#else
-+static void snd_card_trident_suspend(struct pci_dev *pci)
-+{
-+ trident_t *chip = snd_magic_cast(trident_t, pci_get_drvdata(pci), return);
-+ snd_trident_suspend(chip);
-+}
-+static void snd_card_trident_resume(struct pci_dev *pci)
-+{
-+ trident_t *chip = snd_magic_cast(trident_t, pci_get_drvdata(pci), return);
-+ snd_trident_resume(chip);
-+}
-+#endif
- #endif
-
- static struct pci_driver driver = {
Index: debian/alsa-driver/pci/ymfpci/ymfpci.c
diff -u /dev/null debian/alsa-driver/pci/ymfpci/ymfpci.c:1.3
--- /dev/null Wed Jun 9 16:50:50 2004
+++ debian/alsa-driver/pci/ymfpci/ymfpci.c Wed Jun 9 16:50:49 2004
@@ -0,0 +1,2 @@
+#include "../../alsa-kernel/pci/ymfpci/ymfpci.c"
+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pci/ymfpci/ymfpci.patch
diff -u debian/alsa-driver/pci/ymfpci/ymfpci.patch:1.1.1.1 debian/alsa-driver/pci/ymfpci/ymfpci.patch:removed
--- debian/alsa-driver/pci/ymfpci/ymfpci.patch:1.1.1.1 Wed Jun 18 05:12:53 2003
+++ debian/alsa-driver/pci/ymfpci/ymfpci.patch Wed Jun 9 16:50:50 2004
@@ -1,34 +0,0 @@
---- ymfpci.c 2003-06-10 15:28:14.000000000 +0200
-+++ ymfpci.c.old 2003-06-10 15:28:03.000000000 +0200
-@@ -249,6 +249,7 @@
- }
-
- #ifdef CONFIG_PM
-+#ifndef PCI_OLD_SUSPEND
- static int snd_card_ymfpci_suspend(struct pci_dev *pci, u32 state)
- {
- ymfpci_t *chip = snd_magic_cast(ymfpci_t, pci_get_drvdata(pci), return -ENXIO);
-@@ -261,6 +262,18 @@
- snd_ymfpci_resume(chip);
- return 0;
- }
-+#else
-+static void snd_card_ymfpci_suspend(struct pci_dev *pci)
-+{
-+ ymfpci_t *chip = snd_magic_cast(ymfpci_t, pci_get_drvdata(pci), return);
-+ snd_ymfpci_suspend(chip);
-+}
-+static void snd_card_ymfpci_resume(struct pci_dev *pci)
-+{
-+ ymfpci_t *chip = snd_magic_cast(ymfpci_t, pci_get_drvdata(pci), return);
-+ snd_ymfpci_resume(chip);
-+}
-+#endif
- #endif
-
- static void __devexit snd_card_ymfpci_remove(struct pci_dev *pci)
-@@ -326,3 +339,4 @@
- __setup("snd-ymfpci=", alsa_card_ymfpci_setup);
-
- #endif /* ifndef MODULE */
-+EXPORT_NO_SYMBOLS;
Index: debian/alsa-driver/pcmcia/vx/vxpocket.c
diff -u debian/alsa-driver/pcmcia/vx/vxpocket.c:1.1.1.5 debian/alsa-driver/pcmcia/vx/vxpocket.c:removed
--- debian/alsa-driver/pcmcia/vx/vxpocket.c:1.1.1.5 Thu Jan 8 04:23:23 2004
+++ debian/alsa-driver/pcmcia/vx/vxpocket.c Wed Jun 9 16:50:50 2004
@@ -1,17 +0,0 @@
-#include <linux/config.h>
-#include <linux/version.h>
-
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
-#if defined(CONFIG_MODVERSIONS) && !defined(__GENKSYMS__) && !defined(__DEPEND__)
-#define MODVERSIONS
-#include <linux/modversions.h>
-#include "sndversions.h"
-#endif
-#endif
-
-#include "config.h"
-#include "adriver.h"
-#include "compat_cs.h"
-
-#include "../../alsa-kernel/pcmcia/vx/vxpocket.c"
-EXPORT_NO_SYMBOLS;