http://linux-sound.bkbits.net/linux-sound
perex@suse.cz|ChangeSet|20040704135528|54965 perex

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/07/27 13:16:58-07:00 akpm@bix.(none) 
#   Merge
# 
# sound/pci/ice1712/ice1724.c
#   2004/07/27 13:16:54-07:00 akpm@bix.(none) +0 -1
#   SCCS merged
# 
# sound/pci/au88x0/au88x0_a3d.c
#   2004/07/27 13:16:27-07:00 akpm@bix.(none) +0 -4
#   SCCS merged
# 
# sound/isa/gus/interwave.c
#   2004/07/27 13:15:16-07:00 akpm@bix.(none) +2 -0
#   SCCS merged
# 
# sound/usb/usbmixer.c
#   2004/07/27 13:13:45-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/usb/usbaudio.c
#   2004/07/27 13:13:45-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/ppc/pmac.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/pci/sonicvibes.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/pci/rme9652/hdsp.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/pci/nm256/nm256.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/pci/maestro3.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/pci/intel8x0m.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/pci/ice1712/ice1712.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/pci/azt3328.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/pci/au88x0/au88x0.h
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/isa/wavefront/wavefront_synth.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/isa/sb/sb8_main.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/isa/sb/emu8000_pcm.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/isa/gus/gus_mem.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/isa/Kconfig
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/drivers/vx/vx_pcm.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/drivers/serial-u16550.c
#   2004/07/27 13:13:44-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/core/seq/seq_clientmgr.c
#   2004/07/27 13:13:43-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/core/pcm.c
#   2004/07/27 13:13:43-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/core/oss/pcm_oss.c
#   2004/07/27 13:13:43-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/core/ioctl32/pcm32.c
#   2004/07/27 13:13:43-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/core/ioctl32/ioctl32.c
#   2004/07/27 13:13:43-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# sound/core/control.c
#   2004/07/27 13:13:43-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# mm/slab.c
#   2004/07/27 13:13:43-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# include/sound/asound.h
#   2004/07/27 13:13:43-07:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/07/04 15:55:28+02:00 perex@suse.cz 
#   ALSA CVS update
#   au88x0 driver
#   - asXtalkGainsAllChan -> vortex_asXtalkGainsAllChan
#   - fixed extern/static problem
#   
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# sound/pci/au88x0/au88x0_xtalk.h
#   2004/07/04 07:47:16+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/07/04 13:47:16
#   C:au88x0 driver
#   F:pci/au88x0/au88x0_a3d.c:1.4->1.5 
#   F:pci/au88x0/au88x0_xtalk.c:1.1->1.2 
#   F:pci/au88x0/au88x0_xtalk.h:1.1->1.2 
#   L:- asXtalkGainsAllChan -> vortex_asXtalkGainsAllChan
#   L:- fixed extern/static problem
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# sound/pci/au88x0/au88x0_xtalk.c
#   2004/07/04 07:47:16+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/07/04 13:47:16
#   C:au88x0 driver
#   F:pci/au88x0/au88x0_a3d.c:1.4->1.5 
#   F:pci/au88x0/au88x0_xtalk.c:1.1->1.2 
#   F:pci/au88x0/au88x0_xtalk.h:1.1->1.2 
#   L:- asXtalkGainsAllChan -> vortex_asXtalkGainsAllChan
#   L:- fixed extern/static problem
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# sound/pci/au88x0/au88x0_a3d.c
#   2004/07/04 07:47:16+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/07/04 13:47:16
#   C:au88x0 driver
#   F:pci/au88x0/au88x0_a3d.c:1.4->1.5 
#   F:pci/au88x0/au88x0_xtalk.c:1.1->1.2 
#   F:pci/au88x0/au88x0_xtalk.h:1.1->1.2 
#   L:- asXtalkGainsAllChan -> vortex_asXtalkGainsAllChan
#   L:- fixed extern/static problem
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# ChangeSet
#   2004/07/04 15:55:01+02:00 perex@suse.cz 
#   ALSA CVS update
#   ES1938 driver
#   
#   Playing Quake1 (quakeforge-flavor with ALSA-driver) I hear cracks and blibs.
#   Other apps (xine, mpg321) are fine. The OSS driver in 2.6.7 produces no
#   cracks (but reverses stereo BTW).
#   
#   I fixed it, i.e. it works for me:
#   
#   *No swapping of stereo channels
#   *no cracks
#   
#   Signed-off-by: <maps4711@gmx.de>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# sound/pci/es1938.c
#   2004/07/04 06:05:55+02:00 perex@suse.cz +12 -4
#   ALSA CVS update
#   D:2004/07/04 12:05:55
#   C:ES1938 driver
#   F:pci/es1938.c:1.38->1.39 
#   L:
#   L:Playing Quake1 (quakeforge-flavor with ALSA-driver) I hear cracks and blibs.
#   L:Other apps (xine, mpg321) are fine. The OSS driver in 2.6.7 produces no
#   L:cracks (but reverses stereo BTW).
#   L:
#   L:I fixed it, i.e. it works for me:
#   L:
#   L:*No swapping of stereo channels
#   L:*no cracks
#   Signed-off-by: <maps4711@gmx.de>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# ChangeSet
#   2004/07/04 15:54:34+02:00 perex@suse.cz 
#   ALSA CVS update
#   PCM Midlevel,RME32 driver
#   - Fixed the int types in indirect_pcm helpers.
#   - Added the missing initialization of fullduplex mode on rme32.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme32.c
#   2004/07/02 08:43:44+02:00 perex@suse.cz +6 -8
#   ALSA CVS update
#   D:2004/07/02 14:43:44
#   C:PCM Midlevel,RME32 driver
#   F:include/pcm-indirect.h:1.1->1.2 
#   F:pci/rme32.c:1.38->1.39 
#   L:- Fixed the int types in indirect_pcm helpers.
#   L:- Added the missing initialization of fullduplex mode on rme32.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/pcm-indirect.h
#   2004/07/02 08:43:44+02:00 perex@suse.cz +11 -11
#   ALSA CVS update
#   D:2004/07/02 14:43:44
#   C:PCM Midlevel,RME32 driver
#   F:include/pcm-indirect.h:1.1->1.2 
#   F:pci/rme32.c:1.38->1.39 
#   L:- Fixed the int types in indirect_pcm helpers.
#   L:- Added the missing initialization of fullduplex mode on rme32.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/04 15:54:07+02:00 perex@suse.cz 
#   ALSA CVS update
#   EMU10K1/EMU10K2 driver
#   Clean up the invalid (commented out) lines for emu10k1x.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emu10k1.c
#   2004/07/02 08:22:12+02:00 perex@suse.cz +0 -3
#   ALSA CVS update
#   D:2004/07/02 14:22:12
#   C:EMU10K1/EMU10K2 driver
#   F:pci/emu10k1/emu10k1.c:1.26->1.27 
#   L:Clean up the invalid (commented out) lines for emu10k1x.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:38:27+02:00 perex@suse.cz 
#   ALSA CVS update
#   Instrument layer
#     LD      .tmp_vmlinux1
#   sound/built-in.o(.text+0xfb4ae): In function nd_gus_synth_new_device':
#   : undefined reference to nd_seq_iwffff_init'
#   make: *** [.tmp_vmlinux1] Error 1
#   
#   Signed-off-by: Adrian Bunk <bunk@fs.tum.de>
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# sound/core/seq/instr/Makefile
#   2004/07/01 10:12:07+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/07/01 16:12:07
#   C:Instrument layer
#   F:core/seq/instr/Makefile:1.17->1.18 
#   L:  LD      .tmp_vmlinux1
#   L:sound/built-in.o(.text+0xfb4ae): In function nd_gus_synth_new_device':
#   L:: undefined reference to nd_seq_iwffff_init'
#   L:make: *** [.tmp_vmlinux1] Error 1
#   Signed-off-by: Adrian Bunk <bunk@fs.tum.de>
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# ChangeSet
#   2004/07/01 19:38:07+02:00 perex@suse.cz 
#   ALSA CVS update
#   PCM Midlevel
#   
#   snd_pcm_timer_resolution_change():
#   
#   Right, that function doesn't work well for 44100/1024 in 32 bits -- it
#   ends up trying to calculate 1e7 * 1024 / 441 and having to divide
#   both numerator and denominator by 4 (thus losing the rather crucial 1
#   at the end of 441) before it can do the calculation without overflow.
#   
#   Attached is a patch against 1.0.5a that gets better results in this
#   instance, by leaving the denominator alone and instead doubling the
#   result back up by the same number of times as the multiplier had to
#   be halved by.
#   
#   Signed-off-by: Chris Cannam <cannam@all-day-breakfast.com>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# sound/core/pcm_timer.c
#   2004/07/01 09:59:38+02:00 perex@suse.cz +4 -3
#   ALSA CVS update
#   D:2004/07/01 15:59:38
#   C:PCM Midlevel
#   F:core/pcm_timer.c:1.8->1.9 
#   L:
#   L:snd_pcm_timer_resolution_change():
#   L:
#   L:Right, that function doesn't work well for 44100/1024 in 32 bits -- it
#   L:ends up trying to calculate 1e7 * 1024 / 441 and having to divide
#   L:both numerator and denominator by 4 (thus losing the rather crucial 1
#   L:at the end of 441) before it can do the calculation without overflow.
#   L:
#   L:Attached is a patch against 1.0.5a that gets better results in this
#   L:instance, by leaving the denominator alone and instead doubling the
#   L:result back up by the same number of times as the multiplier had to
#   L:be halved by.
#   Signed-off-by: Chris Cannam <cannam@all-day-breakfast.com>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# ChangeSet
#   2004/07/01 19:37:46+02:00 perex@suse.cz 
#   ALSA CVS update
#   RME32 driver
#   Added the experimental fullduplex support.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme32.c
#   2004/07/01 04:22:49+02:00 perex@suse.cz +336 -205
#   ALSA CVS update
#   D:2004/07/01 10:22:49
#   C:RME32 driver
#   F:pci/rme32.c:1.37->1.38 
#   L:Added the experimental fullduplex support.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:37:25+02:00 perex@suse.cz 
#   ALSA CVS update
#   CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel
#   Clean up of indirect PCM data transfer with helper functions.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emupcm.c
#   2004/07/01 04:22:16+02:00 perex@suse.cz +32 -72
#   ALSA CVS update
#   D:2004/07/01 10:22:16
#   C:CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel
#   F:include/cs46xx.h:1.19->1.20 
#   F:include/emu10k1.h:1.42->1.43 
#   F:include/pcm-indirect.h:INITIAL->1.1 
#   F:pci/cs46xx/cs46xx_lib.c:1.75->1.76 
#   F:pci/emu10k1/emupcm.c:1.28->1.29 
#   L:Clean up of indirect PCM data transfer with helper functions.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cs46xx/cs46xx_lib.c
#   2004/07/01 04:22:16+02:00 perex@suse.cz +27 -102
#   ALSA CVS update
#   D:2004/07/01 10:22:16
#   C:CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel
#   F:include/cs46xx.h:1.19->1.20 
#   F:include/emu10k1.h:1.42->1.43 
#   F:include/pcm-indirect.h:INITIAL->1.1 
#   F:pci/cs46xx/cs46xx_lib.c:1.75->1.76 
#   F:pci/emu10k1/emupcm.c:1.28->1.29 
#   L:Clean up of indirect PCM data transfer with helper functions.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/pcm-indirect.h
#   2004/07/01 18:07:24+02:00 perex@suse.cz +173 -0
#   ALSA CVS update
#   D:2004/07/01 10:22:16
#   C:CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel
#   F:include/cs46xx.h:1.19->1.20 
#   F:include/emu10k1.h:1.42->1.43 
#   F:include/pcm-indirect.h:INITIAL->1.1 
#   F:pci/cs46xx/cs46xx_lib.c:1.75->1.76 
#   F:pci/emu10k1/emupcm.c:1.28->1.29 
#   L:Clean up of indirect PCM data transfer with helper functions.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/emu10k1.h
#   2004/07/01 04:22:16+02:00 perex@suse.cz +2 -4
#   ALSA CVS update
#   D:2004/07/01 10:22:16
#   C:CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel
#   F:include/cs46xx.h:1.19->1.20 
#   F:include/emu10k1.h:1.42->1.43 
#   F:include/pcm-indirect.h:INITIAL->1.1 
#   F:pci/cs46xx/cs46xx_lib.c:1.75->1.76 
#   F:pci/emu10k1/emupcm.c:1.28->1.29 
#   L:Clean up of indirect PCM data transfer with helper functions.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/cs46xx.h
#   2004/07/01 04:22:16+02:00 perex@suse.cz +3 -16
#   ALSA CVS update
#   D:2004/07/01 10:22:16
#   C:CS46xx driver,EMU10K1/EMU10K2 driver,PCM Midlevel
#   F:include/cs46xx.h:1.19->1.20 
#   F:include/emu10k1.h:1.42->1.43 
#   F:include/pcm-indirect.h:INITIAL->1.1 
#   F:pci/cs46xx/cs46xx_lib.c:1.75->1.76 
#   F:pci/emu10k1/emupcm.c:1.28->1.29 
#   L:Clean up of indirect PCM data transfer with helper functions.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/pcm-indirect.h
#   2004/07/01 18:07:24+02:00 perex@suse.cz +0 -0
#   BitKeeper file /home/perex/bk/linux-sound/work/include/sound/pcm-indirect.h
# 
# ChangeSet
#   2004/07/01 19:37:02+02:00 perex@suse.cz 
#   ALSA CVS update
#   AC97 Codec Core
#   Check the validity of registers before creating controls.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_codec.c
#   2004/07/01 04:21:23+02:00 perex@suse.cz +9 -0
#   ALSA CVS update
#   D:2004/07/01 10:21:23
#   C:AC97 Codec Core
#   F:pci/ac97/ac97_codec.c:1.138->1.139 
#   L:Check the validity of registers before creating controls.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:36:42+02:00 perex@suse.cz 
#   ALSA CVS update
#   ALSA<-OSS sequencer
#   Suppress the error message when no device is found.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/oss/seq_oss_init.c
#   2004/07/01 04:20:50+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/07/01 10:20:50
#   C:ALSA<-OSS sequencer
#   F:core/seq/oss/seq_oss_init.c:1.13->1.14 
#   L:Suppress the error message when no device is found.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:36:21+02:00 perex@suse.cz 
#   ALSA CVS update
#   NM256 driver
#   Added AC97 CD register to the list of allowed registeres.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/nm256/nm256.c
#   2004/07/01 04:19:48+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/07/01 10:19:48
#   C:NM256 driver
#   F:pci/nm256/nm256.c:1.42->1.43 
#   L:Added AC97 CD register to the list of allowed registeres.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:35:59+02:00 perex@suse.cz 
#   ALSA CVS update
#   SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   PARISC Harmony driver,Sound Core PDAudioCF driver
#   Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   SPARC cs4231 driver,USB generic driver
#   Clean up of obsolete MODULE_* stuff (other part)
#   
#   Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/usb/usbaudio.c
#   2004/07/01 03:33:43+02:00 perex@suse.cz +1 -9
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/sparc/cs4231.c
#   2004/07/01 03:33:43+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/sparc/amd7930.c
#   2004/07/01 03:33:43+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/ppc/powermac.c
#   2004/07/01 03:33:43+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/vx/vxpocket.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/pdaudiocf/pdaudiocf.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/parisc/harmony.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/i2c/l3/uda1341.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +2 -3
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/virmidi.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/serial-u16550.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +1 -13
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl4/opl4_seq.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl4/opl4_lib.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl3/opl3_seq.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/mtpav.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +1 -7
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/mpu401/mpu401.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +0 -7
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/dummy.c
#   2004/07/01 03:33:42+02:00 perex@suse.cz +1 -8
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/arm/sa11xx-uda1341.c
#   2004/07/01 03:33:41+02:00 perex@suse.cz +2 -3
#   ALSA CVS update
#   D:2004/07/01 09:33:41
#   C:SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3,OPL4,L3 drivers
#   C:PARISC Harmony driver,Sound Core PDAudioCF driver
#   C:Digigram VX Pocket driver,PPC PowerMac driver,SPARC AMD7930 driver
#   C:SPARC cs4231 driver,USB generic driver
#   F:arm/sa11xx-uda1341.c:1.16->1.17 
#   F:drivers/dummy.c:1.29->1.30 
#   F:drivers/mtpav.c:1.28->1.29 
#   F:drivers/serial-u16550.c:1.27->1.28 
#   F:drivers/virmidi.c:1.13->1.14 
#   F:drivers/mpu401/mpu401.c:1.18->1.19 
#   F:drivers/opl3/opl3_seq.c:1.14->1.15 
#   F:drivers/opl4/opl4_lib.c:1.6->1.7 
#   F:drivers/opl4/opl4_seq.c:1.5->1.6 
#   F:i2c/l3/uda1341.c:1.11->1.12 
#   F:parisc/harmony.c:1.13->1.14 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.8->1.9 
#   F:pcmcia/vx/vxpocket.c:1.4->1.5 
#   F:ppc/powermac.c:1.17->1.18 
#   F:sparc/amd7930.c:1.10->1.11 
#   F:sparc/cs4231.c:1.14->1.15 
#   F:usb/usbaudio.c:1.103->1.104 
#   L:Clean up of obsolete MODULE_* stuff (other part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:35:33+02:00 perex@suse.cz 
#   ALSA CVS update
#   ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   Trident driver,Digigram VX222 driver,YMFPCI driver
#   Clean up of obsolete MODULE_* stuff (pci part)
#   
#   Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ymfpci/ymfpci.c
#   2004/07/01 03:30:29+02:00 perex@suse.cz +1 -9
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/vx222/vx222.c
#   2004/07/01 03:30:29+02:00 perex@suse.cz +1 -7
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/via82xx.c
#   2004/07/01 03:30:24+02:00 perex@suse.cz +1 -10
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/trident/trident.c
#   2004/07/01 03:30:28+02:00 perex@suse.cz +1 -7
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/sonicvibes.c
#   2004/07/01 03:30:23+02:00 perex@suse.cz +1 -8
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme9652/rme9652.c
#   2004/07/01 03:30:28+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme9652/hdsp.c
#   2004/07/01 03:30:27+02:00 perex@suse.cz +1 -7
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme96.c
#   2004/07/01 03:30:23+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme32.c
#   2004/07/01 03:30:22+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/nm256/nm256.c
#   2004/07/01 03:30:27+02:00 perex@suse.cz +1 -11
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/mixart/mixart.c
#   2004/07/01 03:30:26+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/maestro3.c
#   2004/07/01 03:30:22+02:00 perex@suse.cz +1 -7
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/korg1212/korg1212.c
#   2004/07/01 03:30:26+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/intel8x0m.c
#   2004/07/01 03:30:22+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/intel8x0.c
#   2004/07/01 03:30:22+02:00 perex@suse.cz +1 -9
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ice1724.c
#   2004/07/01 03:30:26+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ice1712.c
#   2004/07/01 03:30:26+02:00 perex@suse.cz +1 -7
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ak4xxx.c
#   2004/07/01 03:30:25+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/fm801.c
#   2004/07/01 03:30:22+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/es1968.c
#   2004/07/01 03:30:22+02:00 perex@suse.cz +1 -12
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/es1938.c
#   2004/07/01 03:30:22+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ens1370.c
#   2004/07/01 03:30:21+02:00 perex@suse.cz +2 -8
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emu10k1.c
#   2004/07/01 03:30:25+02:00 perex@suse.cz +1 -11
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cs46xx/cs46xx.c
#   2004/07/01 03:30:25+02:00 perex@suse.cz +1 -8
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cs4281.c
#   2004/07/01 03:30:21+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cmipci.c
#   2004/07/01 03:30:21+02:00 perex@suse.cz +1 -8
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/bt87x.c
#   2004/07/01 03:30:21+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/azt3328.c
#   2004/07/01 03:30:21+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/au88x0/au88x0.c
#   2004/07/01 03:30:25+02:00 perex@suse.cz +1 -8
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/atiixp.c
#   2004/07/01 03:30:20+02:00 perex@suse.cz +1 -7
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/als4000.c
#   2004/07/01 03:30:20+02:00 perex@suse.cz +1 -6
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ali5451/ali5451.c
#   2004/07/01 03:30:24+02:00 perex@suse.cz +1 -7
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_codec.c
#   2004/07/01 03:30:24+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:30:20
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.34->1.35 
#   F:pci/atiixp.c:1.12->1.13 
#   F:pci/azt3328.c:1.14->1.15 
#   F:pci/bt87x.c:1.6->1.7 
#   F:pci/cmipci.c:1.69->1.70 
#   F:pci/cs4281.c:1.56->1.57 
#   F:pci/ens1370.c:1.61->1.62 
#   F:pci/es1938.c:1.37->1.38 
#   F:pci/es1968.c:1.69->1.70 
#   F:pci/fm801.c:1.46->1.47 
#   F:pci/intel8x0.c:1.140->1.141 
#   F:pci/intel8x0m.c:1.6->1.7 
#   F:pci/maestro3.c:1.53->1.54 
#   F:pci/rme32.c:1.36->1.37 
#   F:pci/rme96.c:1.38->1.39 
#   F:pci/sonicvibes.c:1.36->1.37 
#   F:pci/via82xx.c:1.106->1.107 
#   F:pci/ac97/ac97_codec.c:1.137->1.138 
#   F:pci/ali5451/ali5451.c:1.49->1.50 
#   F:pci/au88x0/au88x0.c:1.10->1.11 
#   F:pci/cs46xx/cs46xx.c:1.27->1.28 
#   F:pci/emu10k1/emu10k1.c:1.25->1.26 
#   F:pci/ice1712/ak4xxx.c:1.8->1.9 
#   F:pci/ice1712/ice1712.c:1.54->1.55 
#   F:pci/ice1712/ice1724.c:1.36->1.37 
#   F:pci/korg1212/korg1212.c:1.41->1.42 
#   F:pci/mixart/mixart.c:1.11->1.12 
#   F:pci/nm256/nm256.c:1.41->1.42 
#   F:pci/rme9652/hdsp.c:1.60->1.61 
#   F:pci/rme9652/rme9652.c:1.47->1.48 
#   F:pci/trident/trident.c:1.24->1.25 
#   F:pci/vx222/vx222.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci.c:1.36->1.37 
#   L:Clean up of obsolete MODULE_* stuff (pci part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:35:06+02:00 perex@suse.cz 
#   ALSA CVS update
#   ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   Clean up of obsolete MODULE_* stuff (isa part)
#   
#   Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/wavefront/wavefront.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +1 -16
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sscape.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +0 -6
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sgalaxy.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -8
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb_common.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb8.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +1 -8
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb16_csp.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb16.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +2 -17
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/es968.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +1 -8
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/emu8000_synth.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/opti9xx/opti92x-ad1848.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +3 -15
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/opl3sa2.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -15
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/interwave.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +2 -16
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gusmax.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +1 -12
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gusextreme.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +1 -16
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gusclassic.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +1 -12
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/es18xx.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -12
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/es1688/es1688_lib.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/es1688/es1688.c
#   2004/07/01 03:29:30+02:00 perex@suse.cz +1 -10
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/dt019x.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -11
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/cs423x/cs4236.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +2 -16
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/cs423x/cs4231.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -11
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/cmi8330.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -13
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/azt2320.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -13
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/als100.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -12
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/ad1848/ad1848.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -9
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/ad1816a/ad1816a.c
#   2004/07/01 03:29:29+02:00 perex@suse.cz +1 -12
#   ALSA CVS update
#   D:2004/07/01 09:29:29
#   C:ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver,ES18xx driver
#   C:OPL3SA2 driver,Sound Galaxy driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,ES1688 driver
#   C:GUS Classic driver,GUS Extreme driver,GUS MAX driver
#   C:AMD InterWave driver,Opti9xx drivers,EMU8000 driver,ES968 driver
#   C:SB16/AWE driver,SB8 driver,SB drivers,Wavefront drivers
#   F:isa/als100.c:1.26->1.27 
#   F:isa/azt2320.c:1.26->1.27 
#   F:isa/cmi8330.c:1.30->1.31 
#   F:isa/dt019x.c:1.20->1.21 
#   F:isa/es18xx.c:1.47->1.48 
#   F:isa/opl3sa2.c:1.36->1.37 
#   F:isa/sgalaxy.c:1.20->1.21 
#   F:isa/sscape.c:1.14->1.15 
#   F:isa/ad1816a/ad1816a.c:1.20->1.21 
#   F:isa/ad1848/ad1848.c:1.12->1.13 
#   F:isa/cs423x/cs4231.c:1.14->1.15 
#   F:isa/cs423x/cs4236.c:1.44->1.45 
#   F:isa/es1688/es1688.c:1.16->1.17 
#   F:isa/es1688/es1688_lib.c:1.25->1.26 
#   F:isa/gus/gusclassic.c:1.14->1.15 
#   F:isa/gus/gusextreme.c:1.16->1.17 
#   F:isa/gus/gusmax.c:1.15->1.16 
#   F:isa/gus/interwave.c:1.33->1.34 
#   F:isa/opti9xx/opti92x-ad1848.c:1.46->1.47 
#   F:isa/sb/emu8000_synth.c:1.7->1.8 
#   F:isa/sb/es968.c:1.26->1.27 
#   F:isa/sb/sb16.c:1.48->1.49 
#   F:isa/sb/sb16_csp.c:1.14->1.15 
#   F:isa/sb/sb8.c:1.20->1.21 
#   F:isa/sb/sb_common.c:1.20->1.21 
#   F:isa/wavefront/wavefront.c:1.29->1.30 
#   L:Clean up of obsolete MODULE_* stuff (isa part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:34:41+02:00 perex@suse.cz 
#   ALSA CVS update
#   Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   Clean up of obsolete MODULE_* stuff (core part)
#   
#   Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/timer.c
#   2004/07/01 03:28:48+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/sound.c
#   2004/07/01 03:28:48+02:00 perex@suse.cz +0 -5
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_midi_emul.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_midi.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_instr.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_dummy.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_device.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/oss/seq_oss.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -1
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/instr/ainstr_simple.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/instr/ainstr_iw.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/instr/ainstr_gf1.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/instr/ainstr_fm.c
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/rawmidi.c
#   2004/07/01 03:28:48+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_memory.c
#   2004/07/01 03:28:48+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/oss/pcm_oss.c
#   2004/07/01 03:28:48+02:00 perex@suse.cz +0 -3
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/initval.h
#   2004/07/01 03:28:49+02:00 perex@suse.cz +0 -33
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
#   2004/07/01 03:28:48+02:00 perex@suse.cz +1 -2
#   ALSA CVS update
#   D:2004/07/01 09:28:48
#   C:Documentation,PCM Midlevel,RawMidi Midlevel,ALSA Core,Timer Midlevel
#   C:ALSA<-OSS emulation,ALSA sequencer,Instrument layer,ALSA<-OSS sequencer
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.29->1.30 
#   F:core/pcm_memory.c:1.30->1.31 
#   F:core/rawmidi.c:1.45->1.46 
#   F:core/sound.c:1.64->1.65 
#   F:core/timer.c:1.60->1.61 
#   F:core/oss/pcm_oss.c:1.72->1.73 
#   F:core/seq/seq.c:1.13->1.14 
#   F:core/seq/seq_device.c:1.15->1.16 
#   F:core/seq/seq_dummy.c:1.12->1.13 
#   F:core/seq/seq_instr.c:1.9->1.10 
#   F:core/seq/seq_midi.c:1.21->1.22 
#   F:core/seq/seq_midi_emul.c:1.10->1.11 
#   F:core/seq/instr/ainstr_fm.c:1.7->1.8 
#   F:core/seq/instr/ainstr_gf1.c:1.8->1.9 
#   F:core/seq/instr/ainstr_iw.c:1.9->1.10 
#   F:core/seq/instr/ainstr_simple.c:1.7->1.8 
#   F:core/seq/oss/seq_oss.c:1.14->1.15 
#   F:include/initval.h:1.20->1.21 
#   L:Clean up of obsolete MODULE_* stuff (core part)
#   L:
#   L:Removed MODULE_CLASSES() and MODULE_SYNTAX().
#   L:Replaced MODULE_DEVICES() with MODULE_SUPPORTED_DEVICE()
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:34:16+02:00 perex@suse.cz 
#   ALSA CVS update
#   CMIPCI driver
#   Fix the i/o port range of gameport on cmipci
#   
#   Gameport use only 1 I/O port not 8.
#   Attached patch fix gameport on CMIPCI soundcards.
#   
#   Signed-off-by: Artur Frysiak <wiget@pld-linux.org>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cmipci.c
#   2004/06/30 04:54:31+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/30 10:54:31
#   C:CMIPCI driver
#   F:pci/cmipci.c:1.68->1.69 
#   L:Fix the i/o port range of gameport on cmipci
#   L:
#   L:Gameport use only 1 I/O port not 8.
#   L:Attached patch fix gameport on CMIPCI soundcards.
#   Signed-off-by: Artur Frysiak <wiget@pld-linux.org>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:33:55+02:00 perex@suse.cz 
#   ALSA CVS update
#   AC97 Codec Core
#   Fixed STAC9758 output jack selection control
#   
#   - fixed unbalnaced mutex.
#   - use ac97_update_bits_page() instead of snd_ac97_update_bits().
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_patch.c
#   2004/06/29 11:29:06+02:00 perex@suse.cz +2 -5
#   ALSA CVS update
#   D:2004/06/29 17:29:06
#   C:AC97 Codec Core
#   F:pci/ac97/ac97_patch.c:1.55->1.56 
#   L:Fixed STAC9758 output jack selection control
#   L:
#   L:- fixed unbalnaced mutex.
#   L:- use ac97_update_bits_page() instead of snd_ac97_update_bits().
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:33:30+02:00 perex@suse.cz 
#   ALSA CVS update
#   Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   USB generic driver
#   Removal and replacement of magic memory allocators and casts (other parts)
#   
#   This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   with kmalloc(), kcalloc() and kfree(), respectively.
#   The cast via snd_magic_cast() is replaced with the standard cast, too.
#   
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/usb/usbmixer.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +21 -21
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/usb/usbmidi.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +13 -13
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/usb/usbaudio.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +10 -12
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux_synth.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux_seq.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +8 -8
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux_proc.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux_oss.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux_nrpn.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux_hwdep.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/sparc/cs4231.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +11 -12
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/sparc/amd7930.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +4 -5
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/ppc/tumbler.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +1 -3
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/ppc/pmac.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +8 -10
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/ppc/daca.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/ppc/burgundy.c
#   2004/06/29 11:14:25+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/ppc/awacs.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/vx/vxp_ops.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/vx/vxp_mixer.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/vx/vx_entry.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +5 -5
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +1 -3
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/pdaudiocf/pdaudiocf_irq.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/pdaudiocf/pdaudiocf_core.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pcmcia/pdaudiocf/pdaudiocf.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +5 -5
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/parisc/harmony.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +2 -3
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/i2c/tea6330t.c
#   2004/06/29 11:14:23+02:00 perex@suse.cz +4 -6
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/i2c/other/ak4xxx-adda.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/i2c/other/ak4117.c
#   2004/06/29 11:14:24+02:00 perex@suse.cz +4 -6
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/i2c/l3/uda1341.c
#   2004/06/29 11:14:23+02:00 perex@suse.cz +8 -9
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/i2c/i2c.c
#   2004/06/29 11:14:23+02:00 perex@suse.cz +5 -5
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/i2c/cs8427.c
#   2004/06/29 11:14:23+02:00 perex@suse.cz +10 -12
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/vx/vx_pcm.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +11 -13
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/vx/vx_mixer.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/vx/vx_hwdep.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/vx/vx_core.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/virmidi.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/serial-u16550.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +10 -10
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl4/opl4_synth.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +5 -5
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl4/opl4_seq.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl4/opl4_proc.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl4/opl4_mixer.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl4/opl4_lib.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl3/opl3_synth.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +3 -3
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl3/opl3_seq.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl3/opl3_oss.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +7 -7
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl3/opl3_midi.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +7 -7
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl3/opl3_lib.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +4 -6
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/mtpav.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/mpu401/mpu401_uart.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +11 -11
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/dummy.c
#   2004/06/29 11:14:22+02:00 perex@suse.cz +16 -16
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/arm/sa11xx-uda1341.c
#   2004/06/29 11:14:21+02:00 perex@suse.cz +5 -7
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
#   2004/06/29 11:14:21+02:00 perex@suse.cz +46 -232
#   ALSA CVS update
#   D:2004/06/29 17:14:21
#   C:Documentation,SA11xx UDA1341 driver,Generic drivers,MPU401 UART,OPL3
#   C:OPL4,Digigram VX core,I2C cs8427,I2C lib core,I2C tea6330t,L3 drivers
#   C:AK4117 receiver,Serial BUS drivers,PARISC Harmony driver
#   C:Sound Core PDAudioCF driver,Digigram VX Pocket driver,PPC AWACS driver
#   C:PPC Burgundy driver,PPC DACA driver,PPC PMAC driver,PPC Tumbler driver
#   C:SPARC AMD7930 driver,SPARC cs4231 driver,Common EMU synth
#   C:USB generic driver
#   F:Documentation/DocBook/writing-an-alsa-driver.tmpl:1.28->1.29 
#   F:arm/sa11xx-uda1341.c:1.15->1.16 
#   F:drivers/dummy.c:1.28->1.29 
#   F:drivers/mtpav.c:1.27->1.28 
#   F:drivers/serial-u16550.c:1.26->1.27 
#   F:drivers/virmidi.c:1.12->1.13 
#   F:drivers/mpu401/mpu401_uart.c:1.30->1.31 
#   F:drivers/opl3/opl3_lib.c:1.20->1.21 
#   F:drivers/opl3/opl3_midi.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.13->1.14 
#   F:drivers/opl3/opl3_seq.c:1.13->1.14 
#   F:drivers/opl3/opl3_synth.c:1.7->1.8 
#   F:drivers/opl4/opl4_lib.c:1.5->1.6 
#   F:drivers/opl4/opl4_mixer.c:1.1->1.2 
#   F:drivers/opl4/opl4_proc.c:1.4->1.5 
#   F:drivers/opl4/opl4_seq.c:1.4->1.5 
#   F:drivers/opl4/opl4_synth.c:1.3->1.4 
#   F:drivers/vx/vx_core.c:1.8->1.9 
#   F:drivers/vx/vx_hwdep.c:1.1->1.2 
#   F:drivers/vx/vx_mixer.c:1.3->1.4 
#   F:drivers/vx/vx_pcm.c:1.5->1.6 
#   F:i2c/cs8427.c:1.19->1.20 
#   F:i2c/i2c.c:1.10->1.11 
#   F:i2c/tea6330t.c:1.8->1.9 
#   F:i2c/l3/uda1341.c:1.10->1.11 
#   F:i2c/other/ak4117.c:1.2->1.3 
#   F:i2c/other/ak4xxx-adda.c:1.7->1.8 
#   F:parisc/harmony.c:1.12->1.13 
#   F:pcmcia/pdaudiocf/pdaudiocf.c:1.7->1.8 
#   F:pcmcia/pdaudiocf/pdaudiocf_core.c:1.3->1.4 
#   F:pcmcia/pdaudiocf/pdaudiocf_irq.c:1.5->1.6 
#   F:pcmcia/pdaudiocf/pdaudiocf_pcm.c:1.1->1.2 
#   F:pcmcia/vx/vx_entry.c:1.5->1.6 
#   F:pcmcia/vx/vxp_mixer.c:1.1->1.2 
#   F:pcmcia/vx/vxp_ops.c:1.3->1.4 
#   F:ppc/awacs.c:1.22->1.23 
#   F:ppc/burgundy.c:1.11->1.12 
#   F:ppc/daca.c:1.11->1.12 
#   F:ppc/pmac.c:1.31->1.32 
#   F:ppc/tumbler.c:1.31->1.32 
#   F:sparc/amd7930.c:1.9->1.10 
#   F:sparc/cs4231.c:1.13->1.14 
#   F:synth/emux/emux.c:1.11->1.12 
#   F:synth/emux/emux_hwdep.c:1.1->1.2 
#   F:synth/emux/emux_nrpn.c:1.5->1.6 
#   F:synth/emux/emux_oss.c:1.9->1.10 
#   F:synth/emux/emux_proc.c:1.5->1.6 
#   F:synth/emux/emux_seq.c:1.11->1.12 
#   F:synth/emux/emux_synth.c:1.9->1.10 
#   F:usb/usbaudio.c:1.102->1.103 
#   F:usb/usbmidi.c:1.29->1.30 
#   F:usb/usbmixer.c:1.27->1.28 
#   L:Removal and replacement of magic memory allocators and casts (other parts)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:33:00+02:00 perex@suse.cz 
#   ALSA CVS update
#   ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   Wavefront drivers
#   Removal and replacement of magic memory allocators and casts (isa part)
#   
#   This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   with kmalloc(), kcalloc() and kfree(), respectively.
#   The cast via snd_magic_cast() is replaced with the standard cast, too.
#   
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/wavefront/wavefront.c
#   2004/06/29 11:12:29+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sscape.c
#   2004/06/29 11:12:23+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb_mixer.c
#   2004/06/29 11:12:28+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb_common.c
#   2004/06/29 11:12:28+02:00 perex@suse.cz +3 -5
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb8_midi.c
#   2004/06/29 11:12:28+02:00 perex@suse.cz +8 -8
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb8_main.c
#   2004/06/29 11:12:28+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb8.c
#   2004/06/29 11:12:28+02:00 perex@suse.cz +1 -3
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb16_main.c
#   2004/06/29 11:12:28+02:00 perex@suse.cz +8 -10
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb16_csp.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +7 -9
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/sb16.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/es968.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +1 -3
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/emu8000_pcm.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/emu8000_patch.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/emu8000_callback.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +10 -10
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/emu8000.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +3 -5
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/opti9xx/opti92x-ad1848.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +5 -7
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/opl3sa2.c
#   2004/06/29 11:12:23+02:00 perex@suse.cz +7 -8
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_uart.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_timer.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +2 -4
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_synth.c
#   2004/06/29 11:12:27+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_pcm.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +18 -20
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_mixer.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_mem_proc.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_mem.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_main.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +4 -6
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_irq.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/gus_instr.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +9 -9
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/es18xx.c
#   2004/06/29 11:12:23+02:00 perex@suse.cz +8 -10
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/es1688/es1688_lib.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +5 -5
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/dt019x.c
#   2004/06/29 11:12:23+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/cs423x/cs4236_lib.c
#   2004/06/29 11:12:26+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/cs423x/cs4236.c
#   2004/06/29 11:12:25+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/cs423x/cs4231_lib.c
#   2004/06/29 11:12:25+02:00 perex@suse.cz +8 -10
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/cs423x/cs4231.c
#   2004/06/29 11:12:25+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/cmi8330.c
#   2004/06/29 11:12:23+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/azt2320.c
#   2004/06/29 11:12:23+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/als100.c
#   2004/06/29 11:12:23+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/ad1848/ad1848_lib.c
#   2004/06/29 11:12:25+02:00 perex@suse.cz +7 -9
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/ad1848/ad1848.c
#   2004/06/29 11:12:24+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/ad1816a/ad1816a_lib.c
#   2004/06/29 11:12:24+02:00 perex@suse.cz +6 -8
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/ad1816a/ad1816a.c
#   2004/06/29 11:12:24+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/es1688.h
#   2004/06/29 11:12:23+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:12:23
#   C:ES1688 driver,ALS100 driver,AZT2320 driver,CMI8330 driver,DT019x driver
#   C:ES18xx driver,OPL3SA2 driver,Sound Scape driver,AD1816A driver
#   C:AD1848 driver,CS4231 driver,CS4236+ driver,GUS Library,Opti9xx drivers
#   C:EMU8000 driver,ES968 driver,SB16/AWE driver,SB8 driver,SB drivers
#   C:Wavefront drivers
#   F:include/es1688.h:1.5->1.6 
#   F:isa/als100.c:1.25->1.26 
#   F:isa/azt2320.c:1.25->1.26 
#   F:isa/cmi8330.c:1.29->1.30 
#   F:isa/dt019x.c:1.19->1.20 
#   F:isa/es18xx.c:1.46->1.47 
#   F:isa/opl3sa2.c:1.35->1.36 
#   F:isa/sscape.c:1.13->1.14 
#   F:isa/ad1816a/ad1816a.c:1.19->1.20 
#   F:isa/ad1816a/ad1816a_lib.c:1.22->1.23 
#   F:isa/ad1848/ad1848.c:1.11->1.12 
#   F:isa/ad1848/ad1848_lib.c:1.35->1.36 
#   F:isa/cs423x/cs4231.c:1.13->1.14 
#   F:isa/cs423x/cs4231_lib.c:1.41->1.42 
#   F:isa/cs423x/cs4236.c:1.43->1.44 
#   F:isa/cs423x/cs4236_lib.c:1.10->1.11 
#   F:isa/es1688/es1688_lib.c:1.24->1.25 
#   F:isa/gus/gus_instr.c:1.6->1.7 
#   F:isa/gus/gus_irq.c:1.7->1.8 
#   F:isa/gus/gus_main.c:1.14->1.15 
#   F:isa/gus/gus_mem.c:1.8->1.9 
#   F:isa/gus/gus_mem_proc.c:1.9->1.10 
#   F:isa/gus/gus_mixer.c:1.8->1.9 
#   F:isa/gus/gus_pcm.c:1.22->1.23 
#   F:isa/gus/gus_synth.c:1.11->1.12 
#   F:isa/gus/gus_timer.c:1.6->1.7 
#   F:isa/gus/gus_uart.c:1.8->1.9 
#   F:isa/opti9xx/opti92x-ad1848.c:1.45->1.46 
#   F:isa/sb/emu8000.c:1.21->1.22 
#   F:isa/sb/emu8000_callback.c:1.9->1.10 
#   F:isa/sb/emu8000_patch.c:1.10->1.11 
#   F:isa/sb/emu8000_pcm.c:1.13->1.14 
#   F:isa/sb/es968.c:1.25->1.26 
#   F:isa/sb/sb16.c:1.47->1.48 
#   F:isa/sb/sb16_csp.c:1.13->1.14 
#   F:isa/sb/sb16_main.c:1.20->1.21 
#   F:isa/sb/sb8.c:1.19->1.20 
#   F:isa/sb/sb8_main.c:1.15->1.16 
#   F:isa/sb/sb8_midi.c:1.10->1.11 
#   F:isa/sb/sb_common.c:1.19->1.20 
#   F:isa/sb/sb_mixer.c:1.13->1.14 
#   F:isa/wavefront/wavefront.c:1.28->1.29 
#   L:Removal and replacement of magic memory allocators and casts (isa part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:32:29+02:00 perex@suse.cz 
#   ALSA CVS update
#   ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   Trident driver,Digigram VX222 driver,YMFPCI driver
#   Removal and replacement of magic memory allocators and casts (pci part)
#   
#   This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   with kmalloc(), kcalloc() and kfree(), respectively.
#   The cast via snd_magic_cast() is replaced with the standard cast, too.
#   
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ymfpci/ymfpci_main.c
#   2004/06/29 11:10:37+02:00 perex@suse.cz +33 -35
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/vx222/vx222_ops.c
#   2004/06/29 11:10:37+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/vx222/vx222.c
#   2004/06/29 11:10:37+02:00 perex@suse.cz +2 -4
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/via82xx.c
#   2004/06/29 11:10:26+02:00 perex@suse.cz +12 -13
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/trident/trident_synth.c
#   2004/06/29 11:10:37+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/trident/trident_main.c
#   2004/06/29 11:10:37+02:00 perex@suse.cz +17 -19
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/sonicvibes.c
#   2004/06/29 11:10:26+02:00 perex@suse.cz +10 -11
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme9652/rme9652.c
#   2004/06/29 11:10:36+02:00 perex@suse.cz +36 -36
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme9652/hdsp.c
#   2004/06/29 11:10:36+02:00 perex@suse.cz +61 -61
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme96.c
#   2004/06/29 11:10:26+02:00 perex@suse.cz +35 -35
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme32.c
#   2004/06/29 11:10:25+02:00 perex@suse.cz +28 -28
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/nm256/nm256.c
#   2004/06/29 11:10:35+02:00 perex@suse.cz +10 -11
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/mixart/mixart_mixer.c
#   2004/06/29 11:10:35+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/mixart/mixart_hwdep.c
#   2004/06/29 11:10:35+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/mixart/mixart_core.c
#   2004/06/29 11:10:35+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/mixart/mixart.c
#   2004/06/29 11:10:35+02:00 perex@suse.cz +8 -10
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/maestro3.c
#   2004/06/29 11:10:25+02:00 perex@suse.cz +9 -11
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/korg1212/korg1212.c
#   2004/06/29 11:10:35+02:00 perex@suse.cz +27 -27
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/intel8x0m.c
#   2004/06/29 11:10:25+02:00 perex@suse.cz +11 -12
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/intel8x0.c
#   2004/06/29 11:10:25+02:00 perex@suse.cz +13 -14
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ice1724.c
#   2004/06/29 11:10:35+02:00 perex@suse.cz +5 -5
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ice1712.h
#   2004/06/29 11:10:35+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ice1712.c
#   2004/06/29 11:10:34+02:00 perex@suse.cz +9 -9
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ews.c
#   2004/06/29 11:10:34+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/delta.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/fm801.c
#   2004/06/29 11:10:25+02:00 perex@suse.cz +9 -11
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/es1968.c
#   2004/06/29 11:10:25+02:00 perex@suse.cz +22 -24
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/es1938.c
#   2004/06/29 11:10:25+02:00 perex@suse.cz +5 -7
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ens1370.c
#   2004/06/29 11:10:24+02:00 perex@suse.cz +18 -20
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/irq.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/io.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emuproc.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +3 -3
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emupcm.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +20 -22
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emumixer.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +1 -3
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emufx.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +1 -3
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emu10k1_synth.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emu10k1_patch.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emu10k1_main.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emu10k1_callback.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +8 -8
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cs46xx/dsp_spos_scb_lib.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cs46xx/dsp_spos.c
#   2004/06/29 11:10:33+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cs46xx/cs46xx_lib.h
#   2004/06/29 11:10:33+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cs46xx/cs46xx_lib.c
#   2004/06/29 11:10:32+02:00 perex@suse.cz +38 -40
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cs4281.c
#   2004/06/29 11:10:24+02:00 perex@suse.cz +23 -25
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/cmipci.c
#   2004/06/29 11:10:24+02:00 perex@suse.cz +5 -7
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/bt87x.c
#   2004/06/29 11:10:24+02:00 perex@suse.cz +4 -5
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/azt3328.c
#   2004/06/29 11:10:24+02:00 perex@suse.cz +5 -6
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/au88x0/au88x0_pcm.c
#   2004/06/29 11:10:32+02:00 perex@suse.cz +3 -4
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/au88x0/au88x0_mpu401.c
#   2004/06/29 11:10:32+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/au88x0/au88x0_core.c
#   2004/06/29 11:10:32+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/au88x0/au88x0.h
#   2004/06/29 11:10:32+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/au88x0/au88x0.c
#   2004/06/29 11:10:32+02:00 perex@suse.cz +3 -4
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/atiixp.c
#   2004/06/29 11:10:24+02:00 perex@suse.cz +9 -10
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/als4000.c
#   2004/06/29 11:10:23+02:00 perex@suse.cz +2 -4
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ali5451/ali5451.c
#   2004/06/29 11:10:31+02:00 perex@suse.cz +14 -15
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ak4531_codec.c
#   2004/06/29 11:10:31+02:00 perex@suse.cz +4 -6
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_proc.c
#   2004/06/29 11:10:31+02:00 perex@suse.cz +3 -3
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_pcm.c
#   2004/06/29 11:10:31+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_patch.c
#   2004/06/29 11:10:30+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_codec.c
#   2004/06/29 11:10:26+02:00 perex@suse.cz +6 -8
#   ALSA CVS update
#   D:2004/06/29 17:10:23
#   C:ALS4000 driver,ATIIXP driver,AZT3328 driver,BT87x driver,CMIPCI driver
#   C:CS4281 driver,ENS1370/1+ driver,ES1938 driver,ES1968 driver
#   C:FM801 driver,Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver
#   C:RME32 driver,RME96 driver,SonicVibes driver,VIA82xx driver
#   C:AC97 Codec Core,AK4531 codec,ALI5451 driver,au88x0 driver,CS46xx driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,KORG1212 driver
#   C:MIXART driver,NM256 driver,RME HDSP driver,RME9652 driver
#   C:Trident driver,Digigram VX222 driver,YMFPCI driver
#   F:pci/als4000.c:1.33->1.34 
#   F:pci/atiixp.c:1.11->1.12 
#   F:pci/azt3328.c:1.13->1.14 
#   F:pci/bt87x.c:1.5->1.6 
#   F:pci/cmipci.c:1.67->1.68 
#   F:pci/cs4281.c:1.55->1.56 
#   F:pci/ens1370.c:1.60->1.61 
#   F:pci/es1938.c:1.36->1.37 
#   F:pci/es1968.c:1.68->1.69 
#   F:pci/fm801.c:1.45->1.46 
#   F:pci/intel8x0.c:1.139->1.140 
#   F:pci/intel8x0m.c:1.5->1.6 
#   F:pci/maestro3.c:1.52->1.53 
#   F:pci/rme32.c:1.35->1.36 
#   F:pci/rme96.c:1.37->1.38 
#   F:pci/sonicvibes.c:1.35->1.36 
#   F:pci/via82xx.c:1.105->1.106 
#   F:pci/ac97/ac97_codec.c:1.136->1.137 
#   F:pci/ac97/ac97_patch.c:1.54->1.55 
#   F:pci/ac97/ac97_pcm.c:1.14->1.15 
#   F:pci/ac97/ac97_proc.c:1.8->1.9 
#   F:pci/ac97/ak4531_codec.c:1.10->1.11 
#   F:pci/ali5451/ali5451.c:1.48->1.49 
#   F:pci/au88x0/au88x0.c:1.9->1.10 
#   F:pci/au88x0/au88x0.h:1.5->1.6 
#   F:pci/au88x0/au88x0_core.c:1.4->1.5 
#   F:pci/au88x0/au88x0_mpu401.c:1.1->1.2 
#   F:pci/au88x0/au88x0_pcm.c:1.3->1.4 
#   F:pci/cs46xx/cs46xx_lib.c:1.74->1.75 
#   F:pci/cs46xx/cs46xx_lib.h:1.12->1.13 
#   F:pci/cs46xx/dsp_spos.c:1.24->1.25 
#   F:pci/cs46xx/dsp_spos_scb_lib.c:1.23->1.24 
#   F:pci/emu10k1/emu10k1_callback.c:1.11->1.12 
#   F:pci/emu10k1/emu10k1_main.c:1.34->1.35 
#   F:pci/emu10k1/emu10k1_patch.c:1.5->1.6 
#   F:pci/emu10k1/emu10k1_synth.c:1.8->1.9 
#   F:pci/emu10k1/emufx.c:1.56->1.57 
#   F:pci/emu10k1/emumixer.c:1.22->1.23 
#   F:pci/emu10k1/emupcm.c:1.27->1.28 
#   F:pci/emu10k1/emuproc.c:1.17->1.18 
#   F:pci/emu10k1/io.c:1.6->1.7 
#   F:pci/emu10k1/irq.c:1.9->1.10 
#   F:pci/ice1712/delta.c:1.17->1.18 
#   F:pci/ice1712/ews.c:1.17->1.18 
#   F:pci/ice1712/ice1712.c:1.53->1.54 
#   F:pci/ice1712/ice1712.h:1.21->1.22 
#   F:pci/ice1712/ice1724.c:1.35->1.36 
#   F:pci/korg1212/korg1212.c:1.40->1.41 
#   F:pci/mixart/mixart.c:1.10->1.11 
#   F:pci/mixart/mixart_core.c:1.6->1.7 
#   F:pci/mixart/mixart_hwdep.c:1.5->1.6 
#   F:pci/mixart/mixart_mixer.c:1.2->1.3 
#   F:pci/nm256/nm256.c:1.40->1.41 
#   F:pci/rme9652/hdsp.c:1.59->1.60 
#   F:pci/rme9652/rme9652.c:1.46->1.47 
#   F:pci/trident/trident_main.c:1.58->1.59 
#   F:pci/trident/trident_synth.c:1.13->1.14 
#   F:pci/vx222/vx222.c:1.5->1.6 
#   F:pci/vx222/vx222_ops.c:1.6->1.7 
#   F:pci/ymfpci/ymfpci_main.c:1.51->1.52 
#   L:Removal and replacement of magic memory allocators and casts (pci part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:31:59+02:00 perex@suse.cz 
#   ALSA CVS update
#   Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   Removal and replacement of magic memory allocators and casts (core part)
#   
#   This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   with kmalloc(), kcalloc() and kfree(), respectively.
#   The cast via snd_magic_cast() is replaced with the standard cast, too.
#   
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/timer.c
#   2004/06/29 11:09:18+02:00 perex@suse.cz +23 -23
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/sound.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +0 -3
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_virmidi.c
#   2004/06/29 11:09:19+02:00 perex@suse.cz +23 -23
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_dummy.c
#   2004/06/29 11:09:19+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_device.c
#   2004/06/29 11:09:19+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/rawmidi.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +16 -16
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_timer.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +2 -4
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_native.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +15 -15
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +9 -9
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/oss/pcm_oss.c
#   2004/06/29 11:09:19+02:00 perex@suse.cz +8 -8
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/oss/mixer_oss.c
#   2004/06/29 11:09:18+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/memory.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +0 -40
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/ioctl32/pcm32.c
#   2004/06/29 11:09:18+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/ioctl32/ioctl32.c
#   2004/06/29 11:09:18+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/info.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +21 -21
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/hwdep.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +12 -12
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/device.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/control.c
#   2004/06/29 11:09:17+02:00 perex@suse.cz +9 -11
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/timer.h
#   2004/06/29 11:09:19+02:00 perex@suse.cz +1 -2
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/pcm.h
#   2004/06/29 11:09:19+02:00 perex@suse.cz +2 -4
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/driver.h
#   2004/06/29 11:09:19+02:00 perex@suse.cz +0 -2
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/control.h
#   2004/06/29 11:09:19+02:00 perex@suse.cz +1 -2
#   ALSA CVS update
#   D:2004/06/29 17:09:17
#   C:Control Midlevel,ALSA Core,HWDEP Midlevel,PCM Midlevel,RawMidi Midlevel
#   C:Timer Midlevel,IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer
#   F:core/control.c:1.45->1.46 
#   F:core/device.c:1.15->1.16 
#   F:core/hwdep.c:1.25->1.26 
#   F:core/info.c:1.45->1.46 
#   F:core/memory.c:1.29->1.30 
#   F:core/pcm.c:1.43->1.44 
#   F:core/pcm_native.c:1.97->1.98 
#   F:core/pcm_timer.c:1.7->1.8 
#   F:core/rawmidi.c:1.44->1.45 
#   F:core/sound.c:1.63->1.64 
#   F:core/timer.c:1.59->1.60 
#   F:core/ioctl32/ioctl32.c:1.19->1.20 
#   F:core/ioctl32/pcm32.c:1.16->1.17 
#   F:core/oss/mixer_oss.c:1.31->1.32 
#   F:core/oss/pcm_oss.c:1.71->1.72 
#   F:core/seq/seq_device.c:1.14->1.15 
#   F:core/seq/seq_dummy.c:1.11->1.12 
#   F:core/seq/seq_virmidi.c:1.11->1.12 
#   F:include/control.h:1.7->1.8 
#   F:include/driver.h:1.16->1.17 
#   F:include/pcm.h:1.43->1.44 
#   F:include/sndmagic.h:1.27->1.28(DEAD) 
#   F:include/timer.h:1.17->1.18 
#   L:Removal and replacement of magic memory allocators and casts (core part)
#   L:
#   L:This patch replaces snd_magic_kmalloc(), snd_magic_kcallc() and snd_magic_kfree()
#   L:with kmalloc(), kcalloc() and kfree(), respectively.
#   L:The cast via snd_magic_cast() is replaced with the standard cast, too.
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# BitKeeper/deleted/.del-sndmagic.h~23e344d25055e00c
#   2004/07/01 19:31:43+02:00 perex@suse.cz +0 -0
#   Delete: include/sound/sndmagic.h
# 
# ChangeSet
#   2004/07/01 19:28:12+02:00 perex@suse.cz 
#   ALSA CVS update
#   Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   Synth,Common EMU synth
#   Removal of snd_kcalloc()
#   
#   This patch removes snd_kcalloc() from the kernel and updates callers to use
#   the new generic kcalloc().
#   
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/util_mem.c
#   2004/06/29 10:55:14+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/soundfont.c
#   2004/06/29 10:55:14+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux_seq.c
#   2004/06/29 10:55:14+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux_effect.c
#   2004/06/29 10:55:14+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/synth/emux/emux.c
#   2004/06/29 10:55:14+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/trident/trident_main.c
#   2004/06/29 10:55:13+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/revo.c
#   2004/06/29 10:55:13+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/aureon.c
#   2004/06/29 10:55:13+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emufx.c
#   2004/06/29 10:55:13+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/au88x0/au88x0_game.c
#   2004/06/29 10:55:12+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_pcm.c
#   2004/06/29 10:55:11+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/sb/emu8000_pcm.c
#   2004/06/29 10:55:11+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/opl3/opl3_oss.c
#   2004/06/29 10:55:11+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/timer.c
#   2004/06/29 10:55:09+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/sound.c
#   2004/06/29 10:55:09+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_timer.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_queue.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_prioq.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_ports.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_midi_event.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_midi.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_memory.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_instr.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +3 -6
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_fifo.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/seq_clientmgr.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/oss/seq_oss_writeq.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/oss/seq_oss_timer.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/oss/seq_oss_synth.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +5 -3
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/oss/seq_oss_readq.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/oss/seq_oss_midi.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/oss/seq_oss_init.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/instr/ainstr_iw.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +3 -3
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/instr/ainstr_gf1.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/rawmidi.c
#   2004/06/29 10:55:09+02:00 perex@suse.cz +3 -3
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_memory.c
#   2004/06/29 10:55:08+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_lib.c
#   2004/06/29 10:55:08+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm.c
#   2004/06/29 10:55:08+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/oss/route.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/oss/pcm_plugin.h
#   2004/06/29 10:55:10+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/oss/pcm_plugin.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/oss/mixer_oss.c
#   2004/06/29 10:55:10+02:00 perex@suse.cz +13 -13
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/memory.c
#   2004/06/29 10:55:08+02:00 perex@suse.cz +11 -19
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/ioctl32/pcm32.c
#   2004/06/29 10:55:09+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/init.c
#   2004/06/29 10:55:08+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/info.c
#   2004/06/29 10:55:08+02:00 perex@suse.cz +2 -4
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/control.c
#   2004/06/29 10:55:08+02:00 perex@suse.cz +3 -4
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/core.h
#   2004/06/29 10:55:11+02:00 perex@suse.cz +2 -1
#   ALSA CVS update
#   D:2004/06/29 16:55:08
#   C:Control Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel,Timer Midlevel
#   C:IOCTL32 emulation,ALSA<-OSS emulation,ALSA sequencer,Instrument layer
#   C:ALSA<-OSS sequencer,OPL3,EMU8000 driver,AC97 Codec Core,au88x0 driver
#   C:EMU10K1/EMU10K2 driver,ICE1712 driver,ICE1724 driver,Trident driver
#   C:Synth,Common EMU synth
#   F:core/control.c:1.44->1.45 
#   F:core/info.c:1.44->1.45 
#   F:core/init.c:1.46->1.47 
#   F:core/memory.c:1.28->1.29 
#   F:core/pcm.c:1.42->1.43 
#   F:core/pcm_lib.c:1.51->1.52 
#   F:core/pcm_memory.c:1.29->1.30 
#   F:core/rawmidi.c:1.43->1.44 
#   F:core/sound.c:1.62->1.63 
#   F:core/timer.c:1.58->1.59 
#   F:core/ioctl32/pcm32.c:1.15->1.16 
#   F:core/oss/mixer_oss.c:1.30->1.31 
#   F:core/oss/pcm_plugin.c:1.19->1.20 
#   F:core/oss/pcm_plugin.h:1.6->1.7 
#   F:core/oss/route.c:1.7->1.8 
#   F:core/seq/seq_clientmgr.c:1.30->1.31 
#   F:core/seq/seq_fifo.c:1.8->1.9 
#   F:core/seq/seq_instr.c:1.8->1.9 
#   F:core/seq/seq_memory.c:1.15->1.16 
#   F:core/seq/seq_midi.c:1.20->1.21 
#   F:core/seq/seq_midi_event.c:1.12->1.13 
#   F:core/seq/seq_ports.c:1.16->1.17 
#   F:core/seq/seq_prioq.c:1.8->1.9 
#   F:core/seq/seq_queue.c:1.14->1.15 
#   F:core/seq/seq_timer.c:1.19->1.20 
#   F:core/seq/instr/ainstr_gf1.c:1.7->1.8 
#   F:core/seq/instr/ainstr_iw.c:1.8->1.9 
#   F:core/seq/oss/seq_oss_init.c:1.12->1.13 
#   F:core/seq/oss/seq_oss_midi.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_readq.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_synth.c:1.15->1.16 
#   F:core/seq/oss/seq_oss_timer.c:1.6->1.7 
#   F:core/seq/oss/seq_oss_writeq.c:1.5->1.6 
#   F:drivers/opl3/opl3_oss.c:1.12->1.13 
#   F:include/core.h:1.53->1.54 
#   F:isa/sb/emu8000_pcm.c:1.12->1.13 
#   F:pci/ac97/ac97_pcm.c:1.13->1.14 
#   F:pci/au88x0/au88x0_game.c:1.4->1.5 
#   F:pci/emu10k1/emufx.c:1.55->1.56 
#   F:pci/ice1712/aureon.c:1.11->1.12 
#   F:pci/ice1712/revo.c:1.7->1.8 
#   F:pci/trident/trident_main.c:1.57->1.58 
#   F:synth/util_mem.c:1.5->1.6 
#   F:synth/emux/emux.c:1.10->1.11 
#   F:synth/emux/emux_effect.c:1.6->1.7 
#   F:synth/emux/emux_seq.c:1.10->1.11 
#   F:synth/emux/soundfont.c:1.11->1.12 
#   L:Removal of snd_kcalloc()
#   L:
#   L:This patch removes snd_kcalloc() from the kernel and updates callers to use
#   L:the new generic kcalloc().
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:27:42+02:00 perex@suse.cz 
#   ALSA CVS update
#   ICE1712 driver,ICE1724 driver
#   Fixes for VT1720/VT1724
#   
#   - Fixed the volume update on aureon.
#   - Removed the bogus master volume from aureon.
#   - Fixed the wrong number of ADCS (not used, though).
#   - Don't access GPIO high bits on VT1720.
#   - Fixed the buffer byte alignment for SPDIF and independen PCMs.
#   - Proper rate constraints according to the I2S/AC-link connection.
#   - Clean up the private data for PCM callbacks.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/revo.c
#   2004/06/29 05:49:02+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/29 11:49:02
#   C:ICE1712 driver,ICE1724 driver
#   F:pci/ice1712/aureon.c:1.10->1.11 
#   F:pci/ice1712/ice1724.c:1.34->1.35 
#   F:pci/ice1712/revo.c:1.6->1.7 
#   L:Fixes for VT1720/VT1724
#   L:
#   L:- Fixed the volume update on aureon.
#   L:- Removed the bogus master volume from aureon.
#   L:- Fixed the wrong number of ADCS (not used, though).
#   L:- Don't access GPIO high bits on VT1720.
#   L:- Fixed the buffer byte alignment for SPDIF and independen PCMs.
#   L:- Proper rate constraints according to the I2S/AC-link connection.
#   L:- Clean up the private data for PCM callbacks.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ice1724.c
#   2004/06/29 05:49:02+02:00 perex@suse.cz +104 -90
#   ALSA CVS update
#   D:2004/06/29 11:49:02
#   C:ICE1712 driver,ICE1724 driver
#   F:pci/ice1712/aureon.c:1.10->1.11 
#   F:pci/ice1712/ice1724.c:1.34->1.35 
#   F:pci/ice1712/revo.c:1.6->1.7 
#   L:Fixes for VT1720/VT1724
#   L:
#   L:- Fixed the volume update on aureon.
#   L:- Removed the bogus master volume from aureon.
#   L:- Fixed the wrong number of ADCS (not used, though).
#   L:- Don't access GPIO high bits on VT1720.
#   L:- Fixed the buffer byte alignment for SPDIF and independen PCMs.
#   L:- Proper rate constraints according to the I2S/AC-link connection.
#   L:- Clean up the private data for PCM callbacks.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/aureon.c
#   2004/06/29 05:49:02+02:00 perex@suse.cz +17 -13
#   ALSA CVS update
#   D:2004/06/29 11:49:02
#   C:ICE1712 driver,ICE1724 driver
#   F:pci/ice1712/aureon.c:1.10->1.11 
#   F:pci/ice1712/ice1724.c:1.34->1.35 
#   F:pci/ice1712/revo.c:1.6->1.7 
#   L:Fixes for VT1720/VT1724
#   L:
#   L:- Fixed the volume update on aureon.
#   L:- Removed the bogus master volume from aureon.
#   L:- Fixed the wrong number of ADCS (not used, though).
#   L:- Don't access GPIO high bits on VT1720.
#   L:- Fixed the buffer byte alignment for SPDIF and independen PCMs.
#   L:- Proper rate constraints according to the I2S/AC-link connection.
#   L:- Clean up the private data for PCM callbacks.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:27:20+02:00 perex@suse.cz 
#   ALSA CVS update
#   EMU10K1/EMU10K2 driver
#   Audigy 2 ZS - side support
#   
#   Added the support of side speakers on Audigy 2 ZS.
#   
#   TODO - detection of audigy 2 zs. Now it will add side controls to
#   mixer for audigy 2 to. Maybe left or right slider can control volume
#   of back center on audigy 2 too.
#   
#   Signed-off-by: Peter Zubaj <pzad@pobox.sk>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emufx.c
#   2004/06/28 05:37:56+02:00 perex@suse.cz +34 -9
#   ALSA CVS update
#   D:2004/06/28 11:37:55
#   C:EMU10K1/EMU10K2 driver
#   F:include/emu10k1.h:1.41->1.42 
#   F:pci/emu10k1/emu10k1_main.c:1.33->1.34 
#   F:pci/emu10k1/emufx.c:1.54->1.55 
#   L:Audigy 2 ZS - side support
#   L:
#   L:Added the support of side speakers on Audigy 2 ZS.
#   L:
#   L:TODO - detection of audigy 2 zs. Now it will add side controls to
#   L:mixer for audigy 2 to. Maybe left or right slider can control volume
#   L:of back center on audigy 2 too.
#   Signed-off-by: Peter Zubaj <pzad@pobox.sk>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emu10k1_main.c
#   2004/06/28 05:37:56+02:00 perex@suse.cz +7 -1
#   ALSA CVS update
#   D:2004/06/28 11:37:55
#   C:EMU10K1/EMU10K2 driver
#   F:include/emu10k1.h:1.41->1.42 
#   F:pci/emu10k1/emu10k1_main.c:1.33->1.34 
#   F:pci/emu10k1/emufx.c:1.54->1.55 
#   L:Audigy 2 ZS - side support
#   L:
#   L:Added the support of side speakers on Audigy 2 ZS.
#   L:
#   L:TODO - detection of audigy 2 zs. Now it will add side controls to
#   L:mixer for audigy 2 to. Maybe left or right slider can control volume
#   L:of back center on audigy 2 too.
#   Signed-off-by: Peter Zubaj <pzad@pobox.sk>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/emu10k1.h
#   2004/06/28 05:37:55+02:00 perex@suse.cz +6 -4
#   ALSA CVS update
#   D:2004/06/28 11:37:55
#   C:EMU10K1/EMU10K2 driver
#   F:include/emu10k1.h:1.41->1.42 
#   F:pci/emu10k1/emu10k1_main.c:1.33->1.34 
#   F:pci/emu10k1/emufx.c:1.54->1.55 
#   L:Audigy 2 ZS - side support
#   L:
#   L:Added the support of side speakers on Audigy 2 ZS.
#   L:
#   L:TODO - detection of audigy 2 zs. Now it will add side controls to
#   L:mixer for audigy 2 to. Maybe left or right slider can control volume
#   L:of back center on audigy 2 too.
#   Signed-off-by: Peter Zubaj <pzad@pobox.sk>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:26:58+02:00 perex@suse.cz 
#   ALSA CVS update
#   EMU10K1/EMU10K2 driver
#   Fix Audigy + FX8010 capture (hw:x,2)
#   
#   
#   This patch fixes capture problems from hw:x,2 on Audigy. It is same as
#    previous, because it can be applied cleanly against CVS (I tested
#   version from 23.06.2004) and hope it is still true for current CVS.
#   
#   I tested 4 channel recrding and it was OK.
#   
#   hw:x,2 records outputs from FX8010 (not FX buses)
#   
#   Using 'EFX voices mask' you can set channels what you want record.
#   
#   use alsactl store to store config
#   edit this config (set true for needed channel for 'EFX voices mask'
#   control) - I recorded channels 8,9,14,15 (front and rear output).
#   use alsactl restore to restore config
#   
#   Looks like channel count must be power of 2 (1, 2, 4, 8, ...).
#   
#   Signed-off-by: Peter Zubaj <pzad@pobox.sk>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emuproc.c
#   2004/06/28 05:31:01+02:00 perex@suse.cz +94 -24
#   ALSA CVS update
#   D:2004/06/28 11:31:01
#   C:EMU10K1/EMU10K2 driver
#   F:pci/emu10k1/emupcm.c:1.26->1.27 
#   F:pci/emu10k1/emuproc.c:1.16->1.17 
#   L:Fix Audigy + FX8010 capture (hw:x,2)
#   L:
#   L:
#   L:This patch fixes capture problems from hw:x,2 on Audigy. It is same as
#   L: previous, because it can be applied cleanly against CVS (I tested
#   L:version from 23.06.2004) and hope it is still true for current CVS.
#   L:
#   L:I tested 4 channel recrding and it was OK.
#   L:
#   L:hw:x,2 records outputs from FX8010 (not FX buses)
#   L:
#   L:Using 'EFX voices mask' you can set channels what you want record.
#   L:
#   L:use alsactl store to store config
#   L:edit this config (set true for needed channel for 'EFX voices mask'
#   L:control) - I recorded channels 8,9,14,15 (front and rear output).
#   L:use alsactl restore to restore config
#   L:
#   L:Looks like channel count must be power of 2 (1, 2, 4, 8, ...).
#   Signed-off-by: Peter Zubaj <pzad@pobox.sk>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emupcm.c
#   2004/06/28 05:31:01+02:00 perex@suse.cz +15 -3
#   ALSA CVS update
#   D:2004/06/28 11:31:01
#   C:EMU10K1/EMU10K2 driver
#   F:pci/emu10k1/emupcm.c:1.26->1.27 
#   F:pci/emu10k1/emuproc.c:1.16->1.17 
#   L:Fix Audigy + FX8010 capture (hw:x,2)
#   L:
#   L:
#   L:This patch fixes capture problems from hw:x,2 on Audigy. It is same as
#   L: previous, because it can be applied cleanly against CVS (I tested
#   L:version from 23.06.2004) and hope it is still true for current CVS.
#   L:
#   L:I tested 4 channel recrding and it was OK.
#   L:
#   L:hw:x,2 records outputs from FX8010 (not FX buses)
#   L:
#   L:Using 'EFX voices mask' you can set channels what you want record.
#   L:
#   L:use alsactl store to store config
#   L:edit this config (set true for needed channel for 'EFX voices mask'
#   L:control) - I recorded channels 8,9,14,15 (front and rear output).
#   L:use alsactl restore to restore config
#   L:
#   L:Looks like channel count must be power of 2 (1, 2, 4, 8, ...).
#   Signed-off-by: Peter Zubaj <pzad@pobox.sk>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 19:26:36+02:00 perex@suse.cz 
#   ALSA CVS update
#   AC97 Codec Core
#   Fixed the detection of STAC9708/11 surround control.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ac97/ac97_patch.c
#   2004/06/25 11:12:39+02:00 perex@suse.cz +1 -0
#   ALSA CVS update
#   D:2004/06/25 17:12:39
#   C:AC97 Codec Core
#   F:pci/ac97/ac97_patch.c:1.53->1.54 
#   L:Fixed the detection of STAC9708/11 surround control.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/07/01 17:28:18+02:00 perex@suse.cz 
#   This patch introduces a kcalloc() in the kernel that is used to
#   replace the ALSA subsystem-specific snd_kcalloc() and snd_magic_kcalloc().
#   
#   Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
# 
# mm/slab.c
#   2004/07/01 17:28:02+02:00 perex@suse.cz +21 -0
#   Added kcalloc() implementation.
# 
# include/linux/slab.h
#   2004/07/01 17:28:02+02:00 perex@suse.cz +1 -0
#   Added kcalloc()
# 
# ChangeSet
#   2004/07/01 12:50:31+02:00 perex@suse.cz 
#   Merge suse.cz:/home/perex/bk/linux-sound/linux-2.5
#   into suse.cz:/home/perex/bk/linux-sound/linux-sound
# 
# sound/pci/nm256/nm256.c
#   2004/07/01 12:50:20+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# sound/pci/intel8x0.c
#   2004/07/01 12:50:20+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# sound/core/oss/pcm_plugin.c
#   2004/07/01 12:50:20+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# sound/core/pcm_native.c
#   2004/07/01 12:50:19+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# sound/core/oss/pcm_oss.c
#   2004/07/01 12:50:19+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# sound/core/memalloc.c
#   2004/07/01 12:50:19+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/06/23 20:04:56+02:00 perex@suse.cz 
#   ALSA CVS update
#   ALSA sequencer,Instrument layer,ISA,GUS drivers
#   Clean up Makefiles for the sequencer stuff using reverse selections.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/gus/Makefile
#   2004/06/23 11:56:55+02:00 perex@suse.cz +1 -5
#   ALSA CVS update
#   D:2004/06/23 17:56:53
#   C:ALSA sequencer,Instrument layer,ISA,GUS drivers
#   F:core/seq/Makefile:1.33->1.34 
#   F:core/seq/instr/Makefile:1.16->1.17 
#   F:isa/Kconfig:1.11->1.12 
#   F:isa/gus/Makefile:1.11->1.12 
#   L:Clean up Makefiles for the sequencer stuff using reverse selections.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/Kconfig
#   2004/06/23 11:56:55+02:00 perex@suse.cz +8 -0
#   ALSA CVS update
#   D:2004/06/23 17:56:53
#   C:ALSA sequencer,Instrument layer,ISA,GUS drivers
#   F:core/seq/Makefile:1.33->1.34 
#   F:core/seq/instr/Makefile:1.16->1.17 
#   F:isa/Kconfig:1.11->1.12 
#   F:isa/gus/Makefile:1.11->1.12 
#   L:Clean up Makefiles for the sequencer stuff using reverse selections.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/instr/Makefile
#   2004/06/23 11:56:55+02:00 perex@suse.cz +3 -31
#   ALSA CVS update
#   D:2004/06/23 17:56:53
#   C:ALSA sequencer,Instrument layer,ISA,GUS drivers
#   F:core/seq/Makefile:1.33->1.34 
#   F:core/seq/instr/Makefile:1.16->1.17 
#   F:isa/Kconfig:1.11->1.12 
#   F:isa/gus/Makefile:1.11->1.12 
#   L:Clean up Makefiles for the sequencer stuff using reverse selections.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/seq/Makefile
#   2004/06/23 11:56:53+02:00 perex@suse.cz +5 -53
#   ALSA CVS update
#   D:2004/06/23 17:56:53
#   C:ALSA sequencer,Instrument layer,ISA,GUS drivers
#   F:core/seq/Makefile:1.33->1.34 
#   F:core/seq/instr/Makefile:1.16->1.17 
#   F:isa/Kconfig:1.11->1.12 
#   F:isa/gus/Makefile:1.11->1.12 
#   L:Clean up Makefiles for the sequencer stuff using reverse selections.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 19:52:02+02:00 perex@suse.cz 
#   ALSA CVS update
#   USB generic driver
#   new functions snd_usbmidi_input_stop() and snd_usbmidi_input_start()
#   needed by snd-usb-usx2y to be able to use usb_set_interface()
#   
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/usb/usbmidi.c
#   2004/06/23 07:48:41+02:00 perex@suse.cz +39 -3
#   ALSA CVS update
#   D:2004/06/23 13:48:41
#   C:USB generic driver
#   F:usb/usbaudio.h:1.31->1.32 
#   F:usb/usbmidi.c:1.28->1.29 
#   L:new functions snd_usbmidi_input_stop() and snd_usbmidi_input_start()
#   L:needed by snd-usb-usx2y to be able to use usb_set_interface()
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/usb/usbaudio.h
#   2004/06/23 07:48:41+02:00 perex@suse.cz +2 -0
#   ALSA CVS update
#   D:2004/06/23 13:48:41
#   C:USB generic driver
#   F:usb/usbaudio.h:1.31->1.32 
#   F:usb/usbmidi.c:1.28->1.29 
#   L:new functions snd_usbmidi_input_stop() and snd_usbmidi_input_start()
#   L:needed by snd-usb-usx2y to be able to use usb_set_interface()
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# ChangeSet
#   2004/06/23 15:02:18+02:00 perex@suse.cz 
#   ALSA CVS update
#   PCM Midlevel
#   Each of snd_pcm_hw_refine_old_user() and snd_pcm_hw_params_old_user()
#   consume 856 bytes of stack and can invoke deep calls via the page allocator.
#   
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# sound/core/pcm_native.c
#   2004/06/01 02:57:54+02:00 perex@suse.cz +55 -18
#   ALSA CVS update
#   D:2004/06/01 08:57:54
#   C:PCM Midlevel
#   F:core/pcm_native.c:1.91->1.92 
#   L:Each of snd_pcm_hw_refine_old_user() and snd_pcm_hw_params_old_user()
#   L:consume 856 bytes of stack and can invoke deep calls via the page allocator.
#   Signed-off-by: Andrew Morton <akpm@osdl.org>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# ChangeSet
#   2004/06/23 13:18:33+02:00 perex@suse.cz 
#   ALSA CVS update
#   CMIPCI driver
#   don't sleep in prepare callback
#   
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/pci/cmipci.c
#   2004/06/23 02:38:17+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/23 08:38:17
#   C:CMIPCI driver
#   F:pci/cmipci.c:1.66->1.67 
#   L:don't sleep in prepare callback
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# ChangeSet
#   2004/06/23 13:17:12+02:00 perex@suse.cz 
#   ALSA CVS update
#   PCM Midlevel,ALSA<-OSS emulation,CMIPCI driver
#   reduce stack usage
#   
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/pci/cmipci.c
#   2004/06/22 11:18:41+02:00 perex@suse.cz +38 -21
#   ALSA CVS update
#   D:2004/06/22 17:22:34
#   C:PCM Midlevel,ALSA<-OSS emulation,CMIPCI driver
#   F:core/pcm_native.c:1.93->1.94 
#   F:core/oss/pcm_oss.c:1.69->1.70 
#   F:pci/cmipci.c:1.65->1.66 
#   L:reduce stack usage
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/core/pcm_native.c
#   2004/06/22 11:22:34+02:00 perex@suse.cz +36 -12
#   ALSA CVS update
#   D:2004/06/22 17:22:34
#   C:PCM Midlevel,ALSA<-OSS emulation,CMIPCI driver
#   F:core/pcm_native.c:1.93->1.94 
#   F:core/oss/pcm_oss.c:1.69->1.70 
#   F:pci/cmipci.c:1.65->1.66 
#   L:reduce stack usage
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/core/oss/pcm_oss.c
#   2004/06/22 11:20:43+02:00 perex@suse.cz +10 -5
#   ALSA CVS update
#   D:2004/06/22 17:22:34
#   C:PCM Midlevel,ALSA<-OSS emulation,CMIPCI driver
#   F:core/pcm_native.c:1.93->1.94 
#   F:core/oss/pcm_oss.c:1.69->1.70 
#   F:pci/cmipci.c:1.65->1.66 
#   L:reduce stack usage
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# ChangeSet
#   2004/06/23 13:15:50+02:00 perex@suse.cz 
#   ALSA CVS update
#   au88x0 driver
#   - Fixed the wrong pointer cast on 64bit architectures.
#   
#   Signed-off-by: Andi Kleen <ak@suse.de>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/au88x0/au88x0_a3d.c
#   2004/06/21 11:53:37+02:00 perex@suse.cz +4 -4
#   ALSA CVS update
#   D:2004/06/21 17:53:37
#   C:au88x0 driver
#   F:pci/au88x0/au88x0_a3d.c:1.3->1.4 
#   L:- Fixed the wrong pointer cast on 64bit architectures.
#   Signed-off-by: Andi Kleen <ak@suse.de>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:14:16+02:00 perex@suse.cz 
#   ALSA CVS update
#   EMU10K1/EMU10K2 driver
#   Merge EFX playback and capture streams to the single device (hw:0,2).
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emupcm.c
#   2004/06/21 11:52:18+02:00 perex@suse.cz +272 -1
#   ALSA CVS update
#   D:2004/06/21 17:52:17
#   C:EMU10K1/EMU10K2 driver
#   F:include/emu10k1.h:1.39->1.40 
#   F:pci/emu10k1/emu10k1.c:1.24->1.25 
#   F:pci/emu10k1/emufx.c:1.52->1.53 
#   F:pci/emu10k1/emupcm.c:1.25->1.26 
#   L:Merge EFX playback and capture streams to the single device (hw:0,2).
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emufx.c
#   2004/06/21 11:52:18+02:00 perex@suse.cz +2 -308
#   ALSA CVS update
#   D:2004/06/21 17:52:17
#   C:EMU10K1/EMU10K2 driver
#   F:include/emu10k1.h:1.39->1.40 
#   F:pci/emu10k1/emu10k1.c:1.24->1.25 
#   F:pci/emu10k1/emufx.c:1.52->1.53 
#   F:pci/emu10k1/emupcm.c:1.25->1.26 
#   L:Merge EFX playback and capture streams to the single device (hw:0,2).
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/emu10k1.c
#   2004/06/21 11:52:18+02:00 perex@suse.cz +0 -4
#   ALSA CVS update
#   D:2004/06/21 17:52:17
#   C:EMU10K1/EMU10K2 driver
#   F:include/emu10k1.h:1.39->1.40 
#   F:pci/emu10k1/emu10k1.c:1.24->1.25 
#   F:pci/emu10k1/emufx.c:1.52->1.53 
#   F:pci/emu10k1/emupcm.c:1.25->1.26 
#   L:Merge EFX playback and capture streams to the single device (hw:0,2).
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/emu10k1.h
#   2004/06/21 11:52:17+02:00 perex@suse.cz +9 -0
#   ALSA CVS update
#   D:2004/06/21 17:52:17
#   C:EMU10K1/EMU10K2 driver
#   F:include/emu10k1.h:1.39->1.40 
#   F:pci/emu10k1/emu10k1.c:1.24->1.25 
#   F:pci/emu10k1/emufx.c:1.52->1.53 
#   F:pci/emu10k1/emupcm.c:1.25->1.26 
#   L:Merge EFX playback and capture streams to the single device (hw:0,2).
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:12:57+02:00 perex@suse.cz 
#   ALSA CVS update
#   PCM Midlevel,ALSA Core,RME32 driver,RME96 driver,NM256 driver
#   - Fix the mmap via io_remap_page_range() on nm256, rme32 and rme96.
#     Added SNDRV_PCM_INFO_MMAP_IOMEM to handle this case.
#   - Clean up the indirect accessing on RME32/RME96 drivers.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme96.c
#   2004/06/21 11:50:09+02:00 perex@suse.cz +14 -110
#   ALSA CVS update
#   D:2004/06/21 17:50:08
#   C:PCM Midlevel,ALSA Core,RME32 driver,RME96 driver,NM256 driver
#   F:core/pcm_native.c:1.92->1.93 
#   F:include/asound.h:1.40->1.41 
#   F:pci/rme32.c:1.33->1.34 
#   F:pci/rme96.c:1.35->1.36 
#   F:pci/nm256/nm256.c:1.38->1.39 
#   L:- Fix the mmap via io_remap_page_range() on nm256, rme32 and rme96.
#   L:  Added SNDRV_PCM_INFO_MMAP_IOMEM to handle this case.
#   L:- Clean up the indirect accessing on RME32/RME96 drivers.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/rme32.c
#   2004/06/21 11:50:09+02:00 perex@suse.cz +16 -105
#   ALSA CVS update
#   D:2004/06/21 17:50:08
#   C:PCM Midlevel,ALSA Core,RME32 driver,RME96 driver,NM256 driver
#   F:core/pcm_native.c:1.92->1.93 
#   F:include/asound.h:1.40->1.41 
#   F:pci/rme32.c:1.33->1.34 
#   F:pci/rme96.c:1.35->1.36 
#   F:pci/nm256/nm256.c:1.38->1.39 
#   L:- Fix the mmap via io_remap_page_range() on nm256, rme32 and rme96.
#   L:  Added SNDRV_PCM_INFO_MMAP_IOMEM to handle this case.
#   L:- Clean up the indirect accessing on RME32/RME96 drivers.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/nm256/nm256.c
#   2004/06/21 11:50:09+02:00 perex@suse.cz +6 -10
#   ALSA CVS update
#   D:2004/06/21 17:50:08
#   C:PCM Midlevel,ALSA Core,RME32 driver,RME96 driver,NM256 driver
#   F:core/pcm_native.c:1.92->1.93 
#   F:include/asound.h:1.40->1.41 
#   F:pci/rme32.c:1.33->1.34 
#   F:pci/rme96.c:1.35->1.36 
#   F:pci/nm256/nm256.c:1.38->1.39 
#   L:- Fix the mmap via io_remap_page_range() on nm256, rme32 and rme96.
#   L:  Added SNDRV_PCM_INFO_MMAP_IOMEM to handle this case.
#   L:- Clean up the indirect accessing on RME32/RME96 drivers.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_native.c
#   2004/06/21 11:50:08+02:00 perex@suse.cz +14 -0
#   ALSA CVS update
#   D:2004/06/21 17:50:08
#   C:PCM Midlevel,ALSA Core,RME32 driver,RME96 driver,NM256 driver
#   F:core/pcm_native.c:1.92->1.93 
#   F:include/asound.h:1.40->1.41 
#   F:pci/rme32.c:1.33->1.34 
#   F:pci/rme96.c:1.35->1.36 
#   F:pci/nm256/nm256.c:1.38->1.39 
#   L:- Fix the mmap via io_remap_page_range() on nm256, rme32 and rme96.
#   L:  Added SNDRV_PCM_INFO_MMAP_IOMEM to handle this case.
#   L:- Clean up the indirect accessing on RME32/RME96 drivers.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/asound.h
#   2004/06/21 11:50:08+02:00 perex@suse.cz +1 -0
#   ALSA CVS update
#   D:2004/06/21 17:50:08
#   C:PCM Midlevel,ALSA Core,RME32 driver,RME96 driver,NM256 driver
#   F:core/pcm_native.c:1.92->1.93 
#   F:include/asound.h:1.40->1.41 
#   F:pci/rme32.c:1.33->1.34 
#   F:pci/rme96.c:1.35->1.36 
#   F:pci/nm256/nm256.c:1.38->1.39 
#   L:- Fix the mmap via io_remap_page_range() on nm256, rme32 and rme96.
#   L:  Added SNDRV_PCM_INFO_MMAP_IOMEM to handle this case.
#   L:- Clean up the indirect accessing on RME32/RME96 drivers.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:11:34+02:00 perex@suse.cz 
#   ALSA CVS update
#   USB generic driver
#   handle devices that allow setting but not reading sample rate
#   
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/usb/usbaudio.c
#   2004/06/21 09:45:12+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/21 15:45:12
#   C:USB generic driver
#   F:usb/usbaudio.c:1.101->1.102 
#   L:handle devices that allow setting but not reading sample rate
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# ChangeSet
#   2004/06/23 13:10:13+02:00 perex@suse.cz 
#   ALSA CVS update
#   VIA82xx driver
#   Fixed the calculation of the current DMA position at the period boundary.
#   
#   In some cases, DMA residue returns the value 0 during the transition
#   at the DMA boundary.  The patch handles it as the position 0.
#   This may prevent the flood of 'invalid last pointer' debug messages
#   on some devices.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/via82xx.c
#   2004/06/18 11:52:36+02:00 perex@suse.cz +5 -1
#   ALSA CVS update
#   D:2004/06/18 17:52:36
#   C:VIA82xx driver
#   F:pci/via82xx.c:1.104->1.105 
#   L:Fixed the calculation of the current DMA position at the period boundary.
#   L:
#   L:In some cases, DMA residue returns the value 0 during the transition
#   L:at the DMA boundary.  The patch handles it as the position 0.
#   L:This may prevent the flood of 'invalid last pointer' debug messages
#   L:on some devices.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:08:53+02:00 perex@suse.cz 
#   ALSA CVS update
#   Intel8x0 driver
#   Fixed the calculation of the current DMA position on some sloppy devices.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/intel8x0.c
#   2004/06/18 11:50:52+02:00 perex@suse.cz +15 -9
#   ALSA CVS update
#   D:2004/06/18 17:50:52
#   C:Intel8x0 driver
#   F:pci/intel8x0.c:1.138->1.139 
#   L:Fixed the calculation of the current DMA position on some sloppy devices.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:07:19+02:00 perex@suse.cz 
#   ALSA CVS update
#   PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver
#   Trident driver
#   Clean up the buffer management in the PCM runtime record.
#   
#   The buffer-allocation record is hold in runtime instance, so that
#   it can be checked more cleanly.
#   
#   dma_private is removed from runtime (it's used for SG-buffers).
#   The macro snd_pcm_substream_sgbuf() should be used instead of direct
#   access to the pointer, to retrieve the sgbuf struct from the PCM
#   substream instance.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/trident/trident_memory.c
#   2004/06/18 11:46:32+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/18 17:46:31
#   C:PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver
#   C:Trident driver
#   F:core/pcm_memory.c:1.28->1.29 
#   F:include/pcm.h:1.41->1.42 
#   F:pci/es1968.c:1.67->1.68 
#   F:pci/emu10k1/memory.c:1.17->1.18 
#   F:pci/korg1212/korg1212.c:1.38->1.39 
#   F:pci/trident/trident_memory.c:1.14->1.15 
#   L:Clean up the buffer management in the PCM runtime record.
#   L:
#   L:The buffer-allocation record is hold in runtime instance, so that
#   L:it can be checked more cleanly.
#   L:
#   L:dma_private is removed from runtime (it's used for SG-buffers).
#   L:The macro snd_pcm_substream_sgbuf() should be used instead of direct
#   L:access to the pointer, to retrieve the sgbuf struct from the PCM
#   L:substream instance.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/korg1212/korg1212.c
#   2004/06/18 11:46:32+02:00 perex@suse.cz +6 -4
#   ALSA CVS update
#   D:2004/06/18 17:46:31
#   C:PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver
#   C:Trident driver
#   F:core/pcm_memory.c:1.28->1.29 
#   F:include/pcm.h:1.41->1.42 
#   F:pci/es1968.c:1.67->1.68 
#   F:pci/emu10k1/memory.c:1.17->1.18 
#   F:pci/korg1212/korg1212.c:1.38->1.39 
#   F:pci/trident/trident_memory.c:1.14->1.15 
#   L:Clean up the buffer management in the PCM runtime record.
#   L:
#   L:The buffer-allocation record is hold in runtime instance, so that
#   L:it can be checked more cleanly.
#   L:
#   L:dma_private is removed from runtime (it's used for SG-buffers).
#   L:The macro snd_pcm_substream_sgbuf() should be used instead of direct
#   L:access to the pointer, to retrieve the sgbuf struct from the PCM
#   L:substream instance.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/es1968.c
#   2004/06/18 11:46:31+02:00 perex@suse.cz +32 -30
#   ALSA CVS update
#   D:2004/06/18 17:46:31
#   C:PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver
#   C:Trident driver
#   F:core/pcm_memory.c:1.28->1.29 
#   F:include/pcm.h:1.41->1.42 
#   F:pci/es1968.c:1.67->1.68 
#   F:pci/emu10k1/memory.c:1.17->1.18 
#   F:pci/korg1212/korg1212.c:1.38->1.39 
#   F:pci/trident/trident_memory.c:1.14->1.15 
#   L:Clean up the buffer management in the PCM runtime record.
#   L:
#   L:The buffer-allocation record is hold in runtime instance, so that
#   L:it can be checked more cleanly.
#   L:
#   L:dma_private is removed from runtime (it's used for SG-buffers).
#   L:The macro snd_pcm_substream_sgbuf() should be used instead of direct
#   L:access to the pointer, to retrieve the sgbuf struct from the PCM
#   L:substream instance.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/emu10k1/memory.c
#   2004/06/18 11:46:31+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/18 17:46:31
#   C:PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver
#   C:Trident driver
#   F:core/pcm_memory.c:1.28->1.29 
#   F:include/pcm.h:1.41->1.42 
#   F:pci/es1968.c:1.67->1.68 
#   F:pci/emu10k1/memory.c:1.17->1.18 
#   F:pci/korg1212/korg1212.c:1.38->1.39 
#   F:pci/trident/trident_memory.c:1.14->1.15 
#   L:Clean up the buffer management in the PCM runtime record.
#   L:
#   L:The buffer-allocation record is hold in runtime instance, so that
#   L:it can be checked more cleanly.
#   L:
#   L:dma_private is removed from runtime (it's used for SG-buffers).
#   L:The macro snd_pcm_substream_sgbuf() should be used instead of direct
#   L:access to the pointer, to retrieve the sgbuf struct from the PCM
#   L:substream instance.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_memory.c
#   2004/06/18 11:46:31+02:00 perex@suse.cz +18 -22
#   ALSA CVS update
#   D:2004/06/18 17:46:31
#   C:PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver
#   C:Trident driver
#   F:core/pcm_memory.c:1.28->1.29 
#   F:include/pcm.h:1.41->1.42 
#   F:pci/es1968.c:1.67->1.68 
#   F:pci/emu10k1/memory.c:1.17->1.18 
#   F:pci/korg1212/korg1212.c:1.38->1.39 
#   F:pci/trident/trident_memory.c:1.14->1.15 
#   L:Clean up the buffer management in the PCM runtime record.
#   L:
#   L:The buffer-allocation record is hold in runtime instance, so that
#   L:it can be checked more cleanly.
#   L:
#   L:dma_private is removed from runtime (it's used for SG-buffers).
#   L:The macro snd_pcm_substream_sgbuf() should be used instead of direct
#   L:access to the pointer, to retrieve the sgbuf struct from the PCM
#   L:substream instance.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/pcm.h
#   2004/06/18 11:46:31+02:00 perex@suse.cz +19 -2
#   ALSA CVS update
#   D:2004/06/18 17:46:31
#   C:PCM Midlevel,ES1968 driver,EMU10K1/EMU10K2 driver,KORG1212 driver
#   C:Trident driver
#   F:core/pcm_memory.c:1.28->1.29 
#   F:include/pcm.h:1.41->1.42 
#   F:pci/es1968.c:1.67->1.68 
#   F:pci/emu10k1/memory.c:1.17->1.18 
#   F:pci/korg1212/korg1212.c:1.38->1.39 
#   F:pci/trident/trident_memory.c:1.14->1.15 
#   L:Clean up the buffer management in the PCM runtime record.
#   L:
#   L:The buffer-allocation record is hold in runtime instance, so that
#   L:it can be checked more cleanly.
#   L:
#   L:dma_private is removed from runtime (it's used for SG-buffers).
#   L:The macro snd_pcm_substream_sgbuf() should be used instead of direct
#   L:access to the pointer, to retrieve the sgbuf struct from the PCM
#   L:substream instance.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:05:35+02:00 perex@suse.cz 
#   ALSA CVS update
#   Generic drivers
#   Do the buffer allocation in hw_params callback instead of open callback.
#   
#   This will prevent to use the allocation of excessive size.
#   Pre-allocation is called with the default size 0, ie. no buffer will be
#   pre-allocated as default.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/drivers/dummy.c
#   2004/06/18 11:43:33+02:00 perex@suse.cz +20 -31
#   ALSA CVS update
#   D:2004/06/18 17:43:33
#   C:Generic drivers
#   F:drivers/dummy.c:1.27->1.28 
#   L:Do the buffer allocation in hw_params callback instead of open callback.
#   L:
#   L:This will prevent to use the allocation of excessive size.
#   L:Pre-allocation is called with the default size 0, ie. no buffer will be
#   L:pre-allocated as default.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:04:14+02:00 perex@suse.cz 
#   ALSA CVS update
#   ES1968 driver
#   Fix the crash at unloading the module due to the shared interrupt
#   with other devices.
#   
#   Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/es1968.c
#   2004/06/18 08:40:17+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/06/18 14:40:17
#   C:ES1968 driver
#   F:pci/es1968.c:1.66->1.67 
#   L:Fix the crash at unloading the module due to the shared interrupt
#   L:with other devices.
#   Signed-off-by: Karsten Wiese <annabellesgarden@yahoo.de>
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:02:56+02:00 perex@suse.cz 
#   ALSA CVS update
#   PCM Midlevel
#   Removed the obsoleted init for boot parameters.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_memory.c
#   2004/06/18 08:38:26+02:00 perex@suse.cz +0 -15
#   ALSA CVS update
#   D:2004/06/18 14:38:26
#   C:PCM Midlevel
#   F:core/pcm_memory.c:1.27->1.28 
#   L:Removed the obsoleted init for boot parameters.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 13:01:38+02:00 perex@suse.cz 
#   ALSA CVS update
#   CS46xx driver,MIXART driver
#   reduce stack usage
#   
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/pci/mixart/mixart.c
#   2004/06/16 08:32:20+02:00 perex@suse.cz +27 -19
#   ALSA CVS update
#   D:2004/06/16 14:35:18
#   C:CS46xx driver,MIXART driver
#   F:pci/cs46xx/dsp_spos.c:1.23->1.24 
#   F:pci/mixart/mixart.c:1.8->1.9 
#   L:reduce stack usage
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/pci/cs46xx/dsp_spos.c
#   2004/06/16 08:35:18+02:00 perex@suse.cz +16 -11
#   ALSA CVS update
#   D:2004/06/16 14:35:18
#   C:CS46xx driver,MIXART driver
#   F:pci/cs46xx/dsp_spos.c:1.23->1.24 
#   F:pci/mixart/mixart.c:1.8->1.9 
#   L:reduce stack usage
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# ChangeSet
#   2004/06/23 12:58:32+02:00 perex@suse.cz 
#   ALSA CVS update
#   OSS sequencer emulation
#   
#   Use separate functions for some ioctls to reduce stack usage.
#   
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# sound/core/seq/oss/seq_oss_ioctl.c
#   2004/06/23 12:58:02+02:00 perex@suse.cz +46 -28
#   ALSA CVS update
#   D:2004/06/16 14:28:13
#   C:ALSA<-OSS sequencer
#   F:core/seq/oss/seq_oss_ioctl.c:1.5->1.6 
#   L:use separate functions for some ioctls to reduce stack usage
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# ChangeSet
#   2004/06/23 12:44:07+02:00 perex@suse.cz 
#   ALSA CVS update
#   OPL4
#   add newline at end of file
#   
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/drivers/opl4/Makefile
#   2004/06/16 04:46:02+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/16 10:46:02
#   C:OPL4
#   F:drivers/opl4/Makefile:1.3->1.4 
#   L:add newline at end of file
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# ChangeSet
#   2004/06/23 12:42:44+02:00 perex@suse.cz 
#   ALSA CVS update
#   Opti9xx drivers
#   Fixed spin deadlocks.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/isa/opti9xx/opti92x-ad1848.c
#   2004/06/15 05:39:57+02:00 perex@suse.cz +2 -19
#   ALSA CVS update
#   D:2004/06/15 11:39:57
#   C:Opti9xx drivers
#   F:isa/opti9xx/opti92x-ad1848.c:1.44->1.45 
#   L:Fixed spin deadlocks.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 12:41:27+02:00 perex@suse.cz 
#   ALSA CVS update
#   USB generic driver
#   Quattro USB: handle the different endianness of playback and recording sample data
#   
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/usb/usbquirks.h
#   2004/06/14 12:12:05+02:00 perex@suse.cz +36 -5
#   ALSA CVS update
#   D:2004/06/14 18:12:05
#   C:USB generic driver
#   F:usb/usbaudio.c:1.100->1.101 
#   F:usb/usbquirks.h:1.33->1.34 
#   L:Quattro USB: handle the different endianness of playback and recording sample data
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# sound/usb/usbaudio.c
#   2004/06/14 12:12:05+02:00 perex@suse.cz +20 -6
#   ALSA CVS update
#   D:2004/06/14 18:12:05
#   C:USB generic driver
#   F:usb/usbaudio.c:1.100->1.101 
#   F:usb/usbquirks.h:1.33->1.34 
#   L:Quattro USB: handle the different endianness of playback and recording sample data
#   Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
# 
# ChangeSet
#   2004/06/23 12:40:10+02:00 perex@suse.cz 
#   ALSA CVS update
#   PCM Midlevel,ALSA<-OSS emulation
#   Clean up and optimization of PCM format-specific functions.
#   
#   - Use array indexing instead of huge swith/case.
#   - Removed superfluous handling of floats.
#   - Use memcpy for silencing to simplify the codes.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/pcm_misc.c
#   2004/06/09 12:36:14+02:00 perex@suse.cz +249 -459
#   ALSA CVS update
#   D:2004/06/09 18:36:14
#   C:PCM Midlevel,ALSA<-OSS emulation
#   F:core/pcm_misc.c:1.13->1.14 
#   F:core/oss/pcm_plugin.c:1.18->1.19 
#   F:include/pcm.h:1.40->1.41 
#   L:Clean up and optimization of PCM format-specific functions.
#   L:
#   L:- Use array indexing instead of huge swith/case.
#   L:- Removed superfluous handling of floats.
#   L:- Use memcpy for silencing to simplify the codes.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/core/oss/pcm_plugin.c
#   2004/06/09 12:36:14+02:00 perex@suse.cz +27 -96
#   ALSA CVS update
#   D:2004/06/09 18:36:14
#   C:PCM Midlevel,ALSA<-OSS emulation
#   F:core/pcm_misc.c:1.13->1.14 
#   F:core/oss/pcm_plugin.c:1.18->1.19 
#   F:include/pcm.h:1.40->1.41 
#   L:Clean up and optimization of PCM format-specific functions.
#   L:
#   L:- Use array indexing instead of huge swith/case.
#   L:- Removed superfluous handling of floats.
#   L:- Use memcpy for silencing to simplify the codes.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# include/sound/pcm.h
#   2004/06/09 12:36:15+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/06/09 18:36:14
#   C:PCM Midlevel,ALSA<-OSS emulation
#   F:core/pcm_misc.c:1.13->1.14 
#   F:core/oss/pcm_plugin.c:1.18->1.19 
#   F:include/pcm.h:1.40->1.41 
#   L:Clean up and optimization of PCM format-specific functions.
#   L:
#   L:- Use array indexing instead of huge swith/case.
#   L:- Removed superfluous handling of floats.
#   L:- Use memcpy for silencing to simplify the codes.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 12:38:51+02:00 perex@suse.cz 
#   ALSA CVS update
#   Intel8x0 driver
#   Added the PCI ID for nVidia CK8.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/intel8x0.c
#   2004/06/09 12:02:00+02:00 perex@suse.cz +5 -0
#   ALSA CVS update
#   D:2004/06/09 18:02:00
#   C:Intel8x0 driver
#   F:pci/intel8x0.c:1.137->1.138 
#   L:Added the PCI ID for nVidia CK8.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 12:37:24+02:00 perex@suse.cz 
#   ALSA CVS update
#   ATIIXP driver,VIA82xx driver
#   Added the missing RESUME info bits to pcm.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/via82xx.c
#   2004/06/09 12:01:05+02:00 perex@suse.cz +1 -0
#   ALSA CVS update
#   D:2004/06/09 18:01:05
#   C:ATIIXP driver,VIA82xx driver
#   F:pci/atiixp.c:1.10->1.11 
#   F:pci/via82xx.c:1.103->1.104 
#   L:Added the missing RESUME info bits to pcm.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/atiixp.c
#   2004/06/09 12:01:05+02:00 perex@suse.cz +1 -0
#   ALSA CVS update
#   D:2004/06/09 18:01:05
#   C:ATIIXP driver,VIA82xx driver
#   F:pci/atiixp.c:1.10->1.11 
#   F:pci/via82xx.c:1.103->1.104 
#   L:Added the missing RESUME info bits to pcm.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 12:33:49+02:00 perex@suse.cz 
#   ALSA CVS update
#   ICE1724 driver
#   SPDIF output fixes
#   
#   - Fixed the encoding of SPDIF status bits in the consumer mode.
#   - Change the SPDIF status bits according to the current sample rate.
#   
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# sound/pci/ice1712/ice1724.c
#   2004/06/08 11:15:26+02:00 perex@suse.cz +40 -11
#   ALSA CVS update
#   D:2004/06/08 17:15:26
#   C:ICE1724 driver
#   F:pci/ice1712/ice1724.c:1.33->1.34 
#   L:SPDIF output fixes
#   L:
#   L:- Fixed the encoding of SPDIF status bits in the consumer mode.
#   L:- Change the SPDIF status bits according to the current sample rate.
#   Signed-off-by: Takashi Iwai <tiwai@suse.de>
# 
# ChangeSet
#   2004/06/23 12:28:34+02:00 perex@suse.cz 
#   ALSA CVS update
#   Documentation
#   Added snd-fm801 tuner parameter description
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# Documentation/sound/alsa/ALSA-Configuration.txt
#   2004/06/01 02:56:20+02:00 perex@suse.cz +7 -0
#   ALSA CVS update
#   D:2004/06/01 08:56:20
#   C:Documentation
#   F:Documentation/ALSA-Configuration.txt:1.45->1.46 
#   L:Added snd-fm801 tuner parameter description
#   Signed-off-by: Jaroslav Kysela <perex@suse.cz>
# 
# ChangeSet
#   2004/06/16 11:59:16+02:00 perex@suse.cz 
#   Merge suse.cz:/home/perex/bk/linux-sound/linux-2.5
#   into suse.cz:/home/perex/bk/linux-sound/linux-sound
# 
# sound/isa/wavefront/wavefront_synth.c
#   2004/06/16 11:58:53+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# sound/core/seq/seq_clientmgr.c
#   2004/06/16 11:58:53+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# include/sound/vx_core.h
#   2004/06/16 11:58:53+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# include/sound/seq_kernel.h
#   2004/06/16 11:58:53+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# include/sound/core.h
#   2004/06/16 11:58:53+02:00 perex@suse.cz +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/05/31 08:49:28+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   AC97 Codec Core
#   Fixed mutex deadlocks.
# 
# sound/pci/ac97/ac97_patch.c
#   2004/05/30 11:40:05+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/05/30 17:40:04
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ac97/ac97_codec.c:1.135->1.136 
#   F:pci/ac97/ac97_patch.c:1.52->1.53 
#   L:Fixed mutex deadlocks.
# 
# sound/pci/ac97/ac97_codec.c
#   2004/05/30 11:40:04+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/05/30 17:40:04
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ac97/ac97_codec.c:1.135->1.136 
#   F:pci/ac97/ac97_patch.c:1.52->1.53 
#   L:Fixed mutex deadlocks.
# 
# ChangeSet
#   2004/05/30 14:01:08+02:00 perex@suse.cz 
#   ALSA 1.0.5
# 
# include/sound/version.h
#   2004/05/30 14:00:09+02:00 perex@suse.cz +2 -2
#   ALSA 1.0.5
# 
# ChangeSet
#   2004/05/30 13:57:33+02:00 perex@suse.cz 
#   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
#   ALSA Core
#   Fixed warnings for pci PM callbacks when not CONFIG_PCI
# 
# include/sound/core.h
#   2004/05/30 06:50:15+02:00 perex@suse.cz +4 -0
#   ALSA CVS update
#   D:2004/05/30 12:50:15
#   C:ALSA Core
#   A:Jaroslav Kysela <perex@suse.cz>
#   F:include/core.h:1.51->1.52 
#   L:Fixed warnings for pci PM callbacks when not CONFIG_PCI
# 
# ChangeSet
#   2004/05/28 15:04:32+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   AC97 Codec Core
#   - Added the single mixer control with AC97 2.3 paging.
#   - Handle the paging for some ALC655/658 registers.
#   - Added the experimental support for ALC850.
# 
# sound/pci/ac97/ac97_patch.h
#   2004/05/28 04:27:09+02:00 perex@suse.cz +1 -0
#   ALSA CVS update
#   D:2004/05/28 10:27:09
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ac97/ac97_codec.c:1.134->1.135 
#   F:pci/ac97/ac97_id.h:1.8->1.9 
#   F:pci/ac97/ac97_local.h:1.6->1.7 
#   F:pci/ac97/ac97_patch.c:1.51->1.52 
#   F:pci/ac97/ac97_patch.h:1.15->1.16 
#   L:- Added the single mixer control with AC97 2.3 paging.
#   L:- Handle the paging for some ALC655/658 registers.
#   L:- Added the experimental support for ALC850.
# 
# sound/pci/ac97/ac97_patch.c
#   2004/05/28 04:27:09+02:00 perex@suse.cz +148 -28
#   ALSA CVS update
#   D:2004/05/28 10:27:09
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ac97/ac97_codec.c:1.134->1.135 
#   F:pci/ac97/ac97_id.h:1.8->1.9 
#   F:pci/ac97/ac97_local.h:1.6->1.7 
#   F:pci/ac97/ac97_patch.c:1.51->1.52 
#   F:pci/ac97/ac97_patch.h:1.15->1.16 
#   L:- Added the single mixer control with AC97 2.3 paging.
#   L:- Handle the paging for some ALC655/658 registers.
#   L:- Added the experimental support for ALC850.
# 
# sound/pci/ac97/ac97_local.h
#   2004/05/28 04:27:09+02:00 perex@suse.cz +7 -0
#   ALSA CVS update
#   D:2004/05/28 10:27:09
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ac97/ac97_codec.c:1.134->1.135 
#   F:pci/ac97/ac97_id.h:1.8->1.9 
#   F:pci/ac97/ac97_local.h:1.6->1.7 
#   F:pci/ac97/ac97_patch.c:1.51->1.52 
#   F:pci/ac97/ac97_patch.h:1.15->1.16 
#   L:- Added the single mixer control with AC97 2.3 paging.
#   L:- Handle the paging for some ALC655/658 registers.
#   L:- Added the experimental support for ALC850.
# 
# sound/pci/ac97/ac97_id.h
#   2004/05/28 04:27:09+02:00 perex@suse.cz +7 -0
#   ALSA CVS update
#   D:2004/05/28 10:27:09
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ac97/ac97_codec.c:1.134->1.135 
#   F:pci/ac97/ac97_id.h:1.8->1.9 
#   F:pci/ac97/ac97_local.h:1.6->1.7 
#   F:pci/ac97/ac97_patch.c:1.51->1.52 
#   F:pci/ac97/ac97_patch.h:1.15->1.16 
#   L:- Added the single mixer control with AC97 2.3 paging.
#   L:- Handle the paging for some ALC655/658 registers.
#   L:- Added the experimental support for ALC850.
# 
# sound/pci/ac97/ac97_codec.c
#   2004/05/28 04:27:09+02:00 perex@suse.cz +61 -18
#   ALSA CVS update
#   D:2004/05/28 10:27:09
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ac97/ac97_codec.c:1.134->1.135 
#   F:pci/ac97/ac97_id.h:1.8->1.9 
#   F:pci/ac97/ac97_local.h:1.6->1.7 
#   F:pci/ac97/ac97_patch.c:1.51->1.52 
#   F:pci/ac97/ac97_patch.h:1.15->1.16 
#   L:- Added the single mixer control with AC97 2.3 paging.
#   L:- Handle the paging for some ALC655/658 registers.
#   L:- Added the experimental support for ALC850.
# 
# ChangeSet
#   2004/05/28 15:04:07+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   AC97 Codec Core
#   Avoid warning message during codec probing in case SKIP_AUDIO flag is not set.
# 
# sound/pci/ac97/ac97_codec.c
#   2004/05/27 13:15:54+02:00 perex@suse.cz +6 -4
#   ALSA CVS update
#   D:2004/05/27 19:15:54
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ac97/ac97_codec.c:1.133->1.134 
#   L:Avoid warning message during codec probing in case SKIP_AUDIO flag is not set.
# 
# ChangeSet
#   2004/05/28 15:03:42+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   PARISC Harmony driver
#   fixed typos.
# 
# sound/parisc/harmony.c
#   2004/05/26 11:02:12+02:00 perex@suse.cz +2 -2
#   ALSA CVS update
#   D:2004/05/26 17:02:12
#   C:PARISC Harmony driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:parisc/harmony.c:1.11->1.12 
#   L:fixed typos.
# 
# ChangeSet
#   2004/05/28 15:03:20+02:00 perex@suse.cz 
#   ALSA CVS update - Jaroslav Kysela <perex@suse.cz>
#   AC97 Codec Core
#   Signed-off-by: Kevin Mack <kevmack@accesscomm.ca>
#   For Gateway M675 notebook - this will direct mixer
#   output to speaker, headphone and line-out instead
#   of just the front(DAC-A) signal.
# 
# sound/pci/ac97/ac97_patch.c
#   2004/05/26 02:34:55+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/05/26 08:34:55
#   C:AC97 Codec Core
#   A:Jaroslav Kysela <perex@suse.cz>
#   F:pci/ac97/ac97_patch.c:1.50->1.51 
#   L:Signed-off-by: Kevin Mack <kevmack@accesscomm.ca>
#   L:For Gateway M675 notebook - this will direct mixer
#   L:output to speaker, headphone and line-out instead
#   L:of just the front(DAC-A) signal.
# 
# ChangeSet
#   2004/05/28 15:02:56+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   VIA82xx driver
#   - use snd_pcm_limit_hw_rates() and removed redundant codes.
#   - fixed the rate constraints when 'IEC958 Output Switch' is on.
#   - check the SPDIF support on AC97 and don't build IEC958 stuffs if not available.
# 
# sound/pci/via82xx.c
#   2004/05/25 12:54:55+02:00 perex@suse.cz +15 -38
#   ALSA CVS update
#   D:2004/05/25 18:54:55
#   C:VIA82xx driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/via82xx.c:1.102->1.103 
#   L:- use snd_pcm_limit_hw_rates() and removed redundant codes.
#   L:- fixed the rate constraints when 'IEC958 Output Switch' is on.
#   L:- check the SPDIF support on AC97 and don't build IEC958 stuffs if not available.
# 
# ChangeSet
#   2004/05/28 15:02:35+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   AC97 Codec Core
#   added ac97_can_spdif() for checking the SPDIF support.
# 
# include/sound/ac97_codec.h
#   2004/05/25 12:52:57+02:00 perex@suse.cz +4 -0
#   ALSA CVS update
#   D:2004/05/25 18:52:57
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:include/ac97_codec.h:1.45->1.46 
#   L:added ac97_can_spdif() for checking the SPDIF support.
# 
# ChangeSet
#   2004/05/28 15:02:13+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   VIA82xx driver
#   added the DXS entry for Mitac/Vobis/Yakumo laptop.
# 
# sound/pci/via82xx.c
#   2004/05/25 10:10:38+02:00 perex@suse.cz +1 -0
#   ALSA CVS update
#   D:2004/05/25 16:10:38
#   C:VIA82xx driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/via82xx.c:1.101->1.102 
#   L:added the DXS entry for Mitac/Vobis/Yakumo laptop.
# 
# ChangeSet
#   2004/05/28 15:01:53+02:00 perex@suse.cz 
#   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
#   Wavefront drivers
#   fix possible buffer overflow in wavefront_download_firmware()
# 
# sound/isa/wavefront/wavefront_synth.c
#   2004/05/25 07:10:48+02:00 perex@suse.cz +6 -0
#   ALSA CVS update
#   D:2004/05/25 13:10:48
#   C:Wavefront drivers
#   A:Clemens Ladisch <clemens@ladisch.de>
#   F:isa/wavefront/wavefront_synth.c:1.17->1.18 
#   L:fix possible buffer overflow in wavefront_download_firmware()
# 
# ChangeSet
#   2004/05/28 14:20:37+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   ICE1724 driver
#   avoid to change the AC97 rate registers.  this seems conflicting
#   with the rate conversion on VT172x.
# 
# sound/pci/ice1712/ice1724.c
#   2004/05/25 04:56:22+02:00 perex@suse.cz +2 -17
#   ALSA CVS update
#   D:2004/05/25 10:56:22
#   C:ICE1724 driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/ice1712/ice1724.c:1.32->1.33 
#   L:avoid to change the AC97 rate registers.  this seems conflicting
#   L:with the rate conversion on VT172x.
# 
# ChangeSet
#   2004/05/28 14:20:17+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   Digigram VX core
#   added 'Clock Mode' control to choose the clock source.
# 
# sound/drivers/vx/vx_uer.c
#   2004/05/24 12:12:43+02:00 perex@suse.cz +8 -7
#   ALSA CVS update
#   D:2004/05/24 18:12:43
#   C:Digigram VX core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:drivers/vx/vx_core.c:1.7->1.8 
#   F:drivers/vx/vx_mixer.c:1.2->1.3 
#   F:drivers/vx/vx_uer.c:1.1->1.2 
#   F:include/vx_core.h:1.1->1.2 
#   L:added 'Clock Mode' control to choose the clock source.
# 
# sound/drivers/vx/vx_mixer.c
#   2004/05/24 12:12:43+02:00 perex@suse.cz +51 -0
#   ALSA CVS update
#   D:2004/05/24 18:12:43
#   C:Digigram VX core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:drivers/vx/vx_core.c:1.7->1.8 
#   F:drivers/vx/vx_mixer.c:1.2->1.3 
#   F:drivers/vx/vx_uer.c:1.1->1.2 
#   F:include/vx_core.h:1.1->1.2 
#   L:added 'Clock Mode' control to choose the clock source.
# 
# sound/drivers/vx/vx_core.c
#   2004/05/24 12:12:43+02:00 perex@suse.cz +3 -0
#   ALSA CVS update
#   D:2004/05/24 18:12:43
#   C:Digigram VX core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:drivers/vx/vx_core.c:1.7->1.8 
#   F:drivers/vx/vx_mixer.c:1.2->1.3 
#   F:drivers/vx/vx_uer.c:1.1->1.2 
#   F:include/vx_core.h:1.1->1.2 
#   L:added 'Clock Mode' control to choose the clock source.
# 
# include/sound/vx_core.h
#   2004/05/24 12:12:43+02:00 perex@suse.cz +8 -0
#   ALSA CVS update
#   D:2004/05/24 18:12:43
#   C:Digigram VX core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:drivers/vx/vx_core.c:1.7->1.8 
#   F:drivers/vx/vx_mixer.c:1.2->1.3 
#   F:drivers/vx/vx_uer.c:1.1->1.2 
#   F:include/vx_core.h:1.1->1.2 
#   L:added 'Clock Mode' control to choose the clock source.
# 
# ChangeSet
#   2004/05/28 14:19:53+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   Digigram VX core
#   fixed the compile warnings due to the last change.
# 
# sound/drivers/vx/vx_pcm.c
#   2004/05/24 12:11:58+02:00 perex@suse.cz +2 -1
#   ALSA CVS update
#   D:2004/05/24 18:11:58
#   C:Digigram VX core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:drivers/vx/vx_pcm.c:1.4->1.5 
#   L:fixed the compile warnings due to the last change.
# 
# ChangeSet
#   2004/05/28 14:19:28+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   PARISC Harmony driver
#   - fixed the buffer handling without dma_alloc_coherent support.
# 
# sound/parisc/harmony.c
#   2004/05/24 09:51:51+02:00 perex@suse.cz +31 -9
#   ALSA CVS update
#   D:2004/05/24 15:51:51
#   C:PARISC Harmony driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:parisc/harmony.c:1.10->1.11 
#   L:- fixed the buffer handling without dma_alloc_coherent support.
# 
# ChangeSet
#   2004/05/28 14:19:07+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   Digigram VX core
#   fixed sleep while atomic in the trigger callback.
# 
# sound/drivers/vx/vx_pcm.c
#   2004/05/24 09:06:17+02:00 perex@suse.cz +2 -8
#   ALSA CVS update
#   D:2004/05/24 15:06:17
#   C:Digigram VX core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:drivers/vx/vx_pcm.c:1.3->1.4 
#   L:fixed sleep while atomic in the trigger callback.
# 
# ChangeSet
#   2004/05/28 14:14:19+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   AC97 Codec Core
#   - added the global mutex for ac97_t (ad18xx mutex is removed).
#     used to protect paging and AD18xx multi-codecs.
#   - set PAGE_INT register explicitly before accessing (for STAC9758).
#   - moved ALC650 revision check to patch_alc650().
#   - support stereo Mic playback.
#   - moved STAC9708 quirk to patch_stac9708().
#   - don't clear PC_BEEP high bits (ac97 2.3 sets frequency there).
#   - avoid the unnecessary RESET-waiting for audio/modem codec.
#   - fixed the evaluation of modem codec to call mpatch callback properly.
#   - determine the SPDIF rate in the build path.
#   - added suffix argument to snd_ac97_rename|remove|swap_ctl().
#   - added snd_ac97_rename_vol_ctl().
# 
# sound/pci/ac97/ac97_proc.c
#   2004/05/24 08:24:42+02:00 perex@suse.cz +6 -4
#   ALSA CVS update
#   D:2004/05/24 14:24:42
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:include/ac97_codec.h:1.44->1.45 
#   F:pci/ac97/ac97_codec.c:1.132->1.133 
#   F:pci/ac97/ac97_local.h:1.5->1.6 
#   F:pci/ac97/ac97_patch.c:1.49->1.50 
#   F:pci/ac97/ac97_proc.c:1.7->1.8 
#   L:- added the global mutex for ac97_t (ad18xx mutex is removed).
#   L:  used to protect paging and AD18xx multi-codecs.
#   L:- set PAGE_INT register explicitly before accessing (for STAC9758).
#   L:- moved ALC650 revision check to patch_alc650().
#   L:- support stereo Mic playback.
#   L:- moved STAC9708 quirk to patch_stac9708().
#   L:- don't clear PC_BEEP high bits (ac97 2.3 sets frequency there).
#   L:- avoid the unnecessary RESET-waiting for audio/modem codec.
#   L:- fixed the evaluation of modem codec to call mpatch callback properly.
#   L:- determine the SPDIF rate in the build path.
#   L:- added suffix argument to snd_ac97_rename|remove|swap_ctl().
#   L:- added snd_ac97_rename_vol_ctl().
# 
# sound/pci/ac97/ac97_patch.c
#   2004/05/24 08:24:42+02:00 perex@suse.cz +75 -30
#   ALSA CVS update
#   D:2004/05/24 14:24:42
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:include/ac97_codec.h:1.44->1.45 
#   F:pci/ac97/ac97_codec.c:1.132->1.133 
#   F:pci/ac97/ac97_local.h:1.5->1.6 
#   F:pci/ac97/ac97_patch.c:1.49->1.50 
#   F:pci/ac97/ac97_proc.c:1.7->1.8 
#   L:- added the global mutex for ac97_t (ad18xx mutex is removed).
#   L:  used to protect paging and AD18xx multi-codecs.
#   L:- set PAGE_INT register explicitly before accessing (for STAC9758).
#   L:- moved ALC650 revision check to patch_alc650().
#   L:- support stereo Mic playback.
#   L:- moved STAC9708 quirk to patch_stac9708().
#   L:- don't clear PC_BEEP high bits (ac97 2.3 sets frequency there).
#   L:- avoid the unnecessary RESET-waiting for audio/modem codec.
#   L:- fixed the evaluation of modem codec to call mpatch callback properly.
#   L:- determine the SPDIF rate in the build path.
#   L:- added suffix argument to snd_ac97_rename|remove|swap_ctl().
#   L:- added snd_ac97_rename_vol_ctl().
# 
# sound/pci/ac97/ac97_local.h
#   2004/05/24 08:24:42+02:00 perex@suse.cz +4 -3
#   ALSA CVS update
#   D:2004/05/24 14:24:42
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:include/ac97_codec.h:1.44->1.45 
#   F:pci/ac97/ac97_codec.c:1.132->1.133 
#   F:pci/ac97/ac97_local.h:1.5->1.6 
#   F:pci/ac97/ac97_patch.c:1.49->1.50 
#   F:pci/ac97/ac97_proc.c:1.7->1.8 
#   L:- added the global mutex for ac97_t (ad18xx mutex is removed).
#   L:  used to protect paging and AD18xx multi-codecs.
#   L:- set PAGE_INT register explicitly before accessing (for STAC9758).
#   L:- moved ALC650 revision check to patch_alc650().
#   L:- support stereo Mic playback.
#   L:- moved STAC9708 quirk to patch_stac9708().
#   L:- don't clear PC_BEEP high bits (ac97 2.3 sets frequency there).
#   L:- avoid the unnecessary RESET-waiting for audio/modem codec.
#   L:- fixed the evaluation of modem codec to call mpatch callback properly.
#   L:- determine the SPDIF rate in the build path.
#   L:- added suffix argument to snd_ac97_rename|remove|swap_ctl().
#   L:- added snd_ac97_rename_vol_ctl().
# 
# sound/pci/ac97/ac97_codec.c
#   2004/05/24 08:24:42+02:00 perex@suse.cz +93 -70
#   ALSA CVS update
#   D:2004/05/24 14:24:42
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:include/ac97_codec.h:1.44->1.45 
#   F:pci/ac97/ac97_codec.c:1.132->1.133 
#   F:pci/ac97/ac97_local.h:1.5->1.6 
#   F:pci/ac97/ac97_patch.c:1.49->1.50 
#   F:pci/ac97/ac97_proc.c:1.7->1.8 
#   L:- added the global mutex for ac97_t (ad18xx mutex is removed).
#   L:  used to protect paging and AD18xx multi-codecs.
#   L:- set PAGE_INT register explicitly before accessing (for STAC9758).
#   L:- moved ALC650 revision check to patch_alc650().
#   L:- support stereo Mic playback.
#   L:- moved STAC9708 quirk to patch_stac9708().
#   L:- don't clear PC_BEEP high bits (ac97 2.3 sets frequency there).
#   L:- avoid the unnecessary RESET-waiting for audio/modem codec.
#   L:- fixed the evaluation of modem codec to call mpatch callback properly.
#   L:- determine the SPDIF rate in the build path.
#   L:- added suffix argument to snd_ac97_rename|remove|swap_ctl().
#   L:- added snd_ac97_rename_vol_ctl().
# 
# include/sound/ac97_codec.h
#   2004/05/24 08:24:42+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/05/24 14:24:42
#   C:AC97 Codec Core
#   A:Takashi Iwai <tiwai@suse.de>
#   F:include/ac97_codec.h:1.44->1.45 
#   F:pci/ac97/ac97_codec.c:1.132->1.133 
#   F:pci/ac97/ac97_local.h:1.5->1.6 
#   F:pci/ac97/ac97_patch.c:1.49->1.50 
#   F:pci/ac97/ac97_proc.c:1.7->1.8 
#   L:- added the global mutex for ac97_t (ad18xx mutex is removed).
#   L:  used to protect paging and AD18xx multi-codecs.
#   L:- set PAGE_INT register explicitly before accessing (for STAC9758).
#   L:- moved ALC650 revision check to patch_alc650().
#   L:- support stereo Mic playback.
#   L:- moved STAC9708 quirk to patch_stac9708().
#   L:- don't clear PC_BEEP high bits (ac97 2.3 sets frequency there).
#   L:- avoid the unnecessary RESET-waiting for audio/modem codec.
#   L:- fixed the evaluation of modem codec to call mpatch callback properly.
#   L:- determine the SPDIF rate in the build path.
#   L:- added suffix argument to snd_ac97_rename|remove|swap_ctl().
#   L:- added snd_ac97_rename_vol_ctl().
# 
# ChangeSet
#   2004/05/28 14:13:55+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   Memalloc module
#   - added ifdef CONFIG_PCI around the enable module option to avoid the compile
#     warnings without PCI support.
# 
# sound/core/memalloc.c
#   2004/05/24 08:19:55+02:00 perex@suse.cz +4 -0
#   ALSA CVS update
#   D:2004/05/24 14:19:55
#   C:Memalloc module
#   A:Takashi Iwai <tiwai@suse.de>
#   F:core/memalloc.c:1.31->1.32 
#   L:- added ifdef CONFIG_PCI around the enable module option to avoid the compile
#   L:  warnings without PCI support.
# 
# ChangeSet
#   2004/05/28 14:13:31+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   Documentation,ICE1712 driver,ICE1724 driver
#   - fixed the description of model module parameters for ice1712 and ice1724
#     drivers.
#   - added the support of VT1720-based mobo.
#     (still experimental and supporting AC97 only)
# 
# sound/pci/ice1712/vt1720_mobo.h
#   2004/05/28 13:46:26+02:00 perex@suse.cz +35 -0
#   ALSA CVS update
#   D:2004/05/24 14:18:20
#   C:Documentation,ICE1712 driver,ICE1724 driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:Documentation/ALSA-Configuration.txt:1.44->1.45 
#   F:pci/ice1712/Makefile:1.11->1.12 
#   F:pci/ice1712/ice1724.c:1.31->1.32 
#   F:pci/ice1712/vt1720_mobo.c:INITIAL->1.1 
#   F:pci/ice1712/vt1720_mobo.h:INITIAL->1.1 
#   L:- fixed the description of model module parameters for ice1712 and ice1724
#   L:  drivers.
#   L:- added the support of VT1720-based mobo.
#   L:  (still experimental and supporting AC97 only)
# 
# sound/pci/ice1712/vt1720_mobo.h
#   2004/05/28 13:46:26+02:00 perex@suse.cz +0 -0
#   BitKeeper file /home/perex/bk/linux-sound/work/sound/pci/ice1712/vt1720_mobo.h
# 
# sound/pci/ice1712/vt1720_mobo.c
#   2004/05/28 13:46:21+02:00 perex@suse.cz +97 -0
#   ALSA CVS update
#   D:2004/05/24 14:18:20
#   C:Documentation,ICE1712 driver,ICE1724 driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:Documentation/ALSA-Configuration.txt:1.44->1.45 
#   F:pci/ice1712/Makefile:1.11->1.12 
#   F:pci/ice1712/ice1724.c:1.31->1.32 
#   F:pci/ice1712/vt1720_mobo.c:INITIAL->1.1 
#   F:pci/ice1712/vt1720_mobo.h:INITIAL->1.1 
#   L:- fixed the description of model module parameters for ice1712 and ice1724
#   L:  drivers.
#   L:- added the support of VT1720-based mobo.
#   L:  (still experimental and supporting AC97 only)
# 
# sound/pci/ice1712/ice1724.c
#   2004/05/24 08:18:20+02:00 perex@suse.cz +6 -6
#   ALSA CVS update
#   D:2004/05/24 14:18:20
#   C:Documentation,ICE1712 driver,ICE1724 driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:Documentation/ALSA-Configuration.txt:1.44->1.45 
#   F:pci/ice1712/Makefile:1.11->1.12 
#   F:pci/ice1712/ice1724.c:1.31->1.32 
#   F:pci/ice1712/vt1720_mobo.c:INITIAL->1.1 
#   F:pci/ice1712/vt1720_mobo.h:INITIAL->1.1 
#   L:- fixed the description of model module parameters for ice1712 and ice1724
#   L:  drivers.
#   L:- added the support of VT1720-based mobo.
#   L:  (still experimental and supporting AC97 only)
# 
# sound/pci/ice1712/Makefile
#   2004/05/24 08:18:20+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/05/24 14:18:20
#   C:Documentation,ICE1712 driver,ICE1724 driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:Documentation/ALSA-Configuration.txt:1.44->1.45 
#   F:pci/ice1712/Makefile:1.11->1.12 
#   F:pci/ice1712/ice1724.c:1.31->1.32 
#   F:pci/ice1712/vt1720_mobo.c:INITIAL->1.1 
#   F:pci/ice1712/vt1720_mobo.h:INITIAL->1.1 
#   L:- fixed the description of model module parameters for ice1712 and ice1724
#   L:  drivers.
#   L:- added the support of VT1720-based mobo.
#   L:  (still experimental and supporting AC97 only)
# 
# Documentation/sound/alsa/ALSA-Configuration.txt
#   2004/05/24 08:18:20+02:00 perex@suse.cz +3 -2
#   ALSA CVS update
#   D:2004/05/24 14:18:20
#   C:Documentation,ICE1712 driver,ICE1724 driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:Documentation/ALSA-Configuration.txt:1.44->1.45 
#   F:pci/ice1712/Makefile:1.11->1.12 
#   F:pci/ice1712/ice1724.c:1.31->1.32 
#   F:pci/ice1712/vt1720_mobo.c:INITIAL->1.1 
#   F:pci/ice1712/vt1720_mobo.h:INITIAL->1.1 
#   L:- fixed the description of model module parameters for ice1712 and ice1724
#   L:  drivers.
#   L:- added the support of VT1720-based mobo.
#   L:  (still experimental and supporting AC97 only)
# 
# sound/pci/ice1712/vt1720_mobo.c
#   2004/05/28 13:46:21+02:00 perex@suse.cz +0 -0
#   BitKeeper file /home/perex/bk/linux-sound/work/sound/pci/ice1712/vt1720_mobo.c
# 
# ChangeSet
#   2004/05/28 14:13:07+02:00 perex@suse.cz 
#   ALSA CVS update - Takashi Iwai <tiwai@suse.de>
#   ATIIXP driver
#   - continue to probe other codecs even if a codec returns error
#     (instead of breaking the probing).
#     this will fix some cases with both AC97 and MC97 codecs.
# 
# sound/pci/atiixp.c
#   2004/05/24 08:16:43+02:00 perex@suse.cz +4 -12
#   ALSA CVS update
#   D:2004/05/24 14:16:43
#   C:ATIIXP driver
#   A:Takashi Iwai <tiwai@suse.de>
#   F:pci/atiixp.c:1.9->1.10 
#   L:- continue to probe other codecs even if a codec returns error
#   L:  (instead of breaking the probing).
#   L:  this will fix some cases with both AC97 and MC97 codecs.
# 
# ChangeSet
#   2004/05/28 14:12:17+02:00 perex@suse.cz 
#   ALSA CVS update - Clemens Ladisch <clemens@ladisch.de>
#   ALSA sequencer,ALSA<-OSS sequencer
#   export snd_seq_set_queue_tempo() for OSS to prevent calling
#   snd_seq_kernel_client_ctl() (using copy_from_user()) in interrupt
#   context
# 
# sound/core/seq/seq_clientmgr.c
#   2004/05/24 07:31:18+02:00 perex@suse.cz +9 -9
#   ALSA CVS update
#   D:2004/05/24 13:31:18
#   C:ALSA sequencer,ALSA<-OSS sequencer
#   A:Clemens Ladisch <clemens@ladisch.de>
#   F:core/seq/seq.c:1.12->1.13 
#   F:core/seq/seq_clientmgr.c:1.28->1.29 
#   F:core/seq/oss/seq_oss_timer.c:1.5->1.6 
#   F:include/seq_kernel.h:1.9->1.10 
#   L:export snd_seq_set_queue_tempo() for OSS to prevent calling
#   L:snd_seq_kernel_client_ctl() (using copy_from_user()) in interrupt
#   L:context
# 
# sound/core/seq/seq.c
#   2004/05/24 07:31:18+02:00 perex@suse.cz +1 -0
#   ALSA CVS update
#   D:2004/05/24 13:31:18
#   C:ALSA sequencer,ALSA<-OSS sequencer
#   A:Clemens Ladisch <clemens@ladisch.de>
#   F:core/seq/seq.c:1.12->1.13 
#   F:core/seq/seq_clientmgr.c:1.28->1.29 
#   F:core/seq/oss/seq_oss_timer.c:1.5->1.6 
#   F:include/seq_kernel.h:1.9->1.10 
#   L:export snd_seq_set_queue_tempo() for OSS to prevent calling
#   L:snd_seq_kernel_client_ctl() (using copy_from_user()) in interrupt
#   L:context
# 
# sound/core/seq/oss/seq_oss_timer.c
#   2004/05/24 07:31:19+02:00 perex@suse.cz +1 -1
#   ALSA CVS update
#   D:2004/05/24 13:31:18
#   C:ALSA sequencer,ALSA<-OSS sequencer
#   A:Clemens Ladisch <clemens@ladisch.de>
#   F:core/seq/seq.c:1.12->1.13 
#   F:core/seq/seq_clientmgr.c:1.28->1.29 
#   F:core/seq/oss/seq_oss_timer.c:1.5->1.6 
#   F:include/seq_kernel.h:1.9->1.10 
#   L:export snd_seq_set_queue_tempo() for OSS to prevent calling
#   L:snd_seq_kernel_client_ctl() (using copy_from_user()) in interrupt
#   L:context
# 
# include/sound/seq_kernel.h
#   2004/05/24 07:31:18+02:00 perex@suse.cz +3 -0
#   ALSA CVS update
#   D:2004/05/24 13:31:18
#   C:ALSA sequencer,ALSA<-OSS sequencer
#   A:Clemens Ladisch <clemens@ladisch.de>
#   F:core/seq/seq.c:1.12->1.13 
#   F:core/seq/seq_clientmgr.c:1.28->1.29 
#   F:core/seq/oss/seq_oss_timer.c:1.5->1.6 
#   F:include/seq_kernel.h:1.9->1.10 
#   L:export snd_seq_set_queue_tempo() for OSS to prevent calling
#   L:snd_seq_kernel_client_ctl() (using copy_from_user()) in interrupt
#   L:context
# 
diff -Nru a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
--- a/Documentation/sound/alsa/ALSA-Configuration.txt	2004-07-27 18:28:32 -07:00
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt	2004-07-27 18:28:32 -07:00
@@ -516,6 +516,13 @@
 
     Module for ForteMedia FM801 based PCI soundcards.
 
+    tea575x_tuner       - Enable TEA575x tuner
+                          - 1 = MediaForte 256-PCS
+                          - 2 = MediaForte 256-PCPR
+                          - 3 = MediaForte 64-PCR  
+                          - High 16-bits are video (radio) device number + 1
+                          - example: 0x10002 (MediaForte 256-PCPR, device 1)
+
     Module supports up to 8 cards and autoprobe.
     
   Module snd-gusclassic
@@ -613,7 +620,7 @@
     model       - Use the given board model, one of the following:
 		  delta1010, dio2496, delta66, delta44, audiophile, delta410,
 		  delta1010lt, vx442, ewx2496, ews88mt, ews88mt_new, ews88d,
-		  dmx6fire, dsp24, dsp24_71, ez8
+		  dmx6fire, dsp24, dsp24_value, dsp24_71, ez8
     omni	- Omni I/O support for MidiMan M-Audio Delta44/66
     cs8427_timeout - reset timeout for the CS8427 chip (S/PDIF transciever)
                      in msec resolution, default value is 500 (0.5 sec)
@@ -631,7 +638,8 @@
 			* TerraTec Aureon Sky-5.1, Space-7.1
 
     model       - Use the given board model, one of the following:
-		  revo71, amp2000, prodigy71, aureon51, aureon71
+		  revo71, amp2000, prodigy71, aureon51, aureon71,
+		  k8x800
 
     Module supports up to 8 cards and autoprobe.
 
diff -Nru a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
--- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl	2004-07-27 18:28:32 -07:00
+++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl	2004-07-27 18:28:32 -07:00
@@ -18,8 +18,8 @@
       </affiliation>
      </author>
 
-     <date>Mar. 6, 2004</date>
-     <edition>0.3.1</edition>
+     <date>June 29, 2004</date>
+     <edition>0.3.2</edition>
 
     <abstract>
       <para>
@@ -411,10 +411,6 @@
           // "PCI Resource Managements"
   };
 
-  // this should be go into <sound/sndmagic.h>
-  // (see "Management of Cards and Components")
-  #define mychip_t_magic        0xa15a4501
-
   // chip-specific destructor
   // (see "PCI Resource Managements")
   static int snd_mychip_free(mychip_t *chip)
@@ -426,8 +422,7 @@
   // (see "Management of Cards and Components")
   static int snd_mychip_dev_free(snd_device_t *device)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t,
-                  device->device_data, return -ENXIO);
+          mychip_t *chip = device->device_data;
           return snd_mychip_free(chip);
   }
 
@@ -448,8 +443,8 @@
           // check PCI availability here
           // (see "PCI Resource Managements")
 
-          // allocate a chip-specific data with magic-alloc
-          chip = snd_magic_kcalloc(mychip_t, 0, GFP_KERNEL);
+          // allocate a chip-specific data with zero filled
+          chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
           if (chip == NULL)
                   return -ENOMEM;
 
@@ -906,13 +901,6 @@
       </para>
 
       <para>
-        You might have objections against such a typedef, but this
-      typedef is necessary if you use a <quote>magic-cast</quote>
-      (explained <link
-      linkend="card-management-chip-what-advantage"><citetitle>later</citetitle></link>). 
-      </para>
-
-      <para>
         In general, there are two ways to allocate the chip record.
       </para>
 
@@ -943,9 +931,8 @@
             </programlisting>
           </informalexample>
 
-          With this method, you don't have to allocate twice. But you
-        cannot use <quote>magic-cast</quote> for this record pointer,
-        instead. 
+          With this method, you don't have to allocate twice.
+          The record is released together with the card instance.
         </para>
       </section>
 
@@ -956,7 +943,7 @@
           After allocating a card instance via
           <function>snd_card_new()</function> (with
           <constant>NULL</constant> on the 4th arg), call
-          <function>snd_magic_kcalloc()</function>. 
+          <function>kcalloc()</function>. 
 
           <informalexample>
             <programlisting>
@@ -965,13 +952,10 @@
   mychip_t *chip;
   card = snd_card_new(index[dev], id[dev], THIS_MODULE, NULL);
   .....
-  chip = snd_magic_kcalloc(mychip_t, 0, GFP_KERNEL);
+  chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 ]]>
             </programlisting>
           </informalexample>
-
-          Once when the record is allocated via snd_magic stuff, you
-        can use <quote>magic-cast</quote> for the void pointer. 
         </para>
 
         <para>
@@ -1003,21 +987,6 @@
         </para>
 
         <para>
-          Also, you need to define a magic-value for <type>mychip_t</type>.
-
-          <informalexample>
-            <programlisting>
-<![CDATA[
-  #define mychip_t_magic        0xa15a4501
-]]>
-            </programlisting>
-          </informalexample>
-	(the detail will be described in the
-	<link linkend="card-management-chip-what-advantage"><citetitle>
-	next</citetitle></link> subsection).
-	</para>
-
-        <para>
           Next, initialize the fields, and register this chip
           record as a low-level device with a specified
           <parameter>ops</parameter>, 
@@ -1045,8 +1014,7 @@
 <![CDATA[
   static int snd_mychip_dev_free(snd_device_t *device)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t, device->device_data,
-                                          return -ENXIO);
+          mychip_t *chip = device->device_data;
           return snd_mychip_free(chip);
   }
 ]]>
@@ -1057,127 +1025,6 @@
         </para>
       </section>
 
-      <section id="card-management-chip-what-advantage">
-        <title>Not a magic but a logic</title>
-
-        <para>Now, you might have a question: What is the advantage of the
-        second method?  Obviously, it looks far more complicated.</para> 
-        <para>
-          As I wrote many times, the second method allows a
-        <quote>magic-cast</quote> for <type>mychip_t</type>. If you
-        have a void pointer (such as
-        pcm-&gt;private_data), the pointer type
-        is unknown at the compile time, and you cannot know even if a
-        wrong pointer type is passed. The compiler would accept
-        it. The magic-cast checks the pointer type at the runtime (and
-        whether it's a null pointer, too). Hence, the cast will be
-        much safer and good for debugging. 
-        </para>
-
-	<para>
-	As you have already seen, allocation with a magic-header can
-	be done via <function>snd_magic_kmalloc()</function> or
-	<function>snd_magic_kcalloc()</function>.
-
-          <informalexample>
-            <programlisting>
-<![CDATA[
-  mychip_t *chip;
-  chip = snd_magic_kmalloc(mychip_t, 0, GFP_KERNEL);
-  chip = snd_magic_kcalloc(mychip_t, 0, GFP_KERNEL);
-]]>
-            </programlisting>
-          </informalexample>
-
-        The difference of these two functions is whether the area is
-	zero-cleared (<function>kcalloc</function>) or not
-	(<function>kmalloc</function>).
-	</para>
-
-	<para>
-	The first argument of the allocator is the type of the
-	record.  The magic-constant has to be defined for this type
-	beforehand.  In this case, we'll need to define
-	<constant>mychip_t_magic</constant>, for example, as already
-	seen,
-
-          <informalexample>
-            <programlisting>
-<![CDATA[
-  #define mychip_t_magic        0xa15a4501
-]]>
-            </programlisting>
-          </informalexample>
-
-        The value is arbitrary but should be unique.
-        This is usually defined in
-        <filename>&lt;include/sndmagic.h&gt;</filename> or
-        <filename>&lt;include/amagic.h&gt;</filename> for alsa-driver tree,
-        but you may define it locally in the code at the early
-        development stage, since changing
-        <filename>sndmagic.h</filename> will lead to the recompilation
-        of the whole driver codes.
-        </para>
-
-	<para>
-	The second argument is the extra-data length.  It is usually
-        zero.  The third argument is the flags to be passed to kernel
-        memory allocator, <constant>GFP_XXX</constant>.  Normally,
-        <constant>GFP_KERNEL</constant> is passed.
-	</para>
-
-        <para>
-          For casting a pointer, use
-          <function>snd_magic_cast()</function> macro:
-
-          <informalexample>
-            <programlisting>
-<![CDATA[
-  mychip_t *chip = snd_magic_cast(mychip_t, source_pointer, action);
-]]>
-            </programlisting>
-          </informalexample>
-
-        where <parameter>source_pointer</parameter> is the pointer to
-        be casted (e.g. pcm-&gt;private_data), and
-        <parameter>action</parameter> is the action to do if the cast
-        fails (e.g. return <constant>-EINVAL</constant>). 
-        </para>
-
-	<para>
-	For releasing the magic-allocated data, you need to call
-        <function>snd_magic_kfree()</function> function instead of
-        <function>kfree()</function>.
-
-          <informalexample>
-            <programlisting>
-<![CDATA[
-  snd_magic_kfree(chip);
-]]>
-            </programlisting>
-          </informalexample>
-	</para>
-
-	<para>
-	If you call <function>kfree()</function> for the
-	magic-allocated value, it will lead to memory leaks.
-	When the ALSA drivers are compiled with
-	<constant>CONFIG_SND_DEBUG_MEMORY</constant> kernel config (or
-	configured with <option>--with-debug=full</option>), the
-	non-matching free will be checked and you'll see warning
-	messages.
-	</para>
-
-        <para>
-          If you are 100% sure that your code is bug-free, you can
-          compile the driver without
-          <constant>CONFIG_SND_DEBUG_MEMORY</constant> kernel config,
-          so that the magic-allocator and the magic-cast will be
-          replaced to the normal kmalloc and cast.
-        </para>
-      </section>
-    </section>
-
     <section id="card-management-registration">
       <title>Registration and Release</title>
       <para>
@@ -1257,7 +1104,7 @@
           if (chip->irq >= 0)
                   free_irq(chip->irq, (void *)chip);
           // release the data
-          snd_magic_kfree(chip);
+          kfree(chip);
           return 0;
   }
 
@@ -1283,7 +1130,7 @@
                   return -ENXIO;
           }
 
-          chip = snd_magic_kcalloc(mychip_t, 0, GFP_KERNEL);
+          chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
           if (chip == NULL)
                   return -ENOMEM;
 
@@ -1436,7 +1283,7 @@
       need to initialize this number as -1 before actual allocation,
       since irq 0 is valid. The port address and its resource pointer
       can be initialized as null by
-      <function>snd_magic_kcalloc()</function> automatically, so you
+      <function>kcalloc()</function> automatically, so you
       don't have to take care of resetting them. 
       </para>
 
@@ -1517,16 +1364,13 @@
   static irqreturn_t snd_mychip_interrupt(int irq, void *dev_id,
                                           struct pt_regs *regs)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t, dev_id, return);
+          mychip_t *chip = dev_id;
           ....
           return IRQ_HANDLED;
   }
 ]]>
           </programlisting>
         </informalexample>
-
-        Again the magic-cast is used here to get the correct pointer
-      from the second argument. 
       </para>
 
       <para>
@@ -1583,19 +1427,14 @@
         <informalexample>
           <programlisting>
 <![CDATA[
-  snd_magic_kfree(chip);
+  kfree(chip);
 ]]>
           </programlisting>
         </informalexample>
       </para>
 
       <para>
-        The chip instance is freed via
-      <function>snd_magic_kfree()</function>. Please use this function
-      for the object allocated by
-      <function>snd_magic_kmalloc()</function>. If you free it with
-      <function>kfree()</function>, it won't work properly and will
-      result in the memory leak. Also, again, remember that you cannot
+      Again, remember that you cannot
       set <parameter>__devexit</parameter> prefix for this destructor. 
       </para>
 
@@ -1857,9 +1696,6 @@
   #include <sound/pcm.h>
   ....
 
-  #define chip_t mychip_t
-  ....
-
   /* hardware definition */
   static snd_pcm_hardware_t snd_mychip_playback_hw = {
           .info = (SNDRV_PCM_INFO_MMAP |
@@ -2224,8 +2060,7 @@
 <![CDATA[
   static void mychip_pcm_free(snd_pcm_t *pcm)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t,
-                                    pcm->private_data, return);
+          mychip_t *chip = snd_pcm_chip(pcm);
           // free your own data
           kfree(chip->my_private_pcm_data);
           // do what you like else...
@@ -2653,8 +2488,11 @@
 	done in
 	<link linkend="pcm-interface-operators-open-callback"><citetitle>
 	the open callback</citetitle></link>.
-        Since it's a void pointer, you should use magic-kmalloc and
-	magic-cast for such an object. 
+	Don't mix this with <constant>pcm-&gt;private_data</constant>.
+	The <constant>pcm-&gt;private_data</constant> usually points the
+	chip instance assigned statically at the creation of PCM, while the 
+	<constant>runtime-&gt;private_data</constant> points a dynamic
+	data created at the PCM open callback.
 
           <informalexample>
             <programlisting>
@@ -2663,7 +2501,7 @@
   {
           my_pcm_data_t *data;
           ....
-          data = snd_magic_kmalloc(my_pcm_data_t, 0, GFP_KERNEL);
+          data = kmalloc(sizeof(*data), GFP_KERNEL);
           substream->runtime->private_data = data;
           ....
   }
@@ -2710,8 +2548,6 @@
         <informalexample>
           <programlisting>
 <![CDATA[
-  #define chip_t mychip_t
-
   int xxx() {
           mychip_t *chip = snd_pcm_substream_chip(substream);
           ....
@@ -2719,13 +2555,14 @@
 ]]>
           </programlisting>
         </informalexample>
-      </para>
 
-      <para>
-        It's expanded with a magic-cast, so the cast-error is
-      automatically checked. You should define <type>chip_t</type> at
-      the beginning of the code, since this will be referred in many
-      places of pcm and control interfaces. 
+	The macro reads <constant>substream-&gt;private_data</constant>,
+	which is a copy of <constant>pcm-&gt;private_data</constant>.
+	You can override the former if you need to assign different data
+	records per PCM substream.  For example, cmi8330 driver assigns
+	different private_data for playback and capture directions,
+	because it uses two different codecs (SB- and AD-compatible) for
+	different directions.
       </para>
 
       <section id="pcm-interface-operators-open-callback">
@@ -2803,7 +2640,7 @@
   static int snd_xxx_close(snd_pcm_substream_t *substream)
   {
           ....
-          snd_magic_kfree(substream->runtime->private_data);
+          kfree(substream->runtime->private_data);
           ....
   }
 ]]>
@@ -3176,7 +3013,7 @@
   static irqreturn_t snd_mychip_interrupt(int irq, void *dev_id,
                                           struct pt_regs *regs)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t, dev_id, return);
+          mychip_t *chip = dev_id;
           spin_lock(&chip->lock);
           ....
           if (pcm_irq_invoked(chip)) {
@@ -3220,7 +3057,7 @@
   static irqreturn_t snd_mychip_interrupt(int irq, void *dev_id,
                                           struct pt_regs *regs)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t, dev_id, return);
+          mychip_t *chip = dev_id;
           spin_lock(&chip->lock);
           ....
           if (pcm_irq_invoked(chip)) {
@@ -3988,8 +3825,7 @@
   static unsigned short snd_mychip_ac97_read(ac97_t *ac97,
                                              unsigned short reg)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t,
-                                   ac97->private_data, return 0);
+          mychip_t *chip = ac97->private_data;
           ....
           // read a register value here from the codec
           return the_register_value;
@@ -3998,8 +3834,7 @@
   static void snd_mychip_ac97_write(ac97_t *ac97,
                                    unsigned short reg, unsigned short val)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t,
-                                   ac97->private_data, return 0);
+          mychip_t *chip = ac97->private_data;
           ....
           // write the given register value to the codec
   }
@@ -4096,8 +3931,7 @@
   static unsigned short snd_mychip_ac97_read(ac97_t *ac97,
                                              unsigned short reg)
   {
-          mychip_t *chip = snd_magic_cast(mychip_t,
-                                   ac97->private_data, return 0);
+          mychip_t *chip = ac97->private_data;
           ....
           return the_register_value;
   }
@@ -4375,7 +4209,7 @@
           <programlisting>
 <![CDATA[
   mpu401_t *mpu;
-  mpu = snd_magic_cast(mpu401_t, rmidi->private_data, );
+  mpu = rmidi->private_data;
 ]]>
           </programlisting>
         </informalexample>
@@ -4546,16 +4380,15 @@
 
       <para>
         You can then pass any pointer value to the
-        <parameter>private_data</parameter>. Again, it should be a
-        magic-allocated record, so that the cast can be checked more
-        safely. If you assign a private data, you should define the
+        <parameter>private_data</parameter>.
+        If you assign a private data, you should define the
         destructor, too. The destructor function is set to
         <structfield>private_free</structfield> field.  
 
         <informalexample>
           <programlisting>
 <![CDATA[
-  mydata_t *p = snd_magic_kmalloc(mydata_t, 0, GFP_KERNEL);
+  mydata_t *p = kmalloc(sizeof(*p), GFP_KERNEL);
   hw->private_data = p;
   hw->private_free = mydata_free;
 ]]>
@@ -4569,9 +4402,8 @@
 <![CDATA[
   static void mydata_free(snd_hwdep_t *hw)
   {
-          mydata_t *p = snd_magic_cast(mydata_csp_t,
-                                       hw->private_data, return);
-          snd_magic_kfree(p);
+          mydata_t *p = hw->private_data;
+          kfree(p);
   }
 ]]>
           </programlisting>
@@ -5097,8 +4929,7 @@
   static void my_proc_read(snd_info_entry_t *entry,
                            snd_info_buffer_t *buffer)
   {
-          chip_t *cm = snd_magic_cast(mychip_t,
-                                  entry->private_data, return);
+          chip_t *chip = entry->private_data;
 
           snd_iprintf(buffer, "This is my chip!\n");
           snd_iprintf(buffer, "Port = %ld\n", chip->port);
@@ -5266,8 +5097,7 @@
   static int mychip_suspend(snd_card_t *card, unsigned int state)
   {
           // (1)
-          mychip_t *chip = snd_magic_cast(mychip_t, card->pm_private_data,
-                                          return -ENXIO);
+          mychip_t *chip = card->pm_private_data;
           // (2)
           snd_pcm_suspend_all(chip->pcm);
           // (3)
@@ -5309,8 +5139,7 @@
   static void mychip_resume(mychip_t *chip)
   {
           // (1)
-          mychip_t *chip = snd_magic_cast(mychip_t, card->pm_private_data,
-                                          return -ENXIO);
+          mychip_t *chip = card->pm_private_data;
           // (2)
           pci_enable_device(chip->pci);
           // (3)
@@ -5427,19 +5256,7 @@
       The module parameters must be declared with the standard
     <function>module_param()()</function>,
     <function>module_param_array()()</function> and
-    <function>MODULE_PARM_DESC()</function> macros. The ALSA provides
-    an additional macro, <function>MODULE_PARM_SYNTAX()</function>,
-    for describing its syntax. The strings will be written to
-    <filename>/lib/modules/XXX/modules.generic_string</filename>
-    file. 
-    </para>
-
-    <para>
-      For convenience, the typical string arguments given to
-    <function>MODULE_PARM_SYNTAX()</function> are defined in
-    <filename>&lt;sound/initval.h&gt;</filename>, such as
-    <constant>SNDRV_ID_DESC</constant> or
-    <constant>SNDRV_ENABLED</constant>.
+    <function>MODULE_PARM_DESC()</function> macros.
     </para>
 
     <para>
@@ -5453,13 +5270,10 @@
   static int boot_devs;
   module_param_array(index, int, boot_devs, 0444);
   MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-  MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
   module_param_array(id, charp, boot_devs, 0444);
   MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-  MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
   module_param_array(enable, bool, boot_devs, 0444);
   MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard.");
-  MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 ]]>
         </programlisting>
       </informalexample>
@@ -5478,9 +5292,8 @@
         <programlisting>
 <![CDATA[
   MODULE_DESCRIPTION("My Chip");
-  MODULE_CLASSES("{sound}");
   MODULE_LICENSE("GPL");
-  MODULE_DEVICES("{{Vendor,My Chip Name}}");
+  MODULE_SUPPORTED_DEVICE("{{Vendor,My Chip Name}}");
 ]]>
         </programlisting>
       </informalexample>
diff -Nru a/include/linux/slab.h b/include/linux/slab.h
--- a/include/linux/slab.h	2004-07-27 18:28:33 -07:00
+++ b/include/linux/slab.h	2004-07-27 18:28:33 -07:00
@@ -97,6 +97,7 @@
 	return __kmalloc(size, flags);
 }
 
+extern void *kcalloc(size_t, size_t, int);
 extern void kfree(const void *);
 extern unsigned int ksize(const void *);
 
diff -Nru a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h
--- a/include/sound/ac97_codec.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/ac97_codec.h	2004-07-27 18:28:33 -07:00
@@ -441,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 */
@@ -461,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;
@@ -483,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 */
diff -Nru a/include/sound/asound.h b/include/sound/asound.h
--- a/include/sound/asound.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/asound.h	2004-07-27 18:28:33 -07:00
@@ -276,6 +276,7 @@
 #define SNDRV_PCM_INFO_JOINT_DUPLEX	0x00200000	/* playback and capture stream are somewhat correlated */
 #define SNDRV_PCM_INFO_SYNC_START	0x00400000	/* pcm support some kind of sync go */
 #define SNDRV_PCM_INFO_NONATOMIC_OPS	0x00800000	/* non-atomic prepare callback */
+#define SNDRV_PCM_INFO_MMAP_IOMEM	0x01000000	/* mmap on IO memory */
 
 enum sndrv_pcm_state {
 	SNDRV_PCM_STATE_OPEN = 0,	/* stream is open */
diff -Nru a/include/sound/control.h b/include/sound/control.h
--- a/include/sound/control.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/control.h	2004-07-27 18:28:33 -07:00
@@ -35,8 +35,7 @@
 typedef enum sndrv_ctl_event_type snd_ctl_event_type_t;
 typedef struct sndrv_ctl_event snd_ctl_event_t;
 
-#define _snd_kcontrol_chip(kcontrol) ((kcontrol)->private_data)
-#define snd_kcontrol_chip(kcontrol) snd_magic_cast1(chip_t, _snd_kcontrol_chip(kcontrol), return -ENXIO)
+#define snd_kcontrol_chip(kcontrol) ((kcontrol)->private_data)
 
 typedef int (snd_kcontrol_info_t) (snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo);
 typedef int (snd_kcontrol_get_t) (snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
diff -Nru a/include/sound/core.h b/include/sound/core.h
--- a/include/sound/core.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/core.h	2004-07-27 18:28:33 -07:00
@@ -211,12 +211,14 @@
 				 void *private_data);
 #define snd_card_set_isa_pm_callback(card,suspend,resume,data) \
 	snd_card_set_dev_pm_callback(card, PM_ISA_DEV, suspend, resume, data)
+#ifdef CONFIG_PCI
 #ifndef SND_PCI_PM_CALLBACKS
 int snd_card_pci_suspend(struct pci_dev *dev, u32 state);
 int 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
 #else
 #define snd_power_lock(card)		do { (void)(card); } while (0)
 #define snd_power_unlock(card)		do { (void)(card); } while (0)
@@ -226,8 +228,10 @@
 #define snd_card_set_pm_callback(card,suspend,resume,data) -EINVAL
 #define snd_card_set_dev_pm_callback(card,suspend,resume,data) -EINVAL
 #define snd_card_set_isa_pm_callback(card,suspend,resume,data) -EINVAL
+#ifdef CONFIG_PCI
 #define SND_PCI_PM_CALLBACKS
 #endif
+#endif
 
 /* device.c */
 
@@ -279,10 +283,12 @@
 int snd_memory_info_init(void);
 int snd_memory_info_done(void);
 void *snd_hidden_kmalloc(size_t size, int flags);
+void *snd_hidden_kcalloc(size_t n, size_t size, int flags);
 void snd_hidden_kfree(const void *obj);
 void *snd_hidden_vmalloc(unsigned long size);
 void snd_hidden_vfree(void *obj);
 #define kmalloc(size, flags) snd_hidden_kmalloc(size, flags)
+#define kcalloc(n, size, flags) snd_hidden_kcalloc(n, size, flags)
 #define kfree(obj) snd_hidden_kfree(obj)
 #define vmalloc(size) snd_hidden_vmalloc(size)
 #define vfree(obj) snd_hidden_vfree(obj)
@@ -300,7 +306,6 @@
 #define kfree_nocheck(obj) kfree(obj)
 #define vfree_nocheck(obj) vfree(obj)
 #endif
-void *snd_kcalloc(size_t size, int flags);
 char *snd_kmalloc_strdup(const char *string, int flags);
 int copy_to_user_fromio(void __user *dst, unsigned long src, size_t count);
 int copy_from_user_toio(unsigned long dst, const void __user *src, size_t count);
diff -Nru a/include/sound/cs46xx.h b/include/sound/cs46xx.h
--- a/include/sound/cs46xx.h	2004-07-27 18:28:32 -07:00
+++ b/include/sound/cs46xx.h	2004-07-27 18:28:32 -07:00
@@ -24,6 +24,7 @@
  */
 
 #include "pcm.h"
+#include "pcm-indirect.h"
 #include "rawmidi.h"
 #include "ac97_codec.h"
 #include "cs46xx_dsp_spos.h"
@@ -1650,14 +1651,7 @@
   
 	unsigned int ctl;
 	unsigned int shift;	/* Shift count to trasform frames in bytes */
-	unsigned int sw_bufsize;
-	unsigned int sw_data;	/* Offset to next dst (or src) in sw ring buffer */
-	unsigned int sw_io;
-	int sw_ready;		/* Bytes ready to be transferred to/from hw */
-	unsigned int hw_data;	/* Offset to next dst (or src) in hw ring buffer */
-	unsigned int hw_io;	/* Ring buffer hw pointer */
-	int hw_ready;		/* Bytes ready for play (or captured) in hw ring buffer */
-	size_t appl_ptr;	/* Last seen appl_ptr */
+	snd_pcm_indirect_t pcm_rec;
 	snd_pcm_substream_t *substream;
 
 	pcm_channel_descriptor_t * pcm_channel;
@@ -1695,14 +1689,7 @@
 
 		unsigned int ctl;
 		unsigned int shift;	/* Shift count to trasform frames in bytes */
-		unsigned int sw_bufsize;
-		unsigned int sw_data;	/* Offset to next dst (or src) in sw ring buffer */
-		unsigned int sw_io;
-		int sw_ready;		/* Bytes ready to be transferred to/from hw */
-		unsigned int hw_data;	/* Offset to next dst (or src) in hw ring buffer */
-		unsigned int hw_io;	/* Ring buffer hw pointer */
-		int hw_ready;		/* Bytes ready for play (or captured) in hw ring buffer */
-		size_t appl_ptr;	/* Last seen appl_ptr */
+		snd_pcm_indirect_t pcm_rec;
 		snd_pcm_substream_t *substream;
 	} capt;
 
diff -Nru a/include/sound/driver.h b/include/sound/driver.h
--- a/include/sound/driver.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/driver.h	2004-07-27 18:28:33 -07:00
@@ -61,6 +61,4 @@
 #undef vfree
 #endif
 
-#include "sndmagic.h"
-
 #endif /* __SOUND_DRIVER_H */
diff -Nru a/include/sound/emu10k1.h b/include/sound/emu10k1.h
--- a/include/sound/emu10k1.h	2004-07-27 18:28:32 -07:00
+++ b/include/sound/emu10k1.h	2004-07-27 18:28:32 -07:00
@@ -30,6 +30,7 @@
 #include <sound/hwdep.h>
 #include <sound/ac97_codec.h>
 #include <sound/util_mem.h>
+#include <sound/pcm-indirect.h>
 #include <linux/interrupt.h>
 #include <asm/io.h>
 
@@ -887,10 +888,7 @@
 	unsigned char gpr_trigger;	/* GPR containing trigger (activate) information (host) */
 	unsigned char gpr_running;	/* GPR containing info if PCM is running (FX8010) */
 	unsigned char etram[32];	/* external TRAM address & data */
-	unsigned int sw_data, hw_data;
-	unsigned int sw_io, hw_io;
-	unsigned int sw_ready, hw_ready;
-	unsigned int appl_ptr;
+	snd_pcm_indirect_t pcm_rec;
 	unsigned int tram_pos;
 	unsigned int tram_shift;
 	snd_emu10k1_fx8010_irq_t *irq;
@@ -939,7 +937,8 @@
 	int APS: 1,				/* APS flag */
 	    no_ac97: 1,				/* no AC'97 */
 	    tos_link: 1,			/* tos link detected */
-	    rear_ac97: 1;			/* rear channels are on AC'97 */
+	    rear_ac97: 1,			/* rear channels are on AC'97 */
+	    spk71:1;				/* 7.1 configuration (Audigy 2 ZS) */
 	unsigned int audigy;			/* is Audigy? */
 	unsigned int revision;			/* chip revision */
 	unsigned int serial;			/* serial number */
@@ -972,7 +971,6 @@
 	snd_pcm_t *pcm;
 	snd_pcm_t *pcm_mic;
 	snd_pcm_t *pcm_efx;
-	snd_pcm_t *pcm_fx8010;
 
 	spinlock_t synth_lock;
 	void *synth;
@@ -1069,6 +1067,15 @@
 /* proc interface */
 int snd_emu10k1_proc_init(emu10k1_t * emu);
 
+/* fx8010 irq handler */
+int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu,
+					    snd_fx8010_irq_handler_t *handler,
+					    unsigned char gpr_running,
+					    void *private_data,
+					    snd_emu10k1_fx8010_irq_t **r_irq);
+int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu,
+					      snd_emu10k1_fx8010_irq_t *irq);
+
 #endif /* __KERNEL__ */
 
 /*
@@ -1162,6 +1169,8 @@
 #define FXBUS_PCM_RIGHT_FRONT	0x09
 #define FXBUS_MIDI_REVERB	0x0c
 #define FXBUS_MIDI_CHORUS	0x0d
+#define FXBUS_PCM_LEFT_SIDE	0x0e
+#define FXBUS_PCM_RIGHT_SIDE	0x0f
 #define FXBUS_PT_LEFT		0x14
 #define FXBUS_PT_RIGHT		0x15
 
@@ -1227,8 +1236,8 @@
 #define A_EXTOUT_AFRONT_R	0x09	/*              right */
 #define A_EXTOUT_ACENTER	0x0a	/* analog center */
 #define A_EXTOUT_ALFE		0x0b	/* analog LFE */
-/* 0x0c ?? */
-/* 0x0d ?? */
+#define A_EXTOUT_ASIDE_L	0x0c	/* analog side left  - Audigy 2 ZS */
+#define A_EXTOUT_ASIDE_R	0x0d	/*             right - Audigy 2 ZS */
 #define A_EXTOUT_AREAR_L	0x0e	/* analog rear left */
 #define A_EXTOUT_AREAR_R	0x0f	/*             right */
 #define A_EXTOUT_AC97_L		0x10	/* AC97 left (front) */
diff -Nru a/include/sound/es1688.h b/include/sound/es1688.h
--- a/include/sound/es1688.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/es1688.h	2004-07-27 18:28:33 -07:00
@@ -55,8 +55,6 @@
 
 typedef struct _snd_es1688 es1688_t;
 
-#define chip_t es1688_t
-
 /* I/O ports */
 
 #define ES1688P(codec, x) ((codec)->port + e_s_s_ESS1688##x)
diff -Nru a/include/sound/initval.h b/include/sound/initval.h
--- a/include/sound/initval.h	2004-07-27 18:28:32 -07:00
+++ b/include/sound/initval.h	2004-07-27 18:28:32 -07:00
@@ -21,20 +21,6 @@
  *
  */
 
-#ifndef MODULE_GENERIC_STRING
-#ifdef MODULE
-#define MODULE_GENERIC_STRING(name, string) \
-static const char __module_generic_string_##name [] \
-  __attribute__ ((unused, __section__(".modstring"))) = #name "=" string;
-#else
-#define MODULE_GENERIC_STRING(name, string)
-#endif
-#endif
-
-#define MODULE_CLASSES(val) MODULE_GENERIC_STRING(info_classes, val)
-#define MODULE_DEVICES(val) MODULE_GENERIC_STRING(info_devices, val)
-#define MODULE_PARM_SYNTAX(id, val) MODULE_GENERIC_STRING(info_parm_##id, val)
-
 #define SNDRV_AUTO_PORT		1
 #define SNDRV_AUTO_IRQ		0xffff
 #define SNDRV_AUTO_DMA		0xffff
@@ -63,25 +49,6 @@
 #define SNDRV_DEFAULT_DMA	{ [0 ... (SNDRV_CARDS-1)] = SNDRV_AUTO_DMA }
 #define SNDRV_DEFAULT_DMA_SIZE	{ [0 ... (SNDRV_CARDS-1)] = SNDRV_AUTO_DMA_SIZE }
 #define SNDRV_DEFAULT_PTR	SNDRV_DEFAULT_STR
-
-#define SNDRV_BOOLEAN_TRUE_DESC	"allows:{{0,Disabled},{1,Enabled}},default:1,dialog:check"
-#define SNDRV_BOOLEAN_FALSE_DESC "allows:{{0,Disabled},{1,Enabled}},default:0,dialog:check"
-
-#define SNDRV_ENABLED		"enable:(enable)"
-
-#define SNDRV_INDEX_DESC	SNDRV_ENABLED ",allows:{{0,7}},unique,skill:required,dialog:list"
-#define SNDRV_ID_DESC		SNDRV_ENABLED ",unique"
-#define SNDRV_ENABLE_DESC	SNDRV_BOOLEAN_FALSE_DESC
-#define SNDRV_ISAPNP_DESC	SNDRV_ENABLED "," SNDRV_BOOLEAN_TRUE_DESC
-#define SNDRV_DMA8_DESC		SNDRV_ENABLED ",allows:{{0,1},{3}},dialog:list"
-#define SNDRV_DMA16_DESC	SNDRV_ENABLED ",allows:{{5,7}},dialog:list"
-#define SNDRV_DMA_DESC		SNDRV_ENABLED ",allows:{{0,1},{3},{5,7}},dialog:list"
-#define SNDRV_IRQ_DESC		SNDRV_ENABLED ",allows:{{5},{7},{9},{10,12},{14,15}},dialog:list"
-#define SNDRV_DMA_SIZE_DESC	SNDRV_ENABLED ",allows:{{4,128}},default:64,skill:advanced"
-#define SNDRV_DMA8_SIZE_DESC	SNDRV_ENABLED ",allows:{{4, 64}},default:64,skill:advanced"
-#define SNDRV_DMA16_SIZE_DESC	SNDRV_ENABLED ",allows:{{4,128}},default:64,skill:advanced"
-#define SNDRV_PORT12_DESC	SNDRV_ENABLED ",allows:{{0,0x3fff}},base:16"
-#define SNDRV_PORT_DESC		SNDRV_ENABLED ",allows:{{0,0xffff}},base:16"
 
 #ifdef SNDRV_LEGACY_AUTO_PROBE
 static int snd_legacy_auto_probe(unsigned long *ports, int (*probe)(unsigned long port))
diff -Nru a/include/sound/pcm-indirect.h b/include/sound/pcm-indirect.h
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/include/sound/pcm-indirect.h	2004-07-27 18:28:33 -07:00
@@ -0,0 +1,173 @@
+/*
+ * Helper functions for indirect PCM data transfer
+ *
+ *  Copyright (c) by Takashi Iwai <tiwai@suse.de>
+ *                   Jaroslav Kysela <perex@suse.cz>
+ *
+ *   This program is free software; you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License as published by
+ *   the Free Software Foundation; either version 2 of the License, or
+ *   (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef __SOUND_PCM_INDIRECT_H
+#define __SOUND_PCM_INDIRECT_H
+
+#include <sound/pcm.h>
+
+typedef struct sndrv_pcm_indirect {
+	unsigned int hw_buffer_size;	/* Byte size of hardware buffer */
+	unsigned int hw_queue_size;	/* Max queue size of hw buffer (0 = buffer size) */
+	unsigned int hw_data;	/* Offset to next dst (or src) in hw ring buffer */
+	unsigned int hw_io;	/* Ring buffer hw pointer */
+	int hw_ready;		/* Bytes ready for play (or captured) in hw ring buffer */
+	unsigned int sw_buffer_size;	/* Byte size of software buffer */
+	unsigned int sw_data;	/* Offset to next dst (or src) in sw ring buffer */
+	unsigned int sw_io;	/* Current software pointer in bytes */
+	int sw_ready;		/* Bytes ready to be transferred to/from hw */
+	snd_pcm_uframes_t appl_ptr;	/* Last seen appl_ptr */
+} snd_pcm_indirect_t;
+
+typedef void (*snd_pcm_indirect_copy_t)(snd_pcm_substream_t *substream,
+					snd_pcm_indirect_t *rec, size_t bytes);
+
+/*
+ * helper function for playback ack callback
+ */
+static inline void
+snd_pcm_indirect_playback_transfer(snd_pcm_substream_t *substream,
+				   snd_pcm_indirect_t *rec,
+				   snd_pcm_indirect_copy_t copy)
+{
+	snd_pcm_runtime_t *runtime = substream->runtime;
+	snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
+	snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr;
+	int qsize;
+
+	if (diff) {
+		if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
+			diff += runtime->boundary;
+		rec->sw_ready += (int)frames_to_bytes(runtime, diff);
+		rec->appl_ptr = appl_ptr;
+	}
+	qsize = rec->hw_queue_size ? rec->hw_queue_size : rec->hw_buffer_size;
+	while (rec->hw_ready < qsize && rec->sw_ready > 0) {
+		unsigned int hw_to_end = rec->hw_buffer_size - rec->hw_data;
+		unsigned int sw_to_end = rec->sw_buffer_size - rec->sw_data;
+		unsigned int bytes = qsize - rec->hw_ready;
+		if (rec->sw_ready < (int)bytes)
+			bytes = rec->sw_ready;
+		if (hw_to_end < bytes)
+			bytes = hw_to_end;
+		if (sw_to_end < bytes)
+			bytes = sw_to_end;
+		if (! bytes)
+			break;
+		copy(substream, rec, bytes);
+		rec->hw_data += bytes;
+		if (rec->hw_data == rec->hw_buffer_size)
+			rec->hw_data = 0;
+		rec->sw_data += bytes;
+		if (rec->sw_data == rec->sw_buffer_size)
+			rec->sw_data = 0;
+		rec->hw_ready += bytes;
+		rec->sw_ready -= bytes;
+	}
+}
+
+/*
+ * helper function for playback pointer callback
+ * ptr = current byte pointer
+ */
+static inline snd_pcm_uframes_t
+snd_pcm_indirect_playback_pointer(snd_pcm_substream_t *substream,
+				  snd_pcm_indirect_t *rec, unsigned int ptr)
+{
+	int bytes = ptr - rec->hw_io;
+	if (bytes < 0)
+		bytes += rec->hw_buffer_size;
+	rec->hw_io = ptr;
+	rec->hw_ready -= bytes;
+	rec->sw_io += bytes;
+	if (rec->sw_io >= rec->sw_buffer_size)
+		rec->sw_io -= rec->sw_buffer_size;
+	if (substream->ops->ack)
+		substream->ops->ack(substream);
+	return bytes_to_frames(substream->runtime, rec->sw_io);
+}
+
+
+/*
+ * helper function for capture ack callback
+ */
+static inline void
+snd_pcm_indirect_capture_transfer(snd_pcm_substream_t *substream,
+				  snd_pcm_indirect_t *rec,
+				  snd_pcm_indirect_copy_t copy)
+{
+	snd_pcm_runtime_t *runtime = substream->runtime;
+	snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
+	snd_pcm_sframes_t diff = appl_ptr - rec->appl_ptr;
+
+	if (diff) {
+		if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
+			diff += runtime->boundary;
+		rec->sw_ready -= frames_to_bytes(runtime, diff);
+		rec->appl_ptr = appl_ptr;
+	}
+	while (rec->hw_ready > 0 && 
+	       rec->sw_ready < (int)rec->sw_buffer_size) {
+		size_t hw_to_end = rec->hw_buffer_size - rec->hw_data;
+		size_t sw_to_end = rec->sw_buffer_size - rec->sw_data;
+		size_t bytes = rec->sw_buffer_size - rec->sw_ready;
+		if (rec->hw_ready < (int)bytes)
+			bytes = rec->hw_ready;
+		if (hw_to_end < bytes)
+			bytes = hw_to_end;
+		if (sw_to_end < bytes)
+			bytes = sw_to_end;
+		if (! bytes)
+			break;
+		copy(substream, rec, bytes);
+		rec->hw_data += bytes;
+		if ((int)rec->hw_data == rec->hw_buffer_size)
+			rec->hw_data = 0;
+		rec->sw_data += bytes;
+		if (rec->sw_data == rec->sw_buffer_size)
+			rec->sw_data = 0;
+		rec->hw_ready -= bytes;
+		rec->sw_ready += bytes;
+	}
+}
+
+/*
+ * helper function for capture pointer callback,
+ * ptr = current byte pointer
+ */
+static inline snd_pcm_uframes_t
+snd_pcm_indirect_capture_pointer(snd_pcm_substream_t *substream,
+				 snd_pcm_indirect_t *rec, unsigned int ptr)
+{
+	int bytes = ptr - rec->hw_io;
+	if (bytes < 0)
+		bytes += rec->hw_buffer_size;
+	rec->hw_io = ptr;
+	rec->hw_ready += bytes;
+	rec->sw_io += bytes;
+	if (rec->sw_io >= rec->sw_buffer_size)
+		rec->sw_io -= rec->sw_buffer_size;
+	if (substream->ops->ack)
+		substream->ops->ack(substream);
+	return bytes_to_frames(substream->runtime, rec->sw_io);
+}
+
+#endif /* __SOUND_PCM_INDIRECT_H */
diff -Nru a/include/sound/pcm.h b/include/sound/pcm.h
--- a/include/sound/pcm.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/pcm.h	2004-07-27 18:28:33 -07:00
@@ -52,10 +52,8 @@
 typedef struct sndrv_mask snd_mask_t;
 typedef struct snd_sg_buf snd_pcm_sgbuf_t;
 
-#define _snd_pcm_substream_chip(substream) ((substream)->private_data)
-#define snd_pcm_substream_chip(substream) snd_magic_cast1(chip_t, _snd_pcm_substream_chip(substream), return -ENXIO)
-#define _snd_pcm_chip(pcm) ((pcm)->private_data)
-#define snd_pcm_chip(pcm) snd_magic_cast1(chip_t, _snd_pcm_chip(pcm), return -ENXIO)
+#define snd_pcm_substream_chip(substream) ((substream)->private_data)
+#define snd_pcm_chip(pcm) ((pcm)->private_data)
 
 typedef struct _snd_pcm_file snd_pcm_file_t;
 typedef struct _snd_pcm_runtime snd_pcm_runtime_t;
@@ -351,7 +349,8 @@
 	unsigned char *dma_area;	/* DMA area */
 	dma_addr_t dma_addr;		/* physical bus address (not accessible from main CPU) */
 	size_t dma_bytes;		/* size of DMA area */
-	void *dma_private;		/* private DMA data for the memory allocator */
+
+	struct snd_dma_buffer *dma_buffer_p;	/* allocated buffer */
 
 #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE)
 	/* -- OSS things -- */
@@ -851,7 +850,7 @@
 int snd_pcm_format_big_endian(snd_pcm_format_t format);
 int snd_pcm_format_width(snd_pcm_format_t format);			/* in bits */
 int snd_pcm_format_physical_width(snd_pcm_format_t format);		/* in bits */
-u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format);
+const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format);
 int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int frames);
 snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian);
 ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples);
@@ -892,6 +891,22 @@
 
 int snd_pcm_limit_hw_rates(snd_pcm_runtime_t *runtime);
 
+static inline void snd_pcm_set_runtime_buffer(snd_pcm_substream_t *substream,
+					      struct snd_dma_buffer *bufp)
+{
+	snd_pcm_runtime_t *runtime = substream->runtime;
+	if (bufp) {
+		runtime->dma_buffer_p = bufp;
+		runtime->dma_area = bufp->area;
+		runtime->dma_addr = bufp->addr;
+		runtime->dma_bytes = bufp->bytes;
+	} else {
+		runtime->dma_buffer_p = NULL;
+		runtime->dma_area = NULL;
+		runtime->dma_addr = 0;
+		runtime->dma_bytes = 0;
+	}
+}
 
 /*
  *  Timer interface
@@ -916,7 +931,7 @@
 int snd_pcm_lib_malloc_pages(snd_pcm_substream_t *substream, size_t size);
 int snd_pcm_lib_free_pages(snd_pcm_substream_t *substream);
 
-#define snd_pcm_substream_sgbuf(substream) ((substream)->runtime->dma_private)
+#define snd_pcm_substream_sgbuf(substream) ((substream)->runtime->dma_buffer_p->private_data)
 #define snd_pcm_sgbuf_pages(size) snd_sgbuf_aligned_pages(size)
 #define snd_pcm_sgbuf_get_addr(sgbuf,ofs) snd_sgbuf_get_addr(sgbuf,ofs)
 struct page *snd_pcm_sgbuf_ops_page(snd_pcm_substream_t *substream, unsigned long offset);
diff -Nru a/include/sound/seq_kernel.h b/include/sound/seq_kernel.h
--- a/include/sound/seq_kernel.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/seq_kernel.h	2004-07-27 18:28:33 -07:00
@@ -168,6 +168,9 @@
 int snd_seq_expand_var_event(const snd_seq_event_t *event, int count, char *buf, int in_kernel, int size_aligned);
 int snd_seq_dump_var_event(const snd_seq_event_t *event, snd_seq_dump_func_t func, void *private_data);
 
+/* interface for OSS emulation */
+int snd_seq_set_queue_tempo(int client, snd_seq_queue_tempo_t *tempo);
+
 /* port callback routines */
 void snd_port_init_callback(snd_seq_port_callback_t *p);
 snd_seq_port_callback_t *snd_port_alloc_callback(void);
diff -Nru a/include/sound/sndmagic.h b/include/sound/sndmagic.h
--- a/include/sound/sndmagic.h	2004-07-27 18:28:32 -07:00
+++ /dev/null	Wed Dec 31 16:00:00 196900
@@ -1,218 +0,0 @@
-#ifndef __SOUND_SNDMAGIC_H
-#define __SOUND_SNDMAGIC_H
-
-/*
- *  Magic allocation, deallocation, check
- *  Copyright (c) 2000 by Abramo Bagnara <abramo@alsa-project.org>
- *
- *
- *   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
- *
- */
-
-
-#ifdef CONFIG_SND_DEBUG_MEMORY
-
-void *_snd_magic_kcalloc(unsigned long magic, size_t size, int flags);
-void *_snd_magic_kmalloc(unsigned long magic, size_t size, int flags);
-
-/**
- * snd_magic_kmalloc - allocate a record with a magic-prefix
- * @type: the type to allocate a record (like xxx_t)
- * @extra: the extra size to allocate in bytes
- * @flags: the allocation condition (GFP_XXX)
- *
- * Allocates a record of the given type with the extra space and
- * returns its pointer.  The allocated record has a secret magic-key
- * to be checked via snd_magic_cast() for safe casts.
- *
- * The allocated pointer must be released via snd_magic_kfree().
- *
- * The "struct xxx" style cannot be used as the type argument
- * because the magic-key constant is generated from the type-name
- * string.
- */
-#define snd_magic_kmalloc(type, extra, flags) \
-	(type *) _snd_magic_kmalloc(type##_magic, sizeof(type) + extra, flags)
-/**
- * snd_magic_kcalloc - allocate a record with a magic-prefix and initialize
- * @type: the type to allocate a record (like xxx_t)
- * @extra: the extra size to allocate in bytes
- * @flags: the allocation condition (GFP_XXX)
- *
- * Works like snd_magic_kmalloc() but this clears the area with zero
- * automatically.
- */
-#define snd_magic_kcalloc(type, extra, flags) \
-	(type *) _snd_magic_kcalloc(type##_magic, sizeof(type) + extra, flags)
-
-/**
- * snd_magic_kfree - release the allocated area
- * @ptr: the pointer allocated via snd_magic_kmalloc() or snd_magic_kcalloc()
- *
- * Releases the memory area allocated via snd_magic_kmalloc() or
- * snd_magic_kcalloc() function.
- */
-void snd_magic_kfree(void *ptr);
-
-static inline unsigned long _snd_magic_value(void *obj)
-{
-	return obj == NULL ? (unsigned long)-1 : *(((unsigned long *)obj) - 1);
-}
-
-static inline int _snd_magic_bad(void *obj, unsigned long magic)
-{
-	return _snd_magic_value(obj) != magic;
-}
-
-#define snd_magic_cast1(t, expr, cmd) snd_magic_cast(t, expr, cmd)
-
-/**
- * snd_magic_cast - check and cast the magic-allocated pointer
- * @type: the type of record to cast
- * @ptr: the magic-allocated pointer
- * @action...: the action to do if failed
- *
- * This macro provides a safe cast for the given type, which was
- * allocated via snd_magic_kmalloc() or snd_magic_kcallc().
- * If the pointer is invalid, i.e. the cast-type doesn't match,
- * the action arguments are called with a debug message.
- */
-#define snd_magic_cast(type, ptr, action...) \
-	(type *) ({\
-	void *__ptr = ptr;\
-	unsigned long __magic = _snd_magic_value(__ptr);\
-	if (__magic != type##_magic) {\
-		snd_printk("bad MAGIC (0x%lx)\n", __magic);\
-		action;\
-	}\
-	__ptr;\
-})
-
-#define snd_device_t_magic			0xa15a00ff
-#define snd_pcm_t_magic				0xa15a0101
-#define snd_pcm_file_t_magic			0xa15a0102
-#define snd_pcm_substream_t_magic		0xa15a0103
-#define snd_pcm_proc_private_t_magic		0xa15a0104
-#define snd_pcm_oss_file_t_magic		0xa15a0105
-#define snd_mixer_oss_t_magic			0xa15a0106
-// #define snd_pcm_sgbuf_t_magic			0xa15a0107
-
-#define snd_info_private_data_t_magic		0xa15a0201
-#define snd_info_entry_t_magic			0xa15a0202
-#define snd_ctl_file_t_magic			0xa15a0301
-#define snd_kcontrol_t_magic			0xa15a0302
-#define snd_rawmidi_t_magic			0xa15a0401
-#define snd_rawmidi_file_t_magic		0xa15a0402
-#define snd_virmidi_t_magic			0xa15a0403
-#define snd_virmidi_dev_t_magic			0xa15a0404
-#define snd_timer_t_magic			0xa15a0501
-#define snd_timer_user_t_magic			0xa15a0502
-#define snd_hwdep_t_magic			0xa15a0601
-#define snd_seq_device_t_magic			0xa15a0701
-
-#define es18xx_t_magic				0xa15a1101
-#define trident_t_magic				0xa15a1201
-#define es1938_t_magic				0xa15a1301
-#define cs46xx_t_magic				0xa15a1401
-#define cs46xx_pcm_t_magic			0xa15a1402
-#define ensoniq_t_magic				0xa15a1501
-#define sonicvibes_t_magic			0xa15a1601
-#define mpu401_t_magic				0xa15a1701
-#define fm801_t_magic				0xa15a1801
-#define ac97_t_magic				0xa15a1901
-#define ac97_bus_t_magic			0xa15a1902
-#define ak4531_t_magic				0xa15a1a01
-#define snd_uart16550_t_magic			0xa15a1b01
-#define emu10k1_t_magic				0xa15a1c01
-#define emu10k1_pcm_t_magic			0xa15a1c02
-#define emu10k1_midi_t_magic			0xa15a1c03
-#define snd_gus_card_t_magic			0xa15a1d01
-#define gus_pcm_private_t_magic			0xa15a1d02
-#define gus_proc_private_t_magic		0xa15a1d03
-#define tea6330t_t_magic			0xa15a1e01
-#define ad1848_t_magic				0xa15a1f01
-#define cs4231_t_magic				0xa15a2001
-#define es1688_t_magic				0xa15a2101
-#define opti93x_t_magic				0xa15a2201
-#define emu8000_t_magic				0xa15a2301
-#define emu8000_proc_private_t_magic		0xa15a2302
-#define snd_emux_t_magic			0xa15a2303
-#define snd_emux_port_t_magic			0xa15a2304
-#define sb_t_magic				0xa15a2401
-#define snd_sb_csp_t_magic			0xa15a2402
-#define snd_card_dummy_t_magic			0xa15a2501
-#define snd_card_dummy_pcm_t_magic		0xa15a2502
-#define opl3_t_magic				0xa15a2601
-#define opl4_t_magic				0xa15a2602
-#define snd_seq_dummy_port_t_magic		0xa15a2701
-#define ice1712_t_magic				0xa15a2801
-#define ad1816a_t_magic				0xa15a2901
-#define intel8x0_t_magic			0xa15a2a01
-#define es1968_t_magic				0xa15a2b01
-#define esschan_t_magic				0xa15a2b02
-#define via82xx_t_magic				0xa15a2c01
-#define pdplus_t_magic				0xa15a2d01
-#define cmipci_t_magic				0xa15a2e01
-#define ymfpci_t_magic				0xa15a2f01
-#define ymfpci_pcm_t_magic			0xa15a2f02
-#define cs4281_t_magic				0xa15a3001
-#define snd_i2c_bus_t_magic			0xa15a3101
-#define snd_i2c_device_t_magic			0xa15a3102
-#define cs8427_t_magic				0xa15a3111
-#define m3_t_magic				0xa15a3201
-#define m3_dma_t_magic				0xa15a3202
-#define nm256_t_magic				0xa15a3301
-#define nm256_dma_t_magic			0xa15a3302
-#define sam9407_t_magic				0xa15a3401
-#define pmac_t_magic				0xa15a3501
-#define ali_t_magic				0xa15a3601
-#define mtpav_t_magic				0xa15a3701
-#define mtpav_port_t_magic			0xa15a3702
-#define korg1212_t_magic			0xa15a3800
-#define opl3sa2_t_magic				0xa15a3900
-#define serialmidi_t_magic			0xa15a3a00
-#define sa11xx_uda1341_t_magic			0xa15a3b00
-#define uda1341_t_magic                         0xa15a3c00
-#define l3_client_t_magic                       0xa15a3d00
-#define snd_usb_audio_t_magic			0xa15a3e01
-#define usb_mixer_elem_info_t_magic		0xa15a3e02
-#define snd_usb_stream_t_magic			0xa15a3e03
-#define snd_usb_midi_t_magic			0xa15a3f01
-#define snd_usb_midi_out_endpoint_t_magic	0xa15a3f02
-#define snd_usb_midi_in_endpoint_t_magic	0xa15a3f03
-#define ak4117_t_magic				0xa15a4000
-#define psic_t_magic				0xa15a4100
-#define vx_core_t_magic				0xa15a4110
-#define vx_pipe_t_magic				0xa15a4112
-#define azf3328_t_magic				0xa15a4200
-#define snd_card_harmony_t_magic		0xa15a4300
-#define bt87x_t_magic				0xa15a4400
-#define pdacf_t_magic				0xa15a4500
-#define vortex_t_magic				0xa15a4601
-#define atiixp_t_magic				0xa15a4701
-#define amd7930_t_magic				0xa15a4801
-
-#else
-
-#define snd_magic_kcalloc(type, extra, flags) (type *) snd_kcalloc(sizeof(type) + extra, flags)
-#define snd_magic_kmalloc(type, extra, flags) (type *) kmalloc(sizeof(type) + extra, flags)
-#define snd_magic_cast(type, ptr, retval) (type *) ptr
-#define snd_magic_cast1(type, ptr, retval) snd_magic_cast(type, ptr, retval)
-#define snd_magic_kfree kfree
-
-#endif
-
-#endif /* __SOUND_SNDMAGIC_H */
diff -Nru a/include/sound/timer.h b/include/sound/timer.h
--- a/include/sound/timer.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/timer.h	2004-07-27 18:28:33 -07:00
@@ -40,8 +40,7 @@
 typedef struct sndrv_timer_read snd_timer_read_t;
 typedef struct sndrv_timer_tread snd_timer_tread_t;
 
-#define _snd_timer_chip(timer) ((timer)->private_data)
-#define snd_timer_chip(timer) snd_magic_cast1(chip_t, _snd_timer_chip(timer), return -ENXIO)
+#define snd_timer_chip(timer) ((timer)->private_data)
 
 #define SNDRV_TIMER_DEVICES	16
 
diff -Nru a/include/sound/version.h b/include/sound/version.h
--- a/include/sound/version.h	2004-07-27 18:28:33 -07:00
+++ b/include/sound/version.h	2004-07-27 18:28:33 -07:00
@@ -1,3 +1,3 @@
 /* include/version.h.  Generated by configure.  */
-#define CONFIG_SND_VERSION "1.0.4"
-#define CONFIG_SND_DATE " (Mon May 17 14:31:44 2004 UTC)"
+#define CONFIG_SND_VERSION "1.0.5"
+#define CONFIG_SND_DATE " (Sun May 30 10:49:40 2004 UTC)"
diff -Nru a/include/sound/vx_core.h b/include/sound/vx_core.h
--- a/include/sound/vx_core.h	2004-07-27 18:28:32 -07:00
+++ b/include/sound/vx_core.h	2004-07-27 18:28:32 -07:00
@@ -182,6 +182,7 @@
 	/* clock and audio sources */
 	unsigned int audio_source;	/* current audio input source */
 	unsigned int audio_source_target;
+	unsigned int clock_mode;	/* clock mode (VX_CLOCK_MODE_XXX) */
 	unsigned int clock_source;	/* current clock source (INTERNAL_QUARTZ or UER_SYNC) */
 	unsigned int freq;		/* current frequency */
 	unsigned int freq_detected;	/* detected frequency from digital in */
@@ -362,6 +363,13 @@
 enum {
 	INTERNAL_QUARTZ,
 	UER_SYNC
+};
+
+/* clock mode */
+enum {
+	VX_CLOCK_MODE_AUTO,	/* depending on the current audio source */
+	VX_CLOCK_MODE_INTERNAL,	/* fixed to internal quartz */
+	VX_CLOCK_MODE_EXTERNAL	/* fixed to UER sync */
 };
 
 /* SPDIF/UER type */
diff -Nru a/mm/slab.c b/mm/slab.c
--- a/mm/slab.c	2004-07-27 18:28:33 -07:00
+++ b/mm/slab.c	2004-07-27 18:28:33 -07:00
@@ -2434,6 +2434,27 @@
 EXPORT_SYMBOL(kmem_cache_free);
 
 /**
+ * kcalloc - allocate memory for an array. The memory is set to zero.
+ * @n: number of elements.
+ * @size: element size.
+ * @flags: the type of memory to allocate.
+ */
+void *kcalloc(size_t n, size_t size, int flags)
+{
+	void *ret = NULL;
+
+	if (n != 0 && size > INT_MAX / n)
+		return ret;
+
+	ret = kmalloc(n * size, flags);
+	if (ret)
+		memset(ret, 0, n * size);
+	return ret;
+}
+
+EXPORT_SYMBOL(kcalloc);
+
+/**
  * kfree - free previously allocated memory
  * @objp: pointer returned by kmalloc.
  *
diff -Nru a/sound/arm/sa11xx-uda1341.c b/sound/arm/sa11xx-uda1341.c
--- a/sound/arm/sa11xx-uda1341.c	2004-07-27 18:28:32 -07:00
+++ b/sound/arm/sa11xx-uda1341.c	2004-07-27 18:28:32 -07:00
@@ -21,7 +21,7 @@
  *                              merged HAL layer (patches from Brian)
  */
 
-/* $Id: sa11xx-uda1341.c,v 1.15 2004/05/03 17:36:50 tiwai Exp $ */
+/* $Id: sa11xx-uda1341.c,v 1.17 2004/07/01 08:33:41 tiwai Exp $ */
 
 /***************************************************************************************************
 *
@@ -108,16 +108,13 @@
 MODULE_AUTHOR("Tomas Kasparek <tomas.kasparek@seznam.cz>");
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("SA1100/SA1111 + UDA1341TS driver for ALSA");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{UDA1341,iPAQ H3600 UDA1341TS}}");
+MODULE_SUPPORTED_DEVICE("{{UDA1341,iPAQ H3600 UDA1341TS}}");
 
 static char *id = NULL;	/* ID for this card */
 
 module_param(id, charp, 0444);
 MODULE_PARM_DESC(id, "ID string for SA1100/SA1111 + UDA1341TS soundcard.");
 
-#define chip_t sa11xx_uda1341_t
-
 typedef struct audio_stream {
 	char *id;		/* identification string */
 	int stream_id;		/* numeric identification */	
@@ -869,7 +866,7 @@
 
 static int snd_sa11xx_uda1341_suspend(snd_card_t *card, unsigned int state)
 {
-	sa11xx_uda1341_t *chip = snd_magic_cast(sa11x_uda1341_t, card->pm_private_data, return -EINVAL);
+	sa11xx_uda1341_t *chip = card->pm_private_data;
 
 	snd_pcm_suspend_all(chip->pcm);
 #ifdef HH_VERSION	
@@ -886,7 +883,7 @@
 
 static int snd_sa11xx_uda1341_resume(snd_card_t *card, unsigned int state)
 {
-	sa11xx_uda1341_t *chip = snd_magic_cast(sa11x_uda1341_t, card->pm_private_data, return -EINVAL);
+	sa11xx_uda1341_t *chip = card->pm_private_data;
 
 	sa11xx_uda1341_audio_init(chip);
 	l3_command(chip->uda1341, CMD_RESUME, NULL);
@@ -903,7 +900,7 @@
 
 void snd_sa11xx_uda1341_free(snd_card_t *card)
 {
-	sa11xx_uda1341_t *chip = snd_magic_cast(sa11xx_uda1341_t, card->private_data, return);
+	sa11xx_uda1341_t *chip = card->private_data;
 
 	audio_dma_free(&chip->s[SNDRV_PCM_STREAM_PLAYBACK]);
 	audio_dma_free(&chip->s[SNDRV_PCM_STREAM_CAPTURE]);
@@ -925,7 +922,7 @@
 	if (card == NULL)
 		return -ENOMEM;
 
-	sa11xx_uda1341 = snd_magic_kcalloc(sa11xx_uda1341_t, 0, GFP_KERNEL);
+	sa11xx_uda1341 = kcalloc(1, sizeof(*sa11xx_uda1341), GFP_KERNEL);
 	if (sa11xx_uda1341 == NULL)
 		return -ENOMEM;	
 	spin_lock_init(&chip->s[0].dma_lock);
diff -Nru a/sound/core/control.c b/sound/core/control.c
--- a/sound/core/control.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/control.c	2004-07-27 18:28:32 -07:00
@@ -62,7 +62,7 @@
 		err = -EFAULT;
 		goto __error2;
 	}
-	ctl = snd_magic_kcalloc(snd_ctl_file_t, 0, GFP_KERNEL);
+	ctl = kcalloc(1, sizeof(*ctl), GFP_KERNEL);
 	if (ctl == NULL) {
 		err = -ENOMEM;
 		goto __error;
@@ -108,7 +108,7 @@
 	snd_kcontrol_t *control;
 	unsigned int idx;
 
-	ctl = snd_magic_cast(snd_ctl_file_t, file->private_data, return -ENXIO);
+	ctl = file->private_data;
 	fasync_helper(-1, file, 0, &ctl->fasync);
 	file->private_data = NULL;
 	card = ctl->card;
@@ -124,7 +124,7 @@
 	}
 	up_write(&card->controls_rwsem);
 	snd_ctl_empty_read_queue(ctl);
-	snd_magic_kfree(ctl);
+	kfree(ctl);
 	module_put(card->module);
 	snd_card_file_remove(card, file);
 	return 0;
@@ -155,7 +155,7 @@
 				goto _found;
 			}
 		}
-		ev = snd_kcalloc(sizeof(*ev), GFP_ATOMIC);
+		ev = kcalloc(1, sizeof(*ev), GFP_ATOMIC);
 		if (ev) {
 			ev->id = *id;
 			ev->mask = mask;
@@ -188,9 +188,7 @@
 	
 	snd_runtime_check(control != NULL, return NULL);
 	snd_runtime_check(control->count > 0, return NULL);
-	kctl = (snd_kcontrol_t *)snd_magic_kcalloc(snd_kcontrol_t,
-						   sizeof(snd_kcontrol_volatile_t) * control->count,
-						   GFP_KERNEL);
+	kctl = kcalloc(1, sizeof(*kctl) + sizeof(snd_kcontrol_volatile_t) * control->count, GFP_KERNEL);
 	if (kctl == NULL)
 		return NULL;
 	*kctl = *control;
@@ -249,7 +247,7 @@
 	if (kcontrol) {
 		if (kcontrol->private_free)
 			kcontrol->private_free(kcontrol);
-		snd_magic_kfree(kcontrol);
+		kfree(kcontrol);
 	}
 }
 
@@ -927,7 +925,7 @@
 	if (!(info.access & SNDRV_CTL_ELEM_ACCESS_DINDIRECT))
 		for (idx = 0; idx < 4 && info.dimen.d[idx]; idx++)
 			dimen_size += sizeof(unsigned short);
-	ue = snd_kcalloc(sizeof(struct user_element) + dimen_size + private_size + extra_size, GFP_KERNEL);
+	ue = kcalloc(1, sizeof(struct user_element) + dimen_size + private_size + extra_size, GFP_KERNEL);
 	if (ue == NULL)
 		return -ENOMEM;
 	ue->type = info.type;
@@ -1033,7 +1031,7 @@
 	int __user *ip = argp;
 	int err;
 
-	ctl = snd_magic_cast(snd_ctl_file_t, file->private_data, return -ENXIO);
+	ctl = file->private_data;
 	card = ctl->card;
 	snd_assert(card != NULL, return -ENXIO);
 	switch (cmd) {
@@ -1102,7 +1100,7 @@
 	int err = 0;
 	ssize_t result = 0;
 
-	ctl = snd_magic_cast(snd_ctl_file_t, file->private_data, return -ENXIO);
+	ctl = file->private_data;
 	snd_assert(ctl != NULL && ctl->card != NULL, return -ENXIO);
 	if (!ctl->subscribed)
 		return -EBADFD;
@@ -1155,7 +1153,7 @@
 	unsigned int mask;
 	snd_ctl_file_t *ctl;
 
-	ctl = snd_magic_cast(snd_ctl_file_t, file->private_data, return 0);
+	ctl = file->private_data;
 	if (!ctl->subscribed)
 		return 0;
 	poll_wait(file, &ctl->change_sleep, wait);
@@ -1175,8 +1173,7 @@
 {
 	snd_kctl_ioctl_t *pn;
 
-	pn = (snd_kctl_ioctl_t *)
-		snd_kcalloc(sizeof(snd_kctl_ioctl_t), GFP_KERNEL);
+	pn = kcalloc(1, sizeof(snd_kctl_ioctl_t), GFP_KERNEL);
 	if (pn == NULL)
 		return -ENOMEM;
 	pn->fioctl = fcn;
@@ -1214,7 +1211,7 @@
 {
 	snd_ctl_file_t *ctl;
 	int err;
-	ctl = snd_magic_cast(snd_ctl_file_t, file->private_data, return -ENXIO);
+	ctl = file->private_data;
 	err = fasync_helper(fd, file, on, &ctl->fasync);
 	if (err < 0)
 		return err;
diff -Nru a/sound/core/device.c b/sound/core/device.c
--- a/sound/core/device.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/device.c	2004-07-27 18:28:33 -07:00
@@ -47,7 +47,7 @@
 	snd_device_t *dev;
 
 	snd_assert(card != NULL && device_data != NULL && ops != NULL, return -ENXIO);
-	dev = (snd_device_t *) snd_magic_kcalloc(snd_device_t, 0, GFP_KERNEL);
+	dev = kcalloc(1, sizeof(*dev), GFP_KERNEL);
 	if (dev == NULL)
 		return -ENOMEM;
 	dev->card = card;
@@ -94,7 +94,7 @@
 					snd_printk(KERN_ERR "device free failure\n");
 			}
 		}
-		snd_magic_kfree(dev);
+		kfree(dev);
 		return 0;
 	}
 	snd_printd("device free %p (from %p), not found\n", device_data, __builtin_return_address(0));
diff -Nru a/sound/core/hwdep.c b/sound/core/hwdep.c
--- a/sound/core/hwdep.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/hwdep.c	2004-07-27 18:28:32 -07:00
@@ -49,7 +49,7 @@
 
 static loff_t snd_hwdep_llseek(struct file * file, loff_t offset, int orig)
 {
-	snd_hwdep_t *hw = snd_magic_cast(snd_hwdep_t, file->private_data, return -ENXIO);
+	snd_hwdep_t *hw = file->private_data;
 	if (hw->ops.llseek)
 		return hw->ops.llseek(hw, file, offset, orig);
 	return -ENXIO;
@@ -57,7 +57,7 @@
 
 static ssize_t snd_hwdep_read(struct file * file, char __user *buf, size_t count, loff_t *offset)
 {
-	snd_hwdep_t *hw = snd_magic_cast(snd_hwdep_t, file->private_data, return -ENXIO);
+	snd_hwdep_t *hw = file->private_data;
 	if (hw->ops.read)
 		return hw->ops.read(hw, buf, count, offset);
 	return -ENXIO;	
@@ -65,7 +65,7 @@
 
 static ssize_t snd_hwdep_write(struct file * file, const char __user *buf, size_t count, loff_t *offset)
 {
-	snd_hwdep_t *hw = snd_magic_cast(snd_hwdep_t, file->private_data, return -ENXIO);
+	snd_hwdep_t *hw = file->private_data;
 	if (hw->ops.write)
 		return hw->ops.write(hw, buf, count, offset);
 	return -ENXIO;	
@@ -157,7 +157,7 @@
 static int snd_hwdep_release(struct inode *inode, struct file * file)
 {
 	int err = -ENXIO;
-	snd_hwdep_t *hw = snd_magic_cast(snd_hwdep_t, file->private_data, return -ENXIO);
+	snd_hwdep_t *hw = file->private_data;
 	down(&hw->open_mutex);
 	if (hw->ops.release) {
 		err = hw->ops.release(hw, file);
@@ -173,7 +173,7 @@
 
 static unsigned int snd_hwdep_poll(struct file * file, poll_table * wait)
 {
-	snd_hwdep_t *hw = snd_magic_cast(snd_hwdep_t, file->private_data, return 0);
+	snd_hwdep_t *hw = file->private_data;
 	if (hw->ops.poll)
 		return hw->ops.poll(hw, file, wait);
 	return 0;
@@ -234,7 +234,7 @@
 static int snd_hwdep_ioctl(struct inode *inode, struct file * file,
 			   unsigned int cmd, unsigned long arg)
 {
-	snd_hwdep_t *hw = snd_magic_cast(snd_hwdep_t, file->private_data, return -ENXIO);
+	snd_hwdep_t *hw = file->private_data;
 	void __user *argp = (void __user *)arg;
 	switch (cmd) {
 	case SNDRV_HWDEP_IOCTL_PVERSION:
@@ -253,7 +253,7 @@
 
 static int snd_hwdep_mmap(struct file * file, struct vm_area_struct * vma)
 {
-	snd_hwdep_t *hw = snd_magic_cast(snd_hwdep_t, file->private_data, return -ENXIO);
+	snd_hwdep_t *hw = file->private_data;
 	if (hw->ops.mmap)
 		return hw->ops.mmap(hw, file, vma);
 	return -ENXIO;
@@ -352,7 +352,7 @@
 	snd_assert(rhwdep != NULL, return -EINVAL);
 	*rhwdep = NULL;
 	snd_assert(card != NULL, return -ENXIO);
-	hwdep = snd_magic_kcalloc(snd_hwdep_t, 0, GFP_KERNEL);
+	hwdep = kcalloc(1, sizeof(*hwdep), GFP_KERNEL);
 	if (hwdep == NULL)
 		return -ENOMEM;
 	hwdep->card = card;
@@ -378,19 +378,19 @@
 	snd_assert(hwdep != NULL, return -ENXIO);
 	if (hwdep->private_free)
 		hwdep->private_free(hwdep);
-	snd_magic_kfree(hwdep);
+	kfree(hwdep);
 	return 0;
 }
 
 static int snd_hwdep_dev_free(snd_device_t *device)
 {
-	snd_hwdep_t *hwdep = snd_magic_cast(snd_hwdep_t, device->device_data, return -ENXIO);
+	snd_hwdep_t *hwdep = device->device_data;
 	return snd_hwdep_free(hwdep);
 }
 
 static int snd_hwdep_dev_register(snd_device_t *device)
 {
-	snd_hwdep_t *hwdep = snd_magic_cast(snd_hwdep_t, device->device_data, return -ENXIO);
+	snd_hwdep_t *hwdep = device->device_data;
 	int idx, err;
 	char name[32];
 
@@ -433,7 +433,7 @@
 
 static int snd_hwdep_dev_unregister(snd_device_t *device)
 {
-	snd_hwdep_t *hwdep = snd_magic_cast(snd_hwdep_t, device->device_data, return -ENXIO);
+	snd_hwdep_t *hwdep = device->device_data;
 	int idx;
 
 	snd_assert(hwdep != NULL, return -ENXIO);
diff -Nru a/sound/core/info.c b/sound/core/info.c
--- a/sound/core/info.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/info.c	2004-07-27 18:28:33 -07:00
@@ -139,7 +139,7 @@
 	struct snd_info_entry *entry;
 	loff_t ret;
 
-	data = snd_magic_cast(snd_info_private_data_t, file->private_data, return -ENXIO);
+	data = file->private_data;
 	entry = data->entry;
 	lock_kernel();
 	switch (entry->content) {
@@ -182,7 +182,7 @@
 	snd_info_buffer_t *buf;
 	size_t size = 0;
 
-	data = snd_magic_cast(snd_info_private_data_t, file->private_data, return -ENXIO);
+	data = file->private_data;
 	snd_assert(data != NULL, return -ENXIO);
 	entry = data->entry;
 	switch (entry->content) {
@@ -216,7 +216,7 @@
 	snd_info_buffer_t *buf;
 	size_t size = 0;
 
-	data = snd_magic_cast(snd_info_private_data_t, file->private_data, return -ENXIO);
+	data = file->private_data;
 	snd_assert(data != NULL, return -ENXIO);
 	entry = data->entry;
 	switch (entry->content) {
@@ -284,7 +284,7 @@
 		    	goto __error;
 		}
 	}
-	data = snd_magic_kcalloc(snd_info_private_data_t, 0, GFP_KERNEL);
+	data = kcalloc(1, sizeof(*data), GFP_KERNEL);
 	if (data == NULL) {
 		err = -ENOMEM;
 		goto __error;
@@ -293,10 +293,9 @@
 	switch (entry->content) {
 	case SNDRV_INFO_CONTENT_TEXT:
 		if (mode == O_RDONLY || mode == O_RDWR) {
-			buffer = (snd_info_buffer_t *)
-				 	snd_kcalloc(sizeof(snd_info_buffer_t), GFP_KERNEL);
+			buffer = kcalloc(1, sizeof(*buffer), GFP_KERNEL);
 			if (buffer == NULL) {
-				snd_magic_kfree(data);
+				kfree(data);
 				err = -ENOMEM;
 				goto __error;
 			}
@@ -305,7 +304,7 @@
 			buffer->buffer = vmalloc(buffer->len);
 			if (buffer->buffer == NULL) {
 				kfree(buffer);
-				snd_magic_kfree(data);
+				kfree(data);
 				err = -ENOMEM;
 				goto __error;
 			}
@@ -313,14 +312,13 @@
 			data->rbuffer = buffer;
 		}
 		if (mode == O_WRONLY || mode == O_RDWR) {
-			buffer = (snd_info_buffer_t *)
-					snd_kcalloc(sizeof(snd_info_buffer_t), GFP_KERNEL);
+			buffer = kcalloc(1, sizeof(*buffer), GFP_KERNEL);
 			if (buffer == NULL) {
 				if (mode == O_RDWR) {
 					vfree(data->rbuffer->buffer);
 					kfree(data->rbuffer);
 				}
-				snd_magic_kfree(data);
+				kfree(data);
 				err = -ENOMEM;
 				goto __error;
 			}
@@ -333,7 +331,7 @@
 					kfree(data->rbuffer);
 				}
 				kfree(buffer);
-				snd_magic_kfree(data);
+				kfree(data);
 				err = -ENOMEM;
 				goto __error;
 			}
@@ -345,7 +343,7 @@
 		if (entry->c.ops->open) {
 			if ((err = entry->c.ops->open(entry, mode,
 						      &data->file_private_data)) < 0) {
-				snd_magic_kfree(data);
+				kfree(data);
 				goto __error;
 			}
 		}
@@ -377,7 +375,7 @@
 	int mode;
 
 	mode = file->f_flags & O_ACCMODE;
-	data = snd_magic_cast(snd_info_private_data_t, file->private_data, return -ENXIO);
+	data = file->private_data;
 	entry = data->entry;
 	switch (entry->content) {
 	case SNDRV_INFO_CONTENT_TEXT:
@@ -405,7 +403,7 @@
 		break;
 	}
 	module_put(entry->module);
-	snd_magic_kfree(data);
+	kfree(data);
 	return 0;
 }
 
@@ -415,7 +413,7 @@
 	struct snd_info_entry *entry;
 	unsigned int mask;
 
-	data = snd_magic_cast(snd_info_private_data_t, file->private_data, return -ENXIO);
+	data = file->private_data;
 	if (data == NULL)
 		return 0;
 	entry = data->entry;
@@ -441,7 +439,7 @@
 	snd_info_private_data_t *data;
 	struct snd_info_entry *entry;
 
-	data = snd_magic_cast(snd_info_private_data_t, file->private_data, return -ENXIO);
+	data = file->private_data;
 	if (data == NULL)
 		return 0;
 	entry = data->entry;
@@ -462,7 +460,7 @@
 	snd_info_private_data_t *data;
 	struct snd_info_entry *entry;
 
-	data = snd_magic_cast(snd_info_private_data_t, file->private_data, return -ENXIO);
+	data = file->private_data;
 	if (data == NULL)
 		return 0;
 	entry = data->entry;
@@ -732,12 +730,12 @@
 static snd_info_entry_t *snd_info_create_entry(const char *name)
 {
 	snd_info_entry_t *entry;
-	entry = snd_magic_kcalloc(snd_info_entry_t, 0, GFP_KERNEL);
+	entry = kcalloc(1, sizeof(*entry), GFP_KERNEL);
 	if (entry == NULL)
 		return NULL;
 	entry->name = snd_kmalloc_strdup(name, GFP_KERNEL);
 	if (entry->name == NULL) {
-		snd_magic_kfree(entry);
+		kfree(entry);
 		return NULL;
 	}
 	entry->mode = S_IFREG | S_IRUGO;
@@ -793,27 +791,27 @@
 
 static int snd_info_dev_free_entry(snd_device_t *device)
 {
-	snd_info_entry_t *entry = snd_magic_cast(snd_info_entry_t, device->device_data, return -ENXIO);
+	snd_info_entry_t *entry = device->device_data;
 	snd_info_free_entry(entry);
 	return 0;
 }
 
 static int snd_info_dev_register_entry(snd_device_t *device)
 {
-	snd_info_entry_t *entry = snd_magic_cast(snd_info_entry_t, device->device_data, return -ENXIO);
+	snd_info_entry_t *entry = device->device_data;
 	return snd_info_register(entry);
 }
 
 static int snd_info_dev_disconnect_entry(snd_device_t *device)
 {
-	snd_info_entry_t *entry = snd_magic_cast(snd_info_entry_t, device->device_data, return -ENXIO);
+	snd_info_entry_t *entry = device->device_data;
 	entry->disconnected = 1;
 	return 0;
 }
 
 static int snd_info_dev_unregister_entry(snd_device_t *device)
 {
-	snd_info_entry_t *entry = snd_magic_cast(snd_info_entry_t, device->device_data, return -ENXIO);
+	snd_info_entry_t *entry = device->device_data;
 	return snd_info_unregister(entry);
 }
 
@@ -875,7 +873,7 @@
 		kfree((char *)entry->name);
 	if (entry->private_free)
 		entry->private_free(entry);
-	snd_magic_kfree(entry);
+	kfree(entry);
 }
 
 /**
diff -Nru a/sound/core/init.c b/sound/core/init.c
--- a/sound/core/init.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/init.c	2004-07-27 18:28:32 -07:00
@@ -73,7 +73,7 @@
 
 	if (extra_size < 0)
 		extra_size = 0;
-	card = (snd_card_t *) snd_kcalloc(sizeof(snd_card_t) + extra_size, GFP_KERNEL);
+	card = kcalloc(1, sizeof(*card) + extra_size, GFP_KERNEL);
 	if (card == NULL)
 		return NULL;
 	if (xid) {
diff -Nru a/sound/core/ioctl32/ioctl32.c b/sound/core/ioctl32/ioctl32.c
--- a/sound/core/ioctl32/ioctl32.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/ioctl32/ioctl32.c	2004-07-27 18:28:32 -07:00
@@ -257,7 +257,7 @@
 	snd_ctl_elem_info_t info;
 	int err;
 
-	ctl = snd_magic_cast(snd_ctl_file_t, file->private_data, return -ENXIO);
+	ctl = file->private_data;
 
 	down_read(&ctl->card->controls_rwsem);
 	kctl = snd_ctl_find_id(ctl->card, id);
diff -Nru a/sound/core/ioctl32/pcm32.c b/sound/core/ioctl32/pcm32.c
--- a/sound/core/ioctl32/pcm32.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/ioctl32/pcm32.c	2004-07-27 18:28:33 -07:00
@@ -235,7 +235,7 @@
 
 	/* FIXME: need to check whether fop->ioctl is sane */
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL && substream->runtime, return -ENXIO);
 
@@ -350,8 +350,8 @@
 	mm_segment_t oldseg;
 	int err;
 
-	data32 = snd_kcalloc(sizeof(*data32), GFP_KERNEL);
-	data = snd_kcalloc(sizeof(*data), GFP_KERNEL);
+	data32 = kcalloc(1, sizeof(*data32), GFP_KERNEL);
+	data = kcalloc(1, sizeof(*data), GFP_KERNEL);
 	if (data32 == NULL || data == NULL) {
 		err = -ENOMEM;
 		goto __end;
diff -Nru a/sound/core/memalloc.c b/sound/core/memalloc.c
--- a/sound/core/memalloc.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/memalloc.c	2004-07-27 18:28:33 -07:00
@@ -45,10 +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};
 static int boot_devs;
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable cards to allocate buffers.");
+#endif
 
 /*
  */
diff -Nru a/sound/core/memory.c b/sound/core/memory.c
--- a/sound/core/memory.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/memory.c	2004-07-27 18:28:32 -07:00
@@ -118,6 +118,17 @@
 	return _snd_kmalloc(size, flags);
 }
 
+void *snd_hidden_kcalloc(size_t n, size_t size, int flags)
+{
+	void *ret = NULL;
+	if (n != 0 && size > INT_MAX / n)
+		return ret;
+	ret = _snd_kmalloc(n * size, flags);
+	if (ret)
+		memset(ret, 0, n * size);
+	return ret;
+}
+
 void snd_hidden_kfree(const void *obj)
 {
 	unsigned long flags;
@@ -140,46 +151,6 @@
 	snd_wrapper_kfree(obj);
 }
 
-void *_snd_magic_kcalloc(unsigned long magic, size_t size, int flags)
-{
-	unsigned long *ptr;
-	ptr = _snd_kmalloc(size + sizeof(unsigned long), flags);
-	if (ptr) {
-		*ptr++ = magic;
-		memset(ptr, 0, size);
-	}
-	return ptr;
-}
-
-void *_snd_magic_kmalloc(unsigned long magic, size_t size, int flags)
-{
-	unsigned long *ptr;
-	ptr = _snd_kmalloc(size + sizeof(unsigned long), flags);
-	if (ptr)
-		*ptr++ = magic;
-	return ptr;
-}
-
-void snd_magic_kfree(void *_ptr)
-{
-	unsigned long *ptr = _ptr;
-	if (ptr == NULL) {
-		snd_printk(KERN_WARNING "null snd_magic_kfree (called from %p)\n", __builtin_return_address(0));
-		return;
-	}
-	*--ptr = 0;
-	{
-		struct snd_alloc_track *t;
-		t = snd_alloc_track_entry(ptr);
-		if (t->magic != KMALLOC_MAGIC) {
-			snd_printk(KERN_ERR "bad snd_magic_kfree (called from %p)\n", __builtin_return_address(0));
-			return;
-		}
-	}
-	snd_hidden_kfree(ptr);
-	return;
-}
-
 void *snd_hidden_vmalloc(unsigned long size)
 {
 	void *ptr;
@@ -254,25 +225,6 @@
 #define _snd_kmalloc kmalloc
 
 #endif /* CONFIG_SND_DEBUG_MEMORY */
-
-/**
- * snd_kcalloc - memory allocation and zero-clear
- * @size: the size to allocate in bytes
- * @flags: allocation conditions, GFP_XXX
- *
- * Allocates a memory chunk via kmalloc() and initializes it to zero.
- *
- * Returns the pointer, or NULL if no enoguh memory.
- */
-void *snd_kcalloc(size_t size, int flags)
-{
-	void *ptr;
-	
-	ptr = _snd_kmalloc(size, flags);
-	if (ptr)
-		memset(ptr, 0, size);
-	return ptr;
-}
 
 /**
  * snd_kmalloc_strdup - copy the string
diff -Nru a/sound/core/oss/mixer_oss.c b/sound/core/oss/mixer_oss.c
--- a/sound/core/oss/mixer_oss.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/oss/mixer_oss.c	2004-07-27 18:28:33 -07:00
@@ -51,7 +51,7 @@
 	err = snd_card_file_add(card, file);
 	if (err < 0)
 		return err;
-	fmixer = (snd_mixer_oss_file_t *)snd_kcalloc(sizeof(*fmixer), GFP_KERNEL);
+	fmixer = kcalloc(1, sizeof(*fmixer), GFP_KERNEL);
 	if (fmixer == NULL) {
 		snd_card_file_remove(card, file);
 		return -ENOMEM;
@@ -508,8 +508,8 @@
 		up_read(&card->controls_rwsem);
 		return;
 	}
-	uinfo = snd_kcalloc(sizeof(*uinfo), GFP_KERNEL);
-	uctl = snd_kcalloc(sizeof(*uctl), GFP_KERNEL);
+	uinfo = kcalloc(1, sizeof(*uinfo), GFP_KERNEL);
+	uctl = kcalloc(1, sizeof(*uctl), GFP_KERNEL);
 	if (uinfo == NULL || uctl == NULL)
 		goto __unalloc;
 	snd_runtime_check(!kctl->info(kctl, uinfo), goto __unalloc);
@@ -544,8 +544,8 @@
 		up_read(&card->controls_rwsem);
 		return;
 	}
-	uinfo = snd_kcalloc(sizeof(*uinfo), GFP_KERNEL);
-	uctl = snd_kcalloc(sizeof(*uctl), GFP_KERNEL);
+	uinfo = kcalloc(1, sizeof(*uinfo), GFP_KERNEL);
+	uctl = kcalloc(1, sizeof(*uctl), GFP_KERNEL);
 	if (uinfo == NULL || uctl == NULL)
 		goto __unalloc;
 	snd_runtime_check(!kctl->info(kctl, uinfo), goto __unalloc);
@@ -607,8 +607,8 @@
 	down_read(&card->controls_rwsem);
 	if ((kctl = snd_ctl_find_numid(card, numid)) == NULL)
 		return;
-	uinfo = snd_kcalloc(sizeof(*uinfo), GFP_KERNEL);
-	uctl = snd_kcalloc(sizeof(*uctl), GFP_KERNEL);
+	uinfo = kcalloc(1, sizeof(*uinfo), GFP_KERNEL);
+	uctl = kcalloc(1, sizeof(*uctl), GFP_KERNEL);
 	if (uinfo == NULL || uctl == NULL)
 		goto __unalloc;
 	snd_runtime_check(!kctl->info(kctl, uinfo), goto __unalloc);
@@ -646,8 +646,8 @@
 		up_read(&fmixer->card->controls_rwsem);
 		return;
 	}
-	uinfo = snd_kcalloc(sizeof(*uinfo), GFP_KERNEL);
-	uctl = snd_kcalloc(sizeof(*uctl), GFP_KERNEL);
+	uinfo = kcalloc(1, sizeof(*uinfo), GFP_KERNEL);
+	uctl = kcalloc(1, sizeof(*uctl), GFP_KERNEL);
 	if (uinfo == NULL || uctl == NULL)
 		goto __unalloc;
 	snd_runtime_check(!kctl->info(kctl, uinfo), goto __unalloc);
@@ -767,8 +767,8 @@
 	snd_ctl_elem_value_t *uctl;
 	int err, idx;
 	
-	uinfo = snd_kcalloc(sizeof(*uinfo), GFP_KERNEL);
-	uctl = snd_kcalloc(sizeof(*uctl), GFP_KERNEL);
+	uinfo = kcalloc(1, sizeof(*uinfo), GFP_KERNEL);
+	uctl = kcalloc(1, sizeof(*uctl), GFP_KERNEL);
 	if (uinfo == NULL || uctl == NULL) {
 		err = -ENOMEM;
 		goto __unlock;
@@ -814,8 +814,8 @@
 	int err;
 	unsigned int idx;
 
-	uinfo = snd_kcalloc(sizeof(*uinfo), GFP_KERNEL);
-	uctl = snd_kcalloc(sizeof(*uctl), GFP_KERNEL);
+	uinfo = kcalloc(1, sizeof(*uinfo), GFP_KERNEL);
+	uctl = kcalloc(1, sizeof(*uctl), GFP_KERNEL);
 	if (uinfo == NULL || uctl == NULL) {
 		err = -ENOMEM;
 		goto __unlock;
@@ -1060,7 +1060,7 @@
 static void snd_mixer_oss_proc_read(snd_info_entry_t *entry,
 				    snd_info_buffer_t * buffer)
 {
-	snd_mixer_oss_t *mixer = snd_magic_cast(snd_mixer_oss_t, entry->private_data, return);
+	snd_mixer_oss_t *mixer = entry->private_data;
 	int i;
 
 	down(&mixer->reg_mutex);
@@ -1084,7 +1084,7 @@
 static void snd_mixer_oss_proc_write(snd_info_entry_t *entry,
 				     snd_info_buffer_t * buffer)
 {
-	snd_mixer_oss_t *mixer = snd_magic_cast(snd_mixer_oss_t, entry->private_data, return);
+	snd_mixer_oss_t *mixer = entry->private_data;
 	char line[128], str[32], idxstr[16], *cptr;
 	int ch, idx;
 	struct snd_mixer_oss_assign_table *tbl;
@@ -1224,7 +1224,7 @@
 
 static int snd_mixer_oss_free1(void *private)
 {
-	snd_mixer_oss_t *mixer = snd_magic_cast(snd_mixer_oss_t, private, return -ENXIO);
+	snd_mixer_oss_t *mixer = private;
 	snd_card_t * card;
 	int idx;
  
@@ -1237,7 +1237,7 @@
 		if (chn->private_free)
 			chn->private_free(chn);
 	}
-	snd_magic_kfree(mixer);
+	kfree(mixer);
 	return 0;
 }
 
@@ -1249,7 +1249,7 @@
 		char name[128];
 		int idx, err;
 
-		mixer = snd_magic_kcalloc(snd_mixer_oss_t, sizeof(snd_mixer_oss_t), GFP_KERNEL);
+		mixer = kcalloc(2, sizeof(*mixer), GFP_KERNEL);
 		if (mixer == NULL)
 			return -ENOMEM;
 		init_MUTEX(&mixer->reg_mutex);
@@ -1259,7 +1259,7 @@
 						   &snd_mixer_oss_reg,
 						   name)) < 0) {
 			snd_printk("unable to register OSS mixer device %i:%i\n", card->number, 0);
-			snd_magic_kfree(mixer);
+			kfree(mixer);
 			return err;
 		}
 		mixer->oss_dev_alloc = 1;
diff -Nru a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
--- a/sound/core/oss/pcm_oss.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/oss/pcm_oss.c	2004-07-27 18:28:33 -07:00
@@ -53,13 +53,10 @@
 MODULE_LICENSE("GPL");
 module_param_array(dsp_map, int, boot_devs, 0444);
 MODULE_PARM_DESC(dsp_map, "PCM device number assigned to 1st OSS device.");
-MODULE_PARM_SYNTAX(dsp_map, "default:0,skill:advanced");
 module_param_array(adsp_map, int, boot_devs, 0444);
 MODULE_PARM_DESC(adsp_map, "PCM device number assigned to 2nd OSS device.");
-MODULE_PARM_SYNTAX(adsp_map, "default:1,skill:advanced");
 module_param(nonblock_open, bool, 0644);
 MODULE_PARM_DESC(nonblock_open, "Don't block opening busy PCM devices.");
-MODULE_PARM_SYNTAX(nonblock_open, "default:0,skill:advanced");
 MODULE_ALIAS_SNDRV_MINOR(SNDRV_MINOR_OSS_PCM);
 MODULE_ALIAS_SNDRV_MINOR(SNDRV_MINOR_OSS_PCM1);
 
@@ -1177,10 +1174,11 @@
 	snd_pcm_substream_t *substream;
 	int err;
 	int direct;
-	snd_pcm_hw_params_t params;
+	snd_pcm_hw_params_t *params;
 	unsigned int formats = 0;
 	snd_mask_t format_mask;
 	int fmt;
+
 	if ((err = snd_pcm_oss_get_active_substream(pcm_oss_file, &substream)) < 0)
 		return err;
 	if (atomic_read(&substream->runtime->mmap_count)) {
@@ -1194,10 +1192,14 @@
 		       AFMT_S16_LE | AFMT_S16_BE |
 		       AFMT_S8 | AFMT_U16_LE |
 		       AFMT_U16_BE;
-	_snd_pcm_hw_params_any(&params);
-	err = snd_pcm_hw_refine(substream, &params);
+	params = kmalloc(sizeof(*params), GFP_KERNEL);
+	if (!params)
+		return -ENOMEM;
+	_snd_pcm_hw_params_any(params);
+	err = snd_pcm_hw_refine(substream, params);
+	format_mask = *hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); 
+	kfree(params);
 	snd_assert(err >= 0, return err);
-	format_mask = *hw_param_mask(&params, SNDRV_PCM_HW_PARAM_FORMAT); 
 	for (fmt = 0; fmt < 32; ++fmt) {
 		if (snd_mask_test(&format_mask, fmt)) {
 			int f = snd_pcm_oss_format_to(fmt);
@@ -1693,7 +1695,7 @@
 		snd_pcm_oss_release_substream(substream);
 		snd_pcm_release_substream(substream);
 	}
-	snd_magic_kfree(pcm_oss_file);
+	kfree(pcm_oss_file);
 	return 0;
 }
 
@@ -1712,7 +1714,7 @@
 	snd_assert(rpcm_oss_file != NULL, return -EINVAL);
 	*rpcm_oss_file = NULL;
 
-	pcm_oss_file = snd_magic_kcalloc(snd_pcm_oss_file_t, 0, GFP_KERNEL);
+	pcm_oss_file = kcalloc(1, sizeof(*pcm_oss_file), GFP_KERNEL);
 	if (pcm_oss_file == NULL)
 		return -ENOMEM;
 
@@ -1892,7 +1894,7 @@
 	snd_pcm_substream_t *substream;
 	snd_pcm_oss_file_t *pcm_oss_file;
 
-	pcm_oss_file = snd_magic_cast(snd_pcm_oss_file_t, file->private_data, return -ENXIO);
+	pcm_oss_file = file->private_data;
 	substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK];
 	if (substream == NULL)
 		substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_CAPTURE];
@@ -1915,7 +1917,7 @@
 	int __user *p = (int __user *)arg;
 	int res;
 
-	pcm_oss_file = snd_magic_cast(snd_pcm_oss_file_t, file->private_data, return -ENXIO);
+	pcm_oss_file = file->private_data;
 	if (cmd == OSS_GETVERSION)
 		return put_user(SNDRV_OSS_VERSION, p);
 	if (cmd == OSS_ALSAEMULVER)
@@ -2073,7 +2075,7 @@
 	snd_pcm_oss_file_t *pcm_oss_file;
 	snd_pcm_substream_t *substream;
 
-	pcm_oss_file = snd_magic_cast(snd_pcm_oss_file_t, file->private_data, return -ENXIO);
+	pcm_oss_file = file->private_data;
 	substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_CAPTURE];
 	if (substream == NULL)
 		return -ENXIO;
@@ -2094,7 +2096,7 @@
 	snd_pcm_substream_t *substream;
 	long result;
 
-	pcm_oss_file = snd_magic_cast(snd_pcm_oss_file_t, file->private_data, return -ENXIO);
+	pcm_oss_file = file->private_data;
 	substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK];
 	if (substream == NULL)
 		return -ENXIO;
@@ -2131,7 +2133,7 @@
 	unsigned int mask;
 	snd_pcm_substream_t *psubstream = NULL, *csubstream = NULL;
 	
-	pcm_oss_file = snd_magic_cast(snd_pcm_oss_file_t, file->private_data, return 0);
+	pcm_oss_file = file->private_data;
 
 	psubstream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK];
 	csubstream = pcm_oss_file->streams[SNDRV_PCM_STREAM_CAPTURE];
@@ -2178,7 +2180,7 @@
 #ifdef OSS_DEBUG
 	printk("pcm_oss: mmap begin\n");
 #endif
-	pcm_oss_file = snd_magic_cast(snd_pcm_oss_file_t, file->private_data, return -ENXIO);
+	pcm_oss_file = file->private_data;
 	switch ((area->vm_flags & (VM_READ | VM_WRITE))) {
 	case VM_READ | VM_WRITE:
 		substream = pcm_oss_file->streams[SNDRV_PCM_STREAM_PLAYBACK];
@@ -2280,7 +2282,7 @@
 				   snd_info_buffer_t * buffer)
 {
 	snd_pcm_str_t *pstr = (snd_pcm_str_t *)entry->private_data;
-	char line[512], str[32], task_name[32], *ptr;
+	char line[256], str[32], task_name[32], *ptr;
 	int idx1;
 	snd_pcm_oss_setup_t *setup, *setup1, template;
 
diff -Nru a/sound/core/oss/pcm_plugin.c b/sound/core/oss/pcm_plugin.c
--- a/sound/core/oss/pcm_plugin.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/oss/pcm_plugin.c	2004-07-27 18:28:32 -07:00
@@ -172,7 +172,7 @@
 	
 	snd_assert(plug != NULL, return -ENXIO);
 	snd_assert(src_format != NULL && dst_format != NULL, return -ENXIO);
-	plugin = (snd_pcm_plugin_t *)snd_kcalloc(sizeof(*plugin) + extra, GFP_KERNEL);
+	plugin = kcalloc(1, sizeof(*plugin) + extra, GFP_KERNEL);
 	if (plugin == NULL)
 		return -ENOMEM;
 	plugin->name = name;
@@ -189,7 +189,7 @@
 		channels = src_format->channels;
 	else
 		channels = dst_format->channels;
-	plugin->buf_channels = snd_kcalloc(channels * sizeof(*plugin->buf_channels), GFP_KERNEL);
+	plugin->buf_channels = kcalloc(channels, sizeof(*plugin->buf_channels), GFP_KERNEL);
 	if (plugin->buf_channels == NULL) {
 		snd_pcm_plugin_free(plugin);
 		return -ENOMEM;
@@ -468,7 +468,7 @@
 	if (srcformat.channels > dstformat.channels) {
 		int sv = srcformat.channels;
 		int dv = dstformat.channels;
-		route_ttable_entry_t *ttable = snd_kcalloc(dv*sv*sizeof(*ttable), GFP_KERNEL);
+		route_ttable_entry_t *ttable = kcalloc(dv * sv, sizeof(*ttable), GFP_KERNEL);
 		if (ttable == NULL)
 			return -ENOMEM;
 #if 1
@@ -531,7 +531,7 @@
 	if (srcformat.channels < dstformat.channels) {
 		int sv = srcformat.channels;
 		int dv = dstformat.channels;
-		route_ttable_entry_t *ttable = snd_kcalloc(dv * sv * sizeof(*ttable), GFP_KERNEL);
+		route_ttable_entry_t *ttable = kcalloc(dv * sv, sizeof(*ttable), GFP_KERNEL);
 		if (ttable == NULL)
 			return -ENOMEM;
 #if 0
@@ -846,41 +846,31 @@
 			 size_t samples, int format)
 {
 	/* FIXME: sub byte resolution and odd dst_offset */
-	char *dst;
+	unsigned char *dst;
 	unsigned int dst_step;
 	int width;
-	u_int64_t silence;
+	const unsigned char *silence;
 	if (!dst_area->addr)
 		return 0;
 	dst = dst_area->addr + (dst_area->first + dst_area->step * dst_offset) / 8;
 	width = snd_pcm_format_physical_width(format);
+	if (width <= 0)
+		return -EINVAL;
+	if (dst_area->step == (unsigned int) width && width >= 8)
+		return snd_pcm_format_set_silence(format, dst, samples);
 	silence = snd_pcm_format_silence_64(format);
-	if (dst_area->step == (unsigned int) width) {
-		size_t dwords = samples * width / 64;
-		u_int64_t *dst64 = (u_int64_t *)dst;
-
-		samples -= dwords * 64 / width;
-		while (dwords-- > 0)
-			*dst64++ = silence;
-		if (samples == 0)
-			return 0;
-		dst = (char *)dst64;
-	}
+	if (! silence)
+		return -EINVAL;
 	dst_step = dst_area->step / 8;
-	switch (width) {
-	case 4: {
-		u_int8_t s0 = silence & 0xf0;
-		u_int8_t s1 = silence & 0x0f;
+	if (width == 4) {
+		/* Ima ADPCM */
 		int dstbit = dst_area->first % 8;
 		int dstbit_step = dst_area->step % 8;
 		while (samples-- > 0) {
-			if (dstbit) {
+			if (dstbit)
 				*dst &= 0xf0;
-				*dst |= s1;
-			} else {
+			else
 				*dst &= 0x0f;
-				*dst |= s0;
-			}
 			dst += dst_step;
 			dstbit += dstbit_step;
 			if (dstbit == 8) {
@@ -888,41 +878,12 @@
 				dstbit = 0;
 			}
 		}
-		break;
-	}
-	case 8: {
-		u_int8_t sil = silence;
-		while (samples-- > 0) {
-			*dst = sil;
-			dst += dst_step;
-		}
-		break;
-	}
-	case 16: {
-		u_int16_t sil = silence;
-		while (samples-- > 0) {
-			*(u_int16_t*)dst = sil;
-			dst += dst_step;
-		}
-		break;
-	}
-	case 32: {
-		u_int32_t sil = silence;
-		while (samples-- > 0) {
-			*(u_int32_t*)dst = sil;
-			dst += dst_step;
-		}
-		break;
-	}
-	case 64: {
+	} else {
+		width /= 8;
 		while (samples-- > 0) {
-			*(u_int64_t*)dst = silence;
+			memcpy(dst, silence, width);
 			dst += dst_step;
 		}
-		break;
-	}
-	default:
-		snd_BUG();
 	}
 	return 0;
 }
@@ -942,18 +903,18 @@
 	if (!dst_area->addr)
 		return 0;
 	width = snd_pcm_format_physical_width(format);
+	if (width <= 0)
+		return -EINVAL;
 	if (src_area->step == (unsigned int) width &&
-	    dst_area->step == (unsigned int) width) {
+	    dst_area->step == (unsigned int) width && width >= 8) {
 		size_t bytes = samples * width / 8;
-		samples -= bytes * 8 / width;
 		memcpy(dst, src, bytes);
-		if (samples == 0)
-			return 0;
+		return 0;
 	}
 	src_step = src_area->step / 8;
 	dst_step = dst_area->step / 8;
-	switch (width) {
-	case 4: {
+	if (width == 4) {
+		/* Ima ADPCM */
 		int srcbit = src_area->first % 8;
 		int srcbit_step = src_area->step % 8;
 		int dstbit = dst_area->first % 8;
@@ -963,12 +924,11 @@
 			if (srcbit)
 				srcval = *src & 0x0f;
 			else
-				srcval = *src & 0xf0;
+				srcval = (*src & 0xf0) >> 4;
 			if (dstbit)
-				*dst &= 0xf0;
+				*dst = (*dst & 0xf0) | srcval;
 			else
-				*dst &= 0x0f;
-			*dst |= srcval;
+				*dst = (*dst & 0x0f) | (srcval << 4);
 			src += src_step;
 			srcbit += srcbit_step;
 			if (srcbit == 8) {
@@ -982,42 +942,13 @@
 				dstbit = 0;
 			}
 		}
-		break;
-	}
-	case 8: {
-		while (samples-- > 0) {
-			*dst = *src;
-			src += src_step;
-			dst += dst_step;
-		}
-		break;
-	}
-	case 16: {
-		while (samples-- > 0) {
-			*(u_int16_t*)dst = *(u_int16_t*)src;
-			src += src_step;
-			dst += dst_step;
-		}
-		break;
-	}
-	case 32: {
-		while (samples-- > 0) {
-			*(u_int32_t*)dst = *(u_int32_t*)src;
-			src += src_step;
-			dst += dst_step;
-		}
-		break;
-	}
-	case 64: {
+	} else {
+		width /= 8;
 		while (samples-- > 0) {
-			*(u_int64_t*)dst = *(u_int64_t*)src;
+			memcpy(dst, src, width);
 			src += src_step;
 			dst += dst_step;
 		}
-		break;
-	}
-	default:
-		snd_BUG();
 	}
 	return 0;
 }
diff -Nru a/sound/core/oss/pcm_plugin.h b/sound/core/oss/pcm_plugin.h
--- a/sound/core/oss/pcm_plugin.h	2004-07-27 18:28:33 -07:00
+++ b/sound/core/oss/pcm_plugin.h	2004-07-27 18:28:33 -07:00
@@ -35,7 +35,7 @@
 
 static inline bitset_t *bitset_alloc(int nbits)
 {
-	return snd_kcalloc(bitset_size(nbits) * sizeof(bitset_t), GFP_KERNEL);
+	return kcalloc(bitset_size(nbits), sizeof(bitset_t), GFP_KERNEL);
 }
 	
 static inline void bitset_set(bitset_t *bitmap, unsigned int pos)
diff -Nru a/sound/core/oss/route.c b/sound/core/oss/route.c
--- a/sound/core/oss/route.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/oss/route.c	2004-07-27 18:28:33 -07:00
@@ -458,7 +458,7 @@
 			dptr->func = route_to_channel;
 		if (nsrcs > 0) {
                         int srcidx;
-			dptr->srcs = snd_kcalloc(nsrcs * sizeof(*srcs), GFP_KERNEL);
+			dptr->srcs = kcalloc(nsrcs, sizeof(*srcs), GFP_KERNEL);
                         for(srcidx = 0; srcidx < nsrcs; srcidx++)
 				dptr->srcs[srcidx] = srcs[srcidx];
 		} else
diff -Nru a/sound/core/pcm.c b/sound/core/pcm.c
--- a/sound/core/pcm.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/pcm.c	2004-07-27 18:28:33 -07:00
@@ -585,7 +585,7 @@
 	}
 	prev = NULL;
 	for (idx = 0, prev = NULL; idx < substream_count; idx++) {
-		substream = snd_magic_kcalloc(snd_pcm_substream_t, 0, GFP_KERNEL);
+		substream = kcalloc(1, sizeof(*substream), GFP_KERNEL);
 		if (substream == NULL)
 			return -ENOMEM;
 		substream->pcm = pcm;
@@ -600,7 +600,7 @@
 			prev->next = substream;
 		err = snd_pcm_substream_proc_init(substream);
 		if (err < 0) {
-			snd_magic_kfree(substream);
+			kfree(substream);
 			return err;
 		}
 		substream->group = &substream->self_group;
@@ -645,7 +645,7 @@
 	snd_assert(rpcm != NULL, return -EINVAL);
 	*rpcm = NULL;
 	snd_assert(card != NULL, return -ENXIO);
-	pcm = snd_magic_kcalloc(snd_pcm_t, 0, GFP_KERNEL);
+	pcm = kcalloc(1, sizeof(*pcm), GFP_KERNEL);
 	if (pcm == NULL)
 		return -ENOMEM;
 	pcm->card = card;
@@ -681,7 +681,7 @@
 	while (substream) {
 		substream_next = substream->next;
 		snd_pcm_substream_proc_done(substream);
-		snd_magic_kfree(substream);
+		kfree(substream);
 		substream = substream_next;
 	}
 	snd_pcm_stream_proc_done(pstr);
@@ -702,13 +702,13 @@
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 	snd_pcm_free_stream(&pcm->streams[SNDRV_PCM_STREAM_PLAYBACK]);
 	snd_pcm_free_stream(&pcm->streams[SNDRV_PCM_STREAM_CAPTURE]);
-	snd_magic_kfree(pcm);
+	kfree(pcm);
 	return 0;
 }
 
 static int snd_pcm_dev_free(snd_device_t *device)
 {
-	snd_pcm_t *pcm = snd_magic_cast(snd_pcm_t, device->device_data, return -ENXIO);
+	snd_pcm_t *pcm = device->device_data;
 	return snd_pcm_free(pcm);
 }
 
@@ -783,7 +783,7 @@
 	if (substream == NULL)
 		return -EAGAIN;
 
-	runtime = snd_kcalloc(sizeof(snd_pcm_runtime_t), GFP_KERNEL);
+	runtime = kcalloc(1, sizeof(*runtime), GFP_KERNEL);
 	if (runtime == NULL)
 		return -ENOMEM;
 
@@ -843,7 +843,7 @@
 	snd_pcm_substream_t *substream;
 	struct list_head *list;
 	char str[16];
-	snd_pcm_t *pcm = snd_magic_cast(snd_pcm_t, device->device_data, return -ENXIO);
+	snd_pcm_t *pcm = device->device_data;
 
 	snd_assert(pcm != NULL && device != NULL, return -ENXIO);
 	down(&register_mutex);
@@ -888,7 +888,7 @@
 
 static int snd_pcm_dev_disconnect(snd_device_t *device)
 {
-	snd_pcm_t *pcm = snd_magic_cast(snd_pcm_t, device->device_data, return -ENXIO);
+	snd_pcm_t *pcm = device->device_data;
 	struct list_head *list;
 	snd_pcm_substream_t *substream;
 	int idx, cidx;
@@ -914,7 +914,7 @@
 	int idx, cidx, devtype;
 	snd_pcm_substream_t *substream;
 	struct list_head *list;
-	snd_pcm_t *pcm = snd_magic_cast(snd_pcm_t, device->device_data, return -ENXIO);
+	snd_pcm_t *pcm = device->device_data;
 
 	snd_assert(pcm != NULL, return -ENXIO);
 	down(&register_mutex);
diff -Nru a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
--- a/sound/core/pcm_lib.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/pcm_lib.c	2004-07-27 18:28:33 -07:00
@@ -894,7 +894,7 @@
 			old = constrs->rules;
 			constrs->rules_all += 10;
 		}
-		constrs->rules = snd_kcalloc(constrs->rules_all * sizeof(*c),
+		constrs->rules = kcalloc(constrs->rules_all, sizeof(*c),
 					     GFP_KERNEL);
 		if (!constrs->rules)
 			return -ENOMEM;
diff -Nru a/sound/core/pcm_memory.c b/sound/core/pcm_memory.c
--- a/sound/core/pcm_memory.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/pcm_memory.c	2004-07-27 18:28:33 -07:00
@@ -32,12 +32,10 @@
 static int preallocate_dma = 1;
 module_param(preallocate_dma, int, 0444);
 MODULE_PARM_DESC(preallocate_dma, "Preallocate DMA memory when the PCM devices are initialized.");
-MODULE_PARM_SYNTAX(preallocate_dma, SNDRV_BOOLEAN_TRUE_DESC);
 
 static int maximum_substreams = 4;
 module_param(maximum_substreams, int, 0444);
 MODULE_PARM_DESC(maximum_substreams, "Maximum substreams with preallocated DMA memory.");
-MODULE_PARM_SYNTAX(maximum_substreams, SNDRV_BOOLEAN_TRUE_DESC);
 
 const static size_t snd_minimum_buffer = 16384;
 
@@ -314,31 +312,35 @@
 int snd_pcm_lib_malloc_pages(snd_pcm_substream_t *substream, size_t size)
 {
 	snd_pcm_runtime_t *runtime;
-	struct snd_dma_buffer dmab;
+	struct snd_dma_buffer *dmab = NULL;
 
 	snd_assert(substream->dma_device.type != SNDRV_DMA_TYPE_UNKNOWN, return -EINVAL);
 	snd_assert(substream != NULL, return -EINVAL);
 	runtime = substream->runtime;
-	snd_assert(runtime != NULL, return -EINVAL);	
+	snd_assert(runtime != NULL, return -EINVAL);
 
-	if (runtime->dma_area != NULL) {
+	if (runtime->dma_buffer_p) {
 		/* perphaps, we might free the large DMA memory region
 		   to save some space here, but the actual solution
 		   costs us less time */
-		if (runtime->dma_bytes >= size)
+		if (runtime->dma_buffer_p->bytes >= size) {
+			runtime->dma_bytes = size;
 			return 0;	/* ok, do not change */
+		}
 		snd_pcm_lib_free_pages(substream);
 	}
 	if (substream->dma_buffer.area != NULL && substream->dma_buffer.bytes >= size) {
-		dmab = substream->dma_buffer; /* use the pre-allocated buffer */
+		dmab = &substream->dma_buffer; /* use the pre-allocated buffer */
 	} else {
-		memset(&dmab, 0, sizeof(dmab)); /* allocate a new buffer */
-		if (snd_dma_alloc_pages(&substream->dma_device, size, &dmab) < 0)
+		dmab = kcalloc(1, sizeof(*dmab), GFP_KERNEL);
+		if (! dmab)
+			return -ENOMEM;
+		if (snd_dma_alloc_pages(&substream->dma_device, size, dmab) < 0) {
+			kfree(dmab);
 			return -ENOMEM;
+		}
 	}
-	runtime->dma_area = dmab.area;
-	runtime->dma_addr = dmab.addr;
-	runtime->dma_private = dmab.private_data;
+	snd_pcm_set_runtime_buffer(substream, dmab);
 	runtime->dma_bytes = size;
 	return 1;			/* area was changed */
 }
@@ -360,34 +362,11 @@
 	snd_assert(runtime != NULL, return -EINVAL);
 	if (runtime->dma_area == NULL)
 		return 0;
-	if (runtime->dma_area != substream->dma_buffer.area) {
+	if (runtime->dma_buffer_p != &substream->dma_buffer) {
 		/* it's a newly allocated buffer.  release it now. */
-		struct snd_dma_buffer dmab;
-		memset(&dmab, 0, sizeof(dmab));
-		dmab.area = runtime->dma_area;
-		dmab.addr = runtime->dma_addr;
-		dmab.bytes = runtime->dma_bytes;
-		dmab.private_data = runtime->dma_private;
-		snd_dma_free_pages(&substream->dma_device, &dmab);
+		snd_dma_free_pages(&substream->dma_device, runtime->dma_buffer_p);
+		kfree(runtime->dma_buffer_p);
 	}
-	runtime->dma_area = NULL;
-	runtime->dma_addr = 0UL;
-	runtime->dma_bytes = 0;
-	runtime->dma_private = NULL;
+	snd_pcm_set_runtime_buffer(substream, NULL);
 	return 0;
 }
-
-#ifndef MODULE
-
-/* format is: snd-pcm=preallocate_dma,maximum_substreams */
-
-static int __init alsa_pcm_setup(char *str)
-{
-	(void)(get_option(&str,&preallocate_dma) == 2 &&
-	       get_option(&str,&maximum_substreams) == 2);
-	return 1;
-}
-
-__setup("snd-pcm=", alsa_pcm_setup);
-
-#endif /* ifndef MODULE */
diff -Nru a/sound/core/pcm_misc.c b/sound/core/pcm_misc.c
--- a/sound/core/pcm_misc.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/pcm_misc.c	2004-07-27 18:28:33 -07:00
@@ -23,12 +23,169 @@
 #include <linux/time.h>
 #include <sound/core.h>
 #include <sound/pcm.h>
-#define bswap_16 swab16
-#define bswap_32 swab32
-#define bswap_64 swab64
 #define SND_PCM_FORMAT_UNKNOWN (-1)
-#define snd_enum_to_int(v) (v)
-#define snd_int_to_enum(v) (v)
+
+struct pcm_format_data {
+	char width;	/* bit width */
+	char phys;	/* physical bit width */
+	char le;	/* 0 = big-endian, 1 = little-endian, -1 = others */
+	char signd;	/* 0 = unsigned, 1 = signed, -1 = others */
+	unsigned char silence[8];	/* silence data to fill */
+};
+
+static struct pcm_format_data pcm_formats[SNDRV_PCM_FORMAT_LAST+1] = {
+	[SNDRV_PCM_FORMAT_S8] = {
+		.width = 8, .phys = 8, .le = -1, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_U8] = {
+		.width = 8, .phys = 8, .le = -1, .signd = 0,
+		.silence = { 0x80 },
+	},
+	[SNDRV_PCM_FORMAT_S16_LE] = {
+		.width = 16, .phys = 16, .le = 1, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_S16_BE] = {
+		.width = 16, .phys = 16, .le = 0, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_U16_LE] = {
+		.width = 16, .phys = 16, .le = 1, .signd = 0,
+		.silence = { 0x00, 0x80 },
+	},
+	[SNDRV_PCM_FORMAT_U16_BE] = {
+		.width = 16, .phys = 16, .le = 0, .signd = 0,
+		.silence = { 0x80, 0x00 },
+	},
+	[SNDRV_PCM_FORMAT_S24_LE] = {
+		.width = 24, .phys = 32, .le = 1, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_S24_BE] = {
+		.width = 24, .phys = 32, .le = 0, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_U24_LE] = {
+		.width = 24, .phys = 32, .le = 1, .signd = 0,
+		.silence = { 0x00, 0x00, 0x80 },
+	},
+	[SNDRV_PCM_FORMAT_U24_BE] = {
+		.width = 24, .phys = 32, .le = 0, .signd = 0,
+		.silence = { 0x80, 0x00, 0x00 },
+	},
+	[SNDRV_PCM_FORMAT_S32_LE] = {
+		.width = 32, .phys = 32, .le = 1, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_S32_BE] = {
+		.width = 32, .phys = 32, .le = 0, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_U32_LE] = {
+		.width = 32, .phys = 32, .le = 1, .signd = 0,
+		.silence = { 0x00, 0x00, 0x00, 0x80 },
+	},
+	[SNDRV_PCM_FORMAT_U32_BE] = {
+		.width = 32, .phys = 32, .le = 0, .signd = 0,
+		.silence = { 0x80, 0x00, 0x00, 0x00 },
+	},
+	[SNDRV_PCM_FORMAT_FLOAT_LE] = {
+		.width = 32, .phys = 32, .le = 1, .signd = -1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_FLOAT_BE] = {
+		.width = 32, .phys = 32, .le = 0, .signd = -1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_FLOAT64_LE] = {
+		.width = 64, .phys = 64, .le = 1, .signd = -1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_FLOAT64_BE] = {
+		.width = 64, .phys = 64, .le = 0, .signd = -1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE] = {
+		.width = 32, .phys = 32, .le = 1, .signd = -1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE] = {
+		.width = 32, .phys = 32, .le = 0, .signd = -1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_MU_LAW] = {
+		.width = 8, .phys = 8, .le = -1, .signd = -1,
+		.silence = { 0x7f },
+	},
+	[SNDRV_PCM_FORMAT_A_LAW] = {
+		.width = 8, .phys = 8, .le = -1, .signd = -1,
+		.silence = { 0x55 },
+	},
+	[SNDRV_PCM_FORMAT_IMA_ADPCM] = {
+		.width = 4, .phys = 4, .le = -1, .signd = -1,
+		.silence = {},
+	},
+	/* FIXME: the following three formats are not defined properly yet */
+	[SNDRV_PCM_FORMAT_MPEG] = {
+		.le = -1, .signd = -1,
+	},
+	[SNDRV_PCM_FORMAT_GSM] = {
+		.le = -1, .signd = -1,
+	},
+	[SNDRV_PCM_FORMAT_SPECIAL] = {
+		.le = -1, .signd = -1,
+	},
+	[SNDRV_PCM_FORMAT_S24_3LE] = {
+		.width = 24, .phys = 24, .le = 1, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_S24_3BE] = {
+		.width = 24, .phys = 24, .le = 0, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_U24_3LE] = {
+		.width = 24, .phys = 24, .le = 1, .signd = 0,
+		.silence = { 0x00, 0x00, 0x80 },
+	},
+	[SNDRV_PCM_FORMAT_U24_3BE] = {
+		.width = 24, .phys = 24, .le = 0, .signd = 0,
+		.silence = { 0x80, 0x00, 0x00 },
+	},
+	[SNDRV_PCM_FORMAT_S20_3LE] = {
+		.width = 20, .phys = 24, .le = 1, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_S20_3BE] = {
+		.width = 20, .phys = 24, .le = 0, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_U20_3LE] = {
+		.width = 20, .phys = 24, .le = 1, .signd = 0,
+		.silence = { 0x00, 0x00, 0x08 },
+	},
+	[SNDRV_PCM_FORMAT_U20_3BE] = {
+		.width = 20, .phys = 24, .le = 0, .signd = 0,
+		.silence = { 0x08, 0x00, 0x00 },
+	},
+	[SNDRV_PCM_FORMAT_S18_3LE] = {
+		.width = 18, .phys = 24, .le = 1, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_S18_3BE] = {
+		.width = 18, .phys = 24, .le = 0, .signd = 1,
+		.silence = {},
+	},
+	[SNDRV_PCM_FORMAT_U18_3LE] = {
+		.width = 18, .phys = 24, .le = 1, .signd = 0,
+		.silence = { 0x00, 0x00, 0x02 },
+	},
+	[SNDRV_PCM_FORMAT_U18_3BE] = {
+		.width = 18, .phys = 24, .le = 0, .signd = 0,
+		.silence = { 0x02, 0x00, 0x00 },
+	},
+};
+
 
 /**
  * snd_pcm_format_signed - Check the PCM format is signed linear
@@ -39,38 +196,12 @@
  */
 int snd_pcm_format_signed(snd_pcm_format_t format)
 {
-	switch (snd_enum_to_int(format)) {
-	case SNDRV_PCM_FORMAT_S8:
-	case SNDRV_PCM_FORMAT_S16_LE:
-	case SNDRV_PCM_FORMAT_S16_BE:
-	case SNDRV_PCM_FORMAT_S24_LE:
-	case SNDRV_PCM_FORMAT_S24_BE:
-	case SNDRV_PCM_FORMAT_S32_LE:
-	case SNDRV_PCM_FORMAT_S32_BE:
-	case SNDRV_PCM_FORMAT_S24_3LE:
-	case SNDRV_PCM_FORMAT_S24_3BE:
-	case SNDRV_PCM_FORMAT_S20_3LE:
-	case SNDRV_PCM_FORMAT_S20_3BE:
-	case SNDRV_PCM_FORMAT_S18_3LE:
-	case SNDRV_PCM_FORMAT_S18_3BE:
-		return 1;
-	case SNDRV_PCM_FORMAT_U8:
-	case SNDRV_PCM_FORMAT_U16_LE:
-	case SNDRV_PCM_FORMAT_U16_BE:
-	case SNDRV_PCM_FORMAT_U24_LE:
-	case SNDRV_PCM_FORMAT_U24_BE:
-	case SNDRV_PCM_FORMAT_U32_LE:
-	case SNDRV_PCM_FORMAT_U32_BE:
-	case SNDRV_PCM_FORMAT_U24_3LE:
-	case SNDRV_PCM_FORMAT_U24_3BE:
-	case SNDRV_PCM_FORMAT_U20_3LE:
-	case SNDRV_PCM_FORMAT_U20_3BE:
-	case SNDRV_PCM_FORMAT_U18_3LE:
-	case SNDRV_PCM_FORMAT_U18_3BE:
-		return 0;
-	default:
+	int val;
+	if (format < 0 || format > SNDRV_PCM_FORMAT_LAST)
 		return -EINVAL;
-	}
+	if ((val = pcm_formats[format].signd) < 0)
+		return -EINVAL;
+	return val;
 }
 
 /**
@@ -110,42 +241,12 @@
  */
 int snd_pcm_format_little_endian(snd_pcm_format_t format)
 {
-	switch (snd_enum_to_int(format)) {
-	case SNDRV_PCM_FORMAT_S16_LE:
-	case SNDRV_PCM_FORMAT_U16_LE:
-	case SNDRV_PCM_FORMAT_S24_LE:
-	case SNDRV_PCM_FORMAT_U24_LE:
-	case SNDRV_PCM_FORMAT_S32_LE:
-	case SNDRV_PCM_FORMAT_U32_LE:
-	case SNDRV_PCM_FORMAT_FLOAT_LE:
-	case SNDRV_PCM_FORMAT_FLOAT64_LE:
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE:
-	case SNDRV_PCM_FORMAT_S24_3LE:
-	case SNDRV_PCM_FORMAT_S20_3LE:
-	case SNDRV_PCM_FORMAT_S18_3LE:
-	case SNDRV_PCM_FORMAT_U24_3LE:
-	case SNDRV_PCM_FORMAT_U20_3LE:
-	case SNDRV_PCM_FORMAT_U18_3LE:
-		return 1;
-	case SNDRV_PCM_FORMAT_S16_BE:
-	case SNDRV_PCM_FORMAT_U16_BE:
-	case SNDRV_PCM_FORMAT_S24_BE:
-	case SNDRV_PCM_FORMAT_U24_BE:
-	case SNDRV_PCM_FORMAT_S32_BE:
-	case SNDRV_PCM_FORMAT_U32_BE:
-	case SNDRV_PCM_FORMAT_FLOAT_BE:
-	case SNDRV_PCM_FORMAT_FLOAT64_BE:
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE:
-	case SNDRV_PCM_FORMAT_S24_3BE:
-	case SNDRV_PCM_FORMAT_S20_3BE:
-	case SNDRV_PCM_FORMAT_S18_3BE:
-	case SNDRV_PCM_FORMAT_U24_3BE:
-	case SNDRV_PCM_FORMAT_U20_3BE:
-	case SNDRV_PCM_FORMAT_U18_3BE:
-		return 0;
-	default:
+	int val;
+	if (format < 0 || format > SNDRV_PCM_FORMAT_LAST)
 		return -EINVAL;
-	}
+	if ((val = pcm_formats[format].le) < 0)
+		return -EINVAL;
+	return val;
 }
 
 /**
@@ -190,55 +291,12 @@
  */
 int snd_pcm_format_width(snd_pcm_format_t format)
 {
-	switch (snd_enum_to_int(format)) {
-	case SNDRV_PCM_FORMAT_S8:
-	case SNDRV_PCM_FORMAT_U8:
-		return 8;
-	case SNDRV_PCM_FORMAT_S16_LE:
-	case SNDRV_PCM_FORMAT_S16_BE:
-	case SNDRV_PCM_FORMAT_U16_LE:
-	case SNDRV_PCM_FORMAT_U16_BE:
-		return 16;
-	case SNDRV_PCM_FORMAT_S18_3LE:
-	case SNDRV_PCM_FORMAT_S18_3BE:
-	case SNDRV_PCM_FORMAT_U18_3LE:
-	case SNDRV_PCM_FORMAT_U18_3BE:
-		return 18;
-	case SNDRV_PCM_FORMAT_S20_3LE:
-	case SNDRV_PCM_FORMAT_S20_3BE:
-	case SNDRV_PCM_FORMAT_U20_3LE:
-	case SNDRV_PCM_FORMAT_U20_3BE:
-		return 20;
-	case SNDRV_PCM_FORMAT_S24_LE:
-	case SNDRV_PCM_FORMAT_S24_BE:
-	case SNDRV_PCM_FORMAT_U24_LE:
-	case SNDRV_PCM_FORMAT_U24_BE:
-	case SNDRV_PCM_FORMAT_S24_3LE:
-	case SNDRV_PCM_FORMAT_S24_3BE:
-	case SNDRV_PCM_FORMAT_U24_3LE:
-	case SNDRV_PCM_FORMAT_U24_3BE:
-		return 24;
-	case SNDRV_PCM_FORMAT_S32_LE:
-	case SNDRV_PCM_FORMAT_S32_BE:
-	case SNDRV_PCM_FORMAT_U32_LE:
-	case SNDRV_PCM_FORMAT_U32_BE:
-	case SNDRV_PCM_FORMAT_FLOAT_LE:
-	case SNDRV_PCM_FORMAT_FLOAT_BE:
-		return 32;
-	case SNDRV_PCM_FORMAT_FLOAT64_LE:
-	case SNDRV_PCM_FORMAT_FLOAT64_BE:
-		return 64;
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE:
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE:
-		return 32;
-	case SNDRV_PCM_FORMAT_MU_LAW:
-	case SNDRV_PCM_FORMAT_A_LAW:
-		return 8;
-	case SNDRV_PCM_FORMAT_IMA_ADPCM:
-		return 4;
-	default:
+	int val;
+	if (format < 0 || format > SNDRV_PCM_FORMAT_LAST)
 		return -EINVAL;
-	}
+	if ((val = pcm_formats[format].width) == 0)
+		return -EINVAL;
+	return val;
 }
 
 /**
@@ -250,52 +308,12 @@
  */
 int snd_pcm_format_physical_width(snd_pcm_format_t format)
 {
-	switch (snd_enum_to_int(format)) {
-	case SNDRV_PCM_FORMAT_S8:
-	case SNDRV_PCM_FORMAT_U8:
-		return 8;
-	case SNDRV_PCM_FORMAT_S16_LE:
-	case SNDRV_PCM_FORMAT_S16_BE:
-	case SNDRV_PCM_FORMAT_U16_LE:
-	case SNDRV_PCM_FORMAT_U16_BE:
-		return 16;
-	case SNDRV_PCM_FORMAT_S18_3LE:
-	case SNDRV_PCM_FORMAT_S18_3BE:
-	case SNDRV_PCM_FORMAT_U18_3LE:
-	case SNDRV_PCM_FORMAT_U18_3BE:
-	case SNDRV_PCM_FORMAT_S20_3LE:
-	case SNDRV_PCM_FORMAT_S20_3BE:
-	case SNDRV_PCM_FORMAT_U20_3LE:
-	case SNDRV_PCM_FORMAT_U20_3BE:
-	case SNDRV_PCM_FORMAT_S24_3LE:
-	case SNDRV_PCM_FORMAT_S24_3BE:
-	case SNDRV_PCM_FORMAT_U24_3LE:
-	case SNDRV_PCM_FORMAT_U24_3BE:
-		return 24;
-	case SNDRV_PCM_FORMAT_S24_LE:
-	case SNDRV_PCM_FORMAT_S24_BE:
-	case SNDRV_PCM_FORMAT_U24_LE:
-	case SNDRV_PCM_FORMAT_U24_BE:
-	case SNDRV_PCM_FORMAT_S32_LE:
-	case SNDRV_PCM_FORMAT_S32_BE:
-	case SNDRV_PCM_FORMAT_U32_LE:
-	case SNDRV_PCM_FORMAT_U32_BE:
-	case SNDRV_PCM_FORMAT_FLOAT_LE:
-	case SNDRV_PCM_FORMAT_FLOAT_BE:
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE:
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE:
-		return 32;
-	case SNDRV_PCM_FORMAT_FLOAT64_LE:
-	case SNDRV_PCM_FORMAT_FLOAT64_BE:
-		return 64;
-	case SNDRV_PCM_FORMAT_MU_LAW:
-	case SNDRV_PCM_FORMAT_A_LAW:
-		return 8;
-	case SNDRV_PCM_FORMAT_IMA_ADPCM:
-		return 4;
-	default:
+	int val;
+	if (format < 0 || format > SNDRV_PCM_FORMAT_LAST)
 		return -EINVAL;
-	}
+	if ((val = pcm_formats[format].phys) == 0)
+		return -EINVAL;
+	return val;
 }
 
 /**
@@ -307,216 +325,25 @@
  */
 ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples)
 {
-	switch (snd_enum_to_int(format)) {
-	case SNDRV_PCM_FORMAT_S8:
-	case SNDRV_PCM_FORMAT_U8:
-		return samples;
-	case SNDRV_PCM_FORMAT_S16_LE:
-	case SNDRV_PCM_FORMAT_S16_BE:
-	case SNDRV_PCM_FORMAT_U16_LE:
-	case SNDRV_PCM_FORMAT_U16_BE:
-		return samples * 2;
-	case SNDRV_PCM_FORMAT_S18_3LE:
-	case SNDRV_PCM_FORMAT_S18_3BE:
-	case SNDRV_PCM_FORMAT_U18_3LE:
-	case SNDRV_PCM_FORMAT_U18_3BE:
-	case SNDRV_PCM_FORMAT_S20_3LE:
-	case SNDRV_PCM_FORMAT_S20_3BE:
-	case SNDRV_PCM_FORMAT_U20_3LE:
-	case SNDRV_PCM_FORMAT_U20_3BE:
-	case SNDRV_PCM_FORMAT_S24_3LE:
-	case SNDRV_PCM_FORMAT_S24_3BE:
-	case SNDRV_PCM_FORMAT_U24_3LE:
-	case SNDRV_PCM_FORMAT_U24_3BE:
-		return samples * 3;
-	case SNDRV_PCM_FORMAT_S24_LE:
-	case SNDRV_PCM_FORMAT_S24_BE:
-	case SNDRV_PCM_FORMAT_U24_LE:
-	case SNDRV_PCM_FORMAT_U24_BE:
-	case SNDRV_PCM_FORMAT_S32_LE:
-	case SNDRV_PCM_FORMAT_S32_BE:
-	case SNDRV_PCM_FORMAT_U32_LE:
-	case SNDRV_PCM_FORMAT_U32_BE:
-	case SNDRV_PCM_FORMAT_FLOAT_LE:
-	case SNDRV_PCM_FORMAT_FLOAT_BE:
-		return samples * 4;
-	case SNDRV_PCM_FORMAT_FLOAT64_LE:
-	case SNDRV_PCM_FORMAT_FLOAT64_BE:
-		return samples * 8;
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE:
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE:
-		return samples * 4;
-	case SNDRV_PCM_FORMAT_MU_LAW:
-	case SNDRV_PCM_FORMAT_A_LAW:
-		return samples;
-	case SNDRV_PCM_FORMAT_IMA_ADPCM:
-		if (samples & 1)
-			return -EINVAL;
-		return samples / 2;
-	default:
+	int phys_width = snd_pcm_format_physical_width(format);
+	if (phys_width < 0)
 		return -EINVAL;
-	}
+	return samples * phys_width / 8;
 }
 
 /**
- * snd_pcm_format_silence_64 - return the silent data in 64bit integer
+ * snd_pcm_format_silence_64 - return the silent data in 8 bytes array
  * @format: the format to check
  *
- * Returns the silent data in 64bit integer for the given format.
+ * Returns the format pattern to fill or NULL if error.
  */
-u_int64_t snd_pcm_format_silence_64(snd_pcm_format_t format)
+const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format)
 {
-	switch (snd_enum_to_int(format)) {
-	case SNDRV_PCM_FORMAT_S8:
-	case SNDRV_PCM_FORMAT_S16_LE:
-	case SNDRV_PCM_FORMAT_S16_BE:
-	case SNDRV_PCM_FORMAT_S24_LE:
-	case SNDRV_PCM_FORMAT_S24_BE:
-	case SNDRV_PCM_FORMAT_S32_LE:
-	case SNDRV_PCM_FORMAT_S32_BE:
-	case SNDRV_PCM_FORMAT_S24_3LE:
-	case SNDRV_PCM_FORMAT_S24_3BE:
-	case SNDRV_PCM_FORMAT_S20_3LE:
-	case SNDRV_PCM_FORMAT_S20_3BE:
-	case SNDRV_PCM_FORMAT_S18_3LE:
-	case SNDRV_PCM_FORMAT_S18_3BE:
-		return 0;
-	case SNDRV_PCM_FORMAT_U8:
-		return 0x8080808080808080ULL;
-#ifdef SNDRV_LITTLE_ENDIAN
-	case SNDRV_PCM_FORMAT_U16_LE:
-		return 0x8000800080008000ULL;
-	case SNDRV_PCM_FORMAT_U24_LE:
-		return 0x0080000000800000ULL;
-	case SNDRV_PCM_FORMAT_U32_LE:
-		return 0x8000000080000000ULL;
-	case SNDRV_PCM_FORMAT_U16_BE:
-		return 0x0080008000800080ULL;
-	case SNDRV_PCM_FORMAT_U24_BE:
-		return 0x0000800000008000ULL;
-	case SNDRV_PCM_FORMAT_U32_BE:
-		return 0x0000008000000080ULL;
-	case SNDRV_PCM_FORMAT_U24_3LE:
-		return 0x0000800000800000ULL;
-	case SNDRV_PCM_FORMAT_U24_3BE:
-		return 0x0080000080000080ULL;
-	case SNDRV_PCM_FORMAT_U20_3LE:
-		return 0x0000080000080000ULL;
-	case SNDRV_PCM_FORMAT_U20_3BE:
-		return 0x0008000008000008ULL;
-	case SNDRV_PCM_FORMAT_U18_3LE:
-		return 0x0000020000020000ULL;
-	case SNDRV_PCM_FORMAT_U18_3BE:
-		return 0x0002000002000002ULL;
-#else
-	case SNDRV_PCM_FORMAT_U16_LE:
-		return 0x0080008000800080ULL;
-	case SNDRV_PCM_FORMAT_U24_LE:
-		return 0x0000800000008000ULL;
-	case SNDRV_PCM_FORMAT_U32_LE:
-		return 0x0000008000000080ULL;
-	case SNDRV_PCM_FORMAT_U16_BE:
-		return 0x8000800080008000ULL;
-	case SNDRV_PCM_FORMAT_U24_BE:
-		return 0x0080000000800000ULL;
-	case SNDRV_PCM_FORMAT_U32_BE:
-		return 0x8000000080000000ULL;
-	case SNDRV_PCM_FORMAT_U24_3LE:
-		return 0x0080000080000080ULL;
-	case SNDRV_PCM_FORMAT_U24_3BE:
-		return 0x0000800000800000ULL;
-	case SNDRV_PCM_FORMAT_U20_3LE:
-		return 0x0008000008000008ULL;
-	case SNDRV_PCM_FORMAT_U20_3BE:
-		return 0x0000080000080000ULL;
-	case SNDRV_PCM_FORMAT_U18_3LE:
-		return 0x0002000002000002ULL;
-	case SNDRV_PCM_FORMAT_U18_3BE:
-		return 0x0000020000020000ULL;
-#endif
-	case SNDRV_PCM_FORMAT_FLOAT_LE:
-	{
-		union {
-			float f;
-			u_int32_t i;
-		} u;
-		u.f = 0.0;
-#ifdef SNDRV_LITTLE_ENDIAN
-		return u.i;
-#else
-		return bswap_32(u.i);
-#endif
-	}
-	case SNDRV_PCM_FORMAT_FLOAT64_LE:
-	{
-		union {
-			double f;
-			u_int64_t i;
-		} u;
-		u.f = 0.0;
-#ifdef SNDRV_LITTLE_ENDIAN
-		return u.i;
-#else
-		return bswap_64(u.i);
-#endif
-	}
-	case SNDRV_PCM_FORMAT_FLOAT_BE:		
-	{
-		union {
-			float f;
-			u_int32_t i;
-		} u;
-		u.f = 0.0;
-#ifdef SNDRV_LITTLE_ENDIAN
-		return bswap_32(u.i);
-#else
-		return u.i;
-#endif
-	}
-	case SNDRV_PCM_FORMAT_FLOAT64_BE:
-	{
-		union {
-			double f;
-			u_int64_t i;
-		} u;
-		u.f = 0.0;
-#ifdef SNDRV_LITTLE_ENDIAN
-		return bswap_64(u.i);
-#else
-		return u.i;
-#endif
-	}
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_LE:
-	case SNDRV_PCM_FORMAT_IEC958_SUBFRAME_BE:
-		return 0;	
-	case SNDRV_PCM_FORMAT_MU_LAW:
-		return 0x7f7f7f7f7f7f7f7fULL;
-	case SNDRV_PCM_FORMAT_A_LAW:
-		return 0x5555555555555555ULL;
-	case SNDRV_PCM_FORMAT_IMA_ADPCM:	/* special case */
-	case SNDRV_PCM_FORMAT_MPEG:
-	case SNDRV_PCM_FORMAT_GSM:
-	case SNDRV_PCM_FORMAT_SPECIAL:
-		return 0;
-	default:
-		return -EINVAL;
-	}
-	return 0;
-}
-
-u_int32_t snd_pcm_format_silence_32(snd_pcm_format_t format)
-{
-	return (u_int32_t)snd_pcm_format_silence_64(format);
-}
-
-u_int16_t snd_pcm_format_silence_16(snd_pcm_format_t format)
-{
-	return (u_int16_t)snd_pcm_format_silence_64(format);
-}
-
-u_int8_t snd_pcm_format_silence(snd_pcm_format_t format)
-{
-	return (u_int8_t)snd_pcm_format_silence_64(format);
+	if (format < 0 || format > SNDRV_PCM_FORMAT_LAST)
+		return NULL;
+	if (! pcm_formats[format].phys)
+		return NULL;
+	return pcm_formats[format].silence;
 }
 
 /**
@@ -531,99 +358,73 @@
  */
 int snd_pcm_format_set_silence(snd_pcm_format_t format, void *data, unsigned int samples)
 {
+	int width;
+	unsigned char *dst, *pat;
+
+	if (format < 0 || format > SNDRV_PCM_FORMAT_LAST)
+		return -EINVAL;
 	if (samples == 0)
 		return 0;
-	switch (snd_pcm_format_width(format)) {
-	case 4: {
-		u_int8_t silence = snd_pcm_format_silence_64(format);
-		unsigned int samples1;
-		if (samples % 2 != 0)
-			return -EINVAL;
-		samples1 = samples / 2;
-		memset(data, silence, samples1);
-		break;
+	width = pcm_formats[format].phys; /* physical width */
+	pat = pcm_formats[format].silence;
+	if (! width)
+		return -EINVAL;
+	/* signed or 1 byte data */
+	if (pcm_formats[format].signd == 1 || width <= 8) {
+		unsigned int bytes = samples * width / 8;
+		memset(data, *pat, bytes);
+		return 0;
 	}
-	case 8: {
-		u_int8_t silence = snd_pcm_format_silence_64(format);
-		memset(data, silence, samples);
-		break;
+	/* non-zero samples, fill using a loop */
+	width /= 8;
+	dst = data;
+#if 0
+	while (samples--) {
+		memcpy(dst, pat, width);
+		dst += width;
 	}
-	case 16: {
-		u_int16_t silence = snd_pcm_format_silence_64(format);
-		if (! silence)
-			memset(data, 0, samples * 2);
-		else {
-			u_int16_t *data16 = data;
-			while (samples-- > 0)
-				*data16++ = silence;
+#else
+	/* a bit optimization for constant width */
+	switch (width) {
+	case 2:
+		while (samples--) {
+			memcpy(dst, pat, 2);
+			dst += 2;
 		}
 		break;
-	}
-	case 24: {
-		u_int32_t silence = snd_pcm_format_silence_64(format);
-		if (! silence)
-			memset(data, 0, samples * 3);
-		else {
-			while (samples-- > 0) {
-				u_int8_t *data8 = data;
-#ifdef SNDRV_LITTLE_ENDIAN
-				*data8++ = silence >> 0;
-				*data8++ = silence >> 8;
-				*data8++ = silence >> 16;
-#else
-				*data8++ = silence >> 16;
-				*data8++ = silence >> 8;
-				*data8++ = silence >> 0;
-#endif
-			}
+	case 3:
+		while (samples--) {
+			memcpy(dst, pat, 3);
+			dst += 3;
 		}
 		break;
-	}
-	case 32: {
-		u_int32_t silence = snd_pcm_format_silence_64(format);
-		if (! silence)
-			memset(data, 0, samples * 4);
-		else {
-			u_int32_t *data32 = data;
-			while (samples-- > 0)
-				*data32++ = silence;
+	case 4:
+		while (samples--) {
+			memcpy(dst, pat, 4);
+			dst += 4;
 		}
 		break;
-	}
-	case 64: {
-		u_int64_t silence = snd_pcm_format_silence_64(format);
-		if (! silence)
-			memset(data, 0, samples * 8);
-		else {
-			u_int64_t *data64 = data;
-			while (samples-- > 0)
-				*data64++ = silence;
+	case 8:
+		while (samples--) {
+			memcpy(dst, pat, 8);
+			dst += 8;
 		}
 		break;
 	}
-	default:
-		return -EINVAL;
-	}
+#endif
 	return 0;
 }
 
-static int linear_formats[4*2*2] = {
-	SNDRV_PCM_FORMAT_S8,
-	SNDRV_PCM_FORMAT_S8,
-	SNDRV_PCM_FORMAT_U8,
-	SNDRV_PCM_FORMAT_U8,
-	SNDRV_PCM_FORMAT_S16_LE,
-	SNDRV_PCM_FORMAT_S16_BE,
-	SNDRV_PCM_FORMAT_U16_LE,
-	SNDRV_PCM_FORMAT_U16_BE,
-	SNDRV_PCM_FORMAT_S24_LE,
-	SNDRV_PCM_FORMAT_S24_BE,
-	SNDRV_PCM_FORMAT_U24_LE,
-	SNDRV_PCM_FORMAT_U24_BE,
-	SNDRV_PCM_FORMAT_S32_LE,
-	SNDRV_PCM_FORMAT_S32_BE,
-	SNDRV_PCM_FORMAT_U32_LE,
-	SNDRV_PCM_FORMAT_U32_BE
+/* [width][unsigned][bigendian] */
+static int linear_formats[4][2][2] = {
+	{{ SNDRV_PCM_FORMAT_S8, SNDRV_PCM_FORMAT_S8},
+	 { SNDRV_PCM_FORMAT_U8, SNDRV_PCM_FORMAT_U8}},
+	{{SNDRV_PCM_FORMAT_S16_LE, SNDRV_PCM_FORMAT_S16_BE},
+	 {SNDRV_PCM_FORMAT_U16_LE, SNDRV_PCM_FORMAT_U16_BE}},
+	{{SNDRV_PCM_FORMAT_S24_LE, SNDRV_PCM_FORMAT_S24_BE},
+	 {SNDRV_PCM_FORMAT_U24_LE, SNDRV_PCM_FORMAT_U24_BE}},
+	{{SNDRV_PCM_FORMAT_S32_LE, SNDRV_PCM_FORMAT_S32_BE},
+	 {SNDRV_PCM_FORMAT_U32_LE, SNDRV_PCM_FORMAT_U32_BE}}
 };
 
 /**
@@ -636,23 +437,12 @@
  */
 snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian)
 {
-	switch (width) {
-	case 8:
-		width = 0;
-		break;
-	case 16:
-		width = 1;
-		break;
-	case 24:
-		width = 2;
-		break;
-	case 32:
-		width = 3;
-		break;
-	default:
+	if (width & 7)
 		return SND_PCM_FORMAT_UNKNOWN;
-	}
-	return snd_int_to_enum(((int(*)[2][2])linear_formats)[width][!!unsignd][!!big_endian]);
+	width = (width / 8) - 1;
+	if (width < 0 || width >= 4)
+		return SND_PCM_FORMAT_UNKNOWN;
+	return linear_formats[width][!!unsignd][!!big_endian];
 }
 
 /**
diff -Nru a/sound/core/pcm_native.c b/sound/core/pcm_native.c
--- a/sound/core/pcm_native.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/pcm_native.c	2004-07-27 18:28:33 -07:00
@@ -304,13 +304,25 @@
 
 static int snd_pcm_hw_refine_user(snd_pcm_substream_t * substream, snd_pcm_hw_params_t __user * _params)
 {
-	snd_pcm_hw_params_t params;
+	snd_pcm_hw_params_t *params;
 	int err;
-	if (copy_from_user(&params, _params, sizeof(params)))
-		return -EFAULT;
-	err = snd_pcm_hw_refine(substream, &params);
-	if (copy_to_user(_params, &params, sizeof(params)))
-		return -EFAULT;
+
+	params = kmalloc(sizeof(*params), GFP_KERNEL);
+	if (!params) {
+		err = -ENOMEM;
+		goto out;
+	}
+	if (copy_from_user(params, _params, sizeof(*params))) {
+		err = -EFAULT;
+		goto out;
+	}
+	err = snd_pcm_hw_refine(substream, params);
+	if (copy_to_user(_params, params, sizeof(*params))) {
+		if (!err)
+			err = -EFAULT;
+	}
+out:
+	kfree(params);
 	return err;
 }
 
@@ -408,13 +420,25 @@
 
 static int snd_pcm_hw_params_user(snd_pcm_substream_t * substream, snd_pcm_hw_params_t __user * _params)
 {
-	snd_pcm_hw_params_t params;
+	snd_pcm_hw_params_t *params;
 	int err;
-	if (copy_from_user(&params, _params, sizeof(params)))
-		return -EFAULT;
-	err = snd_pcm_hw_params(substream, &params);
-	if (copy_to_user(_params, &params, sizeof(params)))
-		return -EFAULT;
+
+	params = kmalloc(sizeof(*params), GFP_KERNEL);
+	if (!params) {
+		err = -ENOMEM;
+		goto out;
+	}
+	if (copy_from_user(params, _params, sizeof(*params))) {
+		err = -EFAULT;
+		goto out;
+	}
+	err = snd_pcm_hw_params(substream, params);
+	if (copy_to_user(_params, params, sizeof(*params))) {
+		if (!err)
+			err = -EFAULT;
+	}
+out:
+	kfree(params);
 	return err;
 }
 
@@ -1503,7 +1527,7 @@
 	file = snd_pcm_file_fd(fd);
 	if (!file)
 		return -EBADFD;
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 	substream1 = pcm_file->substream;
 	write_lock_irq(&snd_pcm_link_rwlock);
 	if (substream->runtime->status->state != substream1->runtime->status->state) {
@@ -1923,7 +1947,7 @@
 	substream->ffile = NULL;
 	snd_pcm_remove_file(str, pcm_file);
 	snd_pcm_release_substream(substream);
-	snd_magic_kfree(pcm_file);
+	kfree(pcm_file);
 	return 0;
 }
 
@@ -1940,13 +1964,13 @@
 	snd_assert(rpcm_file != NULL, return -EINVAL);
 	*rpcm_file = NULL;
 
-	pcm_file = snd_magic_kcalloc(snd_pcm_file_t, 0, GFP_KERNEL);
+	pcm_file = kcalloc(1, sizeof(*pcm_file), GFP_KERNEL);
 	if (pcm_file == NULL) {
 		return -ENOMEM;
 	}
 
 	if ((err = snd_pcm_open_substream(pcm, stream, &substream)) < 0) {
-		snd_magic_kfree(pcm_file);
+		kfree(pcm_file);
 		return err;
 	}
 
@@ -2050,7 +2074,7 @@
 	snd_pcm_substream_t *substream;
 	snd_pcm_file_t *pcm_file;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, return -ENXIO);
 	snd_assert(!atomic_read(&substream->runtime->mmap_count), );
@@ -2617,7 +2641,7 @@
 {
 	snd_pcm_file_t *pcm_file;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 
 	if (((cmd >> 8) & 0xff) != 'A')
 		return -ENOTTY;
@@ -2630,7 +2654,7 @@
 {
 	snd_pcm_file_t *pcm_file;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 
 	if (((cmd >> 8) & 0xff) != 'A')
 		return -ENOTTY;
@@ -2682,7 +2706,7 @@
 	snd_pcm_runtime_t *runtime;
 	snd_pcm_sframes_t result;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, return -ENXIO);
 	runtime = substream->runtime;
@@ -2704,7 +2728,7 @@
 	snd_pcm_runtime_t *runtime;
 	snd_pcm_sframes_t result;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, result = -ENXIO; goto end);
+	pcm_file = file->private_data;
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, result = -ENXIO; goto end);
 	runtime = substream->runtime;
@@ -2736,7 +2760,7 @@
 	void __user **bufs;
 	snd_pcm_uframes_t frames;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, return -ENXIO);
 	runtime = substream->runtime;
@@ -2770,7 +2794,7 @@
 	void __user **bufs;
 	snd_pcm_uframes_t frames;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, result = -ENXIO; goto end);
+	pcm_file = file->private_data;
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, result = -ENXIO; goto end);
 	runtime = substream->runtime;
@@ -2805,7 +2829,7 @@
         unsigned int mask;
 	snd_pcm_uframes_t avail;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return 0);
+	pcm_file = file->private_data;
 
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, return -ENXIO);
@@ -2843,7 +2867,7 @@
         unsigned int mask;
 	snd_pcm_uframes_t avail;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return 0);
+	pcm_file = file->private_data;
 
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, return -ENXIO);
@@ -3009,6 +3033,12 @@
 	.nopage =	snd_pcm_mmap_data_nopage,
 };
 
+static struct vm_operations_struct snd_pcm_vm_ops_data_mmio =
+{
+	.open =		snd_pcm_mmap_data_open,
+	.close =	snd_pcm_mmap_data_close,
+};
+
 int snd_pcm_mmap_data(snd_pcm_substream_t *substream, struct file *file,
 		      struct vm_area_struct *area)
 {
@@ -3044,6 +3074,14 @@
 	area->vm_ops = &snd_pcm_vm_ops_data;
 	area->vm_private_data = substream;
 	area->vm_flags |= VM_RESERVED;
+	if (runtime->hw.info & SNDRV_PCM_INFO_MMAP_IOMEM) {
+		area->vm_ops = &snd_pcm_vm_ops_data_mmio;
+		area->vm_flags |= VM_IO;
+		if (io_remap_page_range(area, area->vm_start,
+					runtime->dma_addr + offset,
+					size, area->vm_page_prot))
+			return -EAGAIN;
+	}
 	atomic_inc(&runtime->mmap_count);
 	return 0;
 }
@@ -3054,7 +3092,7 @@
 	snd_pcm_substream_t *substream;	
 	unsigned long offset;
 	
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, return -ENXIO);
 
@@ -3077,7 +3115,7 @@
 	snd_pcm_runtime_t *runtime;
 	int err;
 
-	pcm_file = snd_magic_cast(snd_pcm_file_t, file->private_data, return -ENXIO);
+	pcm_file = file->private_data;
 	substream = pcm_file->substream;
 	snd_assert(substream != NULL, return -ENXIO);
 	runtime = substream->runtime;
@@ -3133,31 +3171,68 @@
 
 static int snd_pcm_hw_refine_old_user(snd_pcm_substream_t * substream, struct sndrv_pcm_hw_params_old __user * _oparams)
 {
-	snd_pcm_hw_params_t params;
-	struct sndrv_pcm_hw_params_old oparams;
+	snd_pcm_hw_params_t *params;
+	struct sndrv_pcm_hw_params_old *oparams = NULL;
 	int err;
-	if (copy_from_user(&oparams, _oparams, sizeof(oparams)))
-		return -EFAULT;
-	snd_pcm_hw_convert_from_old_params(&params, &oparams);
-	err = snd_pcm_hw_refine(substream, &params);
-	snd_pcm_hw_convert_to_old_params(&oparams, &params);
-	if (copy_to_user(_oparams, &oparams, sizeof(oparams)))
-		return -EFAULT;
+
+	params = kmalloc(sizeof(*params), GFP_KERNEL);
+	if (!params) {
+		err = -ENOMEM;
+		goto out;
+	}
+	oparams = kmalloc(sizeof(*oparams), GFP_KERNEL);
+	if (!oparams) {
+		err = -ENOMEM;
+		goto out;
+	}
+
+	if (copy_from_user(oparams, _oparams, sizeof(*oparams))) {
+		err = -EFAULT;
+		goto out;
+	}
+	snd_pcm_hw_convert_from_old_params(params, oparams);
+	err = snd_pcm_hw_refine(substream, params);
+	snd_pcm_hw_convert_to_old_params(oparams, params);
+	if (copy_to_user(_oparams, oparams, sizeof(*oparams))) {
+		if (!err)
+			err = -EFAULT;
+	}
+out:
+	kfree(params);
+	kfree(oparams);
 	return err;
 }
 
 static int snd_pcm_hw_params_old_user(snd_pcm_substream_t * substream, struct sndrv_pcm_hw_params_old __user * _oparams)
 {
-	snd_pcm_hw_params_t params;
-	struct sndrv_pcm_hw_params_old oparams;
+	snd_pcm_hw_params_t *params;
+	struct sndrv_pcm_hw_params_old *oparams = NULL;
 	int err;
-	if (copy_from_user(&oparams, _oparams, sizeof(oparams)))
-		return -EFAULT;
-	snd_pcm_hw_convert_from_old_params(&params, &oparams);
-	err = snd_pcm_hw_params(substream, &params);
-	snd_pcm_hw_convert_to_old_params(&oparams, &params);
-	if (copy_to_user(_oparams, &oparams, sizeof(oparams)))
-		return -EFAULT;
+
+	params = kmalloc(sizeof(*params), GFP_KERNEL);
+	if (!params) {
+		err = -ENOMEM;
+		goto out;
+	}
+	oparams = kmalloc(sizeof(*oparams), GFP_KERNEL);
+	if (!oparams) {
+		err = -ENOMEM;
+		goto out;
+	}
+	if (copy_from_user(oparams, _oparams, sizeof(*oparams))) {
+		err = -EFAULT;
+		goto out;
+	}
+	snd_pcm_hw_convert_from_old_params(params, oparams);
+	err = snd_pcm_hw_params(substream, params);
+	snd_pcm_hw_convert_to_old_params(oparams, params);
+	if (copy_to_user(_oparams, oparams, sizeof(*oparams))) {
+		if (!err)
+			err = -EFAULT;
+	}
+out:
+	kfree(params);
+	kfree(oparams);
 	return err;
 }
 
diff -Nru a/sound/core/pcm_timer.c b/sound/core/pcm_timer.c
--- a/sound/core/pcm_timer.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/pcm_timer.c	2004-07-27 18:28:33 -07:00
@@ -25,8 +25,6 @@
 #include <sound/pcm.h>
 #include <sound/timer.h>
 
-#define chip_t snd_pcm_substream_t
-
 /*
  *  Timer functions
  */
@@ -49,7 +47,7 @@
 
 void snd_pcm_timer_resolution_change(snd_pcm_substream_t *substream)
 {
-	unsigned long rate, mult, fsize, l;
+	unsigned long rate, mult, fsize, l, post;
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	
         mult = 1000000000;
@@ -63,23 +61,24 @@
 	l = gcd(rate, fsize);
 	rate /= l;
 	fsize /= l;
+	post = 1;
 	while ((mult * fsize) / fsize != mult) {
 		mult /= 2;
-		rate /= 2;
+		post *= 2;
 	}
 	if (rate == 0) {
 		snd_printk(KERN_ERR "pcm timer resolution out of range (rate = %u, period_size = %lu)\n", runtime->rate, runtime->period_size);
 		runtime->timer_resolution = -1;
 		return;
 	}
-	runtime->timer_resolution = mult * fsize / rate;
+	runtime->timer_resolution = (mult * fsize / rate) * post;
 }
 
 static unsigned long snd_pcm_timer_resolution(snd_timer_t * timer)
 {
 	snd_pcm_substream_t * substream;
 	
-	substream = snd_magic_cast(snd_pcm_substream_t, timer->private_data, return -ENXIO);
+	substream = timer->private_data;
 	return substream->runtime ? substream->runtime->timer_resolution : 0;
 }
 
@@ -123,7 +122,7 @@
 
 static void snd_pcm_timer_free(snd_timer_t *timer)
 {
-	snd_pcm_substream_t *substream = snd_magic_cast(snd_pcm_substream_t, timer->private_data, return);
+	snd_pcm_substream_t *substream = timer->private_data;
 	substream->timer = NULL;
 }
 
diff -Nru a/sound/core/rawmidi.c b/sound/core/rawmidi.c
--- a/sound/core/rawmidi.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/rawmidi.c	2004-07-27 18:28:32 -07:00
@@ -44,10 +44,8 @@
 static int boot_devs;
 module_param_array(midi_map, int, boot_devs, 0444);
 MODULE_PARM_DESC(midi_map, "Raw MIDI device number assigned to 1st OSS device.");
-MODULE_PARM_SYNTAX(midi_map, "default:0,skill:advanced");
 module_param_array(amidi_map, int, boot_devs, 0444);
 MODULE_PARM_DESC(amidi_map, "Raw MIDI device number assigned to 2nd OSS device.");
-MODULE_PARM_SYNTAX(amidi_map, "default:1,skill:advanced");
 #endif /* CONFIG_SND_OSSEMUL */
 
 static int snd_rawmidi_free(snd_rawmidi_t *rawmidi);
@@ -269,7 +267,7 @@
 		list2 = list2->next;
 	}
 	if (mode & SNDRV_RAWMIDI_LFLG_INPUT) {
-		input = snd_kcalloc(sizeof(snd_rawmidi_runtime_t), GFP_KERNEL);
+		input = kcalloc(1, sizeof(*input), GFP_KERNEL);
 		if (input == NULL) {
 			err = -ENOMEM;
 			goto __error;
@@ -291,7 +289,7 @@
 	if (mode & SNDRV_RAWMIDI_LFLG_OUTPUT) {
 		if (soutput->opened)
 			goto __skip_output;
-		output = snd_kcalloc(sizeof(snd_rawmidi_runtime_t), GFP_KERNEL);
+		output = kcalloc(1, sizeof(*output), GFP_KERNEL);
 		if (output == NULL) {
 			err = -ENOMEM;
 			goto __error;
@@ -398,7 +396,7 @@
 	if ((file->f_flags & O_APPEND) || maj != CONFIG_SND_MAJOR) /* OSS emul? */
 		fflags |= SNDRV_RAWMIDI_LFLG_APPEND;
 	fflags |= SNDRV_RAWMIDI_LFLG_NOOPENLOCK;
-	rawmidi_file = snd_magic_kmalloc(snd_rawmidi_file_t, 0, GFP_KERNEL);
+	rawmidi_file = kmalloc(sizeof(*rawmidi_file), GFP_KERNEL);
 	if (rawmidi_file == NULL) {
 		snd_card_file_remove(card, file);
 		return -ENOMEM;
@@ -447,7 +445,7 @@
 		file->private_data = rawmidi_file;
 	} else {
 		snd_card_file_remove(card, file);
-		snd_magic_kfree(rawmidi_file);
+		kfree(rawmidi_file);
 	}
 	up(&rmidi->open_mutex);
 	return err;
@@ -512,11 +510,11 @@
 	snd_rawmidi_t *rmidi;
 	int err;
 
-	rfile = snd_magic_cast(snd_rawmidi_file_t, file->private_data, return -ENXIO);
+	rfile = file->private_data;
 	err = snd_rawmidi_kernel_release(rfile);
 	rmidi = rfile->rmidi;
 	wake_up(&rmidi->open_wait);
-	snd_magic_kfree(rfile);
+	kfree(rfile);
 	snd_card_file_remove(rmidi->card, file);
 	return err;
 }
@@ -681,7 +679,7 @@
 	snd_rawmidi_file_t *rfile;
 	void __user *argp = (void __user *)arg;
 
-	rfile = snd_magic_cast(snd_rawmidi_file_t, file->private_data, return -ENXIO);
+	rfile = file->private_data;
 	if (((cmd >> 8) & 0xff) != 'W')
 		return -ENOTTY;
 	switch (cmd) {
@@ -944,7 +942,7 @@
 	snd_rawmidi_substream_t *substream;
 	snd_rawmidi_runtime_t *runtime;
 
-	rfile = snd_magic_cast(snd_rawmidi_file_t, file->private_data, return -ENXIO);
+	rfile = file->private_data;
 	substream = rfile->input;
 	if (substream == NULL)
 		return -EIO;
@@ -1176,7 +1174,7 @@
 	snd_rawmidi_runtime_t *runtime;
 	snd_rawmidi_substream_t *substream;
 
-	rfile = snd_magic_cast(snd_rawmidi_file_t, file->private_data, return -ENXIO);
+	rfile = file->private_data;
 	substream = rfile->output;
 	runtime = substream->runtime;
 	/* we cannot put an atomic message to our buffer */
@@ -1241,7 +1239,7 @@
 	snd_rawmidi_runtime_t *runtime;
 	unsigned int mask;
 
-	rfile = snd_magic_cast(snd_rawmidi_file_t, file->private_data, return 0);
+	rfile = file->private_data;
 	if (rfile->input != NULL) {
 		runtime = rfile->input->runtime;
 		runtime->trigger = 1;
@@ -1276,7 +1274,7 @@
 	snd_rawmidi_runtime_t *runtime;
 	struct list_head *list;
 
-	rmidi = snd_magic_cast(snd_rawmidi_t, entry->private_data, return);
+	rmidi = entry->private_data;
 	snd_iprintf(buffer, "%s\n\n", rmidi->name);
 	down(&rmidi->open_mutex);
 	if (rmidi->info_flags & SNDRV_RAWMIDI_INFO_OUTPUT) {
@@ -1353,7 +1351,7 @@
 
 	INIT_LIST_HEAD(&stream->substreams);
 	for (idx = 0; idx < count; idx++) {
-		substream = snd_kcalloc(sizeof(snd_rawmidi_substream_t), GFP_KERNEL);
+		substream = kcalloc(1, sizeof(*substream), GFP_KERNEL);
 		if (substream == NULL)
 			return -ENOMEM;
 		substream->stream = direction;
@@ -1396,7 +1394,7 @@
 	snd_assert(rrawmidi != NULL, return -EINVAL);
 	*rrawmidi = NULL;
 	snd_assert(card != NULL, return -ENXIO);
-	rmidi = snd_magic_kcalloc(snd_rawmidi_t, 0, GFP_KERNEL);
+	rmidi = kcalloc(1, sizeof(*rmidi), GFP_KERNEL);
 	if (rmidi == NULL)
 		return -ENOMEM;
 	rmidi->card = card;
@@ -1439,20 +1437,20 @@
 	snd_rawmidi_free_substreams(&rmidi->streams[SNDRV_RAWMIDI_STREAM_OUTPUT]);
 	if (rmidi->private_free)
 		rmidi->private_free(rmidi);
-	snd_magic_kfree(rmidi);
+	kfree(rmidi);
 	return 0;
 }
 
 static int snd_rawmidi_dev_free(snd_device_t *device)
 {
-	snd_rawmidi_t *rmidi = snd_magic_cast(snd_rawmidi_t, device->device_data, return -ENXIO);
+	snd_rawmidi_t *rmidi = device->device_data;
 	return snd_rawmidi_free(rmidi);
 }
 
 #if defined(CONFIG_SND_SEQUENCER) || (defined(MODULE) && defined(CONFIG_SND_SEQUENCER_MODULE))
 static void snd_rawmidi_dev_seq_free(snd_seq_device_t *device)
 {
-	snd_rawmidi_t *rmidi = snd_magic_cast(snd_rawmidi_t, device->private_data, return);
+	snd_rawmidi_t *rmidi = device->private_data;
 	rmidi->seq_dev = NULL;
 }
 #endif
@@ -1462,7 +1460,7 @@
 	int idx, err;
 	snd_info_entry_t *entry;
 	char name[16];
-	snd_rawmidi_t *rmidi = snd_magic_cast(snd_rawmidi_t, device->device_data, return -ENXIO);
+	snd_rawmidi_t *rmidi = device->device_data;
 
 	if (rmidi->device >= SNDRV_RAWMIDI_DEVICES)
 		return -ENOMEM;
@@ -1539,7 +1537,7 @@
 
 static int snd_rawmidi_dev_disconnect(snd_device_t *device)
 {
-	snd_rawmidi_t *rmidi = snd_magic_cast(snd_rawmidi_t, device->device_data, return -ENXIO);
+	snd_rawmidi_t *rmidi = device->device_data;
 	int idx;
 
 	down(&register_mutex);
@@ -1552,7 +1550,7 @@
 static int snd_rawmidi_dev_unregister(snd_device_t *device)
 {
 	int idx;
-	snd_rawmidi_t *rmidi = snd_magic_cast(snd_rawmidi_t, device->device_data, return -ENXIO);
+	snd_rawmidi_t *rmidi = device->device_data;
 
 	snd_assert(rmidi != NULL, return -ENXIO);
 	down(&register_mutex);
diff -Nru a/sound/core/seq/Makefile b/sound/core/seq/Makefile
--- a/sound/core/seq/Makefile	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/Makefile	2004-07-27 18:28:33 -07:00
@@ -19,9 +19,6 @@
 snd-seq-dummy-objs := seq_dummy.o
 snd-seq-virmidi-objs := seq_virmidi.o
 
-RAWMIDI_OBJS = snd-seq-midi.o snd-seq-midi-event.o
-OPL3_OBJS = snd-seq-midi-event.o snd-seq-midi-emul.o snd-seq-instr.o
-
 #
 # this function returns:
 #   "m" - CONFIG_SND_SEQUENCER is m
@@ -38,53 +35,8 @@
 
 # Toplevel Module Dependency
 obj-$(CONFIG_SND_VIRMIDI) += snd-seq-virmidi.o snd-seq-midi-event.o
-obj-$(call sequencer,$(CONFIG_SND_SERIAL_U16550)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_MTPAV)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_MPU401)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ALS100)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_AZT2320)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_AZT3328)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_DT019X)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ES18XX)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_OPL3SA2)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_AD1816A)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_CS4231)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_CS4232)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_CS4236)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ES1688)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_GUSCLASSIC)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_GUSMAX)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_GUSEXTREME)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_INTERWAVE)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_INTERWAVE_STB)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_OPTI92X_AD1848)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_OPTI92X_CS4231)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_OPTI93X)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_SB8)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_SB16)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_SBAWE)) += $(RAWMIDI_OBJS) $(OPL3_OBJS) snd-seq-virmidi.o
-obj-$(call sequencer,$(CONFIG_SND_ES968)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_WAVEFRONT)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_SSCAPE)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ALS4000)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_CMIPCI)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_CS4281)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ENS1370)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ENS1371)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ES1938)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ES1968)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_FM801)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ICE1712)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ICE1724)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_INTEL8X0)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_SONICVIBES)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_VIA82XX)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_ALI5451)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_CS46XX)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_EMU10K1)) += $(RAWMIDI_OBJS) snd-seq-midi-emul.o snd-seq-virmidi.o
-obj-$(call sequencer,$(CONFIG_SND_TRIDENT)) += $(RAWMIDI_OBJS) snd-seq-midi-emul.o snd-seq-instr.o
-obj-$(call sequencer,$(CONFIG_SND_YMFPCI)) += $(RAWMIDI_OBJS) $(OPL3_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_USB_AUDIO)) += $(RAWMIDI_OBJS)
-obj-$(call sequencer,$(CONFIG_SND_HDSP)) += $(RAWMIDI_OBJS)
-
-obj-m := $(sort $(obj-m))
+obj-$(call sequencer,$(CONFIG_SND_RAWMIDI)) += snd-seq-midi.o snd-seq-midi-event.o
+obj-$(call sequencer,$(CONFIG_SND_OPL3_LIB)) += snd-seq-midi-event.o snd-seq-midi-emul.o snd-seq-instr.o
+obj-$(call sequencer,$(CONFIG_SND_SBAWE)) += snd-seq-midi-emul.o snd-seq-virmidi.o
+obj-$(call sequencer,$(CONFIG_SND_EMU10K1)) += snd-seq-midi-emul.o snd-seq-virmidi.o
+obj-$(call sequencer,$(CONFIG_SND_TRIDENT)) += snd-seq-midi-emul.o snd-seq-instr.o
diff -Nru a/sound/core/seq/instr/Makefile b/sound/core/seq/instr/Makefile
--- a/sound/core/seq/instr/Makefile	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/instr/Makefile	2004-07-27 18:28:33 -07:00
@@ -17,35 +17,7 @@
 sequencer = $(if $(subst y,,$(CONFIG_SND_SEQUENCER)),$(if $(1),m),$(if $(CONFIG_SND_SEQUENCER),$(1)))
 
 # Toplevel Module Dependency
-obj-$(call sequencer,$(CONFIG_SND_ALS100)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_AZT2320)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_AZT3328)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_DT019X)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_ES18XX)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_OPL3SA2)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_AD1816A)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_CS4232)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_CS4236)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_ES1688)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_GUSCLASSIC)) += snd-ainstr-iw.o snd-ainstr-gf1.o snd-ainstr-simple.o
-obj-$(call sequencer,$(CONFIG_SND_GUSMAX)) += snd-ainstr-iw.o snd-ainstr-gf1.o snd-ainstr-simple.o
-obj-$(call sequencer,$(CONFIG_SND_GUSEXTREME)) += snd-ainstr-iw.o snd-ainstr-gf1.o snd-ainstr-simple.o snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_INTERWAVE)) += snd-ainstr-iw.o snd-ainstr-gf1.o snd-ainstr-simple.o
-obj-$(call sequencer,$(CONFIG_SND_INTERWAVE_STB)) += snd-ainstr-iw.o snd-ainstr-gf1.o snd-ainstr-simple.o
-obj-$(call sequencer,$(CONFIG_SND_OPTI92X_AD1848)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_OPTI92X_CS4231)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_OPTI93X)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_SB8)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_SB16)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_SBAWE)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_WAVEFRONT)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_ALS4000)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_CMIPCI)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_CS4281)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_ES1938)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_FM801)) += snd-ainstr-fm.o
-obj-$(call sequencer,$(CONFIG_SND_SONICVIBES)) += snd-ainstr-fm.o
+obj-$(call sequencer,$(CONFIG_SND_OPL3_LIB)) += snd-ainstr-fm.o
+obj-$(call sequencer,$(CONFIG_SND_OPL4_LIB)) += snd-ainstr-fm.o
+obj-$(call sequencer,$(CONFIG_SND_GUS_SYNTH)) += snd-ainstr-gf1.o snd-ainstr-simple.o snd-ainstr-iw.o
 obj-$(call sequencer,$(CONFIG_SND_TRIDENT)) += snd-ainstr-simple.o
-obj-$(call sequencer,$(CONFIG_SND_YMFPCI)) += snd-ainstr-fm.o
-
-obj-m := $(sort $(obj-m))
diff -Nru a/sound/core/seq/instr/ainstr_fm.c b/sound/core/seq/instr/ainstr_fm.c
--- a/sound/core/seq/instr/ainstr_fm.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/instr/ainstr_fm.c	2004-07-27 18:28:33 -07:00
@@ -29,8 +29,6 @@
 MODULE_AUTHOR("Uros Bizjak <uros@kss-loka.si>");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture FM Instrument support.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 char *snd_seq_fm_id = SNDRV_SEQ_INSTR_ID_OPL2_3;
 
diff -Nru a/sound/core/seq/instr/ainstr_gf1.c b/sound/core/seq/instr/ainstr_gf1.c
--- a/sound/core/seq/instr/ainstr_gf1.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/instr/ainstr_gf1.c	2004-07-27 18:28:33 -07:00
@@ -30,8 +30,6 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture GF1 (GUS) Patch support.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 char *snd_seq_gf1_id = SNDRV_SEQ_INSTR_ID_GUS_PATCH;
 
@@ -64,7 +62,7 @@
 		return -EFAULT;
 	*data += sizeof(xp);
 	*len -= sizeof(xp);
-	wp = (gf1_wave_t *)snd_kcalloc(sizeof(*wp), gfp_mask);
+	wp = kcalloc(1, sizeof(*wp), gfp_mask);
 	if (wp == NULL)
 		return -ENOMEM;
 	wp->share_id[0] = le32_to_cpu(xp.share_id[0]);
diff -Nru a/sound/core/seq/instr/ainstr_iw.c b/sound/core/seq/instr/ainstr_iw.c
--- a/sound/core/seq/instr/ainstr_iw.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/instr/ainstr_iw.c	2004-07-27 18:28:33 -07:00
@@ -30,8 +30,6 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture IWFFFF support.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 char *snd_seq_iwffff_id = SNDRV_SEQ_INSTR_ID_INTERWAVE;
 
@@ -96,7 +94,7 @@
 		points_size = (le16_to_cpu(rx.nattack) + le16_to_cpu(rx.nrelease)) * 2 * sizeof(__u16);
 		if (points_size > *len)
 			return -EINVAL;
-		rp = (iwffff_env_record_t *)snd_kcalloc(sizeof(*rp) + points_size, gfp_mask);
+		rp = kcalloc(1, sizeof(*rp) + points_size, gfp_mask);
 		if (rp == NULL)
 			return -ENOMEM;
 		rp->nattack = le16_to_cpu(rx.nattack);
@@ -142,7 +140,7 @@
 		return -EFAULT;
 	*data += sizeof(xp);
 	*len -= sizeof(xp);
-	wp = (iwffff_wave_t *)snd_kcalloc(sizeof(*wp), gfp_mask);
+	wp = kcalloc(1, sizeof(*wp), gfp_mask);
 	if (wp == NULL)
 		return -ENOMEM;
 	wp->share_id[0] = le32_to_cpu(xp.share_id[0]);
@@ -275,7 +273,7 @@
 			snd_seq_iwffff_instr_free(ops, ip, atomic);
 			return -EINVAL;
 		}
-		lp = (iwffff_layer_t *)snd_kcalloc(sizeof(*lp), gfp_mask);
+		lp = kcalloc(1, sizeof(*lp), gfp_mask);
 		if (lp == NULL) {
 			snd_seq_iwffff_instr_free(ops, ip, atomic);
 			return -ENOMEM;
diff -Nru a/sound/core/seq/instr/ainstr_simple.c b/sound/core/seq/instr/ainstr_simple.c
--- a/sound/core/seq/instr/ainstr_simple.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/instr/ainstr_simple.c	2004-07-27 18:28:33 -07:00
@@ -30,8 +30,6 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture Simple Instrument support.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 char *snd_seq_simple_id = SNDRV_SEQ_INSTR_ID_SIMPLE;
 
diff -Nru a/sound/core/seq/oss/seq_oss.c b/sound/core/seq/oss/seq_oss.c
--- a/sound/core/seq/oss/seq_oss.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/oss/seq_oss.c	2004-07-27 18:28:33 -07:00
@@ -35,7 +35,6 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("OSS-compatible sequencer module");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 /* Takashi says this is really only for sound-service-0-, but this is OK. */
 MODULE_ALIAS_SNDRV_MINOR(SNDRV_MINOR_OSS_SEQUENCER);
 MODULE_ALIAS_SNDRV_MINOR(SNDRV_MINOR_OSS_MUSIC);
diff -Nru a/sound/core/seq/oss/seq_oss_init.c b/sound/core/seq/oss/seq_oss_init.c
--- a/sound/core/seq/oss/seq_oss_init.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/oss/seq_oss_init.c	2004-07-27 18:28:32 -07:00
@@ -183,7 +183,7 @@
 	int i, rc;
 	seq_oss_devinfo_t *dp;
 
-	if ((dp = snd_kcalloc(sizeof(*dp), GFP_KERNEL)) == NULL) {
+	if ((dp = kcalloc(1, sizeof(*dp), GFP_KERNEL)) == NULL) {
 		snd_printk(KERN_ERR "can't malloc device info\n");
 		return -ENOMEM;
 	}
@@ -211,7 +211,7 @@
 	snd_seq_oss_midi_setup(dp);
 
 	if (dp->synth_opened == 0 && dp->max_mididev == 0) {
-		snd_printk(KERN_ERR "no device found\n");
+		/* snd_printk(KERN_ERR "no device found\n"); */
 		rc = -ENODEV;
 		goto _error;
 	}
diff -Nru a/sound/core/seq/oss/seq_oss_ioctl.c b/sound/core/seq/oss/seq_oss_ioctl.c
--- a/sound/core/seq/oss/seq_oss_ioctl.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/oss/seq_oss_ioctl.c	2004-07-27 18:28:32 -07:00
@@ -28,16 +28,54 @@
 #include "seq_oss_midi.h"
 #include "seq_oss_event.h"
 
+static int snd_seq_oss_synth_info_user(seq_oss_devinfo_t *dp, void __user *arg)
+{
+	struct synth_info info;
+
+	if (copy_from_user(&info, arg, sizeof(info)))
+		return -EFAULT;
+	if (snd_seq_oss_synth_make_info(dp, info.device, &info) < 0)
+		return -EINVAL;
+	if (copy_to_user(arg, &info, sizeof(info)))
+		return -EFAULT;
+	return 0;
+}
+
+static int snd_seq_oss_midi_info_user(seq_oss_devinfo_t *dp, void __user *arg)
+{
+	struct midi_info info;
+
+	if (copy_from_user(&info, arg, sizeof(info)))
+		return -EFAULT;
+	if (snd_seq_oss_midi_make_info(dp, info.device, &info) < 0)
+		return -EINVAL;
+	if (copy_to_user(arg, &info, sizeof(info)))
+		return -EFAULT;
+	return 0;
+}
+
+static int snd_seq_oss_oob_user(seq_oss_devinfo_t *dp, void __user *arg)
+{
+	unsigned char ev[8];
+	snd_seq_event_t tmpev;
+
+	if (copy_from_user(ev, arg, 8))
+		return -EFAULT;
+	memset(&tmpev, 0, sizeof(tmpev));
+	snd_seq_oss_fill_addr(dp, &tmpev, dp->addr.port, dp->addr.client);
+	tmpev.time.tick = 0;
+	if (! snd_seq_oss_process_event(dp, (evrec_t*)ev, &tmpev)) {
+		snd_seq_oss_dispatch(dp, &tmpev, 0, 0);
+	}
+	return 0;
+}
+
 int
 snd_seq_oss_ioctl(seq_oss_devinfo_t *dp, unsigned int cmd, unsigned long carg)
 {
 	int dev, val;
-	struct synth_info inf;
-	struct midi_info minf;
-	unsigned char ev[8];
 	void __user *arg = (void __user *)carg;
 	int __user *p = arg;
-	snd_seq_event_t tmpev;
 
 	switch (cmd) {
 	case SNDCTL_TMR_TIMEBASE:
@@ -124,35 +162,15 @@
 	case SNDCTL_SYNTH_INFO:
 	case SNDCTL_SYNTH_ID:
 		debug_printk(("synth info\n"));
-		if (copy_from_user(&inf, arg, sizeof(inf)))
-			return -EFAULT;
-		if (snd_seq_oss_synth_make_info(dp, inf.device, &inf) < 0)
-			return -EINVAL;
-		if (copy_to_user(arg, &inf, sizeof(inf)))
-			return -EFAULT;
-		return 0;
+		return snd_seq_oss_synth_info_user(dp, arg);
 
 	case SNDCTL_SEQ_OUTOFBAND:
-		debug_printk(("out of bound\n"));
-		if (copy_from_user(ev, arg, 8))
-			return -EFAULT;
-		memset(&tmpev, 0, sizeof(tmpev));
-		snd_seq_oss_fill_addr(dp, &tmpev, dp->addr.port, dp->addr.client);
-		tmpev.time.tick = 0;
-		if (! snd_seq_oss_process_event(dp, (evrec_t*)ev, &tmpev)) {
-			snd_seq_oss_dispatch(dp, &tmpev, 0, 0);
-		}
-		return 0;
+		debug_printk(("out of band\n"));
+		return snd_seq_oss_oob_user(dp, arg);
 
 	case SNDCTL_MIDI_INFO:
 		debug_printk(("midi info\n"));
-		if (copy_from_user(&minf, arg, sizeof(minf)))
-			return -EFAULT;
-		if (snd_seq_oss_midi_make_info(dp, minf.device, &minf) < 0)
-			return -EINVAL;
-		if (copy_to_user(arg, &minf, sizeof(minf)))
-			return -EFAULT;
-		return 0;
+		return snd_seq_oss_midi_info_user(dp, arg);
 
 	case SNDCTL_SEQ_THRESHOLD:
 		debug_printk(("threshold\n"));
diff -Nru a/sound/core/seq/oss/seq_oss_midi.c b/sound/core/seq/oss/seq_oss_midi.c
--- a/sound/core/seq/oss/seq_oss_midi.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/oss/seq_oss_midi.c	2004-07-27 18:28:32 -07:00
@@ -171,7 +171,7 @@
 	/*
 	 * allocate midi info record
 	 */
-	if ((mdev = snd_kcalloc(sizeof(*mdev), GFP_KERNEL)) == NULL) {
+	if ((mdev = kcalloc(1, sizeof(*mdev), GFP_KERNEL)) == NULL) {
 		snd_printk(KERN_ERR "can't malloc midi info\n");
 		return -ENOMEM;
 	}
diff -Nru a/sound/core/seq/oss/seq_oss_readq.c b/sound/core/seq/oss/seq_oss_readq.c
--- a/sound/core/seq/oss/seq_oss_readq.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/oss/seq_oss_readq.c	2004-07-27 18:28:32 -07:00
@@ -45,12 +45,12 @@
 {
 	seq_oss_readq_t *q;
 
-	if ((q = snd_kcalloc(sizeof(*q), GFP_KERNEL)) == NULL) {
+	if ((q = kcalloc(1, sizeof(*q), GFP_KERNEL)) == NULL) {
 		snd_printk(KERN_ERR "can't malloc read queue\n");
 		return NULL;
 	}
 
-	if ((q->q = snd_kcalloc(sizeof(evrec_t) * maxlen, GFP_KERNEL)) == NULL) {
+	if ((q->q = kcalloc(maxlen, sizeof(evrec_t), GFP_KERNEL)) == NULL) {
 		snd_printk(KERN_ERR "can't malloc read queue buffer\n");
 		kfree(q);
 		return NULL;
diff -Nru a/sound/core/seq/oss/seq_oss_synth.c b/sound/core/seq/oss/seq_oss_synth.c
--- a/sound/core/seq/oss/seq_oss_synth.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/oss/seq_oss_synth.c	2004-07-27 18:28:32 -07:00
@@ -103,7 +103,7 @@
 	snd_seq_oss_reg_t *reg = SNDRV_SEQ_DEVICE_ARGPTR(dev);
 	unsigned long flags;
 
-	if ((rec = snd_kcalloc(sizeof(*rec), GFP_KERNEL)) == NULL) {
+	if ((rec = kcalloc(1, sizeof(*rec), GFP_KERNEL)) == NULL) {
 		snd_printk(KERN_ERR "can't malloc synth info\n");
 		return -ENOMEM;
 	}
@@ -244,7 +244,9 @@
 		}
 		info->nr_voices = rec->nr_voices;
 		if (info->nr_voices > 0) {
-			info->ch = snd_kcalloc(sizeof(seq_oss_chinfo_t) * info->nr_voices, GFP_KERNEL);
+			info->ch = kcalloc(info->nr_voices, sizeof(seq_oss_chinfo_t), GFP_KERNEL);
+			if (!info->ch)
+				BUG();
 			reset_channels(info);
 		}
 		debug_printk(("synth %d assigned\n", i));
@@ -505,7 +507,7 @@
 
 	sysex = dp->synths[dev].sysex;
 	if (sysex == NULL) {
-		sysex = snd_kcalloc(sizeof(*sysex), GFP_KERNEL);
+		sysex = kcalloc(1, sizeof(*sysex), GFP_KERNEL);
 		if (sysex == NULL)
 			return -ENOMEM;
 		dp->synths[dev].sysex = sysex;
diff -Nru a/sound/core/seq/oss/seq_oss_timer.c b/sound/core/seq/oss/seq_oss_timer.c
--- a/sound/core/seq/oss/seq_oss_timer.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/oss/seq_oss_timer.c	2004-07-27 18:28:32 -07:00
@@ -46,7 +46,7 @@
 {
 	seq_oss_timer_t *rec;
 
-	rec = snd_kcalloc(sizeof(*rec), GFP_KERNEL);
+	rec = kcalloc(1, sizeof(*rec), GFP_KERNEL);
 	if (rec == NULL)
 		return NULL;
 
@@ -168,7 +168,7 @@
 	tmprec.queue = dp->queue;
 	tmprec.ppq = timer->ppq;
 	tmprec.tempo = timer->tempo;
-	snd_seq_kernel_client_ctl(dp->cseq, SNDRV_SEQ_IOCTL_SET_QUEUE_TEMPO, &tmprec);
+	snd_seq_set_queue_tempo(dp->cseq, &tmprec);
 
 	send_timer_event(dp, SNDRV_SEQ_EVENT_START, 0);
 	timer->running = 1;
diff -Nru a/sound/core/seq/oss/seq_oss_writeq.c b/sound/core/seq/oss/seq_oss_writeq.c
--- a/sound/core/seq/oss/seq_oss_writeq.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/oss/seq_oss_writeq.c	2004-07-27 18:28:33 -07:00
@@ -37,7 +37,7 @@
 	seq_oss_writeq_t *q;
 	snd_seq_client_pool_t pool;
 
-	if ((q = snd_kcalloc(sizeof(*q), GFP_KERNEL)) == NULL)
+	if ((q = kcalloc(1, sizeof(*q), GFP_KERNEL)) == NULL)
 		return NULL;
 	q->dp = dp;
 	q->maxlen = maxlen;
diff -Nru a/sound/core/seq/seq.c b/sound/core/seq/seq.c
--- a/sound/core/seq/seq.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq.c	2004-07-27 18:28:33 -07:00
@@ -50,8 +50,6 @@
 MODULE_AUTHOR("Frank van de Pol <fvdpol@coil.demon.nl>, Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 static int boot_devs;
 module_param_array(seq_client_load, int, boot_devs, 0444);
@@ -133,6 +131,7 @@
 EXPORT_SYMBOL(snd_seq_kernel_client_dispatch);
 EXPORT_SYMBOL(snd_seq_kernel_client_ctl);
 EXPORT_SYMBOL(snd_seq_kernel_client_write_poll);
+EXPORT_SYMBOL(snd_seq_set_queue_tempo);
   /* seq_memory.c */
 EXPORT_SYMBOL(snd_seq_expand_var_event);
 EXPORT_SYMBOL(snd_seq_dump_var_event);
diff -Nru a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
--- a/sound/core/seq/seq_clientmgr.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/seq_clientmgr.c	2004-07-27 18:28:32 -07:00
@@ -202,7 +202,7 @@
 	client_t *client;
 
 	/* init client data */
-	client = snd_kcalloc(sizeof(client_t), GFP_KERNEL);
+	client = kcalloc(1, sizeof(*client), GFP_KERNEL);
 	if (client == NULL)
 		return NULL;
 	client->pool = snd_seq_pool_new(poolsize);
@@ -1694,6 +1694,13 @@
 
 
 /* SET_QUEUE_TEMPO ioctl() */
+int snd_seq_set_queue_tempo(int client, snd_seq_queue_tempo_t *tempo)
+{
+	if (!snd_seq_queue_check_access(tempo->queue, client))
+		return -EPERM;
+	return snd_seq_queue_timer_set_tempo(tempo->queue, client, tempo);
+}
+
 static int snd_seq_ioctl_set_queue_tempo(client_t * client, void __user *arg)
 {
 	int result;
@@ -1702,15 +1709,8 @@
 	if (copy_from_user(&tempo, arg, sizeof(tempo)))
 		return -EFAULT;
 
-	if (snd_seq_queue_check_access(tempo.queue, client->number)) {
-		result = snd_seq_queue_timer_set_tempo(tempo.queue, client->number, &tempo);
-		if (result < 0)
-			return result;
-	} else {
-		return -EPERM;
-	}	
-
-	return 0;
+	result = snd_seq_set_queue_tempo(client->number, &tempo);
+	return result < 0 ? result : 0;
 }
 
 
diff -Nru a/sound/core/seq/seq_device.c b/sound/core/seq/seq_device.c
--- a/sound/core/seq/seq_device.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/seq_device.c	2004-07-27 18:28:32 -07:00
@@ -48,8 +48,6 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("ALSA sequencer device management");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 /*
  * driver list
@@ -181,7 +179,7 @@
 	if (ops == NULL)
 		return -ENOMEM;
 
-	dev = snd_magic_kcalloc(snd_seq_device_t, sizeof(*dev) + argsize, GFP_KERNEL);
+	dev = kcalloc(1, sizeof(*dev)*2 + argsize, GFP_KERNEL);
 	if (dev == NULL) {
 		unlock_driver(ops);
 		return -ENOMEM;
@@ -235,7 +233,7 @@
 	free_device(dev, ops);
 	if (dev->private_free)
 		dev->private_free(dev);
-	snd_magic_kfree(dev);
+	kfree(dev);
 
 	unlock_driver(ops);
 
@@ -244,7 +242,7 @@
 
 static int snd_seq_device_dev_free(snd_device_t *device)
 {
-	snd_seq_device_t *dev = snd_magic_cast(snd_seq_device_t, device->device_data, return -ENXIO);
+	snd_seq_device_t *dev = device->device_data;
 	return snd_seq_device_free(dev);
 }
 
@@ -253,7 +251,7 @@
  */
 static int snd_seq_device_dev_register(snd_device_t *device)
 {
-	snd_seq_device_t *dev = snd_magic_cast(snd_seq_device_t, device->device_data, return -ENXIO);
+	snd_seq_device_t *dev = device->device_data;
 	ops_list_t *ops;
 
 	ops = find_driver(dev->id, 0);
@@ -275,7 +273,7 @@
  */
 static int snd_seq_device_dev_disconnect(snd_device_t *device)
 {
-	snd_seq_device_t *dev = snd_magic_cast(snd_seq_device_t, device->device_data, return -ENXIO);
+	snd_seq_device_t *dev = device->device_data;
 	ops_list_t *ops;
 
 	ops = find_driver(dev->id, 0);
@@ -293,7 +291,7 @@
  */
 static int snd_seq_device_dev_unregister(snd_device_t *device)
 {
-	snd_seq_device_t *dev = snd_magic_cast(snd_seq_device_t, device->device_data, return -ENXIO);
+	snd_seq_device_t *dev = device->device_data;
 	return snd_seq_device_free(dev);
 }
 
diff -Nru a/sound/core/seq/seq_dummy.c b/sound/core/seq/seq_dummy.c
--- a/sound/core/seq/seq_dummy.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_dummy.c	2004-07-27 18:28:33 -07:00
@@ -63,8 +63,6 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("ALSA sequencer MIDI-through client");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 static int ports = 1;
 static int duplex = 0;
@@ -95,7 +93,7 @@
 	int i;
 	snd_seq_event_t ev;
 
-	p = snd_magic_cast(snd_seq_dummy_port_t, private_data, return -EINVAL);
+	p = private_data;
 	memset(&ev, 0, sizeof(ev));
 	if (p->duplex)
 		ev.source.port = p->connect;
@@ -122,7 +120,7 @@
 	snd_seq_dummy_port_t *p;
 	snd_seq_event_t tmpev;
 
-	p = snd_magic_cast(snd_seq_dummy_port_t, private_data, return -EINVAL);
+	p = private_data;
 	if (ev->source.client == SNDRV_SEQ_CLIENT_SYSTEM ||
 	    ev->type == SNDRV_SEQ_EVENT_KERNEL_ERROR)
 		return 0; /* ignore system messages */
@@ -150,8 +148,8 @@
 {
 	snd_seq_dummy_port_t *p;
 
-	p = snd_magic_cast(snd_seq_dummy_port_t, private_data, return);
-	snd_magic_kfree(p);
+	p = private_data;
+	kfree(p);
 }
 
 /*
@@ -164,7 +162,7 @@
 	snd_seq_port_callback_t pcb;
 	snd_seq_dummy_port_t *rec;
 
-	if ((rec = snd_magic_kcalloc(snd_seq_dummy_port_t, 0, GFP_KERNEL)) == NULL)
+	if ((rec = kcalloc(1, sizeof(*rec), GFP_KERNEL)) == NULL)
 		return NULL;
 
 	rec->client = my_client;
@@ -190,7 +188,7 @@
 	pcb.private_data = rec;
 	pinfo.kernel = &pcb;
 	if (snd_seq_kernel_client_ctl(my_client, SNDRV_SEQ_IOCTL_CREATE_PORT, &pinfo) < 0) {
-		snd_magic_kfree(rec);
+		kfree(rec);
 		return NULL;
 	}
 	rec->port = pinfo.addr.port;
diff -Nru a/sound/core/seq/seq_fifo.c b/sound/core/seq/seq_fifo.c
--- a/sound/core/seq/seq_fifo.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_fifo.c	2004-07-27 18:28:33 -07:00
@@ -33,7 +33,7 @@
 {
 	fifo_t *f;
 
-	f = snd_kcalloc(sizeof(fifo_t), GFP_KERNEL);
+	f = kcalloc(1, sizeof(*f), GFP_KERNEL);
 	if (f == NULL) {
 		snd_printd("malloc failed for snd_seq_fifo_new() \n");
 		return NULL;
diff -Nru a/sound/core/seq/seq_instr.c b/sound/core/seq/seq_instr.c
--- a/sound/core/seq/seq_instr.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_instr.c	2004-07-27 18:28:33 -07:00
@@ -29,8 +29,6 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer instrument library.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 
 static void snd_instr_lock_ops(snd_seq_kinstr_list_t *list)
@@ -53,10 +51,7 @@
 
 snd_seq_kcluster_t *snd_seq_cluster_new(int atomic)
 {
-	snd_seq_kcluster_t *cluster;
-	
-	cluster = (snd_seq_kcluster_t *) snd_kcalloc(sizeof(snd_seq_kcluster_t), atomic ? GFP_ATOMIC : GFP_KERNEL);
-	return cluster;
+	return kcalloc(1, sizeof(snd_seq_kcluster_t), atomic ? GFP_ATOMIC : GFP_KERNEL);
 }
 
 void snd_seq_cluster_free(snd_seq_kcluster_t *cluster, int atomic)
@@ -70,7 +65,7 @@
 {
 	snd_seq_kinstr_t *instr;
 	
-	instr = (snd_seq_kinstr_t *) snd_kcalloc(sizeof(snd_seq_kinstr_t) + add_len, atomic ? GFP_ATOMIC : GFP_KERNEL);
+	instr = kcalloc(1, sizeof(snd_seq_kinstr_t) + add_len, atomic ? GFP_ATOMIC : GFP_KERNEL);
 	if (instr == NULL)
 		return NULL;
 	instr->add_len = add_len;
@@ -94,7 +89,7 @@
 {
 	snd_seq_kinstr_list_t *list;
 
-	list = (snd_seq_kinstr_list_t *) snd_kcalloc(sizeof(snd_seq_kinstr_list_t), GFP_KERNEL);
+	list = kcalloc(1, sizeof(snd_seq_kinstr_list_t), GFP_KERNEL);
 	if (list == NULL)
 		return NULL;
 	spin_lock_init(&list->lock);
diff -Nru a/sound/core/seq/seq_memory.c b/sound/core/seq/seq_memory.c
--- a/sound/core/seq/seq_memory.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/seq_memory.c	2004-07-27 18:28:32 -07:00
@@ -453,7 +453,7 @@
 	pool_t *pool;
 
 	/* create pool block */
-	pool = snd_kcalloc(sizeof(pool_t), GFP_KERNEL);
+	pool = kcalloc(1, sizeof(*pool), GFP_KERNEL);
 	if (pool == NULL) {
 		snd_printd("seq: malloc failed for pool\n");
 		return NULL;
diff -Nru a/sound/core/seq/seq_midi.c b/sound/core/seq/seq_midi.c
--- a/sound/core/seq/seq_midi.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_midi.c	2004-07-27 18:28:33 -07:00
@@ -43,8 +43,6 @@
 MODULE_AUTHOR("Frank van de Pol <fvdpol@coil.demon.nl>, Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer MIDI synth.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 int output_buffer_size = PAGE_SIZE;
 module_param(output_buffer_size, int, 0644);
 MODULE_PARM_DESC(output_buffer_size, "Output buffer size in bytes.");
@@ -323,7 +321,7 @@
 	client = synths[card->number];
 	if (client == NULL) {
 		newclient = 1;
-		client = snd_kcalloc(sizeof(seq_midisynth_client_t), GFP_KERNEL);
+		client = kcalloc(1, sizeof(*client), GFP_KERNEL);
 		if (client == NULL) {
 			up(&register_mutex);
 			return -ENOMEM;
@@ -341,7 +339,7 @@
 	} else if (device == 0)
 		set_client_name(client, card, &info); /* use the first device's name */
 
-	msynth = snd_kcalloc(sizeof(seq_midisynth_t) * ports, GFP_KERNEL);
+	msynth = kcalloc(ports, sizeof(seq_midisynth_t), GFP_KERNEL);
 	if (msynth == NULL)
 		goto __nomem;
 
diff -Nru a/sound/core/seq/seq_midi_emul.c b/sound/core/seq/seq_midi_emul.c
--- a/sound/core/seq/seq_midi_emul.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_midi_emul.c	2004-07-27 18:28:33 -07:00
@@ -42,8 +42,6 @@
 MODULE_AUTHOR("Takashi Iwai / Steve Ratcliffe");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture sequencer MIDI emulation.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 
 /* Prototypes for static functions */
 static void note_off(snd_midi_op_t *ops, void *drv, snd_midi_channel_t *chan, int note, int vel);
diff -Nru a/sound/core/seq/seq_midi_event.c b/sound/core/seq/seq_midi_event.c
--- a/sound/core/seq/seq_midi_event.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/seq_midi_event.c	2004-07-27 18:28:32 -07:00
@@ -118,7 +118,7 @@
 	snd_midi_event_t *dev;
 
 	*rdev = NULL;
-	dev = (snd_midi_event_t *)snd_kcalloc(sizeof(snd_midi_event_t), GFP_KERNEL);
+	dev = kcalloc(1, sizeof(*dev), GFP_KERNEL);
 	if (dev == NULL)
 		return -ENOMEM;
 	if (bufsize > 0) {
diff -Nru a/sound/core/seq/seq_ports.c b/sound/core/seq/seq_ports.c
--- a/sound/core/seq/seq_ports.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_ports.c	2004-07-27 18:28:33 -07:00
@@ -141,7 +141,7 @@
 	}
 
 	/* create a new port */
-	new_port = snd_kcalloc(sizeof(client_port_t), GFP_KERNEL);
+	new_port = kcalloc(1, sizeof(*new_port), GFP_KERNEL);
 	if (! new_port) {
 		snd_printd("malloc failed for registering client port\n");
 		return NULL;	/* failure, out of memory */
@@ -488,7 +488,7 @@
 	unsigned long flags;
 	int exclusive;
 
-	subs = snd_kcalloc(sizeof(*subs), GFP_KERNEL);
+	subs = kcalloc(1, sizeof(*subs), GFP_KERNEL);
 	if (! subs)
 		return -ENOMEM;
 
diff -Nru a/sound/core/seq/seq_prioq.c b/sound/core/seq/seq_prioq.c
--- a/sound/core/seq/seq_prioq.c	2004-07-27 18:28:32 -07:00
+++ b/sound/core/seq/seq_prioq.c	2004-07-27 18:28:32 -07:00
@@ -59,7 +59,7 @@
 {
 	prioq_t *f;
 
-	f = snd_kcalloc(sizeof(prioq_t), GFP_KERNEL);
+	f = kcalloc(1, sizeof(*f), GFP_KERNEL);
 	if (f == NULL) {
 		snd_printd("oops: malloc failed for snd_seq_prioq_new()\n");
 		return NULL;
diff -Nru a/sound/core/seq/seq_queue.c b/sound/core/seq/seq_queue.c
--- a/sound/core/seq/seq_queue.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_queue.c	2004-07-27 18:28:33 -07:00
@@ -111,7 +111,7 @@
 {
 	queue_t *q;
 
-	q = snd_kcalloc(sizeof(queue_t), GFP_KERNEL);
+	q = kcalloc(1, sizeof(*q), GFP_KERNEL);
 	if (q == NULL) {
 		snd_printd("malloc failed for snd_seq_queue_new()\n");
 		return NULL;
diff -Nru a/sound/core/seq/seq_timer.c b/sound/core/seq/seq_timer.c
--- a/sound/core/seq/seq_timer.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_timer.c	2004-07-27 18:28:33 -07:00
@@ -59,7 +59,7 @@
 {
 	seq_timer_t *tmr;
 	
-	tmr = snd_kcalloc(sizeof(seq_timer_t), GFP_KERNEL);
+	tmr = kcalloc(1, sizeof(*tmr), GFP_KERNEL);
 	if (tmr == NULL) {
 		snd_printd("malloc failed for snd_seq_timer_new() \n");
 		return NULL;
diff -Nru a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c
--- a/sound/core/seq/seq_virmidi.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/seq/seq_virmidi.c	2004-07-27 18:28:33 -07:00
@@ -115,7 +115,7 @@
 {
 	snd_virmidi_dev_t *rdev;
 
-	rdev = snd_magic_cast(snd_virmidi_dev_t, rmidi->private_data, return -EINVAL);
+	rdev = rmidi->private_data;
 	return snd_virmidi_dev_receive_event(rdev, ev);
 }
 
@@ -127,7 +127,7 @@
 {
 	snd_virmidi_dev_t *rdev;
 
-	rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
+	rdev = private_data;
 	if (!(rdev->flags & SNDRV_VIRMIDI_USE))
 		return 0; /* ignored */
 	return snd_virmidi_dev_receive_event(rdev, ev);
@@ -138,7 +138,7 @@
  */
 static void snd_virmidi_input_trigger(snd_rawmidi_substream_t * substream, int up)
 {
-	snd_virmidi_t *vmidi = snd_magic_cast(snd_virmidi_t, substream->runtime->private_data, return);
+	snd_virmidi_t *vmidi = substream->runtime->private_data;
 
 	if (up) {
 		vmidi->trigger = 1;
@@ -152,7 +152,7 @@
  */
 static void snd_virmidi_output_trigger(snd_rawmidi_substream_t * substream, int up)
 {
-	snd_virmidi_t *vmidi = snd_magic_cast(snd_virmidi_t, substream->runtime->private_data, return);
+	snd_virmidi_t *vmidi = substream->runtime->private_data;
 	int count, res;
 	unsigned char buf[32], *pbuf;
 
@@ -199,17 +199,17 @@
  */
 static int snd_virmidi_input_open(snd_rawmidi_substream_t * substream)
 {
-	snd_virmidi_dev_t *rdev = snd_magic_cast(snd_virmidi_dev_t, substream->rmidi->private_data, return -EINVAL);
+	snd_virmidi_dev_t *rdev = substream->rmidi->private_data;
 	snd_rawmidi_runtime_t *runtime = substream->runtime;
 	snd_virmidi_t *vmidi;
 	unsigned long flags;
 
-	vmidi = snd_magic_kcalloc(snd_virmidi_t, 0, GFP_KERNEL);
+	vmidi = kcalloc(1, sizeof(*vmidi), GFP_KERNEL);
 	if (vmidi == NULL)
 		return -ENOMEM;
 	vmidi->substream = substream;
 	if (snd_midi_event_new(0, &vmidi->parser) < 0) {
-		snd_magic_kfree(vmidi);
+		kfree(vmidi);
 		return -ENOMEM;
 	}
 	vmidi->seq_mode = rdev->seq_mode;
@@ -228,16 +228,16 @@
  */
 static int snd_virmidi_output_open(snd_rawmidi_substream_t * substream)
 {
-	snd_virmidi_dev_t *rdev = snd_magic_cast(snd_virmidi_dev_t, substream->rmidi->private_data, return -EINVAL);
+	snd_virmidi_dev_t *rdev = substream->rmidi->private_data;
 	snd_rawmidi_runtime_t *runtime = substream->runtime;
 	snd_virmidi_t *vmidi;
 
-	vmidi = snd_magic_kcalloc(snd_virmidi_t, 0, GFP_KERNEL);
+	vmidi = kcalloc(1, sizeof(*vmidi), GFP_KERNEL);
 	if (vmidi == NULL)
 		return -ENOMEM;
 	vmidi->substream = substream;
 	if (snd_midi_event_new(MAX_MIDI_EVENT_BUF, &vmidi->parser) < 0) {
-		snd_magic_kfree(vmidi);
+		kfree(vmidi);
 		return -ENOMEM;
 	}
 	vmidi->seq_mode = rdev->seq_mode;
@@ -254,11 +254,11 @@
  */
 static int snd_virmidi_input_close(snd_rawmidi_substream_t * substream)
 {
-	snd_virmidi_t *vmidi = snd_magic_cast(snd_virmidi_t, substream->runtime->private_data, return -EINVAL);
+	snd_virmidi_t *vmidi = substream->runtime->private_data;
 	snd_midi_event_free(vmidi->parser);
 	list_del(&vmidi->list);
 	substream->runtime->private_data = NULL;
-	snd_magic_kfree(vmidi);
+	kfree(vmidi);
 	return 0;
 }
 
@@ -267,10 +267,10 @@
  */
 static int snd_virmidi_output_close(snd_rawmidi_substream_t * substream)
 {
-	snd_virmidi_t *vmidi = snd_magic_cast(snd_virmidi_t, substream->runtime->private_data, return -EINVAL);
+	snd_virmidi_t *vmidi = substream->runtime->private_data;
 	snd_midi_event_free(vmidi->parser);
 	substream->runtime->private_data = NULL;
-	snd_magic_kfree(vmidi);
+	kfree(vmidi);
 	return 0;
 }
 
@@ -281,7 +281,7 @@
 {
 	snd_virmidi_dev_t *rdev;
 
-	rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
+	rdev = private_data;
 	if (!try_module_get(rdev->card->module))
 		return -EFAULT;
 	rdev->flags |= SNDRV_VIRMIDI_SUBSCRIBE;
@@ -295,7 +295,7 @@
 {
 	snd_virmidi_dev_t *rdev;
 
-	rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
+	rdev = private_data;
 	rdev->flags &= ~SNDRV_VIRMIDI_SUBSCRIBE;
 	module_put(rdev->card->module);
 	return 0;
@@ -309,7 +309,7 @@
 {
 	snd_virmidi_dev_t *rdev;
 
-	rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
+	rdev = private_data;
 	if (!try_module_get(rdev->card->module))
 		return -EFAULT;
 	rdev->flags |= SNDRV_VIRMIDI_USE;
@@ -323,7 +323,7 @@
 {
 	snd_virmidi_dev_t *rdev;
 
-	rdev = snd_magic_cast(snd_virmidi_dev_t, private_data, return -EINVAL);
+	rdev = private_data;
 	rdev->flags &= ~SNDRV_VIRMIDI_USE;
 	module_put(rdev->card->module);
 	return 0;
@@ -424,7 +424,7 @@
  */
 static int snd_virmidi_dev_register(snd_rawmidi_t *rmidi)
 {
-	snd_virmidi_dev_t *rdev = snd_magic_cast(snd_virmidi_dev_t, rmidi->private_data, return -ENXIO);
+	snd_virmidi_dev_t *rdev = rmidi->private_data;
 	int err;
 
 	switch (rdev->seq_mode) {
@@ -451,7 +451,7 @@
  */
 static int snd_virmidi_dev_unregister(snd_rawmidi_t *rmidi)
 {
-	snd_virmidi_dev_t *rdev = snd_magic_cast(snd_virmidi_dev_t, rmidi->private_data, return -ENXIO);
+	snd_virmidi_dev_t *rdev = rmidi->private_data;
 
 	if (rdev->seq_mode == SNDRV_VIRMIDI_SEQ_DISPATCH)
 		snd_virmidi_dev_detach_seq(rdev);
@@ -471,8 +471,8 @@
  */
 static void snd_virmidi_free(snd_rawmidi_t *rmidi)
 {
-	snd_virmidi_dev_t *rdev = snd_magic_cast(snd_virmidi_dev_t, rmidi->private_data, return);
-	snd_magic_kfree(rdev);
+	snd_virmidi_dev_t *rdev = rmidi->private_data;
+	kfree(rdev);
 }
 
 /*
@@ -493,7 +493,7 @@
 				   &rmidi)) < 0)
 		return err;
 	strcpy(rmidi->name, rmidi->id);
-	rdev = snd_magic_kcalloc(snd_virmidi_dev_t, 0, GFP_KERNEL);
+	rdev = kcalloc(1, sizeof(*rdev), GFP_KERNEL);
 	if (rdev == NULL) {
 		snd_device_free(card, rmidi);
 		return -ENOMEM;
diff -Nru a/sound/core/sound.c b/sound/core/sound.c
--- a/sound/core/sound.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/sound.c	2004-07-27 18:28:33 -07:00
@@ -44,19 +44,14 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Advanced Linux Sound Architecture driver for soundcards.");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_SUPPORTED_DEVICE("sound");
 module_param(major, int, 0444);
 MODULE_PARM_DESC(major, "Major # for sound driver.");
-MODULE_PARM_SYNTAX(major, "default:116,skill:devel");
 module_param(cards_limit, int, 0444);
 MODULE_PARM_DESC(cards_limit, "Count of auto-loadable soundcards.");
-MODULE_PARM_SYNTAX(cards_limit, "default:8,skill:advanced");
 MODULE_ALIAS_CHARDEV_MAJOR(CONFIG_SND_MAJOR);
 #ifdef CONFIG_DEVFS_FS
 module_param(device_mode, int, 0444);
 MODULE_PARM_DESC(device_mode, "Device file permission mask for devfs.");
-MODULE_PARM_SYNTAX(device_mode, "default:0666,base:8");
 #endif
 MODULE_ALIAS_CHARDEV_MAJOR(CONFIG_SND_MAJOR);
 
@@ -439,14 +434,11 @@
   /* memory.c */
 #ifdef CONFIG_SND_DEBUG_MEMORY
 EXPORT_SYMBOL(snd_hidden_kmalloc);
+EXPORT_SYMBOL(snd_hidden_kcalloc);
 EXPORT_SYMBOL(snd_hidden_kfree);
 EXPORT_SYMBOL(snd_hidden_vmalloc);
 EXPORT_SYMBOL(snd_hidden_vfree);
-EXPORT_SYMBOL(_snd_magic_kmalloc);
-EXPORT_SYMBOL(_snd_magic_kcalloc);
-EXPORT_SYMBOL(snd_magic_kfree);
 #endif
-EXPORT_SYMBOL(snd_kcalloc);
 EXPORT_SYMBOL(snd_kmalloc_strdup);
 EXPORT_SYMBOL(copy_to_user_fromio);
 EXPORT_SYMBOL(copy_from_user_toio);
diff -Nru a/sound/core/timer.c b/sound/core/timer.c
--- a/sound/core/timer.c	2004-07-27 18:28:33 -07:00
+++ b/sound/core/timer.c	2004-07-27 18:28:33 -07:00
@@ -46,7 +46,6 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("ALSA timer interface");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 module_param(timer_limit, int, 0444);
 MODULE_PARM_DESC(timer_limit, "Maximum global timers in system.");
 
@@ -94,7 +93,7 @@
 static snd_timer_instance_t *snd_timer_instance_new(char *owner, snd_timer_t *timer)
 {
 	snd_timer_instance_t *timeri;
-	timeri = snd_kcalloc(sizeof(snd_timer_instance_t), GFP_KERNEL);
+	timeri = kcalloc(1, sizeof(*timeri), GFP_KERNEL);
 	if (timeri == NULL)
 		return NULL;
 	timeri->owner = snd_kmalloc_strdup(owner, GFP_KERNEL);
@@ -761,7 +760,7 @@
 	snd_assert(tid != NULL, return -EINVAL);
 	snd_assert(rtimer != NULL, return -EINVAL);
 	*rtimer = NULL;
-	timer = snd_magic_kcalloc(snd_timer_t, 0, GFP_KERNEL);
+	timer = kcalloc(1, sizeof(*timer), GFP_KERNEL);
 	if (timer == NULL)
 		return -ENOMEM;
 	timer->tmr_class = tid->dev_class;
@@ -792,19 +791,19 @@
 	snd_assert(timer != NULL, return -ENXIO);
 	if (timer->private_free)
 		timer->private_free(timer);
-	snd_magic_kfree(timer);
+	kfree(timer);
 	return 0;
 }
 
 int snd_timer_dev_free(snd_device_t *device)
 {
-	snd_timer_t *timer = snd_magic_cast(snd_timer_t, device->device_data, return -ENXIO);
+	snd_timer_t *timer = device->device_data;
 	return snd_timer_free(timer);
 }
 
 int snd_timer_dev_register(snd_device_t *dev)
 {
-	snd_timer_t *timer = snd_magic_cast(snd_timer_t, dev->device_data, return -ENXIO);
+	snd_timer_t *timer = dev->device_data;
 	snd_timer_t *timer1;
 	struct list_head *p;
 
@@ -865,7 +864,7 @@
 
 static int snd_timer_dev_unregister(snd_device_t *device)
 {
-	snd_timer_t *timer = snd_magic_cast(snd_timer_t, device->device_data, return -ENXIO);
+	snd_timer_t *timer = device->device_data;
 	return snd_timer_unregister(timer);
 }
 
@@ -1018,7 +1017,7 @@
 		return err;
 	strcpy(timer->name, "system timer");
 	timer->hw = snd_timer_system;
-	priv = (struct snd_timer_system_private *) snd_kcalloc(sizeof(struct snd_timer_system_private), GFP_KERNEL);
+	priv = kcalloc(1, sizeof(*priv), GFP_KERNEL);
 	if (priv == NULL) {
 		snd_timer_free(timer);
 		return -ENOMEM;
@@ -1086,7 +1085,7 @@
 				     unsigned long resolution,
 				     unsigned long ticks)
 {
-	snd_timer_user_t *tu = snd_magic_cast(snd_timer_user_t, timeri->callback_data, return);
+	snd_timer_user_t *tu = timeri->callback_data;
 	snd_timer_read_t *r;
 	int prev;
 	
@@ -1129,7 +1128,7 @@
 				     struct timespec *tstamp,
 				     unsigned long resolution)
 {
-	snd_timer_user_t *tu = snd_magic_cast(snd_timer_user_t, timeri->callback_data, return);
+	snd_timer_user_t *tu = timeri->callback_data;
 	snd_timer_tread_t r1;
 
 	if (event >= SNDRV_TIMER_EVENT_START && event <= SNDRV_TIMER_EVENT_PAUSE)
@@ -1148,7 +1147,7 @@
 				      unsigned long resolution,
 				      unsigned long ticks)
 {
-	snd_timer_user_t *tu = snd_magic_cast(snd_timer_user_t, timeri->callback_data, return);
+	snd_timer_user_t *tu = timeri->callback_data;
 	snd_timer_tread_t *r, r1;
 	struct timespec tstamp;
 	int prev, append = 0;
@@ -1200,7 +1199,7 @@
 {
 	snd_timer_user_t *tu;
 	
-	tu = snd_magic_kcalloc(snd_timer_user_t, 0, GFP_KERNEL);
+	tu = kcalloc(1, sizeof(*tu), GFP_KERNEL);
 	if (tu == NULL)
 		return -ENOMEM;
 	spin_lock_init(&tu->qlock);
@@ -1209,7 +1208,7 @@
 	tu->queue_size = 128;
 	tu->queue = (snd_timer_read_t *)kmalloc(tu->queue_size * sizeof(snd_timer_read_t), GFP_KERNEL);
 	if (tu->queue == NULL) {
-		snd_magic_kfree(tu);
+		kfree(tu);
 		return -ENOMEM;
 	}
 	file->private_data = tu;
@@ -1221,7 +1220,7 @@
 	snd_timer_user_t *tu;
 
 	if (file->private_data) {
-		tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+		tu = file->private_data;
 		file->private_data = NULL;
 		fasync_helper(-1, file, 0, &tu->fasync);
 		if (tu->timeri)
@@ -1230,7 +1229,7 @@
 			kfree(tu->queue);
 		if (tu->tqueue)
 			kfree(tu->tqueue);
-		snd_magic_kfree(tu);
+		kfree(tu);
 	}
 	return 0;
 }
@@ -1449,7 +1448,7 @@
 	char str[32];
 	int err;
 	
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	if (tu->timeri)
 		snd_timer_close(tu->timeri);
 	if (copy_from_user(&tselect, _tselect, sizeof(tselect)))
@@ -1495,7 +1494,7 @@
 	snd_timer_info_t info;
 	snd_timer_t *t;
 
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	snd_assert(tu->timeri != NULL, return -ENXIO);
 	t = tu->timeri->timer;
 	snd_assert(t != NULL, return -ENXIO);
@@ -1520,7 +1519,7 @@
 	snd_timer_tread_t *ttr;
 	int err;
 	
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	snd_assert(tu->timeri != NULL, return -ENXIO);
 	t = tu->timeri->timer;
 	snd_assert(t != NULL, return -ENXIO);
@@ -1608,7 +1607,7 @@
 	snd_timer_user_t *tu;
 	snd_timer_status_t status;
 	
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	snd_assert(tu->timeri != NULL, return -ENXIO);
 	memset(&status, 0, sizeof(status));
 	status.tstamp = tu->tstamp;
@@ -1628,7 +1627,7 @@
 	int err;
 	snd_timer_user_t *tu;
 		
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	snd_assert(tu->timeri != NULL, return -ENXIO);
 	snd_timer_stop(tu->timeri);
 	tu->timeri->lost = 0;
@@ -1641,7 +1640,7 @@
 	int err;
 	snd_timer_user_t *tu;
 		
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	snd_assert(tu->timeri != NULL, return -ENXIO);
 	return (err = snd_timer_stop(tu->timeri)) < 0 ? err : 0;
 }
@@ -1651,7 +1650,7 @@
 	int err;
 	snd_timer_user_t *tu;
 		
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	snd_assert(tu->timeri != NULL, return -ENXIO);
 	tu->timeri->lost = 0;
 	return (err = snd_timer_continue(tu->timeri)) < 0 ? err : 0;
@@ -1664,7 +1663,7 @@
 	void __user *argp = (void __user *)arg;
 	int __user *p = argp;
 	
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	switch (cmd) {
 	case SNDRV_TIMER_IOCTL_PVERSION:
 		return put_user(SNDRV_TIMER_VERSION, p) ? -EFAULT : 0;
@@ -1710,7 +1709,7 @@
 	snd_timer_user_t *tu;
 	int err;
 	
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	err = fasync_helper(fd, file, on, &tu->fasync);
         if (err < 0)
 		return err;
@@ -1723,7 +1722,7 @@
 	long result = 0, unit;
 	int err = 0;
 	
-	tu = snd_magic_cast(snd_timer_user_t, file->private_data, return -ENXIO);
+	tu = file->private_data;
 	unit = tu->tread ? sizeof(snd_timer_tread_t) : sizeof(snd_timer_read_t);
 	spin_lock_irq(&tu->qlock);
 	while ((long)count - result >= unit) {
@@ -1785,7 +1784,7 @@
         unsigned int mask;
         snd_timer_user_t *tu;
 
-        tu = snd_magic_cast(snd_timer_user_t, file->private_data, return 0);
+        tu = file->private_data;
 
         poll_wait(file, &tu->qchange_sleep, wait);
 	
diff -Nru a/sound/drivers/dummy.c b/sound/drivers/dummy.c
--- a/sound/drivers/dummy.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/dummy.c	2004-07-27 18:28:33 -07:00
@@ -34,8 +34,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Dummy soundcard (/dev/null)");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ALSA,Dummy soundcard}}");
+MODULE_SUPPORTED_DEVICE("{{ALSA,Dummy soundcard}}");
 
 #define MAX_PCM_DEVICES		4
 #define MAX_PCM_SUBSTREAMS	16
@@ -133,22 +132,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for dummy soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for dummy soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable this dummy soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(pcm_devs, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_devs, "PCM devices # (0-4) for dummy driver.");
-MODULE_PARM_SYNTAX(pcm_devs, SNDRV_ENABLED ",allows:{{0,4}},default:1,dialog:list");
 module_param_array(pcm_substreams, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_substreams, "PCM substreams # (1-16) for dummy driver.");
-MODULE_PARM_SYNTAX(pcm_substreams, SNDRV_ENABLED ",allows:{{1,16}},default:8,dialog:list");
 //module_param_array(midi_devs, int, boot_devs, 0444);
 //MODULE_PARM_DESC(midi_devs, "MIDI devices # (0-2) for dummy driver.");
-//MODULE_PARM_SYNTAX(midi_devs, SNDRV_ENABLED ",allows:{{0,2}},default:8,dialog:list");
 
 #define MIXER_ADDR_MASTER	0
 #define MIXER_ADDR_LINE		1
@@ -180,24 +173,10 @@
 static snd_card_t *snd_dummy_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
 
-static int snd_card_dummy_playback_ioctl(snd_pcm_substream_t * substream,
-				         unsigned int cmd,
-				         void *arg)
-{
-	return snd_pcm_lib_ioctl(substream, cmd, arg);
-}
-
-static int snd_card_dummy_capture_ioctl(snd_pcm_substream_t * substream,
-					unsigned int cmd,
-					void *arg)
-{
-	return snd_pcm_lib_ioctl(substream, cmd, arg);
-}
-
 static void snd_card_dummy_pcm_timer_start(snd_pcm_substream_t * substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_card_dummy_pcm_t *dpcm = snd_magic_cast(snd_card_dummy_pcm_t, runtime->private_data, return);
+	snd_card_dummy_pcm_t *dpcm = runtime->private_data;
 
 	dpcm->timer.expires = 1 + jiffies;
 	add_timer(&dpcm->timer);
@@ -206,7 +185,7 @@
 static void snd_card_dummy_pcm_timer_stop(snd_pcm_substream_t * substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_card_dummy_pcm_t *dpcm = snd_magic_cast(snd_card_dummy_pcm_t, runtime->private_data, return);
+	snd_card_dummy_pcm_t *dpcm = runtime->private_data;
 
 	del_timer(&dpcm->timer);
 }
@@ -240,7 +219,7 @@
 static int snd_card_dummy_pcm_prepare(snd_pcm_substream_t * substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_card_dummy_pcm_t *dpcm = snd_magic_cast(snd_card_dummy_pcm_t, runtime->private_data, return -ENXIO);
+	snd_card_dummy_pcm_t *dpcm = runtime->private_data;
 	unsigned int bps;
 
 	bps = runtime->rate * runtime->channels;
@@ -269,7 +248,7 @@
 
 static void snd_card_dummy_pcm_timer_function(unsigned long data)
 {
-	snd_card_dummy_pcm_t *dpcm = snd_magic_cast(snd_card_dummy_pcm_t, (void *)data, return);
+	snd_card_dummy_pcm_t *dpcm = (snd_card_dummy_pcm_t *)data;
 	
 	dpcm->timer.expires = 1 + jiffies;
 	add_timer(&dpcm->timer);
@@ -287,7 +266,7 @@
 static snd_pcm_uframes_t snd_card_dummy_playback_pointer(snd_pcm_substream_t * substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_card_dummy_pcm_t *dpcm = snd_magic_cast(snd_card_dummy_pcm_t, runtime->private_data, return -ENXIO);
+	snd_card_dummy_pcm_t *dpcm = runtime->private_data;
 
 	return bytes_to_frames(runtime, dpcm->pcm_buf_pos);
 }
@@ -295,7 +274,7 @@
 static snd_pcm_uframes_t snd_card_dummy_capture_pointer(snd_pcm_substream_t * substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_card_dummy_pcm_t *dpcm = snd_magic_cast(snd_card_dummy_pcm_t, runtime->private_data, return -ENXIO);
+	snd_card_dummy_pcm_t *dpcm = runtime->private_data;
 
 	return bytes_to_frames(runtime, dpcm->pcm_buf_pos);
 }
@@ -338,8 +317,19 @@
 
 static void snd_card_dummy_runtime_free(snd_pcm_runtime_t *runtime)
 {
-	snd_card_dummy_pcm_t *dpcm = snd_magic_cast(snd_card_dummy_pcm_t, runtime->private_data, return);
-	snd_magic_kfree(dpcm);
+	snd_card_dummy_pcm_t *dpcm = runtime->private_data;
+	kfree(dpcm);
+}
+
+static int snd_card_dummy_hw_params(snd_pcm_substream_t * substream,
+				    snd_pcm_hw_params_t * hw_params)
+{
+	return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
+}
+
+static int snd_card_dummy_hw_free(snd_pcm_substream_t * substream)
+{
+	return snd_pcm_lib_free_pages(substream);
 }
 
 static int snd_card_dummy_playback_open(snd_pcm_substream_t * substream)
@@ -348,13 +338,9 @@
 	snd_card_dummy_pcm_t *dpcm;
 	int err;
 
-	dpcm = snd_magic_kcalloc(snd_card_dummy_pcm_t, 0, GFP_KERNEL);
+	dpcm = kcalloc(1, sizeof(*dpcm), GFP_KERNEL);
 	if (dpcm == NULL)
 		return -ENOMEM;
-	if ((runtime->dma_area = snd_malloc_pages_fallback(MAX_BUFFER_SIZE, GFP_KERNEL, &runtime->dma_bytes)) == NULL) {
-		snd_magic_kfree(dpcm);
-		return -ENOMEM;
-	}
 	init_timer(&dpcm->timer);
 	dpcm->timer.data = (unsigned long) dpcm;
 	dpcm->timer.function = snd_card_dummy_pcm_timer_function;
@@ -370,7 +356,7 @@
 	if (substream->pcm->device & 2)
 		runtime->hw.info &= ~(SNDRV_PCM_INFO_MMAP|SNDRV_PCM_INFO_MMAP_VALID);
 	if ((err = add_playback_constraints(runtime)) < 0) {
-		snd_magic_kfree(dpcm);
+		kfree(dpcm);
 		return err;
 	}
 
@@ -383,14 +369,9 @@
 	snd_card_dummy_pcm_t *dpcm;
 	int err;
 
-	dpcm = snd_magic_kcalloc(snd_card_dummy_pcm_t, 0, GFP_KERNEL);
+	dpcm = kcalloc(1, sizeof(*dpcm), GFP_KERNEL);
 	if (dpcm == NULL)
 		return -ENOMEM;
-	if ((runtime->dma_area = snd_malloc_pages_fallback(MAX_BUFFER_SIZE, GFP_KERNEL, &runtime->dma_bytes)) == NULL) {
-		snd_magic_kfree(dpcm);
-		return -ENOMEM;
-	}
-	memset(runtime->dma_area, 0, runtime->dma_bytes);
 	init_timer(&dpcm->timer);
 	dpcm->timer.data = (unsigned long) dpcm;
 	dpcm->timer.function = snd_card_dummy_pcm_timer_function;
@@ -406,7 +387,7 @@
 	if (substream->pcm->device & 2)
 		runtime->hw.info &= ~(SNDRV_PCM_INFO_MMAP|SNDRV_PCM_INFO_MMAP_VALID);
 	if ((err = add_capture_constraints(runtime)) < 0) {
-		snd_magic_kfree(dpcm);
+		kfree(dpcm);
 		return err;
 	}
 
@@ -415,24 +396,20 @@
 
 static int snd_card_dummy_playback_close(snd_pcm_substream_t * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
-
-	snd_free_pages(runtime->dma_area, runtime->dma_bytes);
 	return 0;
 }
 
 static int snd_card_dummy_capture_close(snd_pcm_substream_t * substream)
 {
-	snd_pcm_runtime_t *runtime = substream->runtime;
-
-	snd_free_pages(runtime->dma_area, runtime->dma_bytes);
 	return 0;
 }
 
 static snd_pcm_ops_t snd_card_dummy_playback_ops = {
 	.open =			snd_card_dummy_playback_open,
 	.close =		snd_card_dummy_playback_close,
-	.ioctl =		snd_card_dummy_playback_ioctl,
+	.ioctl =		snd_pcm_lib_ioctl,
+	.hw_params =		snd_card_dummy_hw_params,
+	.hw_free =		snd_card_dummy_hw_free,
 	.prepare =		snd_card_dummy_playback_prepare,
 	.trigger =		snd_card_dummy_playback_trigger,
 	.pointer =		snd_card_dummy_playback_pointer,
@@ -441,7 +418,9 @@
 static snd_pcm_ops_t snd_card_dummy_capture_ops = {
 	.open =			snd_card_dummy_capture_open,
 	.close =		snd_card_dummy_capture_close,
-	.ioctl =		snd_card_dummy_capture_ioctl,
+	.ioctl =		snd_pcm_lib_ioctl,
+	.hw_params =		snd_card_dummy_hw_params,
+	.hw_free =		snd_card_dummy_hw_free,
 	.prepare =		snd_card_dummy_capture_prepare,
 	.trigger =		snd_card_dummy_capture_trigger,
 	.pointer =		snd_card_dummy_capture_pointer,
@@ -459,6 +438,9 @@
 	pcm->private_data = dummy;
 	pcm->info_flags = 0;
 	strcpy(pcm->name, "Dummy PCM");
+	snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS,
+					      snd_dma_continuous_data(GFP_KERNEL),
+					      0, 64*1024);
 	return 0;
 }
 
@@ -479,7 +461,7 @@
  
 static int snd_dummy_volume_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	snd_card_dummy_t *dummy = _snd_kcontrol_chip(kcontrol);
+	snd_card_dummy_t *dummy = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int addr = kcontrol->private_value;
 
@@ -492,7 +474,7 @@
 
 static int snd_dummy_volume_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	snd_card_dummy_t *dummy = _snd_kcontrol_chip(kcontrol);
+	snd_card_dummy_t *dummy = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change, addr = kcontrol->private_value;
 	int left, right;
@@ -533,7 +515,7 @@
  
 static int snd_dummy_capsrc_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	snd_card_dummy_t *dummy = _snd_kcontrol_chip(kcontrol);
+	snd_card_dummy_t *dummy = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int addr = kcontrol->private_value;
 
@@ -546,7 +528,7 @@
 
 static int snd_dummy_capsrc_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	snd_card_dummy_t *dummy = _snd_kcontrol_chip(kcontrol);
+	snd_card_dummy_t *dummy = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change, addr = kcontrol->private_value;
 	int left, right;
diff -Nru a/sound/drivers/mpu401/mpu401.c b/sound/drivers/mpu401/mpu401.c
--- a/sound/drivers/mpu401/mpu401.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/mpu401/mpu401.c	2004-07-27 18:28:33 -07:00
@@ -42,7 +42,6 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("MPU-401 UART");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -56,24 +55,18 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for MPU-401 device.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for MPU-401 device.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable MPU-401 device.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 #ifdef USE_ACPI_PNP
 module_param_array(acpipnp, bool, boot_devs, 0444);
 MODULE_PARM_DESC(acpipnp, "ACPI PnP detection for MPU-401 device.");
-MODULE_PARM_SYNTAX(acpipnp, SNDRV_ENABLED "," SNDRV_BOOLEAN_TRUE_DESC);
 #endif
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for MPU-401 device.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for MPU-401 device.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 
 #ifndef CONFIG_ACPI_BUS
 struct acpi_device;
diff -Nru a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c
--- a/sound/drivers/mpu401/mpu401_uart.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/mpu401/mpu401_uart.c	2004-07-27 18:28:33 -07:00
@@ -123,7 +123,7 @@
  */
 irqreturn_t snd_mpu401_uart_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	mpu401_t *mpu = snd_magic_cast(mpu401_t, dev_id, return IRQ_NONE);
+	mpu401_t *mpu = dev_id;
 	
 	if (mpu == NULL)
 		return IRQ_NONE;
@@ -137,7 +137,7 @@
  */
 static void snd_mpu401_uart_timer(unsigned long data)
 {
-	mpu401_t *mpu = snd_magic_cast(mpu401_t, (void *)data, return);
+	mpu401_t *mpu = (mpu401_t *)data;
 
 	spin_lock(&mpu->timer_lock);
 	/*mpu->mode |= MPU401_MODE_TIMER;*/
@@ -235,7 +235,7 @@
 	mpu401_t *mpu;
 	int err;
 
-	mpu = snd_magic_cast(mpu401_t, substream->rmidi->private_data, return -ENXIO);
+	mpu = substream->rmidi->private_data;
 	if (mpu->open_input && (err = mpu->open_input(mpu)) < 0)
 		return err;
 	if (! test_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode)) {
@@ -253,7 +253,7 @@
 	mpu401_t *mpu;
 	int err;
 
-	mpu = snd_magic_cast(mpu401_t, substream->rmidi->private_data, return -ENXIO);
+	mpu = substream->rmidi->private_data;
 	if (mpu->open_output && (err = mpu->open_output(mpu)) < 0)
 		return err;
 	if (! test_bit(MPU401_MODE_BIT_INPUT, &mpu->mode)) {
@@ -270,7 +270,7 @@
 {
 	mpu401_t *mpu;
 
-	mpu = snd_magic_cast(mpu401_t, substream->rmidi->private_data, return -ENXIO);
+	mpu = substream->rmidi->private_data;
 	clear_bit(MPU401_MODE_BIT_INPUT, &mpu->mode);
 	mpu->substream_input = NULL;
 	if (! test_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode))
@@ -284,7 +284,7 @@
 {
 	mpu401_t *mpu;
 
-	mpu = snd_magic_cast(mpu401_t, substream->rmidi->private_data, return -ENXIO);
+	mpu = substream->rmidi->private_data;
 	clear_bit(MPU401_MODE_BIT_OUTPUT, &mpu->mode);
 	mpu->substream_output = NULL;
 	if (! test_bit(MPU401_MODE_BIT_INPUT, &mpu->mode))
@@ -303,7 +303,7 @@
 	mpu401_t *mpu;
 	int max = 64;
 
-	mpu = snd_magic_cast(mpu401_t, substream->rmidi->private_data, return);
+	mpu = substream->rmidi->private_data;
 	if (up) {
 		if (! test_and_set_bit(MPU401_MODE_BIT_INPUT_TRIGGER, &mpu->mode)) {
 			/* first time - flush FIFO */
@@ -394,7 +394,7 @@
 	unsigned long flags;
 	mpu401_t *mpu;
 
-	mpu = snd_magic_cast(mpu401_t, substream->rmidi->private_data, return);
+	mpu = substream->rmidi->private_data;
 	if (up) {
 		set_bit(MPU401_MODE_BIT_OUTPUT_TRIGGER, &mpu->mode);
 
@@ -441,14 +441,14 @@
 
 static void snd_mpu401_uart_free(snd_rawmidi_t *rmidi)
 {
-	mpu401_t *mpu = snd_magic_cast(mpu401_t, rmidi->private_data, return);
+	mpu401_t *mpu = rmidi->private_data;
 	if (mpu->irq_flags && mpu->irq >= 0)
 		free_irq(mpu->irq, (void *) mpu);
 	if (mpu->res) {
 		release_resource(mpu->res);
 		kfree_nocheck(mpu->res);
 	}
-	snd_magic_kfree(mpu);
+	kfree(mpu);
 }
 
 /**
@@ -484,7 +484,7 @@
 		*rrawmidi = NULL;
 	if ((err = snd_rawmidi_new(card, "MPU-401U", device, 1, 1, &rmidi)) < 0)
 		return err;
-	mpu = snd_magic_kcalloc(mpu401_t, 0, GFP_KERNEL);
+	mpu = kcalloc(1, sizeof(*mpu), GFP_KERNEL);
 	if (mpu == NULL) {
 		snd_device_free(card, rmidi);
 		return -ENOMEM;
diff -Nru a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c
--- a/sound/drivers/mtpav.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/mtpav.c	2004-07-27 18:28:33 -07:00
@@ -69,8 +69,7 @@
 MODULE_AUTHOR("Michael T. Mayers");
 MODULE_DESCRIPTION("MOTU MidiTimePiece AV multiport MIDI");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{MOTU,MidiTimePiece AV multiport MIDI}}");
+MODULE_SUPPORTED_DEVICE("{{MOTU,MidiTimePiece AV multiport MIDI}}");
 
 // io resources
 #define MTPAV_IOBASE		0x378
@@ -85,19 +84,14 @@
 
 module_param(index, int, 0444);
 MODULE_PARM_DESC(index, "Index value for MotuMTPAV MIDI.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param(id, charp, 0444);
 MODULE_PARM_DESC(id, "ID string for MotuMTPAV MIDI.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param(port, long, 0444);
 MODULE_PARM_DESC(port, "Parallel port # for MotuMTPAV MIDI.");
-MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0x378},{0x278}},dialog:list");
 module_param(irq, int, 0444);
 MODULE_PARM_DESC(irq, "Parallel IRQ # for MotuMTPAV MIDI.");
-MODULE_PARM_SYNTAX(irq,  SNDRV_ENABLED ",allows:{{7},{5}},dialog:list");
 module_param(hwports, int, 0444);
 MODULE_PARM_DESC(hwports, "Hardware ports # for MotuMTPAV MIDI.");
-MODULE_PARM_SYNTAX(hwports, SNDRV_ENABLED ",allows:{{1,8}},dialog:list");
 
 /*
  *      defines
@@ -419,7 +413,7 @@
 
 static void snd_mtpav_output_timer(unsigned long data)
 {
-	mtpav_t *chip = snd_magic_cast(mtpav_t, (void *)data, return);
+	mtpav_t *chip = (mtpav_t *)data;
 	int p;
 
 	spin_lock(&chip->spinlock);
@@ -587,7 +581,7 @@
 
 static irqreturn_t snd_mtpav_irqh(int irq, void *dev_id, struct pt_regs *regs)
 {
-	mtpav_t *mcard = snd_magic_cast(mtpav_t, dev_id, return IRQ_NONE);
+	mtpav_t *mcard = dev_id;
 
 	//printk("irqh()\n");
 	spin_lock(&mcard->spinlock);
@@ -695,7 +689,7 @@
 
 static mtpav_t *new_mtpav(void)
 {
-	mtpav_t *ncrd = (mtpav_t *) snd_magic_kcalloc(mtpav_t, 0, GFP_KERNEL);
+	mtpav_t *ncrd = kcalloc(1, sizeof(*ncrd), GFP_KERNEL);
 	if (ncrd != NULL) {
 		spin_lock_init(&ncrd->spinlock);
 
@@ -728,7 +722,7 @@
 		release_resource(crd->res_port);
 		kfree_nocheck(crd->res_port);
 	}
-	snd_magic_kfree(crd);
+	kfree(crd);
 }
 
 /*
diff -Nru a/sound/drivers/opl3/opl3_lib.c b/sound/drivers/opl3/opl3_lib.c
--- a/sound/drivers/opl3/opl3_lib.c	2004-07-27 18:28:32 -07:00
+++ b/sound/drivers/opl3/opl3_lib.c	2004-07-27 18:28:32 -07:00
@@ -35,8 +35,6 @@
 MODULE_DESCRIPTION("Routines for control of AdLib FM cards (OPL2/OPL3/OPL4 chips)");
 MODULE_LICENSE("GPL");
 
-#define chip_t opl3_t
-
 extern char snd_opl3_regmap[MAX_OPL2_VOICES][4];
 
 void snd_opl2_command(opl3_t * opl3, unsigned short cmd, unsigned char val)
@@ -322,7 +320,7 @@
 	if (hw == NULL)
 		return;
 
-	opl3 = snd_magic_cast(opl3_t, hw->private_data, return);
+	opl3 = hw->private_data;
 	status = inb(opl3->l_port);
 #if 0
 	snd_printk("AdLib IRQ status = 0x%x\n", status);
@@ -354,13 +352,13 @@
 		release_resource(opl3->res_r_port);
 		kfree_nocheck(opl3->res_r_port);
 	}
-	snd_magic_kfree(opl3);
+	kfree(opl3);
 	return 0;
 }
 
 static int snd_opl3_dev_free(snd_device_t *device)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, device->device_data, return -ENXIO);
+	opl3_t *opl3 = device->device_data;
 	return snd_opl3_free(opl3);
 }
 
@@ -379,7 +377,7 @@
 
 	*ropl3 = NULL;
 
-	opl3 = snd_magic_kcalloc(opl3_t, 0, GFP_KERNEL);
+	opl3 = kcalloc(1, sizeof(*opl3), GFP_KERNEL);
 	if (opl3 == NULL)
 		return -ENOMEM;
 
diff -Nru a/sound/drivers/opl3/opl3_midi.c b/sound/drivers/opl3/opl3_midi.c
--- a/sound/drivers/opl3/opl3_midi.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/opl3/opl3_midi.c	2004-07-27 18:28:33 -07:00
@@ -313,7 +313,7 @@
 	fm_instrument_t *fm;
 	unsigned long flags;
 
-	opl3 = snd_magic_cast(opl3_t, p, return);
+	opl3 = p;
 
 #ifdef DEBUG_MIDI
 	snd_printk("Note on, ch %i, inst %i, note %i, vel %i\n",
@@ -672,7 +672,7 @@
 
 	unsigned long flags;
 
-	opl3 = snd_magic_cast(opl3_t, p, return);
+	opl3 = p;
 
 #ifdef DEBUG_MIDI
 	snd_printk("Note off, ch %i, inst %i, note %i\n",
@@ -712,7 +712,7 @@
 {
   	opl3_t *opl3;
 
-	opl3 = snd_magic_cast(opl3_t, p, return);
+	opl3 = p;
 #ifdef DEBUG_MIDI
 	snd_printk("Key pressure, ch#: %i, inst#: %i\n",
 		   chan->number, chan->midi_program);
@@ -726,7 +726,7 @@
 {
   	opl3_t *opl3;
 
-	opl3 = snd_magic_cast(opl3_t, p, return);
+	opl3 = p;
 #ifdef DEBUG_MIDI
 	snd_printk("Terminate note, ch#: %i, inst#: %i\n",
 		   chan->number, chan->midi_program);
@@ -814,7 +814,7 @@
 {
   	opl3_t *opl3;
 
-	opl3 = snd_magic_cast(opl3_t, p, return);
+	opl3 = p;
 #ifdef DEBUG_MIDI
 	snd_printk("Controller, TYPE = %i, ch#: %i, inst#: %i\n",
 		   type, chan->number, chan->midi_program);
@@ -851,7 +851,7 @@
 {
   	opl3_t *opl3;
 
-	opl3 = snd_magic_cast(opl3_t, p, return);
+	opl3 = p;
 #ifdef DEBUG_MIDI
 	snd_printk("NRPN, ch#: %i, inst#: %i\n",
 		   chan->number, chan->midi_program);
@@ -866,7 +866,7 @@
 {
   	opl3_t *opl3;
 
-	opl3 = snd_magic_cast(opl3_t, p, return);
+	opl3 = p;
 #ifdef DEBUG_MIDI
 	snd_printk("SYSEX\n");
 #endif
diff -Nru a/sound/drivers/opl3/opl3_oss.c b/sound/drivers/opl3/opl3_oss.c
--- a/sound/drivers/opl3/opl3_oss.c	2004-07-27 18:28:32 -07:00
+++ b/sound/drivers/opl3/opl3_oss.c	2004-07-27 18:28:32 -07:00
@@ -57,7 +57,7 @@
 static int snd_opl3_oss_event_input(snd_seq_event_t *ev, int direct,
 				    void *private_data, int atomic, int hop)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, private_data, return -EINVAL);
+	opl3_t *opl3 = private_data;
 
 	if (ev->type != SNDRV_SEQ_EVENT_OSS)
 		snd_midi_process_event(&opl3_ops, ev, opl3->oss_chset);
@@ -68,7 +68,7 @@
 
 static void snd_opl3_oss_free_port(void *private_data)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, private_data, return);
+	opl3_t *opl3 = private_data;
 
 	snd_midi_channel_free_set(opl3->oss_chset);
 }
@@ -156,7 +156,7 @@
 /* open OSS sequencer */
 static int snd_opl3_open_seq_oss(snd_seq_oss_arg_t *arg, void *closure)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, closure, return -EINVAL);
+	opl3_t *opl3 = closure;
 	int err;
 
 	snd_assert(arg != NULL, return -ENXIO);
@@ -182,7 +182,7 @@
 	opl3_t *opl3;
 
 	snd_assert(arg != NULL, return -ENXIO);
-	opl3 = snd_magic_cast(opl3_t, arg->private_data, return -EINVAL);
+	opl3 = arg->private_data;
 
 	snd_opl3_synth_cleanup(opl3);
 
@@ -213,7 +213,7 @@
 	int err = -EINVAL;
 
 	snd_assert(arg != NULL, return -ENXIO);
-	opl3 = snd_magic_cast(opl3_t, arg->private_data, return -EINVAL);
+	opl3 = arg->private_data;
 
 	if ((format == FM_PATCH) || (format == OPL3_PATCH)) {
 		struct sbi_instrument sbi;
@@ -241,7 +241,7 @@
 		}
 
 		size = sizeof(*put) + sizeof(fm_xinstrument_t);
-		put = (snd_seq_instr_header_t *)snd_kcalloc(size, GFP_KERNEL);
+		put = kcalloc(1, size, GFP_KERNEL);
 		if (put == NULL)
 			return -ENOMEM;
 		/* build header */
@@ -325,7 +325,7 @@
 	opl3_t *opl3;
 
 	snd_assert(arg != NULL, return -ENXIO);
-	opl3 = snd_magic_cast(opl3_t, arg->private_data, return -EINVAL);
+	opl3 = arg->private_data;
 	switch (cmd) {
 		case SNDCTL_FM_LOAD_INSTR:
 			snd_printk("OPL3: Obsolete ioctl(SNDCTL_FM_LOAD_INSTR) used. Fix the program.\n");
@@ -350,7 +350,7 @@
 	opl3_t *opl3;
 
 	snd_assert(arg != NULL, return -ENXIO);
-	opl3 = snd_magic_cast(opl3_t, arg->private_data, return -EINVAL);
+	opl3 = arg->private_data;
 
 	return 0;
 }
diff -Nru a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c
--- a/sound/drivers/opl3/opl3_seq.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/opl3/opl3_seq.c	2004-07-27 18:28:33 -07:00
@@ -30,7 +30,6 @@
 MODULE_AUTHOR("Uros Bizjak <uros@kss-loka.si>");
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("ALSA driver for OPL3 FM synth");
-MODULE_CLASSES("{sound}");
 
 int use_internal_drums = 0;
 module_param(use_internal_drums, bool, 0444);
@@ -99,7 +98,7 @@
 
 int snd_opl3_synth_use(void *private_data, snd_seq_port_subscribe_t * info)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, private_data, return -ENXIO);
+	opl3_t *opl3 = private_data;
 	int err;
 
 	if ((err = snd_opl3_synth_setup(opl3)) < 0)
@@ -126,7 +125,7 @@
 
 int snd_opl3_synth_unuse(void *private_data, snd_seq_port_subscribe_t * info)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, private_data, return -ENXIO);
+	opl3_t *opl3 = private_data;
 
 	snd_opl3_synth_cleanup(opl3);
 
@@ -151,7 +150,7 @@
 static int snd_opl3_synth_event_input(snd_seq_event_t * ev, int direct,
 				      void *private_data, int atomic, int hop)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, private_data, return -EINVAL);
+	opl3_t *opl3 = private_data;
 
 	if (ev->type >= SNDRV_SEQ_EVENT_INSTR_BEGIN &&
 	    ev->type <= SNDRV_SEQ_EVENT_INSTR_CHANGE) {
@@ -169,7 +168,7 @@
 
 static void snd_opl3_synth_free_port(void *private_data)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, private_data, return);
+	opl3_t *opl3 = private_data;
 
 	snd_midi_channel_free_set(opl3->chset);
 }
diff -Nru a/sound/drivers/opl3/opl3_synth.c b/sound/drivers/opl3/opl3_synth.c
--- a/sound/drivers/opl3/opl3_synth.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/opl3/opl3_synth.c	2004-07-27 18:28:33 -07:00
@@ -74,7 +74,7 @@
  */
 int snd_opl3_open(snd_hwdep_t * hw, struct file *file)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, hw->private_data, return -ENXIO);
+	opl3_t *opl3 = hw->private_data;
 
 	down(&opl3->access_mutex);
 	if (opl3->used) {
@@ -93,7 +93,7 @@
 int snd_opl3_ioctl(snd_hwdep_t * hw, struct file *file,
 		   unsigned int cmd, unsigned long arg)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, hw->private_data, return -ENXIO);
+	opl3_t *opl3 = hw->private_data;
 	void __user *argp = (void __user *)arg;
 
 	snd_assert(opl3 != NULL, return -EINVAL);
@@ -176,7 +176,7 @@
  */
 int snd_opl3_release(snd_hwdep_t * hw, struct file *file)
 {
-	opl3_t *opl3 = snd_magic_cast(opl3_t, hw->private_data, return -ENXIO);
+	opl3_t *opl3 = hw->private_data;
 
 	snd_opl3_reset(opl3);
 	down(&opl3->access_mutex);
diff -Nru a/sound/drivers/opl4/Makefile b/sound/drivers/opl4/Makefile
--- a/sound/drivers/opl4/Makefile	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/opl4/Makefile	2004-07-27 18:28:33 -07:00
@@ -15,4 +15,4 @@
 sequencer = $(if $(subst y,,$(CONFIG_SND_SEQUENCER)),$(if $(1),m),$(if $(CONFIG_SND_SEQUENCER),$(1)))
 
 obj-$(CONFIG_SND_OPL4_LIB) += snd-opl4-lib.o
-obj-$(call sequencer,$(CONFIG_SND_OPL4_LIB)) += snd-opl4-synth.o
\ No newline at end of file
+obj-$(call sequencer,$(CONFIG_SND_OPL4_LIB)) += snd-opl4-synth.o
diff -Nru a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
--- a/sound/drivers/opl4/opl4_lib.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/opl4/opl4_lib.c	2004-07-27 18:28:33 -07:00
@@ -26,7 +26,6 @@
 MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
 MODULE_DESCRIPTION("OPL4 driver");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 
 static void inline snd_opl4_wait(opl4_t *opl4)
 {
@@ -141,7 +140,7 @@
 #if defined(CONFIG_SND_SEQUENCER) || (defined(MODULE) && defined(CONFIG_SND_SEQUENCER_MODULE))
 static void snd_opl4_seq_dev_free(snd_seq_device_t *seq_dev)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, seq_dev->private_data, return);
+	opl4_t *opl4 = seq_dev->private_data;
 	opl4->seq_dev = NULL;
 }
 
@@ -172,12 +171,12 @@
 		release_resource(opl4->res_pcm_port);
 		kfree_nocheck(opl4->res_pcm_port);
 	}
-	snd_magic_kfree(opl4);
+	kfree(opl4);
 }
 
 static int snd_opl4_dev_free(snd_device_t *device)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, device->device_data, return -ENXIO);
+	opl4_t *opl4 = device->device_data;
 	snd_opl4_free(opl4);
 	return 0;
 }
@@ -199,7 +198,7 @@
 	if (ropl4)
 		*ropl4 = NULL;
 
-	opl4 = snd_magic_kcalloc(opl4_t, 0, GFP_KERNEL);
+	opl4 = kcalloc(1, sizeof(*opl4), GFP_KERNEL);
 	if (!opl4)
 		return -ENOMEM;
 
diff -Nru a/sound/drivers/opl4/opl4_mixer.c b/sound/drivers/opl4/opl4_mixer.c
--- a/sound/drivers/opl4/opl4_mixer.c	2004-07-27 18:28:32 -07:00
+++ b/sound/drivers/opl4/opl4_mixer.c	2004-07-27 18:28:32 -07:00
@@ -20,8 +20,6 @@
 #include "opl4_local.h"
 #include <sound/control.h>
 
-#define chip_t opl4_t
-
 static int snd_opl4_ctl_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
 {
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
diff -Nru a/sound/drivers/opl4/opl4_proc.c b/sound/drivers/opl4/opl4_proc.c
--- a/sound/drivers/opl4/opl4_proc.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/opl4/opl4_proc.c	2004-07-27 18:28:33 -07:00
@@ -26,7 +26,7 @@
 static int snd_opl4_mem_proc_open(snd_info_entry_t *entry,
 				  unsigned short mode, void **file_private_data)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, entry->private_data, return -ENXIO);
+	opl4_t *opl4 = entry->private_data;
 
 	down(&opl4->access_mutex);
 	if (opl4->memory_access) {
@@ -41,7 +41,7 @@
 static int snd_opl4_mem_proc_release(snd_info_entry_t *entry,
 				     unsigned short mode, void *file_private_data)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, entry->private_data, return -ENXIO);
+	opl4_t *opl4 = entry->private_data;
 
 	down(&opl4->access_mutex);
 	opl4->memory_access--;
@@ -52,7 +52,7 @@
 static long snd_opl4_mem_proc_read(snd_info_entry_t *entry, void *file_private_data,
 				   struct file *file, char __user *_buf, long count)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, entry->private_data, return -ENXIO);
+	opl4_t *opl4 = entry->private_data;
 	long size;
 	char* buf;
 
@@ -78,7 +78,7 @@
 static long snd_opl4_mem_proc_write(snd_info_entry_t *entry, void *file_private_data,
 				    struct file *file, const char __user *_buf, long count)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, entry->private_data, return -ENXIO);
+	opl4_t *opl4 = entry->private_data;
 	long size;
 	char *buf;
 
diff -Nru a/sound/drivers/opl4/opl4_seq.c b/sound/drivers/opl4/opl4_seq.c
--- a/sound/drivers/opl4/opl4_seq.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/opl4/opl4_seq.c	2004-07-27 18:28:33 -07:00
@@ -39,13 +39,11 @@
 MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
 MODULE_DESCRIPTION("OPL4 wavetable synth driver");
 MODULE_LICENSE("Dual BSD/GPL");
-MODULE_CLASSES("{sound}");
 
 int volume_boost = 8;
 
 module_param(volume_boost, int, 0644);
 MODULE_PARM_DESC(volume_boost, "Additional volume for OPL4 wavetable sounds.");
-MODULE_PARM_SYNTAX(volume_boost, "default:8");
 
 static int snd_opl4_seq_use_inc(opl4_t *opl4)
 {
@@ -61,7 +59,7 @@
 
 static int snd_opl4_seq_use(void *private_data, snd_seq_port_subscribe_t *info)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return -ENXIO);
+	opl4_t *opl4 = private_data;
 	int err;
 
 	down(&opl4->access_mutex);
@@ -88,7 +86,7 @@
 
 static int snd_opl4_seq_unuse(void *private_data, snd_seq_port_subscribe_t *info)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return -ENXIO);
+	opl4_t *opl4 = private_data;
 
 	snd_opl4_synth_shutdown(opl4);
 
@@ -112,7 +110,7 @@
 static int snd_opl4_seq_event_input(snd_seq_event_t *ev, int direct,
 				    void *private_data, int atomic, int hop)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return -ENXIO);
+	opl4_t *opl4 = private_data;
 
 	snd_midi_process_event(&opl4_ops, ev, opl4->chset);
 	return 0;
@@ -120,7 +118,7 @@
 
 static void snd_opl4_seq_free_port(void *private_data)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return);
+	opl4_t *opl4 = private_data;
 
 	snd_midi_channel_free_set(opl4->chset);
 }
diff -Nru a/sound/drivers/opl4/opl4_synth.c b/sound/drivers/opl4/opl4_synth.c
--- a/sound/drivers/opl4/opl4_synth.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/opl4/opl4_synth.c	2004-07-27 18:28:33 -07:00
@@ -472,7 +472,7 @@
 
 void snd_opl4_note_on(void *private_data, int note, int vel, snd_midi_channel_t *chan)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return);
+	opl4_t *opl4 = private_data;
 	const opl4_region_ptr_t *regions;
 	opl4_voice_t *voice[2];
 	const opl4_sound_t *sound[2];
@@ -553,7 +553,7 @@
 
 void snd_opl4_note_off(void *private_data, int note, int vel, snd_midi_channel_t *chan)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return);
+	opl4_t *opl4 = private_data;
 
 	snd_opl4_do_for_note(opl4, note, chan, snd_opl4_voice_off);
 }
@@ -569,14 +569,14 @@
 
 void snd_opl4_terminate_note(void *private_data, int note, snd_midi_channel_t *chan)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return);
+	opl4_t *opl4 = private_data;
 
 	snd_opl4_do_for_note(opl4, note, chan, snd_opl4_terminate_voice);
 }
 
 void snd_opl4_control(void *private_data, int type, snd_midi_channel_t *chan)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return);
+	opl4_t *opl4 = private_data;
 
 	switch (type) {
 	case MIDI_CTL_MSB_MODWHEEL:
@@ -616,7 +616,7 @@
 void snd_opl4_sysex(void *private_data, unsigned char *buf, int len,
 		    int parsed, snd_midi_channel_set_t *chset)
 {
-	opl4_t *opl4 = snd_magic_cast(opl4_t, private_data, return);
+	opl4_t *opl4 = private_data;
 
 	if (parsed == SNDRV_MIDI_SYSEX_GS_MASTER_VOLUME)
 		snd_opl4_do_for_all(opl4, snd_opl4_update_volume);
diff -Nru a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
--- a/sound/drivers/serial-u16550.c	2004-07-27 18:28:32 -07:00
+++ b/sound/drivers/serial-u16550.c	2004-07-27 18:28:32 -07:00
@@ -46,8 +46,7 @@
 
 MODULE_DESCRIPTION("MIDI serial u16550");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ALSA, MIDI serial u16550}}");
+MODULE_SUPPORTED_DEVICE("{{ALSA, MIDI serial u16550}}");
 
 #define SNDRV_SERIAL_SOUNDCANVAS 0 /* Roland Soundcanvas; F5 NN selects part */
 #define SNDRV_SERIAL_MS124T 1      /* Midiator MS-124T */
@@ -81,38 +80,27 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Serial MIDI.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Serial MIDI.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable UART16550A chip.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for UART16550A chip.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for UART16550A chip.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 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_param_array(base, int, boot_devs, 0444);
 MODULE_PARM_DESC(base, "Base for divisor in bauds.");
-MODULE_PARM_SYNTAX(base, SNDRV_ENABLED ",allows:{57600,115200,230400,460800},dialog:list");
 module_param_array(outs, int, boot_devs, 0444);
 MODULE_PARM_DESC(outs, "Number of MIDI outputs.");
 module_param_array(ins, int, boot_devs, 0444);
 MODULE_PARM_DESC(ins, "Number of MIDI inputs.");
 module_param_array(droponfull, bool, boot_devs, 0444);
 MODULE_PARM_DESC(droponfull, "Flag to enable drop-on-full buffer mode");
-MODULE_PARM_SYNTAX(droponfull, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 
-MODULE_PARM_SYNTAX(outs, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");
-MODULE_PARM_SYNTAX(ins, SNDRV_ENABLED ",allows:{{1,16}},dialog:list");
 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,4=Generic}},dialog:list");
 
 /*#define SNDRV_SERIAL_MS124W_MB_NOCOMBO 1*/  /* Address outs as 0-3 instead of bitmap */
 
@@ -524,7 +512,7 @@
 static int snd_uart16550_input_open(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	snd_uart16550_t *uart = snd_magic_cast(snd_uart16550_t, substream->rmidi->private_data, return -ENXIO);
+	snd_uart16550_t *uart = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&uart->open_lock, flags);
 	if (uart->filemode == SERIAL_MODE_NOT_OPENED)
@@ -538,7 +526,7 @@
 static int snd_uart16550_input_close(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	snd_uart16550_t *uart = snd_magic_cast(snd_uart16550_t, substream->rmidi->private_data, return -ENXIO);
+	snd_uart16550_t *uart = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&uart->open_lock, flags);
 	uart->filemode &= ~SERIAL_MODE_INPUT_OPEN;
@@ -552,7 +540,7 @@
 static void snd_uart16550_input_trigger(snd_rawmidi_substream_t * substream, int up)
 {
 	unsigned long flags;
-	snd_uart16550_t *uart = snd_magic_cast(snd_uart16550_t, substream->rmidi->private_data, return);
+	snd_uart16550_t *uart = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&uart->open_lock, flags);
 	if (up) {
@@ -566,7 +554,7 @@
 static int snd_uart16550_output_open(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	snd_uart16550_t *uart = snd_magic_cast(snd_uart16550_t, substream->rmidi->private_data, return -ENXIO);
+	snd_uart16550_t *uart = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&uart->open_lock, flags);
 	if (uart->filemode == SERIAL_MODE_NOT_OPENED)
@@ -580,7 +568,7 @@
 static int snd_uart16550_output_close(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	snd_uart16550_t *uart = snd_magic_cast(snd_uart16550_t, substream->rmidi->private_data, return -ENXIO);
+	snd_uart16550_t *uart = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&uart->open_lock, flags);
 	uart->filemode &= ~SERIAL_MODE_OUTPUT_OPEN;
@@ -652,7 +640,7 @@
 {
 	unsigned long flags;
 	unsigned char midi_byte, addr_byte;
-	snd_uart16550_t *uart = snd_magic_cast(snd_uart16550_t, substream->rmidi->private_data, return);
+	snd_uart16550_t *uart = substream->rmidi->private_data;
 	char first;
 	static unsigned long lasttime=0;
 	
@@ -730,7 +718,7 @@
 static void snd_uart16550_output_trigger(snd_rawmidi_substream_t * substream, int up)
 {
 	unsigned long flags;
-	snd_uart16550_t *uart = snd_magic_cast(snd_uart16550_t, substream->rmidi->private_data, return);
+	snd_uart16550_t *uart = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&uart->open_lock, flags);
 	if (up) {
@@ -765,13 +753,13 @@
 		release_resource(uart->res_base);
 		kfree_nocheck(uart->res_base);
 	}
-	snd_magic_kfree(uart);
+	kfree(uart);
 	return 0;
 };
 
 static int snd_uart16550_dev_free(snd_device_t *device)
 {
-	snd_uart16550_t *uart = snd_magic_cast(snd_uart16550_t, device->device_data, return -ENXIO);
+	snd_uart16550_t *uart = device->device_data;
 	return snd_uart16550_free(uart);
 }
 
@@ -791,7 +779,7 @@
 	int err;
 
 
-	if ((uart = snd_magic_kcalloc(snd_uart16550_t, 0, GFP_KERNEL)) == NULL)
+	if ((uart = kcalloc(1, sizeof(*uart), GFP_KERNEL)) == NULL)
 		return -ENOMEM;
 	uart->adaptor = adaptor;
 	uart->card = card;
diff -Nru a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c
--- a/sound/drivers/virmidi.c	2004-07-27 18:28:32 -07:00
+++ b/sound/drivers/virmidi.c	2004-07-27 18:28:32 -07:00
@@ -57,8 +57,7 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("Dummy soundcard for virtual rawmidi devices");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ALSA,Virtual rawmidi device}}");
+MODULE_SUPPORTED_DEVICE("{{ALSA,Virtual rawmidi device}}");
 
 #define MAX_MIDI_DEVICES	8
 
@@ -70,16 +69,12 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for virmidi soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for virmidi soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable this soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(midi_devs, int, boot_devs, 0444);
 MODULE_PARM_DESC(midi_devs, "MIDI devices # (1-8)");
-MODULE_PARM_SYNTAX(midi_devs, SNDRV_ENABLED ",allows:{{1,8}}");
 
 typedef struct snd_card_virmidi {
 	snd_card_t *card;
@@ -113,7 +108,7 @@
 		snd_virmidi_dev_t *rdev;
 		if ((err = snd_virmidi_new(card, idx, &rmidi)) < 0)
 			goto __nodev;
-		rdev = snd_magic_cast(snd_virmidi_dev_t, rmidi->private_data, continue);
+		rdev = rmidi->private_data;
 		vmidi->midi[idx] = rmidi;
 		strcpy(rmidi->name, "Virtual Raw MIDI");
 		rdev->seq_mode = SNDRV_VIRMIDI_SEQ_DISPATCH;
diff -Nru a/sound/drivers/vx/vx_core.c b/sound/drivers/vx/vx_core.c
--- a/sound/drivers/vx/vx_core.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/vx/vx_core.c	2004-07-27 18:28:33 -07:00
@@ -506,7 +506,7 @@
  */
 static void vx_interrupt(unsigned long private_data)
 {
-	vx_core_t *chip = snd_magic_cast(vx_core_t, (void*)private_data, return);
+	vx_core_t *chip = (vx_core_t *) private_data;
 	unsigned int events;
 		
 	if (chip->chip_status & VX_STAT_IS_STALE)
@@ -550,7 +550,7 @@
  */
 irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs)
 {
-	vx_core_t *chip = snd_magic_cast(vx_core_t, dev, return IRQ_NONE);
+	vx_core_t *chip = dev;
 
 	if (! (chip->chip_status & VX_STAT_CHIP_INIT) ||
 	    (chip->chip_status & VX_STAT_IS_STALE))
@@ -572,6 +572,7 @@
 	if (cold_reset) {
 		chip->audio_source_target = chip->audio_source;
 		chip->clock_source = INTERNAL_QUARTZ;
+		chip->clock_mode = VX_CLOCK_MODE_AUTO;
 		chip->freq = 48000;
 		chip->uer_detected = VX_UER_MODE_NOT_PRESENT;
 		chip->uer_bits = SNDRV_PCM_DEFAULT_CON_SPDIF;
@@ -603,9 +604,10 @@
 
 static void vx_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
 {
-	vx_core_t *chip = snd_magic_cast(vx_core_t, entry->private_data, return);
+	vx_core_t *chip = entry->private_data;
 	static char *audio_src_vxp[] = { "Line", "Mic", "Digital" };
 	static char *audio_src_vx2[] = { "Analog", "Analog", "Digital" };
+	static char *clock_mode[] = { "Auto", "Internal", "External" };
 	static char *clock_src[] = { "Internal", "External" };
 	static char *uer_type[] = { "Consumer", "Professional", "Not Present" };
 	
@@ -629,6 +631,7 @@
 	snd_iprintf(buffer, "Input Source: %s\n", vx_is_pcmcia(chip) ?
 		    audio_src_vxp[chip->audio_source] :
 		    audio_src_vx2[chip->audio_source]);
+	snd_iprintf(buffer, "Clock Mode: %s\n", clock_mode[chip->clock_mode]);
 	snd_iprintf(buffer, "Clock Source: %s\n", clock_src[chip->clock_source]);
 	snd_iprintf(buffer, "Frequency: %d\n", chip->freq);
 	snd_iprintf(buffer, "Detected Frequency: %d\n", chip->freq_detected);
@@ -731,7 +734,7 @@
 
 	snd_assert(card && hw && ops, return NULL);
 
-	chip = snd_magic_kcalloc(vx_core_t, extra_size, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(chip) + extra_size, GFP_KERNEL);
 	if (! chip) {
 		snd_printk(KERN_ERR "vx_core: no memory\n");
 		return NULL;
diff -Nru a/sound/drivers/vx/vx_hwdep.c b/sound/drivers/vx/vx_hwdep.c
--- a/sound/drivers/vx/vx_hwdep.c	2004-07-27 18:28:33 -07:00
+++ b/sound/drivers/vx/vx_hwdep.c	2004-07-27 18:28:33 -07:00
@@ -44,7 +44,7 @@
 		[VX_TYPE_VXPOCKET] = "vxpocket",
 		[VX_TYPE_VXP440] = "vxp440",
 	};
-	vx_core_t *vx = snd_magic_cast(vx_core_t, hw->private_data, return -ENXIO);
+	vx_core_t *vx = hw->private_data;
 
 	snd_assert(type_ids[vx->type], return -EINVAL);
 	strcpy(info->id, type_ids[vx->type]);
@@ -60,7 +60,7 @@
 
 static int vx_hwdep_dsp_load(snd_hwdep_t *hw, snd_hwdep_dsp_image_t *dsp)
 {
-	vx_core_t *vx = snd_magic_cast(vx_core_t, hw->private_data, return -ENXIO);
+	vx_core_t *vx = hw->private_data;
 	int index, err;
 
 	snd_assert(vx->ops->load_dsp, return -ENXIO);
diff -Nru a/sound/drivers/vx/vx_mixer.c b/sound/drivers/vx/vx_mixer.c
--- a/sound/drivers/vx/vx_mixer.c	2004-07-27 18:28:32 -07:00
+++ b/sound/drivers/vx/vx_mixer.c	2004-07-27 18:28:32 -07:00
@@ -26,8 +26,6 @@
 #include <sound/vx_core.h>
 #include "vx_cmd.h"
 
-#define chip_t vx_core_t
-
 
 /*
  * write a codec data (24bit)
@@ -524,6 +522,54 @@
 };
 
 /*
+ * clock mode selection
+ */
+static int vx_clock_mode_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
+{
+	static char *texts[3] = {
+		"Auto", "Internal", "External"
+	};
+
+	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
+	uinfo->count = 1;
+	uinfo->value.enumerated.items = 3;
+	if (uinfo->value.enumerated.item > 2)
+		uinfo->value.enumerated.item = 2;
+	strcpy(uinfo->value.enumerated.name,
+	       texts[uinfo->value.enumerated.item]);
+	return 0;
+}
+
+static int vx_clock_mode_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
+{
+	vx_core_t *chip = snd_kcontrol_chip(kcontrol);
+	ucontrol->value.enumerated.item[0] = chip->clock_mode;
+	return 0;
+}
+
+static int vx_clock_mode_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
+{
+	vx_core_t *chip = snd_kcontrol_chip(kcontrol);
+	down(&chip->mixer_mutex);
+	if (chip->clock_mode != ucontrol->value.enumerated.item[0]) {
+		chip->clock_mode = ucontrol->value.enumerated.item[0];
+		vx_set_clock(chip, chip->freq);
+		up(&chip->mixer_mutex);
+		return 1;
+	}
+	up(&chip->mixer_mutex);
+	return 0;
+}
+
+static snd_kcontrol_new_t vx_control_clock_mode = {
+	.iface =	SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name =		"Clock Mode",
+	.info =		vx_clock_mode_info,
+	.get =		vx_clock_mode_get,
+	.put =		vx_clock_mode_put,
+};
+
+/*
  * Audio Gain
  */
 static int vx_audio_gain_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
@@ -912,6 +958,9 @@
 
 	/* Audio source */
 	if ((err = snd_ctl_add(card, snd_ctl_new1(&vx_control_audio_src, chip))) < 0)
+		return err;
+	/* clock mode */
+	if ((err = snd_ctl_add(card, snd_ctl_new1(&vx_control_clock_mode, chip))) < 0)
 		return err;
 	/* IEC958 controls */
 	if ((err = snd_ctl_add(card, snd_ctl_new1(&vx_control_iec958_mask, chip))) < 0)
diff -Nru a/sound/drivers/vx/vx_pcm.c b/sound/drivers/vx/vx_pcm.c
--- a/sound/drivers/vx/vx_pcm.c	2004-07-27 18:28:32 -07:00
+++ b/sound/drivers/vx/vx_pcm.c	2004-07-27 18:28:32 -07:00
@@ -48,14 +48,13 @@
 #include <sound/driver.h>
 #include <linux/slab.h>
 #include <linux/vmalloc.h>
+#include <linux/delay.h>
 #include <sound/core.h>
 #include <sound/asoundef.h>
 #include <sound/pcm.h>
 #include <sound/vx_core.h>
 #include "vx_cmd.h"
 
-#define chip_t	vx_core_t
-
 
 /*
  * we use a vmalloc'ed (sg-)buffer
@@ -381,7 +380,7 @@
  */
 static int vx_toggle_pipe(vx_core_t *chip, vx_pipe_t *pipe, int state)
 {
-	int err, i, cur_state, delay;
+	int err, i, cur_state;
 
 	/* Check the pipe is not already in the requested state */
 	if (vx_get_pipe_state(chip, pipe, &cur_state) < 0)
@@ -394,17 +393,14 @@
 	 * enough sound buffer for this pipe)
 	 */
 	if (state) {
-		int delay = CAN_START_DELAY;
 		for (i = 0 ; i < MAX_WAIT_FOR_DSP; i++) {
-			snd_vx_delay(chip, delay);
 			err = vx_pipe_can_start(chip, pipe);
 			if (err > 0)
 				break;
 			/* Wait for a few, before asking again
 			 * to avoid flooding the DSP with our requests
 			 */
-			if ((i % 4 ) == 0)
-				delay <<= 1;
+			mdelay(1);
 		}
 	}
     
@@ -418,15 +414,12 @@
 	 * reaching the expected state before returning
 	 * Check one pipe only (since they are synchronous)
 	 */
-	delay = WAIT_STATE_DELAY;
 	for (i = 0; i < MAX_WAIT_FOR_DSP; i++) {
-		snd_vx_delay(chip, delay);
 		err = vx_get_pipe_state(chip, pipe, &cur_state);
 		if (err < 0 || cur_state == state)
 			break;
 		err = -EIO;
-		if ((i % 4 ) == 0)
-			delay <<= 1;
+		mdelay(1);
 	}
 	return err < 0 ? -EIO : 0;
 }
@@ -480,7 +473,7 @@
 		return err;
 
 	/* initialize the pipe record */
-	pipe = snd_magic_kcalloc(vx_pipe_t, 0, GFP_KERNEL);
+	pipe = kcalloc(1, sizeof(*pipe), GFP_KERNEL);
 	if (! pipe) {
 		/* release the pipe */
 		vx_init_rmh(&rmh, CMD_FREE_PIPE);
@@ -514,7 +507,7 @@
 	vx_set_pipe_cmd_params(&rmh, pipe->is_capture, pipe->number, 0);
 	vx_send_msg(chip, &rmh);
 
-	snd_magic_kfree(pipe);
+	kfree(pipe);
 	return 0;
 }
 
@@ -629,7 +622,7 @@
 	if (! subs->runtime->private_data)
 		return -EINVAL;
 
-	pipe = snd_magic_cast(vx_pipe_t, subs->runtime->private_data, return -EINVAL);
+	pipe = subs->runtime->private_data;
 
 	if (--pipe->references == 0) {
 		chip->playback_pipes[pipe->number] = NULL;
@@ -778,8 +771,8 @@
 static void vx_pcm_delayed_start(unsigned long arg)
 {
 	snd_pcm_substream_t *subs = (snd_pcm_substream_t *)arg;
-	vx_core_t *chip = snd_magic_cast(vx_core_t, subs->pcm->private_data, return);
-	vx_pipe_t *pipe = snd_magic_cast(vx_pipe_t, subs->runtime->private_data, return);
+	vx_core_t *chip = subs->pcm->private_data;
+	vx_pipe_t *pipe = subs->runtime->private_data;
 	int err;
 
 	/*  printk( KERN_DEBUG "DDDD tasklet delayed start jiffies = %ld\n", jiffies);*/
@@ -801,7 +794,7 @@
 static int vx_pcm_trigger(snd_pcm_substream_t *subs, int cmd)
 {
 	vx_core_t *chip = snd_pcm_substream_chip(subs);
-	vx_pipe_t *pipe = snd_magic_cast(vx_pipe_t, subs->runtime->private_data, return -EINVAL);
+	vx_pipe_t *pipe = subs->runtime->private_data;
 	int err;
 
 	if (chip->chip_status & VX_STAT_IS_STALE)
@@ -846,7 +839,7 @@
 static snd_pcm_uframes_t vx_pcm_playback_pointer(snd_pcm_substream_t *subs)
 {
 	snd_pcm_runtime_t *runtime = subs->runtime;
-	vx_pipe_t *pipe = snd_magic_cast(vx_pipe_t, runtime->private_data, return -EINVAL);
+	vx_pipe_t *pipe = runtime->private_data;
 	return pipe->position;
 }
 
@@ -874,7 +867,7 @@
 {
 	vx_core_t *chip = snd_pcm_substream_chip(subs);
 	snd_pcm_runtime_t *runtime = subs->runtime;
-	vx_pipe_t *pipe = snd_magic_cast(vx_pipe_t, runtime->private_data, return -EINVAL);
+	vx_pipe_t *pipe = runtime->private_data;
 	int err, data_mode;
 	// int max_size, nchunks;
 
@@ -1037,7 +1030,7 @@
 	
 	if (! subs->runtime->private_data)
 		return -EINVAL;
-	pipe = snd_magic_cast(vx_pipe_t, subs->runtime->private_data, return -EINVAL);
+	pipe = subs->runtime->private_data;
 	chip->capture_pipes[pipe->number] = NULL;
 
 	pipe_out_monitoring = pipe->monitoring_pipe;
@@ -1141,7 +1134,7 @@
 static snd_pcm_uframes_t vx_pcm_capture_pointer(snd_pcm_substream_t *subs)
 {
 	snd_pcm_runtime_t *runtime = subs->runtime;
-	vx_pipe_t *pipe = snd_magic_cast(vx_pipe_t, runtime->private_data, return -EINVAL);
+	vx_pipe_t *pipe = runtime->private_data;
 	return bytes_to_frames(runtime, pipe->hw_ptr);
 }
 
@@ -1265,7 +1258,7 @@
  */
 static void snd_vx_pcm_free(snd_pcm_t *pcm)
 {
-	vx_core_t *chip = snd_magic_cast(vx_core_t, pcm->private_data, return);
+	vx_core_t *chip = pcm->private_data;
 	chip->pcm[pcm->device] = NULL;
 	if (chip->playback_pipes) {
 		kfree(chip->playback_pipes);
diff -Nru a/sound/drivers/vx/vx_uer.c b/sound/drivers/vx/vx_uer.c
--- a/sound/drivers/vx/vx_uer.c	2004-07-27 18:28:32 -07:00
+++ b/sound/drivers/vx/vx_uer.c	2004-07-27 18:28:32 -07:00
@@ -263,17 +263,17 @@
 	/* change the audio source if possible */
 	vx_sync_audio_source(chip);
 
-	switch (chip->audio_source) {
-	case VX_AUDIO_SRC_DIGITAL:
+	if (chip->clock_mode == VX_CLOCK_MODE_EXTERNAL ||
+	    (chip->clock_mode == VX_CLOCK_MODE_AUTO &&
+	     chip->audio_source == VX_AUDIO_SRC_DIGITAL)) {
 		if (chip->clock_source != UER_SYNC) {
 			vx_change_clock_source(chip, UER_SYNC);
 			mdelay(6);
 			src_changed = 1;
 		}
-		if (chip->freq == freq)
-			return 0;
-		break;
-	default:
+	} else if (chip->clock_mode == VX_CLOCK_MODE_INTERNAL ||
+		   (chip->clock_mode == VX_CLOCK_MODE_AUTO &&
+		    chip->audio_source != VX_AUDIO_SRC_DIGITAL)) {
 		if (chip->clock_source != INTERNAL_QUARTZ) {
 			vx_change_clock_source(chip, INTERNAL_QUARTZ);
 			src_changed = 1;
@@ -283,8 +283,9 @@
 		vx_set_internal_clock(chip, freq);
 		if (src_changed)
 			vx_modify_board_inputs(chip);
-		break;
 	}
+	if (chip->freq == freq)
+		return 0;
 	chip->freq = freq;
 	vx_modify_board_clock(chip, 1);
 	return 0;
diff -Nru a/sound/i2c/cs8427.c b/sound/i2c/cs8427.c
--- a/sound/i2c/cs8427.c	2004-07-27 18:28:32 -07:00
+++ b/sound/i2c/cs8427.c	2004-07-27 18:28:32 -07:00
@@ -34,8 +34,6 @@
 MODULE_DESCRIPTION("IEC958 (S/PDIF) receiver & transmitter by Cirrus Logic");
 MODULE_LICENSE("GPL");
 
-#define chip_t snd_i2c_device_t
-
 #define CS8427_ADDR			(0x20>>1) /* fixed address */
 
 typedef struct {
@@ -109,7 +107,7 @@
 
 static int snd_cs8427_select_corudata(snd_i2c_device_t *device, int udata)
 {
-	cs8427_t *chip = snd_magic_cast(cs8427_t, device->private_data, return -ENXIO);
+	cs8427_t *chip = device->private_data;
 	int err;
 
 	udata = udata ? CS8427_BSEL : 0;
@@ -128,7 +126,7 @@
 				    unsigned char *ndata,
 				    int count)
 {
-	cs8427_t *chip = snd_magic_cast(cs8427_t, device->private_data, return -ENXIO);
+	cs8427_t *chip = device->private_data;
 	char *hw_data = udata ? chip->playback.hw_udata : chip->playback.hw_status;
 	char data[32];
 	int err, idx;
@@ -159,7 +157,7 @@
 static void snd_cs8427_free(snd_i2c_device_t *device)
 {
 	if (device->private_data)
-		snd_magic_kfree(device->private_data);
+		kfree(device->private_data);
 }
 
 int snd_cs8427_create(snd_i2c_bus_t *bus,
@@ -211,7 +209,7 @@
 
 	if ((err = snd_i2c_device_create(bus, "CS8427", CS8427_ADDR | (addr & 7), &device)) < 0)
 		return err;
-	chip = device->private_data = snd_magic_kcalloc(cs8427_t, 0, GFP_KERNEL);
+	chip = device->private_data = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL) {
 	      	snd_i2c_device_free(device);
 		return -ENOMEM;
@@ -297,7 +295,7 @@
 	int data;
 
 	snd_assert(cs8427, return);
-	chip = snd_magic_cast(cs8427_t, cs8427->private_data, return);
+	chip = cs8427->private_data;
 	snd_i2c_lock(cs8427->bus);
 	chip->regmap[CS8427_REG_CLOCKSOURCE] &= ~(CS8427_RUN | CS8427_RXDMASK);
 	snd_cs8427_reg_write(cs8427, CS8427_REG_CLOCKSOURCE, chip->regmap[CS8427_REG_CLOCKSOURCE]);
@@ -389,7 +387,7 @@
 				snd_ctl_elem_value_t * ucontrol)
 {
 	snd_i2c_device_t *device = snd_kcontrol_chip(kcontrol);
-	cs8427_t *chip = snd_magic_cast(cs8427_t, device->private_data, return -ENXIO);
+	cs8427_t *chip = device->private_data;
 	
 	snd_i2c_lock(device->bus);
 	memcpy(ucontrol->value.iec958.status, chip->playback.def_status, 24);
@@ -401,7 +399,7 @@
 				snd_ctl_elem_value_t * ucontrol)
 {
 	snd_i2c_device_t *device = snd_kcontrol_chip(kcontrol);
-	cs8427_t *chip = snd_magic_cast(cs8427_t, device->private_data, return -ENXIO);
+	cs8427_t *chip = device->private_data;
 	unsigned char *status = kcontrol->private_value ? chip->playback.pcm_status : chip->playback.def_status;
 	snd_pcm_runtime_t *runtime = chip->playback.substream ? chip->playback.substream->runtime : NULL;
 	int err, change;
@@ -487,7 +485,7 @@
 			    snd_pcm_substream_t *play_substream,
 			    snd_pcm_substream_t *cap_substream)
 {
-	cs8427_t *chip = snd_magic_cast(cs8427_t, cs8427->private_data, return -ENXIO);
+	cs8427_t *chip = cs8427->private_data;
 	snd_kcontrol_t *kctl;
 	unsigned int idx;
 	int err;
@@ -517,7 +515,7 @@
 	cs8427_t *chip;
 
 	snd_assert(cs8427, return -ENXIO);
-	chip = snd_magic_cast(cs8427_t, cs8427->private_data, return -ENXIO);
+	chip = cs8427->private_data;
 	if (active)
 		memcpy(chip->playback.pcm_status, chip->playback.def_status, 24);
 	chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE;
@@ -533,7 +531,7 @@
 	int err, reset;
 
 	snd_assert(cs8427, return -ENXIO);
-	chip = snd_magic_cast(cs8427_t, cs8427->private_data, return -ENXIO);
+	chip = cs8427->private_data;
 	status = chip->playback.pcm_status;
 	snd_i2c_lock(cs8427->bus);
 	if (status[0] & IEC958_AES0_PROFESSIONAL) {
diff -Nru a/sound/i2c/i2c.c b/sound/i2c/i2c.c
--- a/sound/i2c/i2c.c	2004-07-27 18:28:33 -07:00
+++ b/sound/i2c/i2c.c	2004-07-27 18:28:33 -07:00
@@ -62,13 +62,13 @@
 	}
 	if (bus->private_free)
 		bus->private_free(bus);
-	snd_magic_kfree(bus);
+	kfree(bus);
 	return 0;
 }
 
 static int snd_i2c_bus_dev_free(snd_device_t *device)
 {
-	snd_i2c_bus_t *bus = snd_magic_cast(snd_i2c_bus_t, device->device_data, return -ENXIO);
+	snd_i2c_bus_t *bus = device->device_data;
 	return snd_i2c_bus_free(bus);
 }
 
@@ -81,7 +81,7 @@
 	};
 
 	*ri2c = NULL;
-	bus = (snd_i2c_bus_t *)snd_magic_kcalloc(snd_i2c_bus_t, 0, GFP_KERNEL);
+	bus = kcalloc(1, sizeof(*bus), GFP_KERNEL);
 	if (bus == NULL)
 		return -ENOMEM;
 	init_MUTEX(&bus->lock_mutex);
@@ -108,7 +108,7 @@
 
 	*rdevice = NULL;
 	snd_assert(bus != NULL, return -EINVAL);
-	device = (snd_i2c_device_t *)snd_magic_kcalloc(snd_i2c_device_t, 0, GFP_KERNEL);
+	device = kcalloc(1, sizeof(*device), GFP_KERNEL);
 	if (device == NULL)
 		return -ENOMEM;
 	device->addr = addr;
@@ -125,7 +125,7 @@
 		list_del(&device->list);
 	if (device->private_free)
 		device->private_free(device);
-	snd_magic_kfree(device);
+	kfree(device);
 	return 0;
 }
 
diff -Nru a/sound/i2c/l3/uda1341.c b/sound/i2c/l3/uda1341.c
--- a/sound/i2c/l3/uda1341.c	2004-07-27 18:28:33 -07:00
+++ b/sound/i2c/l3/uda1341.c	2004-07-27 18:28:33 -07:00
@@ -17,7 +17,7 @@
  * 2002-05-12   Tomas Kasparek  another code cleanup
  */
 
-/* $Id: uda1341.c,v 1.10 2003/10/23 14:34:52 perex Exp $ */
+/* $Id: uda1341.c,v 1.12 2004/07/01 08:33:42 tiwai Exp $ */
 
 #include <sound/driver.h>
 #include <linux/module.h>
@@ -131,7 +131,6 @@
 
 //hack for ALSA magic casting
 typedef struct l3_client l3_client_t;
-#define chip_t l3_client_t      
 
 /* transfer 8bit integer into string with binary representation */
 void int2str_bin8(uint8_t val, char *buf){
@@ -332,7 +331,7 @@
 static void snd_uda1341_proc_read(snd_info_entry_t *entry, 
 				  snd_info_buffer_t * buffer)
 {
-	struct l3_client *clnt = snd_magic_cast(l3_client_t, entry->private_data, return);
+	struct l3_client *clnt = entry->private_data;
 	struct uda1341 *uda = clnt->driver_data;
 	int peak;
 
@@ -397,7 +396,7 @@
 static void snd_uda1341_proc_regs_read(snd_info_entry_t *entry, 
 				       snd_info_buffer_t * buffer)
 {
-	struct l3_client *clnt = snd_magic_cast(l3_client_t, entry->private_data, return);
+	struct l3_client *clnt = entry->private_data;
 	struct uda1341 *uda = clnt->driver_data;		
 	int reg;
 	char buf[12];
@@ -653,12 +652,12 @@
 static void uda1341_free(struct l3_client *uda1341)
 {
 	l3_detach_client(uda1341); // calls kfree for driver_data (uda1341_t)
-	snd_magic_kfree(uda1341);
+	kfree(uda1341);
 }
 
 static int uda1341_dev_free(snd_device_t *device)
 {
-	struct l3_client *clnt = snd_magic_cast(l3_client_t, device->device_data, return);
+	struct l3_client *clnt = device->device_data;
 	uda1341_free(clnt);
 	return 0;
 }
@@ -673,7 +672,7 @@
 
 	snd_assert(card != NULL, return -EINVAL);
 
-	uda1341 = snd_magic_kcalloc(l3_client_t, 0, GFP_KERNEL);
+	uda1341 = kcalloc(1, sizeof(*uda1341), GFP_KERNEL);
 	if (uda1341 == NULL)
 		return -ENOMEM;
          
@@ -710,7 +709,7 @@
 {
 	struct uda1341 *uda;
 
-	uda = snd_magic_kcalloc(uda1341_t, 0, GFP_KERNEL);
+	uda = kcalloc(1, sizeof(*uda), 0, GFP_KERNEL);
 	if (!uda)
 		return -ENOMEM;
 
@@ -734,7 +733,7 @@
 static void uda1341_detach(struct l3_client *clnt)
 {
 	if (clnt->driver_data)
-		snd_magic_kfree(clnt->driver_data);
+		kfree(clnt->driver_data);
 }
 
 static int
@@ -821,8 +820,7 @@
 MODULE_AUTHOR("Tomas Kasparek <tomas.kasparek@seznam.cz>");
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Philips UDA1341 CODEC driver for ALSA");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{UDA1341,UDA1341TS}}");
+MODULE_SUPPORTED_DEVICE("{{UDA1341,UDA1341TS}}");
 
 EXPORT_SYMBOL(snd_chip_uda1341_mixer_new);
 
diff -Nru a/sound/i2c/other/ak4117.c b/sound/i2c/other/ak4117.c
--- a/sound/i2c/other/ak4117.c	2004-07-27 18:28:33 -07:00
+++ b/sound/i2c/other/ak4117.c	2004-07-27 18:28:33 -07:00
@@ -33,8 +33,6 @@
 MODULE_DESCRIPTION("AK4117 IEC958 (S/PDIF) receiver by Asahi Kasei");
 MODULE_LICENSE("GPL");
 
-#define chip_t ak4117_t
-
 #define AK4117_ADDR			0x00 /* fixed address */
 
 static void snd_ak4117_timer(unsigned long data);
@@ -65,12 +63,12 @@
 static void snd_ak4117_free(ak4117_t *chip)
 {
 	del_timer(&chip->timer);
-	snd_magic_kfree(chip);
+	kfree(chip);
 }
 
 static int snd_ak4117_dev_free(snd_device_t *device)
 {
-	ak4117_t *chip = snd_magic_cast(ak4117_t, device->device_data, return -ENXIO);
+	ak4117_t *chip = device->device_data;
 	snd_ak4117_free(chip);
 	return 0;
 }
@@ -85,7 +83,7 @@
 		.dev_free =     snd_ak4117_dev_free,
 	};
 
-	chip = (ak4117_t *)snd_magic_kcalloc(ak4117_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->lock);
@@ -544,7 +542,7 @@
 
 static void snd_ak4117_timer(unsigned long data)
 {
-	ak4117_t *chip = snd_magic_cast(ak4117_t, (void *)data, return);
+	ak4117_t *chip = (ak4117_t *)data;
 
 	if (chip->init)
 		return;
diff -Nru a/sound/i2c/other/ak4xxx-adda.c b/sound/i2c/other/ak4xxx-adda.c
--- a/sound/i2c/other/ak4xxx-adda.c	2004-07-27 18:28:33 -07:00
+++ b/sound/i2c/other/ak4xxx-adda.c	2004-07-27 18:28:33 -07:00
@@ -237,7 +237,7 @@
 
 static int snd_akm4xxx_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	akm4xxx_t *ak = _snd_kcontrol_chip(kcontrol);
+	akm4xxx_t *ak = snd_kcontrol_chip(kcontrol);
 	int chip = AK_GET_CHIP(kcontrol->private_value);
 	int addr = AK_GET_ADDR(kcontrol->private_value);
 	int invert = AK_GET_INVERT(kcontrol->private_value);
@@ -250,7 +250,7 @@
 
 static int snd_akm4xxx_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	akm4xxx_t *ak = _snd_kcontrol_chip(kcontrol);
+	akm4xxx_t *ak = snd_kcontrol_chip(kcontrol);
 	int chip = AK_GET_CHIP(kcontrol->private_value);
 	int addr = AK_GET_ADDR(kcontrol->private_value);
 	int invert = AK_GET_INVERT(kcontrol->private_value);
@@ -277,7 +277,7 @@
 
 static int snd_akm4xxx_ipga_gain_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	akm4xxx_t *ak = _snd_kcontrol_chip(kcontrol);
+	akm4xxx_t *ak = snd_kcontrol_chip(kcontrol);
 	int chip = AK_GET_CHIP(kcontrol->private_value);
 	int addr = AK_GET_ADDR(kcontrol->private_value);
 	ucontrol->value.integer.value[0] = snd_akm4xxx_get_ipga(ak, chip, addr) & 0x7f;
@@ -286,7 +286,7 @@
 
 static int snd_akm4xxx_ipga_gain_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	akm4xxx_t *ak = _snd_kcontrol_chip(kcontrol);
+	akm4xxx_t *ak = snd_kcontrol_chip(kcontrol);
 	int chip = AK_GET_CHIP(kcontrol->private_value);
 	int addr = AK_GET_ADDR(kcontrol->private_value);
 	unsigned char nval = (ucontrol->value.integer.value[0] % 37) | 0x80;
@@ -312,7 +312,7 @@
 
 static int snd_akm4xxx_deemphasis_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	akm4xxx_t *ak = _snd_kcontrol_chip(kcontrol);
+	akm4xxx_t *ak = snd_kcontrol_chip(kcontrol);
 	int chip = AK_GET_CHIP(kcontrol->private_value);
 	int addr = AK_GET_ADDR(kcontrol->private_value);
 	int shift = AK_GET_SHIFT(kcontrol->private_value);
@@ -322,7 +322,7 @@
 
 static int snd_akm4xxx_deemphasis_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	akm4xxx_t *ak = _snd_kcontrol_chip(kcontrol);
+	akm4xxx_t *ak = snd_kcontrol_chip(kcontrol);
 	int chip = AK_GET_CHIP(kcontrol->private_value);
 	int addr = AK_GET_ADDR(kcontrol->private_value);
 	int shift = AK_GET_SHIFT(kcontrol->private_value);
diff -Nru a/sound/i2c/tea6330t.c b/sound/i2c/tea6330t.c
--- a/sound/i2c/tea6330t.c	2004-07-27 18:28:33 -07:00
+++ b/sound/i2c/tea6330t.c	2004-07-27 18:28:33 -07:00
@@ -30,8 +30,6 @@
 MODULE_DESCRIPTION("Routines for control of the TEA6330T circuit via i2c bus");
 MODULE_LICENSE("GPL");
 
-#define chip_t tea6330t_t
-
 #define TEA6330T_ADDR			(0x80>>1) /* fixed address */
 
 #define TEA6330T_SADDR_VOLUME_LEFT	0x00	/* volume left */
@@ -270,8 +268,8 @@
 
 static void snd_tea6330_free(snd_i2c_device_t *device)
 {
-	tea6330t_t *tea = snd_magic_cast(tea6330t_t, device->private_data, return);
-	snd_magic_kfree(tea);
+	tea6330t_t *tea = device->private_data;
+	kfree(tea);
 }
                                         
 int snd_tea6330t_update_mixer(snd_card_t * card,
@@ -286,11 +284,11 @@
 	u8 default_treble, default_bass;
 	unsigned char bytes[7];
 
-	tea = snd_magic_kcalloc(tea6330t_t, 0, GFP_KERNEL);
+	tea = kcalloc(1, sizeof(*tea), GFP_KERNEL);
 	if (tea == NULL)
 		return -ENOMEM;
 	if ((err = snd_i2c_device_create(bus, "TEA6330T", TEA6330T_ADDR, &device)) < 0) {
-		snd_magic_kfree(tea);
+		kfree(tea);
 		return err;
 	}
 	tea->device = device;
diff -Nru a/sound/isa/Kconfig b/sound/isa/Kconfig
--- a/sound/isa/Kconfig	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/Kconfig	2004-07-27 18:28:33 -07:00
@@ -77,11 +77,15 @@
 	help
 	  Say 'Y' or 'M' to include support for ESS AudioDrive ES18xx chips.
 
+config SND_GUS_SYNTH
+	tristate
+
 config SND_GUSCLASSIC
 	tristate "Gravis UltraSound Classic"
 	depends on SND
 	select SND_RAWMIDI
 	select SND_PCM
+	select SND_GUS_SYNTH
 	help
 	  Say 'Y' or 'M' to include support for Gravis UltraSound Classic soundcard.
 
@@ -91,6 +95,7 @@
 	select SND_HWDEP
 	select SND_MPU401_UART
 	select SND_PCM
+	select SND_GUS_SYNTH
 	help
 	  Say 'Y' or 'M' to include support for Gravis UltraSound Extreme soundcard.
 
@@ -99,6 +104,7 @@
 	depends on SND
 	select SND_RAWMIDI
 	select SND_PCM
+	select SND_GUS_SYNTH
 	help
 	  Say 'Y' or 'M' to include support for Gravis UltraSound MAX soundcard.
 
@@ -107,6 +113,7 @@
 	depends on SND
 	select SND_RAWMIDI
 	select SND_PCM
+	select SND_GUS_SYNTH
 	help
 	  Say 'Y' or 'M' to include support for AMD InterWave based soundcards
 	  (Gravis UltraSound Plug & Play, STB SoundRage32, MED3210, Dynasonic Pro,
@@ -117,6 +124,7 @@
 	depends on SND
 	select SND_RAWMIDI
 	select SND_PCM
+	select SND_GUS_SYNTH
 	help
 	  Say 'Y' or 'M' to include support for AMD InterWave based soundcards
 	  with TEA6330T bass and treble regulator (UltraSound 32-Pro).
diff -Nru a/sound/isa/ad1816a/ad1816a.c b/sound/isa/ad1816a/ad1816a.c
--- a/sound/isa/ad1816a/ad1816a.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/ad1816a/ad1816a.c	2004-07-27 18:28:32 -07:00
@@ -30,15 +30,12 @@
 #include <sound/mpu401.h>
 #include <sound/opl3.h>
 
-#define chip_t ad1816a_t
-
 #define PFX "ad1816a: "
 
 MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
 MODULE_DESCRIPTION("AD1816A, AD1815");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Highscreen,Sound-Boostar 16 3D},"
+MODULE_SUPPORTED_DEVICE("{{Highscreen,Sound-Boostar 16 3D},"
 		"{Analog Devices,AD1815},"
 		"{Analog Devices,AD1816A},"
 		"{TerraTec,Base 64},"
@@ -60,34 +57,24 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for ad1816a based soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ad1816a based soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable ad1816a based soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for ad1816a driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port # for ad1816a driver.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
 module_param_array(fm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(fm_port, "FM port # for ad1816a driver.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for ad1816a driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for ad1816a driver.");
-MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "1st DMA # for ad1816a driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "2nd DMA # for ad1816a driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
 
 struct snd_card_ad1816a {
 	struct pnp_dev *dev;
diff -Nru a/sound/isa/ad1816a/ad1816a_lib.c b/sound/isa/ad1816a/ad1816a_lib.c
--- a/sound/isa/ad1816a/ad1816a_lib.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/ad1816a/ad1816a_lib.c	2004-07-27 18:28:33 -07:00
@@ -34,8 +34,6 @@
 MODULE_DESCRIPTION("lowlevel code for Analog Devices AD1816A chip");
 MODULE_LICENSE("GPL");
 
-#define chip_t ad1816a_t
-
 static inline int snd_ad1816a_busy_wait(ad1816a_t *chip)
 {
 	int timeout;
@@ -313,7 +311,7 @@
 
 static irqreturn_t snd_ad1816a_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	ad1816a_t *chip = snd_magic_cast(ad1816a_t, dev_id, return IRQ_NONE);
+	ad1816a_t *chip = dev_id;
 	unsigned char status;
 
 	spin_lock(&chip->lock);
@@ -550,13 +548,13 @@
 		snd_dma_disable(chip->dma2);
 		free_dma(chip->dma2);
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_ad1816a_dev_free(snd_device_t *device)
 {
-	ad1816a_t *chip = snd_magic_cast(ad1816a_t, device->device_data, return -ENXIO);
+	ad1816a_t *chip = device->device_data;
 	return snd_ad1816a_free(chip);
 }
 
@@ -585,7 +583,7 @@
 
 	*rchip = NULL;
 
-	chip = snd_magic_kcalloc(ad1816a_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	chip->irq = -1;
@@ -661,7 +659,7 @@
 
 static void snd_ad1816a_pcm_free(snd_pcm_t *pcm)
 {
-	ad1816a_t *chip = snd_magic_cast(ad1816a_t, pcm->private_data, return);
+	ad1816a_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -696,7 +694,7 @@
 
 static void snd_ad1816a_timer_free(snd_timer_t *timer)
 {
-	ad1816a_t *chip = snd_magic_cast(ad1816a_t, timer->private_data, return);
+	ad1816a_t *chip = timer->private_data;
 	chip->timer = NULL;
 }
 
diff -Nru a/sound/isa/ad1848/ad1848.c b/sound/isa/ad1848/ad1848.c
--- a/sound/isa/ad1848/ad1848.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/ad1848/ad1848.c	2004-07-27 18:28:33 -07:00
@@ -30,13 +30,10 @@
 #include <sound/ad1848.h>
 #include <sound/initval.h>
 
-#define chip_t ad1848_t
-
 MODULE_AUTHOR("Tugrul Galatali <galatalt@stuy.edu>, Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("AD1848/AD1847/CS4248");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Analog Devices,AD1848},"
+MODULE_SUPPORTED_DEVICE("{{Analog Devices,AD1848},"
 	        "{Analog Devices,AD1847},"
 		"{Crystal Semiconductors,CS4248}}");
 
@@ -51,25 +48,18 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for AD1848 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for AD1848 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable AD1848 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for AD1848 driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for AD1848 driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for AD1848 driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(thinkpad, bool, boot_devs, 0444);
 MODULE_PARM_DESC(thinkpad, "Enable only for the onboard CS4248 of IBM Thinkpad 360/750/755 series.");
-MODULE_PARM_SYNTAX(thinkpad,  SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 
 static snd_card_t *snd_ad1848_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
diff -Nru a/sound/isa/ad1848/ad1848_lib.c b/sound/isa/ad1848/ad1848_lib.c
--- a/sound/isa/ad1848/ad1848_lib.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/ad1848/ad1848_lib.c	2004-07-27 18:28:33 -07:00
@@ -39,8 +39,6 @@
 MODULE_DESCRIPTION("Routines for control of AD1848/AD1847/CS4248");
 MODULE_LICENSE("GPL");
 
-#define chip_t ad1848_t
-
 #if 0
 #define SNDRV_DEBUG_MCE
 #endif
@@ -588,7 +586,7 @@
 
 irqreturn_t snd_ad1848_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	ad1848_t *chip = snd_magic_cast(ad1848_t, dev_id, return IRQ_NONE);
+	ad1848_t *chip = dev_id;
 
 	if ((chip->mode & AD1848_MODE_PLAY) && chip->playback_substream &&
 	    (chip->mode & AD1848_MODE_RUNNING))
@@ -649,7 +647,7 @@
 #ifdef CONFIG_PM
 static int snd_ad1848_suspend(snd_card_t *card, unsigned int state)
 {
-	ad1848_t *chip = snd_magic_cast(ad1848_t, card->pm_private_data, return -EINVAL);
+	ad1848_t *chip = card->pm_private_data;
 
 	if (card->power_state == SNDRV_CTL_POWER_D3hot)
 		return 0;
@@ -666,7 +664,7 @@
 
 static int snd_ad1848_resume(snd_card_t *card, unsigned int state)
 {
-	ad1848_t *chip = snd_magic_cast(ad1848_t, card->pm_private_data, return -EINVAL);
+	ad1848_t *chip = card->pm_private_data;
 
 	if (card->power_state == SNDRV_CTL_POWER_D0)
 		return 0;
@@ -867,13 +865,13 @@
 		snd_dma_disable(chip->dma);
 		free_dma(chip->dma);
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_ad1848_dev_free(snd_device_t *device)
 {
-	ad1848_t *chip = snd_magic_cast(ad1848_t, device->device_data, return -ENXIO);
+	ad1848_t *chip = device->device_data;
 	return snd_ad1848_free(chip);
 }
 
@@ -901,7 +899,7 @@
 	int err;
 
 	*rchip = NULL;
-	chip = snd_magic_kcalloc(ad1848_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
@@ -977,7 +975,7 @@
 
 static void snd_ad1848_pcm_free(snd_pcm_t *pcm)
 {
-	ad1848_t *chip = snd_magic_cast(ad1848_t, pcm->private_data, return);
+	ad1848_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
diff -Nru a/sound/isa/als100.c b/sound/isa/als100.c
--- a/sound/isa/als100.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/als100.c	2004-07-27 18:28:32 -07:00
@@ -32,15 +32,12 @@
 #include <sound/opl3.h>
 #include <sound/sb.h>
 
-#define chip_t sb_t
-
 #define PFX "als100: "
 
 MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
 MODULE_DESCRIPTION("Avance Logic ALS1X0");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Avance Logic,ALS100 - PRO16PNP},"
+MODULE_SUPPORTED_DEVICE("{{Avance Logic,ALS100 - PRO16PNP},"
 	        "{Avance Logic,ALS110},"
 	        "{Avance Logic,ALS120},"
 	        "{Avance Logic,ALS200},"
@@ -63,34 +60,24 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for als100 based soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for als100 based soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable als100 based soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for als100 driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port # for als100 driver.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
 module_param_array(fm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(fm_port, "FM port # for als100 driver.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for als100 driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for als100 driver.");
-MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
 module_param_array(dma8, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma8, "8-bit DMA # for als100 driver.");
-MODULE_PARM_SYNTAX(dma8, SNDRV_DMA8_DESC);
 module_param_array(dma16, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma16, "16-bit DMA # for als100 driver.");
-MODULE_PARM_SYNTAX(dma16, SNDRV_DMA16_DESC);
 
 struct snd_card_als100 {
 	int dev_no;
diff -Nru a/sound/isa/azt2320.c b/sound/isa/azt2320.c
--- a/sound/isa/azt2320.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/azt2320.c	2004-07-27 18:28:33 -07:00
@@ -43,15 +43,12 @@
 #include <sound/mpu401.h>
 #include <sound/opl3.h>
 
-#define chip_t cs4231_t
-
 #define PFX "azt2320: "
 
 MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
 MODULE_DESCRIPTION("Aztech Systems AZT2320");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Aztech Systems,PRO16V},"
+MODULE_SUPPORTED_DEVICE("{{Aztech Systems,PRO16V},"
 		"{Aztech Systems,AZT2320},"
 		"{Aztech Systems,AZT3300},"
 		"{Aztech Systems,AZT2320},"
@@ -72,37 +69,26 @@
 
 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_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_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable azt2320 based soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for azt2320 driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 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_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_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_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for azt2320 driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 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_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "1st DMA # for azt2320 driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "2nd DMA # for azt2320 driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
 
 struct snd_card_azt2320 {
 	int dev_no;
diff -Nru a/sound/isa/cmi8330.c b/sound/isa/cmi8330.c
--- a/sound/isa/cmi8330.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/cmi8330.c	2004-07-27 18:28:33 -07:00
@@ -63,8 +63,7 @@
 MODULE_AUTHOR("George Talusan <gstalusan@uwaterloo.ca>");
 MODULE_DESCRIPTION("C-Media CMI8330");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{C-Media,CMI8330,isapnp:{CMI0001,@@@0001,@X@0001}}}");
+MODULE_SUPPORTED_DEVICE("{{C-Media,CMI8330,isapnp:{CMI0001,@@@0001,@X@0001}}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
@@ -83,41 +82,30 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for CMI8330 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string  for CMI8330 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable CMI8330 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 #ifdef CONFIG_PNP
 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_param_array(sbport, long, boot_devs, 0444);
 MODULE_PARM_DESC(sbport, "Port # for CMI8330 SB driver.");
-MODULE_PARM_SYNTAX(sbport, SNDRV_ENABLED ",allows:{{0x220,0x280,0x20}},prefers:{0x220},base:16,dialog:list");
 module_param_array(sbirq, int, boot_devs, 0444);
 MODULE_PARM_DESC(sbirq, "IRQ # for CMI8330 SB driver.");
-MODULE_PARM_SYNTAX(sbirq, SNDRV_ENABLED ",allows:{{5},{7},{9},{10},{11},{12}},prefers:{5},dialog:list");
 module_param_array(sbdma8, int, boot_devs, 0444);
 MODULE_PARM_DESC(sbdma8, "DMA8 for CMI8330 SB driver.");
-MODULE_PARM_SYNTAX(sbdma8, SNDRV_DMA8_DESC ",prefers:{1}");
 module_param_array(sbdma16, int, boot_devs, 0444);
 MODULE_PARM_DESC(sbdma16, "DMA16 for CMI8330 SB driver.");
-MODULE_PARM_SYNTAX(sbdma16, SNDRV_ENABLED ",allows:{{5},{7}},prefers:{5},dialog:list");
 
 module_param_array(wssport, long, boot_devs, 0444);
 MODULE_PARM_DESC(wssport, "Port # for CMI8330 WSS driver.");
-MODULE_PARM_SYNTAX(wssport, SNDRV_ENABLED ",allows:{{0x530},{0xe80,0xf40,0xc0}},prefers:{0x530},base:16,dialog:list");
 module_param_array(wssirq, int, boot_devs, 0444);
 MODULE_PARM_DESC(wssirq, "IRQ # for CMI8330 WSS driver.");
-MODULE_PARM_SYNTAX(wssirq, SNDRV_ENABLED ",allows:{{5},{7},{9},{10},{11},{12}},prefers:{11},dialog:list");
 module_param_array(wssdma, int, boot_devs, 0444);
 MODULE_PARM_DESC(wssdma, "DMA for CMI8330 WSS driver.");
-MODULE_PARM_SYNTAX(wssdma, SNDRV_DMA8_DESC ",prefers:{0}");
 
 #define CMI8330_RMUX3D    16
 #define CMI8330_MUTEMUX   17
@@ -385,7 +373,7 @@
 
 static int snd_cmi8330_playback_open(snd_pcm_substream_t * substream)
 {
-	struct snd_cmi8330 *chip = (struct snd_cmi8330 *)_snd_pcm_substream_chip(substream);
+	struct snd_cmi8330 *chip = snd_pcm_substream_chip(substream);
 
 	/* replace the private_data and call the original open callback */
 	substream->private_data = chip->streams[SNDRV_PCM_STREAM_PLAYBACK].private_data;
@@ -394,7 +382,7 @@
 
 static int snd_cmi8330_capture_open(snd_pcm_substream_t * substream)
 {
-	struct snd_cmi8330 *chip = (struct snd_cmi8330 *)_snd_pcm_substream_chip(substream);
+	struct snd_cmi8330 *chip = snd_pcm_substream_chip(substream);
 
 	/* replace the private_data and call the original open callback */
 	substream->private_data = chip->streams[SNDRV_PCM_STREAM_CAPTURE].private_data;
diff -Nru a/sound/isa/cs423x/cs4231.c b/sound/isa/cs423x/cs4231.c
--- a/sound/isa/cs423x/cs4231.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/cs423x/cs4231.c	2004-07-27 18:28:32 -07:00
@@ -30,13 +30,10 @@
 #include <sound/mpu401.h>
 #include <sound/initval.h>
 
-#define chip_t cs4231_t
-
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Generic CS4231");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Crystal Semiconductors,CS4231}}");
+MODULE_SUPPORTED_DEVICE("{{Crystal Semiconductors,CS4231}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -51,31 +48,22 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for CS4231 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for CS4231 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable CS4231 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for CS4231 driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port # for CS4231 driver.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for CS4231 driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for CS4231 driver.");
-MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for CS4231 driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "DMA2 # for CS4231 driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
 
 static snd_card_t *snd_cs4231_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
diff -Nru a/sound/isa/cs423x/cs4231_lib.c b/sound/isa/cs423x/cs4231_lib.c
--- a/sound/isa/cs423x/cs4231_lib.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/cs423x/cs4231_lib.c	2004-07-27 18:28:32 -07:00
@@ -43,8 +43,6 @@
 MODULE_DESCRIPTION("Routines for control of CS4231(A)/CS4232/InterWave & compatible chips");
 MODULE_LICENSE("GPL");
 
-#define chip_t cs4231_t
-
 #if 0
 #define SNDRV_DEBUG_MCE
 #endif
@@ -969,7 +967,7 @@
 
 irqreturn_t snd_cs4231_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, dev_id, return IRQ_NONE);
+	cs4231_t *chip = dev_id;
 	unsigned char status;
 
 	status = snd_cs4231_in(chip, CS4231_IRQ_STATUS);
@@ -1407,7 +1405,7 @@
 
 static int snd_cs4231_pm_suspend(snd_card_t *card, unsigned int state)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, card->pm_private_data, return -EINVAL);
+	cs4231_t *chip = card->pm_private_data;
 	if (chip->suspend) {
 		chip->suspend(chip);
 		snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
@@ -1417,7 +1415,7 @@
 
 static int snd_cs4231_pm_resume(snd_card_t *card, unsigned int state)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, card->pm_private_data, return -EINVAL);
+	cs4231_t *chip = card->pm_private_data;
 	if (chip->resume) {
 		chip->resume(chip);
 		snd_power_change_state(card, SNDRV_CTL_POWER_D0);
@@ -1453,13 +1451,13 @@
 	}
 	if (chip->timer)
 		snd_device_free(chip->card, chip->timer);
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_cs4231_dev_free(snd_device_t *device)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, device->device_data, return -ENXIO);
+	cs4231_t *chip = device->device_data;
 	return snd_cs4231_free(chip);	
 }
 
@@ -1493,7 +1491,7 @@
 	cs4231_t *chip;
 
 	*rchip = NULL;
-	chip = snd_magic_kcalloc(cs4231_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	chip->hardware = hardware;
@@ -1626,7 +1624,7 @@
 
 static void snd_cs4231_pcm_free(snd_pcm_t *pcm)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, pcm->private_data, return);
+	cs4231_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1686,7 +1684,7 @@
 
 static void snd_cs4231_timer_free(snd_timer_t *timer)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, timer->private_data, return);
+	cs4231_t *chip = timer->private_data;
 	chip->timer = NULL;
 }
 
diff -Nru a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c
--- a/sound/isa/cs423x/cs4236.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/cs423x/cs4236.c	2004-07-27 18:28:32 -07:00
@@ -30,14 +30,11 @@
 #include <sound/opl3.h>
 #include <sound/initval.h>
 
-#define chip_t cs4231_t
-
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 #ifdef CS4232
 MODULE_DESCRIPTION("Cirrus Logic CS4232");
-MODULE_DEVICES("{{Turtle Beach,TBS-2000},"
+MODULE_SUPPORTED_DEVICE("{{Turtle Beach,TBS-2000},"
 		"{Turtle Beach,Tropez Plus},"
 		"{SIC CrystalWave 32},"
 		"{Hewlett Packard,Omnibook 5500},"
@@ -45,7 +42,7 @@
 		"{Philips,PCA70PS}}");
 #else
 MODULE_DESCRIPTION("Cirrus Logic CS4235-9");
-MODULE_DEVICES("{{Crystal Semiconductors,CS4235},"
+MODULE_SUPPORTED_DEVICE("{{Crystal Semiconductors,CS4235},"
 		"{Crystal Semiconductors,CS4236},"
 		"{Crystal Semiconductors,CS4237},"
 		"{Crystal Semiconductors,CS4238},"
@@ -99,45 +96,32 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for " IDENT " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for " IDENT " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable " IDENT " soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 #ifdef CONFIG_PNP
 module_param_array(isapnp, bool, boot_devs, 0444);
 MODULE_PARM_DESC(isapnp, "ISA PnP detection for specified soundcard.");
-MODULE_PARM_SYNTAX(isapnp, SNDRV_ISAPNP_DESC);
 #endif
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for " IDENT " driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(cport, long, boot_devs, 0444);
 MODULE_PARM_DESC(cport, "Control port # for " IDENT " driver.");
-MODULE_PARM_SYNTAX(cport, SNDRV_PORT12_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port # for " IDENT " driver.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
 module_param_array(fm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(fm_port, "FM port # for " IDENT " driver.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_PORT12_DESC);
 module_param_array(sb_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(sb_port, "SB port # for " IDENT " driver (optional).");
-MODULE_PARM_SYNTAX(sb_port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for " IDENT " driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for " IDENT " driver.");
-MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for " IDENT " driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "DMA2 # for " IDENT " driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
 
 struct snd_card_cs4236 {
 	struct resource *res_sb_port;
diff -Nru a/sound/isa/cs423x/cs4236_lib.c b/sound/isa/cs423x/cs4236_lib.c
--- a/sound/isa/cs423x/cs4236_lib.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/cs423x/cs4236_lib.c	2004-07-27 18:28:32 -07:00
@@ -93,8 +93,6 @@
 MODULE_DESCRIPTION("Routines for control of CS4235/4236B/4237B/4238B/4239 chips");
 MODULE_LICENSE("GPL");
 
-#define chip_t cs4231_t
-
 /*
  *
  */
diff -Nru a/sound/isa/dt019x.c b/sound/isa/dt019x.c
--- a/sound/isa/dt019x.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/dt019x.c	2004-07-27 18:28:33 -07:00
@@ -33,15 +33,12 @@
 #include <sound/opl3.h>
 #include <sound/sb.h>
 
-#define chip_t sb_t
-
 #define PFX "dt019x: "
 
 MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
 MODULE_DESCRIPTION("Diamond Technologies DT-019X / Avance Logic ALS-007");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Diamond Technologies DT-019X},"
+MODULE_SUPPORTED_DEVICE("{{Diamond Technologies DT-019X},"
 	       "{Avance Logic ALS-007}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
@@ -57,31 +54,22 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for DT-019X based soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for DT-019X based soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable DT-019X based soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for dt019x driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port # for dt019x driver.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
 module_param_array(fm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(fm_port, "FM port # for dt019x driver.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for dt019x driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for dt019x driver.");
-MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
 module_param_array(dma8, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma8, "8-bit DMA # for dt019x driver.");
-MODULE_PARM_SYNTAX(dma8, SNDRV_DMA8_DESC);
 
 struct snd_card_dt019x {
 	struct pnp_dev *dev;
diff -Nru a/sound/isa/es1688/es1688.c b/sound/isa/es1688/es1688.c
--- a/sound/isa/es1688/es1688.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/es1688/es1688.c	2004-07-27 18:28:32 -07:00
@@ -37,8 +37,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("ESS ESx688 AudioDrive");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ESS,ES688 PnP AudioDrive,pnp:ESS0100},"
+MODULE_SUPPORTED_DEVICE("{{ESS,ES688 PnP AudioDrive,pnp:ESS0100},"
 	        "{ESS,ES1688 PnP AudioDrive,pnp:ESS0102},"
 	        "{ESS,ES688 AudioDrive,pnp:ESS6881},"
 	        "{ESS,ES1688 AudioDrive,pnp:ESS1681}}");
@@ -55,28 +54,20 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for ESx688 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ESx688 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable ESx688 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for ESx688 driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port # for ESx688 driver.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for ESx688 driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for ESx688 driver.");
-MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
 module_param_array(dma8, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma8, "8-bit DMA # for ESx688 driver.");
-MODULE_PARM_SYNTAX(dma8, SNDRV_DMA8_DESC);
 
 static snd_card_t *snd_audiodrive_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
diff -Nru a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c
--- a/sound/isa/es1688/es1688_lib.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/es1688/es1688_lib.c	2004-07-27 18:28:33 -07:00
@@ -34,7 +34,6 @@
 
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("ESS ESx688 lowlevel module");
-MODULE_CLASSES("{sound}");
 MODULE_LICENSE("GPL");
 
 static int snd_es1688_dsp_command(es1688_t *chip, unsigned char val)
@@ -482,7 +481,7 @@
 
 irqreturn_t snd_es1688_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	es1688_t *chip = snd_magic_cast(es1688_t, dev_id, return IRQ_NONE);
+	es1688_t *chip = dev_id;
 
 	if (chip->trigger_value == 0x05)	/* ok.. playback is active */
 		snd_pcm_period_elapsed(chip->playback_substream);
@@ -616,13 +615,13 @@
 		disable_dma(chip->dma8);
 		free_dma(chip->dma8);
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_es1688_dev_free(snd_device_t *device)
 {
-	es1688_t *chip = snd_magic_cast(es1688_t, device->device_data, return -ENXIO);
+	es1688_t *chip = device->device_data;
 	return snd_es1688_free(chip);
 }
 
@@ -650,7 +649,7 @@
 	int err;
 
 	*rchip = NULL;
-	chip = snd_magic_kcalloc(es1688_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	chip->irq = -1;
@@ -728,7 +727,7 @@
 
 static void snd_es1688_pcm_free(snd_pcm_t *pcm)
 {
-	es1688_t *chip = snd_magic_cast(es1688_t, pcm->private_data, return);
+	es1688_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
diff -Nru a/sound/isa/es18xx.c b/sound/isa/es18xx.c
--- a/sound/isa/es18xx.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/es18xx.c	2004-07-27 18:28:33 -07:00
@@ -157,8 +157,6 @@
 
 typedef struct _snd_es18xx es18xx_t;
 
-#define chip_t es18xx_t
-
 /* Lowlevel */
 
 #define DAC1 0x01
@@ -728,7 +726,7 @@
 
 static irqreturn_t snd_es18xx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	es18xx_t *chip = snd_magic_cast(es18xx_t, dev_id, return IRQ_NONE);
+	es18xx_t *chip = dev_id;
 	unsigned char status;
 
 	if (chip->caps & ES18XX_CONTROL) {
@@ -1027,7 +1025,7 @@
 
 static void snd_es18xx_hwv_free(snd_kcontrol_t *kcontrol)
 {
-	es18xx_t *chip = snd_magic_cast(es18xx_t, _snd_kcontrol_chip(kcontrol), return);
+	es18xx_t *chip = snd_kcontrol_chip(kcontrol);
 	chip->master_volume = NULL;
 	chip->master_switch = NULL;
 	chip->hw_volume = NULL;
@@ -1561,7 +1559,7 @@
 
 static void snd_es18xx_pcm_free(snd_pcm_t *pcm)
 {
-	es18xx_t *codec = snd_magic_cast(es18xx_t, pcm->private_data, return);
+	es18xx_t *codec = pcm->private_data;
 	codec->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1611,7 +1609,7 @@
 #ifdef CONFIG_PM
 static int snd_es18xx_suspend(snd_card_t *card, unsigned int state)
 {
-	es18xx_t *chip = snd_magic_cast(es18xx_t, card->pm_private_data, return -EINVAL);
+	es18xx_t *chip = card->pm_private_data;
 
 	snd_pcm_suspend_all(chip->pcm);
 
@@ -1627,7 +1625,7 @@
 
 static int snd_es18xx_resume(snd_card_t *card, unsigned int state)
 {
-	es18xx_t *chip = snd_magic_cast(es18xx_t, card->pm_private_data, return -EINVAL);
+	es18xx_t *chip = card->pm_private_data;
 
 	/* 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);
@@ -1661,13 +1659,13 @@
 		disable_dma(chip->dma2);
 		free_dma(chip->dma2);
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_es18xx_dev_free(snd_device_t *device)
 {
-	es18xx_t *chip = snd_magic_cast(es18xx_t, device->device_data, return -ENXIO);
+	es18xx_t *chip = device->device_data;
 	return snd_es18xx_free(chip);
 }
 
@@ -1685,7 +1683,7 @@
 	int err;
 
 	*rchip = NULL;
-        chip = snd_magic_kcalloc(es18xx_t, 0, GFP_KERNEL);
+        chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
@@ -1830,8 +1828,7 @@
 MODULE_AUTHOR("Christian Fischbach <fishbach@pool.informatik.rwth-aachen.de>, Abramo Bagnara <abramo@alsa-project.org>");  
 MODULE_DESCRIPTION("ESS ES18xx AudioDrive");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ESS,ES1868 PnP AudioDrive},"
+MODULE_SUPPORTED_DEVICE("{{ESS,ES1868 PnP AudioDrive},"
 		"{ESS,ES1869 PnP AudioDrive},"
 		"{ESS,ES1878 PnP AudioDrive},"
 		"{ESS,ES1879 PnP AudioDrive},"
@@ -1860,36 +1857,26 @@
 
 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_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ES18xx soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 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_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_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_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_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_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_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_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}");
 
 struct snd_audiodrive {
 #ifdef CONFIG_PNP
diff -Nru a/sound/isa/gus/Makefile b/sound/isa/gus/Makefile
--- a/sound/isa/gus/Makefile	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/Makefile	2004-07-27 18:28:33 -07:00
@@ -27,14 +27,10 @@
 
 # Toplevel Module Dependency
 obj-$(CONFIG_SND_GUSCLASSIC) += snd-gusclassic.o snd-gus-lib.o
-obj-$(call sequencer,$(CONFIG_SND_GUSCLASSIC)) += snd-gus-synth.o
 obj-$(CONFIG_SND_GUSMAX) += snd-gusmax.o snd-gus-lib.o
-obj-$(call sequencer,$(CONFIG_SND_GUSMAX)) += snd-gus-synth.o
 obj-$(CONFIG_SND_GUSEXTREME) += snd-gusextreme.o snd-gus-lib.o
-obj-$(call sequencer,$(CONFIG_SND_GUSEXTREME)) += snd-gus-synth.o
 obj-$(CONFIG_SND_INTERWAVE) += snd-interwave.o snd-gus-lib.o
-obj-$(call sequencer,$(CONFIG_SND_INTERWAVE)) += snd-gus-synth.o
 obj-$(CONFIG_SND_INTERWAVE_STB) += snd-interwave-stb.o snd-gus-lib.o
-obj-$(call sequencer,$(CONFIG_SND_INTERWAVE_STB)) += snd-gus-synth.o
+obj-$(call sequencer,$(CONFIG_SND_GUS_SYNTH)) += snd-gus-synth.o
 
 obj-m := $(sort $(obj-m))
diff -Nru a/sound/isa/gus/gus_instr.c b/sound/isa/gus/gus_instr.c
--- a/sound/isa/gus/gus_instr.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gus_instr.c	2004-07-27 18:28:33 -07:00
@@ -31,7 +31,7 @@
 int snd_gus_iwffff_put_sample(void *private_data, iwffff_wave_t *wave,
 			      char __user *data, long len, int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 	snd_gf1_mem_block_t *block;
 	int err;
 
@@ -61,7 +61,7 @@
 int snd_gus_iwffff_get_sample(void *private_data, iwffff_wave_t *wave,
 			      char __user *data, long len, int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 
 	return snd_gus_dram_read(gus, data, wave->address.memory, wave->size,
 				 wave->format & IWFFFF_WAVE_ROM ? 1 : 0);
@@ -70,7 +70,7 @@
 int snd_gus_iwffff_remove_sample(void *private_data, iwffff_wave_t *wave,
 				 int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 
 	if (wave->format & IWFFFF_WAVE_ROM)
 		return 0;	/* it's probably ok - verify the address? */	
@@ -84,7 +84,7 @@
 int snd_gus_gf1_put_sample(void *private_data, gf1_wave_t *wave,
 			   char __user *data, long len, int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 	snd_gf1_mem_block_t *block;
 	int err;
 
@@ -112,7 +112,7 @@
 int snd_gus_gf1_get_sample(void *private_data, gf1_wave_t *wave,
 			   char __user *data, long len, int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 
 	return snd_gus_dram_read(gus, data, wave->address.memory, wave->size, 0);
 }
@@ -120,7 +120,7 @@
 int snd_gus_gf1_remove_sample(void *private_data, gf1_wave_t *wave,
 			      int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 
 	return snd_gf1_mem_free(&gus->gf1.mem_alloc, wave->address.memory);
 }
@@ -132,7 +132,7 @@
 int snd_gus_simple_put_sample(void *private_data, simple_instrument_t *instr,
 			      char __user *data, long len, int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 	snd_gf1_mem_block_t *block;
 	int err;
 
@@ -159,7 +159,7 @@
 int snd_gus_simple_get_sample(void *private_data, simple_instrument_t *instr,
 			      char __user *data, long len, int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 
 	return snd_gus_dram_read(gus, data, instr->address.memory, instr->size, 0);
 }
@@ -167,7 +167,7 @@
 int snd_gus_simple_remove_sample(void *private_data, simple_instrument_t *instr,
 			         int atomic)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return -ENXIO);
+	snd_gus_card_t *gus = private_data;
 
 	return snd_gf1_mem_free(&gus->gf1.mem_alloc, instr->address.memory);
 }
diff -Nru a/sound/isa/gus/gus_irq.c b/sound/isa/gus/gus_irq.c
--- a/sound/isa/gus/gus_irq.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gus_irq.c	2004-07-27 18:28:33 -07:00
@@ -32,7 +32,7 @@
 
 irqreturn_t snd_gus_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	snd_gus_card_t * gus = snd_magic_cast(snd_gus_card_t, dev_id, return IRQ_NONE);
+	snd_gus_card_t * gus = dev_id;
 	unsigned char status;
 	int loop = 100;
 	int handled = 0;
@@ -114,7 +114,7 @@
 	snd_gus_voice_t *pvoice;
 	int idx;
 
-	gus = snd_magic_cast(snd_gus_card_t, entry->private_data, return);
+	gus = entry->private_data;
 	snd_iprintf(buffer, "midi out = %u\n", gus->gf1.interrupt_stat_midi_out);
 	snd_iprintf(buffer, "midi in = %u\n", gus->gf1.interrupt_stat_midi_in);
 	snd_iprintf(buffer, "timer1 = %u\n", gus->gf1.interrupt_stat_timer1);
diff -Nru a/sound/isa/gus/gus_main.c b/sound/isa/gus/gus_main.c
--- a/sound/isa/gus/gus_main.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/gus/gus_main.c	2004-07-27 18:28:32 -07:00
@@ -35,8 +35,6 @@
 MODULE_DESCRIPTION("Routines for Gravis UltraSound soundcards");
 MODULE_LICENSE("GPL");
 
-#define chip_t snd_gus_card_t
-
 static int snd_gus_init_dma_irq(snd_gus_card_t * gus, int latches);
 
 int snd_gus_use_inc(snd_gus_card_t * gus)
@@ -133,13 +131,13 @@
 		disable_dma(gus->gf1.dma2);
 		free_dma(gus->gf1.dma2);
 	}
-	snd_magic_kfree(gus);
+	kfree(gus);
 	return 0;
 }
 
 static int snd_gus_dev_free(snd_device_t *device)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, device->device_data, return -ENXIO);
+	snd_gus_card_t *gus = device->device_data;
 	return snd_gus_free(gus);
 }
 
@@ -159,7 +157,7 @@
 	};
 
 	*rgus = NULL;
-	gus = snd_magic_kcalloc(snd_gus_card_t, 0, GFP_KERNEL);
+	gus = kcalloc(1, sizeof(*gus), GFP_KERNEL);
 	if (gus == NULL)
 		return -ENOMEM;
 	gus->gf1.irq = -1;
@@ -421,7 +419,7 @@
 
 static void snd_gus_seq_dev_free(snd_seq_device_t *seq_dev)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, seq_dev->private_data, return);
+	snd_gus_card_t *gus = seq_dev->private_data;
 	gus->seq_dev = NULL;
 }
 
diff -Nru a/sound/isa/gus/gus_mem.c b/sound/isa/gus/gus_mem.c
--- a/sound/isa/gus/gus_mem.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gus_mem.c	2004-07-27 18:28:33 -07:00
@@ -297,7 +297,7 @@
 	unsigned int total, used;
 	int i;
 
-	gus = snd_magic_cast(snd_gus_card_t, entry->private_data, return);
+	gus = entry->private_data;
 	alloc = &gus->gf1.mem_alloc;
 	down(&alloc->memory_mutex);
 	snd_iprintf(buffer, "8-bit banks       : \n    ");
diff -Nru a/sound/isa/gus/gus_mem_proc.c b/sound/isa/gus/gus_mem_proc.c
--- a/sound/isa/gus/gus_mem_proc.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gus_mem_proc.c	2004-07-27 18:28:33 -07:00
@@ -36,7 +36,7 @@
 			          struct file *file, char __user *buf, long count)
 {
 	long size;
-	gus_proc_private_t *priv = snd_magic_cast(gus_proc_private_t, entry->private_data, return -ENXIO);
+	gus_proc_private_t *priv = entry->private_data;
 	snd_gus_card_t *gus = priv->gus;
 	int err;
 
@@ -58,7 +58,7 @@
 					long long offset,
 					int orig)
 {
-	gus_proc_private_t *priv = snd_magic_cast(gus_proc_private_t, entry->private_data, return -ENXIO);
+	gus_proc_private_t *priv = entry->private_data;
 
 	switch (orig) {
 	case 0:	/* SEEK_SET */
@@ -80,8 +80,8 @@
 
 static void snd_gf1_mem_proc_free(snd_info_entry_t *entry)
 {
-	gus_proc_private_t *priv = snd_magic_cast(gus_proc_private_t, entry->private_data, return);
-	snd_magic_kfree(priv);
+	gus_proc_private_t *priv = entry->private_data;
+	kfree(priv);
 }
 
 static struct snd_info_entry_ops snd_gf1_mem_proc_ops = {
@@ -98,7 +98,7 @@
 
 	for (idx = 0; idx < 4; idx++) {
 		if (gus->gf1.mem_alloc.banks_8[idx].size > 0) {
-			priv = snd_magic_kcalloc(gus_proc_private_t, 0, GFP_KERNEL);
+			priv = kcalloc(1, sizeof(*priv), GFP_KERNEL);
 			if (priv == NULL)
 				return -ENOMEM;
 			priv->gus = gus;
@@ -115,7 +115,7 @@
 	}
 	for (idx = 0; idx < 4; idx++) {
 		if (gus->gf1.rom_present & (1 << idx)) {
-			priv = snd_magic_kcalloc(gus_proc_private_t, 0, GFP_KERNEL);
+			priv = kcalloc(1, sizeof(*priv), GFP_KERNEL);
 			if (priv == NULL)
 				return -ENOMEM;
 			priv->rom = 1;
diff -Nru a/sound/isa/gus/gus_mixer.c b/sound/isa/gus/gus_mixer.c
--- a/sound/isa/gus/gus_mixer.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/gus/gus_mixer.c	2004-07-27 18:28:32 -07:00
@@ -26,8 +26,6 @@
 #include <sound/control.h>
 #include <sound/gus.h>
 
-#define chip_t snd_gus_card_t
-
 /*
  *
  */
diff -Nru a/sound/isa/gus/gus_pcm.c b/sound/isa/gus/gus_pcm.c
--- a/sound/isa/gus/gus_pcm.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gus_pcm.c	2004-07-27 18:28:33 -07:00
@@ -34,8 +34,6 @@
 #include <sound/pcm_params.h>
 #include "gus_tables.h"
 
-#define chip_t snd_gus_card_t
-
 /* maximum rate */
 
 #define SNDRV_GF1_PCM_RATE		48000
@@ -66,7 +64,7 @@
 
 static void snd_gf1_pcm_block_change_ack(snd_gus_card_t * gus, void *private_data)
 {
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, private_data, return);
+	gus_pcm_private_t *pcmp = private_data;
 
 	if (pcmp) {
 		atomic_dec(&pcmp->dma_count);
@@ -81,7 +79,7 @@
 {
 	snd_gf1_dma_block_t block;
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 
 	count += offset & 31;
 	offset &= ~31;
@@ -106,7 +104,7 @@
 static void snd_gf1_pcm_trigger_up(snd_pcm_substream_t * substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 	snd_gus_card_t * gus = pcmp->gus;
 	unsigned long flags;
 	unsigned char voice_ctrl, ramp_ctrl;
@@ -194,7 +192,7 @@
 		snd_gf1_smart_stop_voice(gus, pvoice->number);
 		return;
 	}
-	pcmp = snd_magic_cast(gus_pcm_private_t, pvoice->private_data, return);
+	pcmp = pvoice->private_data;
 	if (pcmp == NULL) {
 		snd_printd("snd_gf1_pcm: unknown wave irq?\n");
 		snd_gf1_smart_stop_voice(gus, pvoice->number);
@@ -267,7 +265,7 @@
 {
 	unsigned short vol;
 	int cvoice;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, pvoice->private_data, return);
+	gus_pcm_private_t *pcmp = pvoice->private_data;
 
 	/* stop ramp, but leave rollover bit untouched */
 	spin_lock(&gus->reg_lock);
@@ -350,7 +348,7 @@
 				     snd_pcm_uframes_t count)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 	unsigned int bpos, len;
 	
 	bpos = samples_to_bytes(runtime, pos) + (voice * (pcmp->dma_size / 2));
@@ -379,7 +377,7 @@
 					snd_pcm_uframes_t count)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 	unsigned int bpos, len;
 	
 	bpos = samples_to_bytes(runtime, pos) + (voice * (pcmp->dma_size / 2));
@@ -406,7 +404,7 @@
 {
 	snd_gus_card_t *gus = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 	int err;
 	
 	if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0)
@@ -453,7 +451,7 @@
 static int snd_gf1_pcm_playback_hw_free(snd_pcm_substream_t * substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 
 	snd_pcm_lib_free_pages(substream);
 	if (pcmp->pvoices[0]) {
@@ -474,7 +472,7 @@
 static int snd_gf1_pcm_playback_prepare(snd_pcm_substream_t * substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 
 	pcmp->bpos = 0;
 	pcmp->dma_size = snd_pcm_lib_buffer_bytes(substream);
@@ -488,7 +486,7 @@
 {
 	snd_gus_card_t *gus = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 	int voice;
 
 	if (cmd == SNDRV_PCM_TRIGGER_START) {
@@ -513,7 +511,7 @@
 {
 	snd_gus_card_t *gus = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 	unsigned int pos;
 	unsigned char voice_ctrl;
 
@@ -657,8 +655,8 @@
 
 static void snd_gf1_pcm_playback_free(snd_pcm_runtime_t *runtime)
 {
-	gus_pcm_private_t * pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return);
-	snd_magic_kfree(pcmp);
+	gus_pcm_private_t * pcmp = runtime->private_data;
+	kfree(pcmp);
 }
 
 static int snd_gf1_pcm_playback_open(snd_pcm_substream_t *substream)
@@ -668,7 +666,7 @@
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	int err;
 
-	pcmp = snd_magic_kcalloc(gus_pcm_private_t, 0, GFP_KERNEL);
+	pcmp = kcalloc(1, sizeof(*pcmp), GFP_KERNEL);
 	if (pcmp == NULL)
 		return -ENOMEM;
 	pcmp->gus = gus;
@@ -697,7 +695,7 @@
 {
 	snd_gus_card_t *gus = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	gus_pcm_private_t *pcmp = snd_magic_cast(gus_pcm_private_t, runtime->private_data, return -ENXIO);
+	gus_pcm_private_t *pcmp = runtime->private_data;
 	unsigned long jiffies_old;
 
 	jiffies_old = jiffies;
@@ -738,7 +736,7 @@
 
 static void snd_gf1_pcm_free(snd_pcm_t *pcm)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, pcm->private_data, return);
+	snd_gus_card_t *gus = pcm->private_data;
 	gus->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -790,7 +788,7 @@
 		pvoice = &gus->gf1.voices[idx];
 		if (!pvoice->pcm)
 			continue;
-		pcmp = snd_magic_cast(gus_pcm_private_t, pvoice->private_data, return -ENXIO);
+		pcmp = pvoice->private_data;
 		if (!(pcmp->flags & SNDRV_GF1_PCM_PFLG_ACTIVE))
 			continue;
 		/* load real volume - better precision */
diff -Nru a/sound/isa/gus/gus_synth.c b/sound/isa/gus/gus_synth.c
--- a/sound/isa/gus/gus_synth.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gus_synth.c	2004-07-27 18:28:33 -07:00
@@ -134,7 +134,7 @@
 				       int what)
 {
 	unsigned int idx;
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, private_data, return);
+	snd_gus_card_t *gus = private_data;
 	snd_gus_voice_t *pvoice;
 	unsigned long flags;
 	
diff -Nru a/sound/isa/gus/gus_timer.c b/sound/isa/gus/gus_timer.c
--- a/sound/isa/gus/gus_timer.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gus_timer.c	2004-07-27 18:28:33 -07:00
@@ -26,8 +26,6 @@
 #include <sound/core.h>
 #include <sound/gus.h>
 
-#define chip_t snd_gus_card_t
-
 /*
  *  Timer 1 - 80us
  */
@@ -146,13 +144,13 @@
 
 static void snd_gf1_timer1_free(snd_timer_t *timer)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, timer->private_data, return);
+	snd_gus_card_t *gus = timer->private_data;
 	gus->gf1.timer1 = NULL;
 }
 
 static void snd_gf1_timer2_free(snd_timer_t *timer)
 {
-	snd_gus_card_t *gus = snd_magic_cast(snd_gus_card_t, timer->private_data, return);
+	snd_gus_card_t *gus = timer->private_data;
 	gus->gf1.timer2 = NULL;
 }
 
diff -Nru a/sound/isa/gus/gus_uart.c b/sound/isa/gus/gus_uart.c
--- a/sound/isa/gus/gus_uart.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/gus/gus_uart.c	2004-07-27 18:28:32 -07:00
@@ -95,7 +95,7 @@
 	unsigned long flags;
 	snd_gus_card_t *gus;
 
-	gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO);
+	gus = substream->rmidi->private_data;
 	spin_lock_irqsave(&gus->uart_cmd_lock, flags);
 	if (!(gus->gf1.uart_cmd & 0x80)) {	/* input active? */
 		snd_gf1_uart_reset(gus, 0);
@@ -115,7 +115,7 @@
 	snd_gus_card_t *gus;
 	int i;
 
-	gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO);
+	gus = substream->rmidi->private_data;
 	spin_lock_irqsave(&gus->uart_cmd_lock, flags);
 	if (gus->gf1.interrupt_handler_midi_out != snd_gf1_interrupt_midi_out) {
 		snd_gf1_uart_reset(gus, 0);
@@ -141,7 +141,7 @@
 	unsigned long flags;
 	snd_gus_card_t *gus;
 
-	gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO);
+	gus = substream->rmidi->private_data;
 	spin_lock_irqsave(&gus->uart_cmd_lock, flags);
 	if (gus->gf1.interrupt_handler_midi_in != snd_gf1_interrupt_midi_in)
 		snd_gf1_uart_reset(gus, 1);
@@ -156,7 +156,7 @@
 	unsigned long flags;
 	snd_gus_card_t *gus;
 
-	gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return -ENXIO);
+	gus = substream->rmidi->private_data;
 	spin_lock_irqsave(&gus->uart_cmd_lock, flags);
 	if (gus->gf1.interrupt_handler_midi_out != snd_gf1_interrupt_midi_out)
 		snd_gf1_uart_reset(gus, 1);
@@ -171,7 +171,7 @@
 	snd_gus_card_t *gus;
 	unsigned long flags;
 
-	gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return);
+	gus = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&gus->uart_cmd_lock, flags);
 	if (up) {
@@ -191,7 +191,7 @@
 	char byte;
 	int timeout;
 
-	gus = snd_magic_cast(snd_gus_card_t, substream->rmidi->private_data, return);
+	gus = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&gus->uart_cmd_lock, flags);
 	if (up) {
diff -Nru a/sound/isa/gus/gusclassic.c b/sound/isa/gus/gusclassic.c
--- a/sound/isa/gus/gusclassic.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gusclassic.c	2004-07-27 18:28:33 -07:00
@@ -35,8 +35,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Gravis UltraSound Classic");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Gravis,UltraSound Classic}}");
+MODULE_SUPPORTED_DEVICE("{{Gravis,UltraSound Classic}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -53,34 +52,24 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for GUS Classic soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for GUS Classic soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable GUS Classic soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for GUS Classic driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0x220,0x260,0x10}},dialog:list");
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for GUS Classic driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_ENABLED ",allows:{{3},{5},{9},{11},{12},{15}},dialog:list");
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for GUS Classic driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_ENABLED ",allows:{{1},{3},{5},{6},{7}},dialog:list");
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "DMA2 # for GUS Classic driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_ENABLED ",allows:{{1},{3},{5},{6},{7}},dialog:list");
 module_param_array(joystick_dac, int, boot_devs, 0444);
 MODULE_PARM_DESC(joystick_dac, "Joystick DAC level 0.59V-4.52V or 0.389V-2.98V for GUS Classic driver.");
-MODULE_PARM_SYNTAX(joystick_dac, SNDRV_ENABLED ",allows:{{0,31}}");
 module_param_array(channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(channels, "GF1 channels for GUS Classic driver.");
-MODULE_PARM_SYNTAX(channels,  SNDRV_ENABLED ",allows:{{14,32}}");
 module_param_array(pcm_channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_channels, "Reserved PCM channels for GUS Classic driver.");
-MODULE_PARM_SYNTAX(pcm_channels, SNDRV_ENABLED ",allows:{{2,16}}");
 
 static snd_card_t *snd_gusclassic_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
diff -Nru a/sound/isa/gus/gusextreme.c b/sound/isa/gus/gusextreme.c
--- a/sound/isa/gus/gusextreme.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gusextreme.c	2004-07-27 18:28:33 -07:00
@@ -38,8 +38,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Gravis UltraSound Extreme");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Gravis,UltraSound Extreme}}");
+MODULE_SUPPORTED_DEVICE("{{Gravis,UltraSound Extreme}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -60,46 +59,32 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for GUS Extreme soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for GUS Extreme soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable GUS Extreme soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0x220,0x260,0x20}},dialog:list");
 module_param_array(gf1_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(gf1_port, "GF1 port # for GUS Extreme driver (optional).");
-MODULE_PARM_SYNTAX(gf1_port, SNDRV_ENABLED ",allows:{{0x210,0x270,0x10}},dialog:list");
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port # for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_ENABLED ",allows:{{0x300,0x320,0x10}},dialog:list");
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_ENABLED ",allows:{{5},{7},{9},{10}},dialog:list");
 module_param_array(mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_irq, "MPU-401 IRQ # for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(mpu_irq, SNDRV_ENABLED ",allows:{{5},{7},{9},{10}},dialog:list");
 module_param_array(gf1_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(gf1_irq, "GF1 IRQ # for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(gf1_irq, SNDRV_ENABLED ",allows:{{2},{3},{5},{9},{11},{12},{15}},dialog:list");
 module_param_array(dma8, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma8, "8-bit DMA # for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(dma8, SNDRV_DMA8_DESC);
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "GF1 DMA # for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(joystick_dac, int, boot_devs, 0444);
 MODULE_PARM_DESC(joystick_dac, "Joystick DAC level 0.59V-4.52V or 0.389V-2.98V for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(joystick_dac, SNDRV_ENABLED ",allows:{{0,31}}");
 module_param_array(channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(channels, "GF1 channels for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(channels, SNDRV_ENABLED ",allows:{{14,32}}");
 module_param_array(pcm_channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_channels, "Reserved PCM channels for GUS Extreme driver.");
-MODULE_PARM_SYNTAX(pcm_channels, SNDRV_ENABLED ",allows:{{2,16}}");
 
 static snd_card_t *snd_gusextreme_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
diff -Nru a/sound/isa/gus/gusmax.c b/sound/isa/gus/gusmax.c
--- a/sound/isa/gus/gusmax.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/gusmax.c	2004-07-27 18:28:33 -07:00
@@ -36,8 +36,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Gravis UltraSound MAX");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Gravis,UltraSound MAX}}");
+MODULE_SUPPORTED_DEVICE("{{Gravis,UltraSound MAX}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -54,34 +53,24 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for GUS MAX soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for GUS MAX soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable GUS MAX soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for GUS MAX driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0x220},{0x230},{0x240},{0x250},{0x260}},dialog:list");
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for GUS MAX driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_ENABLED ",allows:{{3},{5},{9},{11},{12},{15}},dialog:list");
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for GUS MAX driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "DMA2 # for GUS MAX driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
 module_param_array(joystick_dac, int, boot_devs, 0444);
 MODULE_PARM_DESC(joystick_dac, "Joystick DAC level 0.59V-4.52V or 0.389V-2.98V for GUS MAX driver.");
-MODULE_PARM_SYNTAX(joystick_dac, SNDRV_ENABLED ",allows:{{0,31}}");
 module_param_array(channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(channels, "Used GF1 channels for GUS MAX driver.");
-MODULE_PARM_SYNTAX(channels, SNDRV_ENABLED ",allows:{{14,32}}");
 module_param_array(pcm_channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_channels, "Reserved PCM channels for GUS MAX driver.");
-MODULE_PARM_SYNTAX(pcm_channels, SNDRV_ENABLED ",allows:{{2,16}}");
 
 struct snd_gusmax {
 	int irq;
diff -Nru a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c
--- a/sound/isa/gus/interwave.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/gus/interwave.c	2004-07-27 18:28:33 -07:00
@@ -41,18 +41,17 @@
 #include <sound/initval.h>
 
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
-MODULE_CLASSES("{sound}");
 MODULE_LICENSE("GPL");
 #ifndef SNDRV_STB
 MODULE_DESCRIPTION("AMD InterWave");
-MODULE_DEVICES("{{Gravis,UltraSound Plug & Play},"
+MODULE_SUPPORTED_DEVICE("{{Gravis,UltraSound Plug & Play},"
 		"{STB,SoundRage32},"
 		"{MED,MED3210},"
 		"{Dynasonix,Dynasonix Pro},"
 		"{Panasonic,PCA761AW}}");
 #else
 MODULE_DESCRIPTION("AMD InterWave STB with TEA6330T");
-MODULE_DEVICES("{{AMD,InterWave STB with TEA6330T}}");
+MODULE_SUPPORTED_DEVICE("{{AMD,InterWave STB with TEA6330T}}");
 #endif
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
@@ -77,10 +76,8 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for InterWave soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for InterWave soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable InterWave soundcard.");
 MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
@@ -91,33 +88,24 @@
 #endif
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for InterWave driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0x210,0x260,0x10}},dialog:list");
 #ifdef SNDRV_STB
 module_param_array(port_tc, long, boot_devs, 0444);
 MODULE_PARM_DESC(port_tc, "Tone control (TEA6330T - i2c bus) port # for InterWave driver.");
-MODULE_PARM_SYNTAX(port_tc, SNDRV_ENABLED ",allows:{{0x350,0x380,0x10}},dialog:list");
 #endif
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for InterWave driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_ENABLED ",allows:{{3},{5},{9},{11},{12},{15}},dialog:list");
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for InterWave driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "DMA2 # for InterWave driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
 module_param_array(joystick_dac, int, boot_devs, 0444);
 MODULE_PARM_DESC(joystick_dac, "Joystick DAC level 0.59V-4.52V or 0.389V-2.98V for InterWave driver.");
-MODULE_PARM_SYNTAX(joystick_dac, SNDRV_ENABLED ",allows:{{0,31}}");
 module_param_array(midi, int, boot_devs, 0444);
 MODULE_PARM_DESC(midi, "MIDI UART enable for InterWave driver.");
-MODULE_PARM_SYNTAX(midi, SNDRV_ENABLED "," SNDRV_ENABLE_DESC);
 module_param_array(pcm_channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_channels, "Reserved PCM channels for InterWave driver.");
-MODULE_PARM_SYNTAX(pcm_channels, SNDRV_ENABLED ",allows:{{2,16}}");
 module_param_array(effect, int, boot_devs, 0444);
 MODULE_PARM_DESC(effect, "Effects enable for InterWave driver.");
-MODULE_PARM_SYNTAX(effect, SNDRV_ENABLED "," SNDRV_ENABLE_DESC);
 
 struct snd_interwave {
 	int irq;
diff -Nru a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c
--- a/sound/isa/opl3sa2.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/opl3sa2.c	2004-07-27 18:28:33 -07:00
@@ -37,8 +37,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Yamaha OPL3SA2+");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Yamaha,YMF719E-S},"
+MODULE_SUPPORTED_DEVICE("{{Yamaha,YMF719E-S},"
 		"{Genius,Sound Maker 3DX},"
 		"{Yamaha,OPL3SA3},"
 		"{Intel,AL440LX sound},"
@@ -63,45 +62,32 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for OPL3-SA soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for OPL3-SA soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable OPL3-SA soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 #ifdef CONFIG_PNP
 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_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for OPL3-SA driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_ENABLED ",allows:{{0xf86},{0x370},{0x100}},dialog:list");
 module_param_array(sb_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(sb_port, "SB port # for OPL3-SA driver.");
-MODULE_PARM_SYNTAX(sb_port, SNDRV_ENABLED ",allows:{{0x220},{0x240},{0x260}},dialog:list");
 module_param_array(wss_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(wss_port, "WSS port # for OPL3-SA driver.");
-MODULE_PARM_SYNTAX(wss_port, SNDRV_ENABLED ",allows:{{0x530},{0xe80},{0xf40},{0x604}},dialog:list");
 module_param_array(fm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(fm_port, "FM port # for OPL3-SA driver.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_ENABLED ",allows:{{0x388}},dialog:list");
 module_param_array(midi_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(midi_port, "MIDI port # for OPL3-SA driver.");
-MODULE_PARM_SYNTAX(midi_port, SNDRV_ENABLED ",allows:{{0x330},{0x300}},dialog:list");
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for OPL3-SA driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_ENABLED ",allows:{{0},{1},{3},{5},{9},{11},{12},{15}},dialog:list");
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for OPL3-SA driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_ENABLED ",allows:{{1},{3},{5},{6},{7}},dialog:list");
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "DMA2 # for OPL3-SA driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_ENABLED ",allows:{{1},{3},{5},{6},{7}},dialog:list");
 module_param_array(opl3sa3_ymode, int, boot_devs, 0444);
 MODULE_PARM_DESC(opl3sa3_ymode, "Speaker size selection for 3D Enhancement mode: Desktop/Large Notebook/Small Notebook/HiFi.");
-MODULE_PARM_SYNTAX(opl3sa3_ymode, SNDRV_ENABLED ",allows:{{0,3}},dialog:list");  /* SL Added */
 
 /* control ports */
 #define OPL3SA2_PM_CTRL		0x01
@@ -131,7 +117,6 @@
 #define OPL3SA2_PM_D3	(OPL3SA2_PM_ADOWN|OPL3SA2_PM_PSV|OPL3SA2_PM_PDN|OPL3SA2_PM_PDX)
 
 typedef struct snd_opl3sa2 opl3sa2_t;
-#define chip_t opl3sa2_t
 
 struct snd_opl3sa2 {
 	snd_card_t *card;
@@ -304,7 +289,7 @@
 static irqreturn_t snd_opl3sa2_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
 	unsigned short status;
-	opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, dev_id, return IRQ_NONE);
+	opl3sa2_t *chip = dev_id;
 	int handled = 0;
 
 	if (chip == NULL || chip->card == NULL)
@@ -496,7 +481,7 @@
 
 static void snd_opl3sa2_master_free(snd_kcontrol_t *kcontrol)
 {
-	opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, _snd_kcontrol_chip(kcontrol), return);
+	opl3sa2_t *chip = snd_kcontrol_chip(kcontrol);
 	chip->master_switch = NULL;
 	chip->master_volume = NULL;
 }
@@ -551,7 +536,7 @@
 #ifdef CONFIG_PM
 static int snd_opl3sa2_suspend(snd_card_t *card, unsigned int state)
 {
-	opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, card->pm_private_data, return -EINVAL);
+	opl3sa2_t *chip = card->pm_private_data;
 
 	snd_pcm_suspend_all(chip->cs4231->pcm); /* stop before saving regs */
 	chip->cs4231_suspend(chip->cs4231);
@@ -565,7 +550,7 @@
 
 static int snd_opl3sa2_resume(snd_card_t *card, unsigned int state)
 {
-	opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, card->pm_private_data, return -EINVAL);
+	opl3sa2_t *chip = card->pm_private_data;
 	int i;
 
 	/* power up */
@@ -656,13 +641,13 @@
 		release_resource(chip->res_port);
 		kfree_nocheck(chip->res_port);
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_opl3sa2_dev_free(snd_device_t *device)
 {
-	opl3sa2_t *chip = snd_magic_cast(opl3sa2_t, device->device_data, return -ENXIO);
+	opl3sa2_t *chip = device->device_data;
 	return snd_opl3sa2_free(chip);
 }
 
@@ -707,7 +692,7 @@
 		return -ENOMEM;
 	strcpy(card->driver, "OPL3SA2");
 	strcpy(card->shortname, "Yamaha OPL3-SA2");
-	chip = snd_magic_kcalloc(opl3sa2_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL) {
 		err = -ENOMEM;
 		goto __error;
diff -Nru a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
--- a/sound/isa/opti9xx/opti92x-ad1848.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/opti9xx/opti92x-ad1848.c	2004-07-27 18:28:32 -07:00
@@ -52,19 +52,18 @@
 #include <sound/initval.h>
 
 MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
-MODULE_CLASSES("{sound}");
 MODULE_LICENSE("GPL");
 #ifdef OPTi93X
 MODULE_DESCRIPTION("OPTi93X");
-MODULE_DEVICES("{{OPTi,82C931/3}}");
+MODULE_SUPPORTED_DEVICE("{{OPTi,82C931/3}}");
 #else	/* OPTi93X */
 #ifdef CS4231
 MODULE_DESCRIPTION("OPTi92X - CS4231");
-MODULE_DEVICES("{{OPTi,82C924 (CS4231)},"
+MODULE_SUPPORTED_DEVICE("{{OPTi,82C924 (CS4231)},"
 		"{OPTi,82C925 (CS4231)}}");
 #else	/* CS4231 */
 MODULE_DESCRIPTION("OPTi92X - AD1848");
-MODULE_DEVICES("{{OPTi,82C924 (AD1848)},"
+MODULE_SUPPORTED_DEVICE("{{OPTi,82C924 (AD1848)},"
 		"{OPTi,82C925 (AD1848)},"
 	        "{OAK,Mozart}}");
 #endif	/* CS4231 */
@@ -86,38 +85,27 @@
 
 module_param(index, int, 0444);
 MODULE_PARM_DESC(index, "Index value for opti9xx based soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param(id, charp, 0444);
 MODULE_PARM_DESC(id, "ID string for opti9xx based soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 //module_param(enable, bool, 0444);
 //MODULE_PARM_DESC(enable, "Enable opti9xx soundcard.");
-//MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param(isapnp, bool, 0444);
 MODULE_PARM_DESC(isapnp, "Enable ISA PnP detection for specified soundcard.");
-MODULE_PARM_SYNTAX(isapnp, SNDRV_ISAPNP_DESC);
 module_param(port, long, 0444);
 MODULE_PARM_DESC(port, "WSS port # for opti9xx driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT_DESC);
 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_param(fm_port, long, 0444);
 MODULE_PARM_DESC(fm_port, "FM port # for opti9xx driver.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_PORT_DESC);
 module_param(irq, int, 0444);
 MODULE_PARM_DESC(irq, "WSS irq # for opti9xx driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 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_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_param(dma2, int, 0444);
 MODULE_PARM_DESC(dma2, "2nd dma # for opti9xx driver.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
 #endif	/* CS4231 || OPTi93X */
 
 #define OPTi9XX_HW_DETECT	0
@@ -474,7 +462,6 @@
 	unsigned char dma_bits;
 	unsigned char mpu_port_bits = 0;
 	unsigned char mpu_irq_bits;
-	unsigned long flags;
 
 	switch (chip->hardware) {
 #ifndef OPTi93X
@@ -601,13 +588,11 @@
 	dma_bits |= 0x04;
 #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:
 	if (chip->hardware > OPTi9XX_HW_82C928) {
@@ -664,8 +649,6 @@
 
 #ifdef OPTi93X
 
-#define chip_t opti93x_t
-
 static unsigned char snd_opti93x_default_image[32] =
 {
 	0x00,		/* 00/00 - l_mixout_outctrl */
@@ -767,15 +750,10 @@
 
 static void snd_opti93x_mute(opti93x_t *chip, int mute)
 {
-	unsigned long flags;
-
-	spin_lock_irqsave(&chip->lock, flags);
-
 	mute = mute ? 1 : 0;
-	if (chip->mute == mute) {
-		spin_unlock_irqrestore(&chip->lock, flags);
+	if (chip->mute == mute)
 		return;
-	}
+
 	chip->mute = mute;
 
 	snd_opti93x_mute_reg(chip, OPTi93X_CD_LEFT_INPUT, mute);
@@ -800,8 +778,6 @@
 	snd_opti93x_mute_reg(chip, OPTi93X_MIC_RIGHT_INPUT, mute);
 	snd_opti93x_mute_reg(chip, OPTi93X_OUT_LEFT, mute);
 	snd_opti93x_mute_reg(chip, OPTi93X_OUT_RIGHT, mute);
-
-	spin_unlock_irqrestore(&chip->lock, flags);
 }
 
 
@@ -873,10 +849,8 @@
 
 static void snd_opti93x_playback_format(opti93x_t *chip, unsigned char fmt)
 {
-	unsigned long flags;
 	unsigned char mask;
 
-	spin_lock_irqsave(&chip->lock, flags);
 	snd_opti93x_mute(chip, 1);
 
 	snd_opti93x_mce_up(chip);
@@ -885,14 +859,10 @@
 	snd_opti93x_mce_down(chip);
 
 	snd_opti93x_mute(chip, 0);
-	spin_unlock_irqrestore(&chip->lock, flags);
 }
 
 static void snd_opti93x_capture_format(opti93x_t *chip, unsigned char fmt)
 {
-	unsigned long flags;
-
-	spin_lock_irqsave(&chip->lock, flags);
 	snd_opti93x_mute(chip, 1);
 
 	snd_opti93x_mce_up(chip);
@@ -904,7 +874,6 @@
 	snd_opti93x_mce_down(chip);
 
 	snd_opti93x_mute(chip, 0);
-	spin_unlock_irqrestore(&chip->lock, flags);
 }
 
 
@@ -1128,7 +1097,7 @@
 
 irqreturn_t snd_opti93x_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	opti93x_t *codec = snd_magic_cast(opti93x_t, dev_id, return IRQ_NONE);
+	opti93x_t *codec = dev_id;
 	unsigned char status;
 
 	status = snd_opti9xx_read(codec->chip, OPTi9XX_MC_REG(11));
@@ -1274,13 +1243,13 @@
 	if (chip->irq >= 0) {
 	  free_irq(chip->irq, chip);
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_opti93x_dev_free(snd_device_t *device)
 {
-	opti93x_t *chip = snd_magic_cast(opti93x_t, device->device_data, return -ENXIO);
+	opti93x_t *chip = device->device_data;
 	return snd_opti93x_free(chip);
 }
 
@@ -1305,7 +1274,7 @@
 	opti93x_t *codec;
 
 	*rcodec = NULL;
-	codec = snd_magic_kcalloc(opti93x_t, 0, GFP_KERNEL);
+	codec = kcalloc(1, sizeof(*codec), GFP_KERNEL);
 	if (codec == NULL)
 		return -ENOMEM;
 	codec->irq = -1;
@@ -1385,7 +1354,7 @@
 
 static void snd_opti93x_pcm_free(snd_pcm_t *pcm)
 {
-	opti93x_t *codec = snd_magic_cast(opti93x_t, pcm->private_data, return);
+	opti93x_t *codec = pcm->private_data;
 	codec->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
diff -Nru a/sound/isa/sb/emu8000.c b/sound/isa/sb/emu8000.c
--- a/sound/isa/sb/emu8000.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/emu8000.c	2004-07-27 18:28:33 -07:00
@@ -821,8 +821,6 @@
  * mixer interface
  *----------------------------------------------------------------*/
 
-#define chip_t	emu8000_t
-
 /*
  * bass/treble
  */
@@ -1070,7 +1068,7 @@
 		release_resource(hw->res_port3);
 		kfree_nocheck(hw->res_port3);
 	}
-	snd_magic_kfree(hw);
+	kfree(hw);
 	return 0;
 }
 
@@ -1078,7 +1076,7 @@
  */
 static int snd_emu8000_dev_free(snd_device_t *device)
 {
-	emu8000_t *hw = snd_magic_cast(emu8000_t, device->device_data, return -ENXIO);
+	emu8000_t *hw = device->device_data;
 	return snd_emu8000_free(hw);
 }
 
@@ -1101,7 +1099,7 @@
 	if (seq_ports <= 0)
 		return 0;
 
-	hw = snd_magic_kcalloc(emu8000_t, 0, GFP_KERNEL);
+	hw = kcalloc(1, sizeof(*hw), GFP_KERNEL);
 	if (hw == NULL)
 		return -ENOMEM;
 	spin_lock_init(&hw->reg_lock);
diff -Nru a/sound/isa/sb/emu8000_callback.c b/sound/isa/sb/emu8000_callback.c
--- a/sound/isa/sb/emu8000_callback.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/emu8000_callback.c	2004-07-27 18:28:33 -07:00
@@ -94,7 +94,7 @@
 	int dcysusv;
 	emu8000_t *hw;
 
-	hw = snd_magic_cast(emu8000_t, vp->hw, return);
+	hw = vp->hw;
 	dcysusv = 0x8000 | (unsigned char)vp->reg.parm.modrelease;
 	EMU8000_DCYSUS_WRITE(hw, vp->ch, dcysusv);
 	dcysusv = 0x8000 | (unsigned char)vp->reg.parm.volrelease;
@@ -109,7 +109,7 @@
 {
 	emu8000_t *hw; 
 
-	hw = snd_magic_cast(emu8000_t, vp->hw, return);
+	hw = vp->hw;
 	EMU8000_DCYSUSV_WRITE(hw, vp->ch, 0x807F);
 }
 
@@ -121,7 +121,7 @@
 {
 	emu8000_t *hw;
 
-	hw = snd_magic_cast(emu8000_t, vp->hw, return);
+	hw = vp->hw;
 	if (update & SNDRV_EMUX_UPDATE_VOLUME)
 		set_volume(hw, vp);
 	if (update & SNDRV_EMUX_UPDATE_PITCH)
@@ -168,7 +168,7 @@
 	} best[END];
 	struct best *bp;
 
-	hw = snd_magic_cast(emu8000_t, emu->hw, return NULL);
+	hw = emu->hw;
 
 	for (i = 0; i < END; i++) {
 		best[i].time = (unsigned int)(-1); /* XXX MAX_?INT really */;
@@ -235,7 +235,7 @@
 	snd_midi_channel_t *chan;
 	emu8000_t *hw;
 
-	hw = snd_magic_cast(emu8000_t, vp->hw, return -EINVAL);
+	hw = vp->hw;
 	ch = vp->ch;
 	chan = vp->chan;
 
@@ -313,7 +313,7 @@
 	unsigned int temp;
 	emu8000_t *hw;
 
-	hw = snd_magic_cast(emu8000_t, vp->hw, return);
+	hw = vp->hw;
 
 	/* set reverb and pitch target */
 	temp = vp->reg.parm.reverb;
@@ -333,7 +333,7 @@
 {
 	emu8000_t *hw;
 
-	hw = snd_magic_cast(emu8000_t, emu->hw, return);
+	hw = emu->hw;
 	EMU8000_DCYSUSV_WRITE(hw, ch, 0x807F);
 	snd_emu8000_tweak_voice(hw, ch);
 }
@@ -457,7 +457,7 @@
 {
 	emu8000_t *hw;
 
-	hw = snd_magic_cast(emu8000_t, emu->hw, return);
+	hw = emu->hw;
 
 	switch (parsed) {
 	case SNDRV_MIDI_SYSEX_GS_CHORUS_MODE:
@@ -482,7 +482,7 @@
 {
 	emu8000_t *hw;
 
-	hw = snd_magic_cast(emu8000_t, emu->hw, return -EINVAL);
+	hw = emu->hw;
 
 	switch (cmd) {
 	case _EMUX_OSS_REVERB_MODE:
@@ -526,7 +526,7 @@
 load_fx(snd_emux_t *emu, int type, int mode, const void __user *buf, long len)
 {
 	emu8000_t *hw;
-	hw = snd_magic_cast(emu8000_t, emu->hw, return -EINVAL);
+	hw = emu->hw;
 
 	switch (type) {
 	case SNDRV_EMU8000_LOAD_CHORUS_FX:
diff -Nru a/sound/isa/sb/emu8000_patch.c b/sound/isa/sb/emu8000_patch.c
--- a/sound/isa/sb/emu8000_patch.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/sb/emu8000_patch.c	2004-07-27 18:28:32 -07:00
@@ -155,7 +155,7 @@
 	int  dram_offset, dram_start;
 	emu8000_t *emu;
 
-	emu = snd_magic_cast(emu8000_t, rec->hw, return -EINVAL);
+	emu = rec->hw;
 	snd_assert(sp != NULL, return -EINVAL);
 
 	if (sp->v.size == 0)
diff -Nru a/sound/isa/sb/emu8000_pcm.c b/sound/isa/sb/emu8000_pcm.c
--- a/sound/isa/sb/emu8000_pcm.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/emu8000_pcm.c	2004-07-27 18:28:33 -07:00
@@ -23,8 +23,6 @@
 #include <sound/initval.h>
 #include <sound/pcm.h>
 
-#define chip_t emu8000_t
-
 /*
  * define the following if you want to use this pcm with non-interleaved mode
  */
@@ -235,7 +233,7 @@
 	emu8k_pcm_t *rec;
 	snd_pcm_runtime_t *runtime = subs->runtime;
 
-	rec = snd_kcalloc(sizeof(*rec), GFP_KERNEL);
+	rec = kcalloc(1, sizeof(*rec), GFP_KERNEL);
 	if (! rec)
 		return -ENOMEM;
 
diff -Nru a/sound/isa/sb/emu8000_synth.c b/sound/isa/sb/emu8000_synth.c
--- a/sound/isa/sb/emu8000_synth.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/emu8000_synth.c	2004-07-27 18:28:33 -07:00
@@ -27,7 +27,6 @@
 MODULE_AUTHOR("Takashi Iwai, Steve Ratcliffe");
 MODULE_DESCRIPTION("Emu8000 synth plug-in routine");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 
 /*----------------------------------------------------------------*/
 
diff -Nru a/sound/isa/sb/es968.c b/sound/isa/sb/es968.c
--- a/sound/isa/sb/es968.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/es968.c	2004-07-27 18:28:33 -07:00
@@ -29,15 +29,12 @@
 #include <sound/initval.h>
 #include <sound/sb.h>
 
-#define chip_t sb_t
-
 #define PFX "es968: "
 
 MODULE_AUTHOR("Massimo Piccioni <dafastidio@libero.it>");
 MODULE_DESCRIPTION("ESS AudioDrive ES968");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ESS,AudioDrive ES968}}");
+MODULE_SUPPORTED_DEVICE("{{ESS,AudioDrive ES968}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -49,22 +46,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for es968 based soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for es968 based soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable es968 based soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for es968 driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for es968 driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(dma8, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma8, "8-bit DMA # for es968 driver.");
-MODULE_PARM_SYNTAX(dma8, SNDRV_DMA8_DESC);
 
 struct snd_card_es968 {
 	struct pnp_dev *dev;
@@ -82,7 +73,7 @@
 static irqreturn_t snd_card_es968_interrupt(int irq, void *dev_id,
 					    struct pt_regs *regs)
 {
-	sb_t *chip = snd_magic_cast(sb_t, dev_id, return IRQ_NONE);
+	sb_t *chip = dev_id;
 
 	if (chip->open & SB_OPEN_PCM) {
 		return snd_sb8dsp_interrupt(chip);
diff -Nru a/sound/isa/sb/sb16.c b/sound/isa/sb/sb16.c
--- a/sound/isa/sb/sb16.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/sb16.c	2004-07-27 18:28:33 -07:00
@@ -37,8 +37,6 @@
 #define SNDRV_LEGACY_FIND_FREE_DMA
 #include <sound/initval.h>
 
-#define chip_t sb_t
-
 #ifdef SNDRV_SBAWE
 #define PFX "sbawe: "
 #else
@@ -47,17 +45,16 @@
 
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 #ifndef SNDRV_SBAWE
 MODULE_DESCRIPTION("Sound Blaster 16");
-MODULE_DEVICES("{{Creative Labs,SB 16},"
+MODULE_SUPPORTED_DEVICE("{{Creative Labs,SB 16},"
 		"{Creative Labs,SB Vibra16S},"
 		"{Creative Labs,SB Vibra16C},"
 		"{Creative Labs,SB Vibra16CL},"
 		"{Creative Labs,SB Vibra16X}}");
 #else
 MODULE_DESCRIPTION("Sound Blaster AWE");
-MODULE_DEVICES("{{Creative Labs,SB AWE 32},"
+MODULE_SUPPORTED_DEVICE("{{Creative Labs,SB AWE 32},"
 		"{Creative Labs,SB AWE 64},"
 		"{Creative Labs,SB AWE 64 Gold}}");
 #endif
@@ -96,53 +93,39 @@
 
 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_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_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_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_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_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_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_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_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for SB16 driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 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_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_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_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_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
 
 struct snd_card_sb16 {
diff -Nru a/sound/isa/sb/sb16_csp.c b/sound/isa/sb/sb16_csp.c
--- a/sound/isa/sb/sb16_csp.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/sb16_csp.c	2004-07-27 18:28:33 -07:00
@@ -33,12 +33,9 @@
 #include <sound/sb16_csp.h>
 #include <sound/initval.h>
 
-#define chip_t snd_sb_csp_t
-
 MODULE_AUTHOR("Uros Bizjak <uros@kss-loka.si>");
 MODULE_DESCRIPTION("ALSA driver for SB16 Creative Signal Processor");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 
 #ifdef SNDRV_LITTLE_ENDIAN
 #define CSP_HDR_VALUE(a,b,c,d)	((a) | ((b)<<8) | ((c)<<16) | ((d)<<24))
@@ -127,7 +124,7 @@
 	if ((err = snd_hwdep_new(chip->card, "SB16-CSP", device, &hw)) < 0)
 		return err;
 
-	if ((p = snd_magic_kcalloc(snd_sb_csp_t, 0, GFP_KERNEL)) == NULL) {
+	if ((p = kcalloc(1, sizeof(*p), GFP_KERNEL)) == NULL) {
 		snd_device_free(chip->card, hw);
 		return -ENOMEM;
 	}
@@ -165,11 +162,11 @@
  */
 static void snd_sb_csp_free(snd_hwdep_t *hwdep)
 {
-	snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, hwdep->private_data, return);
+	snd_sb_csp_t *p = hwdep->private_data;
 	if (p) {
 		if (p->running & SNDRV_SB_CSP_ST_RUNNING)
 			snd_sb_csp_stop(p);
-		snd_magic_kfree(p);
+		kfree(p);
 	}
 }
 
@@ -180,7 +177,7 @@
  */
 static int snd_sb_csp_open(snd_hwdep_t * hw, struct file *file)
 {
-	snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, hw->private_data, return -ENXIO);
+	snd_sb_csp_t *p = hw->private_data;
 	return (snd_sb_csp_use(p));
 }
 
@@ -189,7 +186,7 @@
  */
 static int snd_sb_csp_ioctl(snd_hwdep_t * hw, struct file *file, unsigned int cmd, unsigned long arg)
 {
-	snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, hw->private_data, return -ENXIO);
+	snd_sb_csp_t *p = hw->private_data;
 	snd_sb_csp_info_t info;
 	snd_sb_csp_start_t start_info;
 	int err;
@@ -258,7 +255,7 @@
  */
 static int snd_sb_csp_release(snd_hwdep_t * hw, struct file *file)
 {
-	snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, hw->private_data, return -ENXIO);
+	snd_sb_csp_t *p = hw->private_data;
 	return (snd_sb_csp_unuse(p));
 }
 
@@ -1110,7 +1107,7 @@
 
 static void info_read(snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	snd_sb_csp_t *p = snd_magic_cast(snd_sb_csp_t, entry->private_data, return);
+	snd_sb_csp_t *p = entry->private_data;
 
 	snd_iprintf(buffer, "Creative Signal Processor [v%d.%d]\n", (p->version >> 4), (p->version & 0x0f));
 	snd_iprintf(buffer, "State: %cx%c%c%c\n", ((p->running & SNDRV_SB_CSP_ST_QSOUND) ? 'Q' : '-'),
diff -Nru a/sound/isa/sb/sb16_main.c b/sound/isa/sb/sb16_main.c
--- a/sound/isa/sb/sb16_main.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/sb16_main.c	2004-07-27 18:28:33 -07:00
@@ -49,13 +49,11 @@
 MODULE_DESCRIPTION("Routines for control of 16-bit SoundBlaster cards and clones");
 MODULE_LICENSE("GPL");
 
-#define chip_t sb_t
-
 #ifdef CONFIG_SND_SB16_CSP
 static void snd_sb16_csp_playback_prepare(sb_t *chip, snd_pcm_runtime_t *runtime)
 {
 	if (chip->hardware == SB_HW_16CSP) {
-		snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+		snd_sb_csp_t *csp = chip->csp;
 
 		if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
 			/* manually loaded codec */
@@ -103,7 +101,7 @@
 static void snd_sb16_csp_capture_prepare(sb_t *chip, snd_pcm_runtime_t *runtime)
 {
 	if (chip->hardware == SB_HW_16CSP) {
-		snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+		snd_sb_csp_t *csp = chip->csp;
 
 		if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
 			/* manually loaded codec */
@@ -141,7 +139,7 @@
 static void snd_sb16_csp_update(sb_t *chip)
 {
 	if (chip->hardware == SB_HW_16CSP) {
-		snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+		snd_sb_csp_t *csp = chip->csp;
 
 		if (csp->qpos_changed) {
 			spin_lock(&chip->reg_lock);
@@ -155,7 +153,7 @@
 {
 	/* CSP decoders (QSound excluded) support only 16bit transfers */
 	if (chip->hardware == SB_HW_16CSP) {
-		snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+		snd_sb_csp_t *csp = chip->csp;
 
 		if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
 			/* manually loaded codec */
@@ -173,7 +171,7 @@
 static void snd_sb16_csp_playback_close(sb_t *chip)
 {
 	if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_WRITE)) {
-		snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+		snd_sb_csp_t *csp = chip->csp;
 
 		if (csp->ops.csp_stop(csp) == 0) {
 			csp->ops.csp_unuse(csp);
@@ -186,7 +184,7 @@
 {
 	/* CSP coders support only 16bit transfers */
 	if (chip->hardware == SB_HW_16CSP) {
-		snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+		snd_sb_csp_t *csp = chip->csp;
 
 		if (csp->running & SNDRV_SB_CSP_ST_LOADED) {
 			/* manually loaded codec */
@@ -204,7 +202,7 @@
 static void snd_sb16_csp_capture_close(sb_t *chip)
 {
 	if ((chip->hardware == SB_HW_16CSP) && (chip->open == SNDRV_SB_CSP_MODE_DSP_READ)) {
-		snd_sb_csp_t *csp = snd_magic_cast(snd_sb_csp_t, chip->csp, return);
+		snd_sb_csp_t *csp = chip->csp;
 
 		if (csp->ops.csp_stop(csp) == 0) {
 			csp->ops.csp_unuse(csp);
@@ -395,7 +393,7 @@
 
 irqreturn_t snd_sb16dsp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	sb_t *chip = snd_magic_cast(sb_t, dev_id, return IRQ_NONE);
+	sb_t *chip = dev_id;
 	unsigned char status;
 	int ok;
 
diff -Nru a/sound/isa/sb/sb8.c b/sound/isa/sb/sb8.c
--- a/sound/isa/sb/sb8.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/sb8.c	2004-07-27 18:28:33 -07:00
@@ -30,13 +30,10 @@
 #define SNDRV_LEGACY_AUTO_PROBE
 #include <sound/initval.h>
 
-#define chip_t sb_t
-
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Sound Blaster 1.0/2.0/Pro");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Creative Labs,SB 1.0/SB 2.0/SB Pro}}");
+MODULE_SUPPORTED_DEVICE("{{Creative Labs,SB 1.0/SB 2.0/SB Pro}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -48,22 +45,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Sound Blaster soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Sound Blaster soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Sound Blaster soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for SB8 driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_PORT12_DESC);
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for SB8 driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 module_param_array(dma8, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma8, "8-bit DMA # for SB8 driver.");
-MODULE_PARM_SYNTAX(dma8, SNDRV_DMA8_DESC);
 
 struct snd_sb8 {
 	struct resource *fm_res;	/* used to block FM i/o region for legacy cards */
@@ -73,7 +64,7 @@
 
 static irqreturn_t snd_sb8_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	sb_t *chip = snd_magic_cast(sb_t, dev_id, return IRQ_NONE);
+	sb_t *chip = dev_id;
 
 	if (chip->open & SB_OPEN_PCM) {
 		return snd_sb8dsp_interrupt(chip);
diff -Nru a/sound/isa/sb/sb8_main.c b/sound/isa/sb/sb8_main.c
--- a/sound/isa/sb/sb8_main.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/sb8_main.c	2004-07-27 18:28:33 -07:00
@@ -42,8 +42,6 @@
 MODULE_DESCRIPTION("Routines for control of 8-bit SoundBlaster cards and clones");
 MODULE_LICENSE("GPL");
 
-#define chip_t sb_t
-
 #define SB8_CLOCK	1000000
 #define SB8_DEN(v)	((SB8_CLOCK + (v) / 2) / (v))
 #define SB8_RATE(v)	(SB8_CLOCK / SB8_DEN(v))
diff -Nru a/sound/isa/sb/sb8_midi.c b/sound/isa/sb/sb8_midi.c
--- a/sound/isa/sb/sb8_midi.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/sb/sb8_midi.c	2004-07-27 18:28:32 -07:00
@@ -73,7 +73,7 @@
 	sb_t *chip;
 	unsigned int valid_open_flags;
 
-	chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return -ENXIO);
+	chip = substream->rmidi->private_data;
 	valid_open_flags = chip->hardware >= SB_HW_20
 		? SB_OPEN_MIDI_OUTPUT | SB_OPEN_MIDI_OUTPUT_TRIGGER : 0;
 	spin_lock_irqsave(&chip->open_lock, flags);
@@ -100,7 +100,7 @@
 	sb_t *chip;
 	unsigned int valid_open_flags;
 
-	chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return -ENXIO);
+	chip = substream->rmidi->private_data;
 	valid_open_flags = chip->hardware >= SB_HW_20
 		? SB_OPEN_MIDI_INPUT | SB_OPEN_MIDI_INPUT_TRIGGER : 0;
 	spin_lock_irqsave(&chip->open_lock, flags);
@@ -126,7 +126,7 @@
 	unsigned long flags;
 	sb_t *chip;
 
-	chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return -ENXIO);
+	chip = substream->rmidi->private_data;
 	spin_lock_irqsave(&chip->open_lock, flags);
 	chip->open &= ~(SB_OPEN_MIDI_INPUT | SB_OPEN_MIDI_INPUT_TRIGGER);
 	chip->midi_substream_input = NULL;
@@ -144,7 +144,7 @@
 	unsigned long flags;
 	sb_t *chip;
 
-	chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return -ENXIO);
+	chip = substream->rmidi->private_data;
 	spin_lock_irqsave(&chip->open_lock, flags);
 	chip->open &= ~(SB_OPEN_MIDI_OUTPUT | SB_OPEN_MIDI_OUTPUT_TRIGGER);
 	chip->midi_substream_output = NULL;
@@ -162,7 +162,7 @@
 	unsigned long flags;
 	sb_t *chip;
 
-	chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return);
+	chip = substream->rmidi->private_data;
 	spin_lock_irqsave(&chip->open_lock, flags);
 	if (up) {
 		if (!(chip->open & SB_OPEN_MIDI_INPUT_TRIGGER)) {
@@ -188,7 +188,7 @@
 	int max = 32;
 
 	/* how big is Tx FIFO? */
-	chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return);
+	chip = substream->rmidi->private_data;
 	while (max-- > 0) {
 		spin_lock_irqsave(&chip->open_lock, flags);
 		if (snd_rawmidi_transmit_peek(substream, &byte, 1) != 1) {
@@ -219,7 +219,7 @@
 static void snd_sb8dsp_midi_output_timer(unsigned long data)
 {
 	snd_rawmidi_substream_t * substream = (snd_rawmidi_substream_t *) data;
-	sb_t * chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return);
+	sb_t * chip = substream->rmidi->private_data;
 	unsigned long flags;
 
 	spin_lock_irqsave(&chip->open_lock, flags);
@@ -234,7 +234,7 @@
 	unsigned long flags;
 	sb_t *chip;
 
-	chip = snd_magic_cast(sb_t, substream->rmidi->private_data, return);
+	chip = substream->rmidi->private_data;
 	spin_lock_irqsave(&chip->open_lock, flags);
 	if (up) {
 		if (!(chip->open & SB_OPEN_MIDI_OUTPUT_TRIGGER)) {
diff -Nru a/sound/isa/sb/sb_common.c b/sound/isa/sb/sb_common.c
--- a/sound/isa/sb/sb_common.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/sb_common.c	2004-07-27 18:28:33 -07:00
@@ -33,12 +33,9 @@
 #include <asm/io.h>
 #include <asm/dma.h>
 
-#define chip_t sb_t
-
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("ALSA lowlevel driver for Sound Blaster cards");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 
 #define BUSY_LOOPS 100000
 
@@ -197,13 +194,13 @@
 		free_dma(chip->dma16);
 	}
 #endif
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_sbdsp_dev_free(snd_device_t *device)
 {
-	sb_t *chip = snd_magic_cast(sb_t, device->device_data, return -ENXIO);
+	sb_t *chip = device->device_data;
 	return snd_sbdsp_free(chip);
 }
 
@@ -224,7 +221,7 @@
 
 	snd_assert(r_chip != NULL, return -EINVAL);
 	*r_chip = NULL;
-	chip = snd_magic_kcalloc(sb_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
diff -Nru a/sound/isa/sb/sb_mixer.c b/sound/isa/sb/sb_mixer.c
--- a/sound/isa/sb/sb_mixer.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sb/sb_mixer.c	2004-07-27 18:28:33 -07:00
@@ -27,8 +27,6 @@
 #include <sound/sb.h>
 #include <sound/control.h>
 
-#define chip_t sb_t
-
 #undef IO_DEBUG
 
 void snd_sbmixer_write(sb_t *chip, unsigned char reg, unsigned char data)
diff -Nru a/sound/isa/sgalaxy.c b/sound/isa/sgalaxy.c
--- a/sound/isa/sgalaxy.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/sgalaxy.c	2004-07-27 18:28:33 -07:00
@@ -39,8 +39,7 @@
 MODULE_AUTHOR("Christopher Butler <chrisb@sandy.force9.co.uk>");
 MODULE_DESCRIPTION("Aztech Sound Galaxy");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Aztech Systems,Sound Galaxy}}");
+MODULE_SUPPORTED_DEVICE("{{Aztech Systems,Sound Galaxy}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -53,22 +52,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Sound Galaxy soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Sound Galaxy soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(sbport, long, boot_devs, 0444);
 MODULE_PARM_DESC(sbport, "Port # for Sound Galaxy SB driver.");
-MODULE_PARM_SYNTAX(sbport, SNDRV_ENABLED ",allows:{{0x220},{0x240}},dialog:list");
 module_param_array(wssport, long, boot_devs, 0444);
 MODULE_PARM_DESC(wssport, "Port # for Sound Galaxy WSS driver.");
-MODULE_PARM_SYNTAX(wssport, SNDRV_ENABLED ",allows:{{0x530},{0xe80},{0xf40},{0x604}},dialog:list");
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for Sound Galaxy driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_ENABLED ",allows:{{7},{9},{10},{11}},dialog:list");
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for Sound Galaxy driver.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA8_DESC);
 
 #define SGALAXY_AUXC_LEFT 18
 #define SGALAXY_AUXC_RIGHT 19
diff -Nru a/sound/isa/sscape.c b/sound/isa/sscape.c
--- a/sound/isa/sscape.c	2004-07-27 18:28:32 -07:00
+++ b/sound/isa/sscape.c	2004-07-27 18:28:32 -07:00
@@ -36,8 +36,6 @@
 
 #include <sound/sscape_ioctl.h>
 
-#define chip_t cs4231_t
-
 
 MODULE_AUTHOR("Chris Rankin");
 MODULE_DESCRIPTION("ENSONIQ SoundScape PnP driver");
@@ -53,27 +51,21 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index number for SoundScape soundcard");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "Description for SoundScape card");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 
 module_param_array(port, long, boot_devs, 0444);
 MODULE_PARM_DESC(port, "Port # for SoundScape driver.");
-MODULE_PARM_SYNTAX(port, SNDRV_ENABLED);
 
 module_param_array(irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq, "IRQ # for SoundScape driver.");
-MODULE_PARM_SYNTAX(irq, SNDRV_IRQ_DESC);
 
 module_param_array(mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_irq, "MPU401 IRQ # for SoundScape driver.");
-MODULE_PARM_SYNTAX(mpu_irq, SNDRV_IRQ_DESC);
 
 module_param_array(dma, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma, "DMA # for SoundScape driver.");
-MODULE_PARM_SYNTAX(dma, SNDRV_DMA8_DESC);
   
 #ifdef CONFIG_PNP
 static struct pnp_card_device_id sscape_pnpids[] = {
diff -Nru a/sound/isa/wavefront/wavefront.c b/sound/isa/wavefront/wavefront.c
--- a/sound/isa/wavefront/wavefront.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/wavefront/wavefront.c	2004-07-27 18:28:33 -07:00
@@ -30,13 +30,10 @@
 #include <sound/opl3.h>
 #include <sound/snd_wavefront.h>
 
-#define chip_t cs4231_t
-
 MODULE_AUTHOR("Paul Barton-Davis <pbd@op.net>");
 MODULE_DESCRIPTION("Turtle Beach Wavefront");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Turtle Beach,Maui/Tropez/Tropez+}}");
+MODULE_SUPPORTED_DEVICE("{{Turtle Beach,Maui/Tropez/Tropez+}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	    /* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	    /* ID for this card */
@@ -56,48 +53,34 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for WaveFront soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for WaveFront soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable WaveFront soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 #ifdef CONFIG_PNP
 module_param_array(isapnp, bool, boot_devs, 0444);
 MODULE_PARM_DESC(isapnp, "ISA PnP detection for WaveFront soundcards.");
-MODULE_PARM_SYNTAX(isapnp, SNDRV_ISAPNP_DESC);
 #endif
 module_param_array(cs4232_pcm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(cs4232_pcm_port, "Port # for CS4232 PCM interface.");
-MODULE_PARM_SYNTAX(cs4232_pcm_port, SNDRV_PORT12_DESC);
 module_param_array(cs4232_pcm_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(cs4232_pcm_irq, "IRQ # for CS4232 PCM interface.");
-MODULE_PARM_SYNTAX(cs4232_pcm_irq, SNDRV_ENABLED ",allows:{{5},{7},{9},{11},{12},{15}},dialog:list");
 module_param_array(dma1, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma1, "DMA1 # for CS4232 PCM interface.");
-MODULE_PARM_SYNTAX(dma1, SNDRV_DMA_DESC);
 module_param_array(dma2, int, boot_devs, 0444);
 MODULE_PARM_DESC(dma2, "DMA2 # for CS4232 PCM interface.");
-MODULE_PARM_SYNTAX(dma2, SNDRV_DMA_DESC);
 module_param_array(cs4232_mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(cs4232_mpu_port, "port # for CS4232 MPU-401 interface.");
-MODULE_PARM_SYNTAX(cs4232_mpu_port, SNDRV_PORT12_DESC);
 module_param_array(cs4232_mpu_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(cs4232_mpu_irq, "IRQ # for CS4232 MPU-401 interface.");
-MODULE_PARM_SYNTAX(cs4232_mpu_irq, SNDRV_ENABLED ",allows:{{9},{11},{12},{15}},dialog:list");
 module_param_array(ics2115_irq, int, boot_devs, 0444);
 MODULE_PARM_DESC(ics2115_irq, "IRQ # for ICS2115.");
-MODULE_PARM_SYNTAX(ics2115_irq, SNDRV_ENABLED ",allows:{{9},{11},{12},{15}},dialog:list");
 module_param_array(ics2115_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(ics2115_port, "Port # for ICS2115.");
-MODULE_PARM_SYNTAX(ics2115_port, SNDRV_PORT12_DESC);
 module_param_array(fm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(fm_port, "FM port #.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_PORT12_DESC);
 module_param_array(use_cs4232_midi, bool, boot_devs, 0444);
 MODULE_PARM_DESC(use_cs4232_midi, "Use CS4232 MPU-401 interface (inaccessibly located inside your computer)");
-MODULE_PARM_SYNTAX(use_cs4232_midi, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 
 static snd_card_t *snd_wavefront_legacy[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
diff -Nru a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c
--- a/sound/isa/wavefront/wavefront_synth.c	2004-07-27 18:28:33 -07:00
+++ b/sound/isa/wavefront/wavefront_synth.c	2004-07-27 18:28:33 -07:00
@@ -1961,6 +1961,12 @@
 			break;
 		}
 
+		if (section_length < 0 || section_length > WF_SECTION_MAX) {
+			snd_printk ("invalid firmware section length %d\n",
+				    section_length);
+			goto failure;
+		}
+
 		if (sys_read (fd, section, section_length) != section_length) {
 			snd_printk ("firmware section "
 				"read error.\n");
diff -Nru a/sound/parisc/harmony.c b/sound/parisc/harmony.c
--- a/sound/parisc/harmony.c	2004-07-27 18:28:33 -07:00
+++ b/sound/parisc/harmony.c	2004-07-27 18:28:33 -07:00
@@ -80,8 +80,7 @@
 MODULE_AUTHOR("Laurent Canet <canetl@esiee.fr>");
 MODULE_DESCRIPTION("ALSA Harmony sound driver");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ALSA,Harmony soundcard}}");
+MODULE_SUPPORTED_DEVICE("{{ALSA,Harmony soundcard}}");
 
 #undef DEBUG
 #ifdef DEBUG
@@ -138,13 +137,10 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Sun CS4231 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Sun CS4231 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Sun CS4231 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 
 /* Register offset (from base hpa) */
 #define REG_ID		0x00
@@ -216,7 +212,6 @@
 	snd_pcm_substream_t *capture_substream;
 	snd_info_entry_t *proc_entry;
 } snd_card_harmony_t;
-#define chip_t snd_card_harmony_t
 
 static snd_card_t *snd_harmony_cards[SNDRV_CARDS] = SNDRV_DEFAULT_PTR;
 
@@ -556,7 +551,7 @@
 	harmony->sample_rate = snd_card_harmony_rate_bits(runtime->rate);
 
 	/* data format */
-	harmony->data_format = snd_harmony_set_data_format(haromny, runtime->format);
+	harmony->data_format = snd_harmony_set_data_format(harmony, runtime->format);
 
 	/* number of channels */
 	if (runtime->channels == 2)
@@ -587,7 +582,7 @@
 	harmony->sample_rate = snd_card_harmony_rate_bits(runtime->rate);
 	
 	/* data format */
-	harmony->data_format = snd_harmony_set_data_format(haromny, runtime->format);
+	harmony->data_format = snd_harmony_set_data_format(harmony, runtime->format);
 	
 	/* number of channels */
 	if (runtime->channels == 1)
@@ -751,6 +746,8 @@
 	int err;
 	
 	err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
+	if (err > 0 && substream->dma_device.type == SNDRV_DMA_TYPE_CONTINUOUS)
+		substream->runtime->dma_addr = __pa(substream->runtime->dma_area);
 	DPRINTK(KERN_INFO PFX "HW Params returned %d, dma_addr %lx\n", err,
 			(unsigned long)substream->runtime->dma_addr);
 	return err;
@@ -784,7 +781,7 @@
 	.pointer =		snd_card_harmony_capture_pointer,
 };
 
-static int snd_card_harmony_pcm_init(snd_card_harmony_t *harmony, int device)
+static int snd_card_harmony_pcm_init(snd_card_harmony_t *harmony)
 {
 	snd_pcm_t *pcm;
 	int err;
@@ -797,7 +794,7 @@
 	
 	snd_harmony_disable_interrupts(harmony);
 	
-   	if ((err = snd_pcm_new(harmony->card, "Harmony", device, 1, 1, &pcm)) < 0)
+   	if ((err = snd_pcm_new(harmony->card, "Harmony", 0, 1, 1, &pcm)) < 0)
 		return err;
 	
 	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_card_harmony_playback_ops);
@@ -813,26 +810,46 @@
 	harmony->dma_dev.dev = &harmony->pa_dev->dev;
 	err = snd_dma_alloc_pages(&harmony->dma_dev, HARMONY_BUF_SIZE*GRAVEYARD_BUFS,
 				  &harmony->graveyard_dma);
-	if (err < 0)
+	if (err == -ENOMEM) {
+		/* use continuous buffers */
+		harmony->dma_dev.type = SNDRV_DMA_TYPE_CONTINUOUS;
+		harmony->dma_dev.dev = snd_dma_continuous_data(GFP_KERNEL);
+		err = snd_dma_alloc_pages(&harmony->dma_dev, HARMONY_BUF_SIZE*GRAVEYARD_BUFS,
+					  &harmony->graveyard_dma);
+	}
+	if (err < 0) {
+		printk(KERN_ERR PFX "can't allocate graveyard buffer\n");
 		return err;
+	}
 	harmony->graveyard_count = 0;
 	
 	/* initialize silence buffers */
 	err = snd_dma_alloc_pages(&harmony->dma_dev, HARMONY_BUF_SIZE*SILENCE_BUFS,
 				  &harmony->silence_dma);
-	if (err < 0)
+	if (err < 0) {
+		printk(KERN_ERR PFX "can't allocate silence buffer\n");
 		return err;
+	}
 	harmony->silence_count = 0;
 
+	if (harmony->dma_dev.type == SNDRV_DMA_TYPE_CONTINUOUS) {
+		harmony->graveyard_dma.addr = __pa(harmony->graveyard_dma.area);
+		harmony->silence_dma.addr = __pa(harmony->silence_dma.area);
+	}
+
 	harmony->ply_stopped = harmony->cap_stopped = 1;
 	
 	harmony->playback_substream = NULL;
 	harmony->capture_substream = NULL;
 	harmony->graveyard_count = 0;
-	
-	snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
-					      &harmony->pa_dev->dev,
-					      MAX_BUFFER_SIZE, MAX_BUFFER_SIZE);
+
+	err = snd_pcm_lib_preallocate_pages_for_all(pcm, harmony->dma_dev.type,
+						    harmony->dma_dev.dev,
+						    MAX_BUFFER_SIZE, MAX_BUFFER_SIZE);
+	if (err < 0) {
+		printk(KERN_ERR PFX "buffer allocation error %d\n", err);
+		// return err;
+	}
 
 	return 0;
 }
@@ -871,7 +888,7 @@
  
 static int snd_harmony_volume_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	snd_card_harmony_t *harmony = _snd_kcontrol_chip(kcontrol);
+	snd_card_harmony_t *harmony = snd_kcontrol_chip(kcontrol);
 	int shift_left = (kcontrol->private_value) & 0xff;
 	int shift_right = (kcontrol->private_value >> 8) & 0xff;
 	int mask = (kcontrol->private_value >> 16) & 0xff;
@@ -896,7 +913,7 @@
 
 static int snd_harmony_volume_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	snd_card_harmony_t *harmony = _snd_kcontrol_chip(kcontrol);
+	snd_card_harmony_t *harmony = snd_kcontrol_chip(kcontrol);
 	int shift_left = (kcontrol->private_value) & 0xff;
 	int shift_right = (kcontrol->private_value >> 8) & 0xff;
 	int mask = (kcontrol->private_value >> 16) & 0xff;
@@ -1037,7 +1054,7 @@
 		snd_card_free(card);
 		return err;
 	}
-	if ((err = snd_card_harmony_pcm_init(chip, dev)) < 0) {
+	if ((err = snd_card_harmony_pcm_init(chip)) < 0) {
 		printk(KERN_ERR PFX "PCM Init failed\n");
 		snd_card_free(card);
 		return err;
diff -Nru a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
--- a/sound/pci/ac97/ac97_codec.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ac97/ac97_codec.c	2004-07-27 18:28:33 -07:00
@@ -45,9 +45,6 @@
 
 module_param(enable_loopback, bool, 0444);
 MODULE_PARM_DESC(enable_loopback, "Enable AC97 ADC/DAC Loopback Control");
-MODULE_PARM_SYNTAX(enable_loopback, SNDRV_BOOLEAN_FALSE_DESC);
-
-#define chip_t ac97_t
 
 /*
 
@@ -108,12 +105,13 @@
 { 0x41445375, 0xffffffff, "AD1985",		patch_ad1985,	NULL },
 { 0x414c4300, 0xffffff00, "ALC100/100P", 	NULL,		NULL },
 { 0x414c4710, 0xfffffff0, "ALC200/200P",	NULL,		NULL },
+{ 0x414c4721, 0xffffffff, "ALC650D",		NULL,	NULL }, /* already patched */
+{ 0x414c4722, 0xffffffff, "ALC650E",		NULL,	NULL }, /* already patched */
+{ 0x414c4723, 0xffffffff, "ALC650F",		NULL,	NULL }, /* already patched */
 { 0x414c4720, 0xfffffff0, "ALC650",		patch_alc650,	NULL },
-{ 0x414c4721, 0xfffffff0, "ALC650D",		patch_alc650,	NULL },
-{ 0x414c4722, 0xfffffff0, "ALC650E",		patch_alc650,	NULL },
-{ 0x414c4723, 0xfffffff0, "ALC650F",		patch_alc650,	NULL },
 { 0x414c4760, 0xfffffff0, "ALC655",		patch_alc655,	NULL },
 { 0x414c4780, 0xfffffff0, "ALC658",		patch_alc655,	NULL },
+{ 0x414c4790, 0xfffffff0, "ALC850",		patch_alc850,	NULL },
 { 0x414c4730, 0xffffffff, "ALC101",		NULL,		NULL },
 { 0x414c4740, 0xfffffff0, "ALC202",		NULL,		NULL },
 { 0x414c4750, 0xfffffff0, "ALC250",		NULL,		NULL },
@@ -274,7 +272,7 @@
 {
 	if (!snd_ac97_valid_reg(ac97, reg))
 		return;
-	if ((ac97->id & 0xffffff00) == 0x414c4300) {
+	if ((ac97->id & 0xffffff00) == AC97_ID_ALC100) {
 		/* Fix H/W bug of ALC100/100P */
 		if (reg == AC97_MASTER || reg == AC97_HEADPHONE)
 			ac97->bus->write(ac97, AC97_RESET, 0);	/* reset audio codec */
@@ -398,7 +396,7 @@
 	int change;
 	unsigned short old, new, cfg;
 
-	down(&ac97->spec.ad18xx.mutex);
+	down(&ac97->mutex);
 	spin_lock(&ac97->reg_lock);
 	old = ac97->spec.ad18xx.pcmreg[codec];
 	new = (old & ~mask) | value;
@@ -418,7 +416,7 @@
 				 cfg | 0x7000);
 	} else
 		spin_unlock(&ac97->reg_lock);
-	up(&ac97->spec.ad18xx.mutex);
+	up(&ac97->mutex);
 	return change;
 }
 
@@ -545,7 +543,7 @@
 	int reg = kcontrol->private_value & 0xff;
 	int shift = (kcontrol->private_value >> 8) & 0xff;
 	int mask = (kcontrol->private_value >> 16) & 0xff;
-	int invert = (kcontrol->private_value >> 24) & 0xff;
+	int invert = (kcontrol->private_value >> 24) & 0x01;
 	
 	ucontrol->value.integer.value[0] = (snd_ac97_read_cache(ac97, reg) >> shift) & mask;
 	if (invert)
@@ -559,7 +557,7 @@
 	int reg = kcontrol->private_value & 0xff;
 	int shift = (kcontrol->private_value >> 8) & 0xff;
 	int mask = (kcontrol->private_value >> 16) & 0xff;
-	int invert = (kcontrol->private_value >> 24) & 0xff;
+	int invert = (kcontrol->private_value >> 24) & 0x01;
 	unsigned short val;
 	
 	val = (ucontrol->value.integer.value[0] & mask);
@@ -625,6 +623,40 @@
 				    (val1 << shift_left) | (val2 << shift_right));
 }
 
+int snd_ac97_getput_page(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol,
+			 int (*func)(snd_kcontrol_t *, snd_ctl_elem_value_t *))
+{
+	ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
+	int reg = kcontrol->private_value & 0xff;
+	int err;
+
+	if ((ac97->ext_id & AC97_EI_REV_MASK) >= AC97_EI_REV_23 &&
+	    (reg >= 0x60 && reg < 0x70)) {
+		unsigned short page_save;
+		unsigned short page = (kcontrol->private_value >> 25) & 0x0f;
+		down(&ac97->mutex); /* lock paging */
+		page_save = snd_ac97_read(ac97, AC97_INT_PAGING) & AC97_PAGE_MASK;
+		snd_ac97_update_bits(ac97, AC97_INT_PAGING, AC97_PAGE_MASK, page);
+		err = func(kcontrol, ucontrol);
+		snd_ac97_update_bits(ac97, AC97_INT_PAGING, AC97_PAGE_MASK, page_save);
+		up(&ac97->mutex); /* unlock paging */
+	} else
+		err = func(kcontrol, ucontrol);
+	return err;
+}
+
+/* for rev2.3 paging */
+int snd_ac97_page_get_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
+{
+	return snd_ac97_getput_page(kcontrol, ucontrol, snd_ac97_get_single);
+}
+
+/* for rev2.3 paging */
+int snd_ac97_page_put_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
+{
+	return snd_ac97_getput_page(kcontrol, ucontrol, snd_ac97_put_single);
+}
+
 static const snd_kcontrol_new_t snd_ac97_controls_master_mono[2] = {
 AC97_SINGLE("Master Mono Playback Switch", AC97_MASTER_MONO, 15, 1, 1),
 AC97_SINGLE("Master Mono Playback Volume", AC97_MASTER_MONO, 0, 31, 1)
@@ -1009,14 +1041,14 @@
 			kfree(bus->pcms);
 		if (bus->private_free)
 			bus->private_free(bus);
-		snd_magic_kfree(bus);
+		kfree(bus);
 	}
 	return 0;
 }
 
 static int snd_ac97_bus_dev_free(snd_device_t *device)
 {
-	ac97_bus_t *bus = snd_magic_cast(ac97_bus_t, device->device_data, return -ENXIO);
+	ac97_bus_t *bus = device->device_data;
 	return snd_ac97_bus_free(bus);
 }
 
@@ -1028,14 +1060,14 @@
 			ac97->bus->codec[ac97->num] = NULL;
 		if (ac97->private_free)
 			ac97->private_free(ac97);
-		snd_magic_kfree(ac97);
+		kfree(ac97);
 	}
 	return 0;
 }
 
 static int snd_ac97_dev_free(snd_device_t *device)
 {
-	ac97_t *ac97 = snd_magic_cast(ac97_t, device->device_data, return -ENXIO);
+	ac97_t *ac97 = device->device_data;
 	snd_ac97_powerdown(ac97); /* for avoiding click noises during shut down */
 	return snd_ac97_free(ac97);
 }
@@ -1120,6 +1152,7 @@
 	snd_ac97_write_cache(ac97, reg, 0x8000);
 }
 
+/* check the volume resolution of center/lfe */
 static void snd_ac97_change_volume_params2(ac97_t * ac97, int reg, int shift, unsigned char *max)
 {
 	unsigned short val, val1;
@@ -1135,6 +1168,7 @@
 	snd_ac97_write_cache(ac97, reg, 0x8080);
 }
 
+/* check whether the volume resolution is 4 or 5 bits */
 static void snd_ac97_change_volume_params3(ac97_t * ac97, int reg, unsigned char *max)
 {
 	unsigned short val, val1;
@@ -1150,6 +1184,18 @@
 	snd_ac97_write_cache(ac97, reg, 0x8000);
 }
 
+/* check whether the volume is mono or stereo */
+static int snd_ac97_is_stereo_vol(ac97_t *ac97, int reg)
+{
+	unsigned short val, val1, val2;
+	val = snd_ac97_read(ac97, reg);
+	val1 = val | 0x8000 | (0x01 << 8);
+	snd_ac97_write(ac97, reg, val1);
+	val2 = snd_ac97_read(ac97, reg);
+	snd_ac97_write(ac97, reg, val); /* restore */
+	return val1 == val2;
+}
+
 static inline int printable(unsigned int x)
 {
 	x &= 0xff;
@@ -1178,6 +1224,9 @@
 	snd_kcontrol_t *kctl;
 	int stereo = 0;
 
+	if (! snd_ac97_valid_reg(ac97, reg))
+		return 0;
+
 	if (ac97->flags & AC97_STEREO_MUTES) {
 		/* check whether both mute bits work */
 		unsigned short val, val1;
@@ -1208,6 +1257,9 @@
 	int err;
 	snd_kcontrol_new_t tmp = AC97_DOUBLE(name, reg, 8, 0, (unsigned int)max, 1);
 	tmp.index = ac97->num;
+
+	if (! snd_ac97_valid_reg(ac97, reg))
+		return 0;
 	if ((err = snd_ctl_add(card, snd_ctl_new1(&tmp, ac97))) < 0)
 		return err;
 	snd_ac97_write_cache(ac97, reg,
@@ -1225,6 +1277,9 @@
 	char name[44];
 	unsigned char max;
 
+	if (! snd_ac97_valid_reg(ac97, reg))
+		return 0;
+
 	sprintf(name, "%s Switch", pfx);
 	if ((err = snd_ac97_cmute_new(card, name, reg, ac97)) < 0)
 		return err;
@@ -1239,6 +1294,8 @@
 }
 
 
+static unsigned int snd_ac97_determine_spdif_rates(ac97_t *ac97);
+
 static int snd_ac97_mixer_build(ac97_t * ac97)
 {
 	snd_card_t *card = ac97->bus->card;
@@ -1293,11 +1350,8 @@
 	}
 
 	/* build headphone controls */
-	if (snd_ac97_try_volume_mix(ac97, AC97_HEADPHONE) || ac97->id == AC97_ID_STAC9708) {
-		const char *name = ac97->id == AC97_ID_STAC9708 ? 
-			"Sigmatel Surround Playback" :
-			"Headphone Playback";
-		if ((err = snd_ac97_cmix_new(card, name, AC97_HEADPHONE, 1, ac97)) < 0)
+	if (snd_ac97_try_volume_mix(ac97, AC97_HEADPHONE)) {
+		if ((err = snd_ac97_cmix_new(card, "Headphone Playback", AC97_HEADPHONE, 1, ac97)) < 0)
 			return err;
 	}
 	
@@ -1332,7 +1386,8 @@
 		for (idx = 0; idx < 2; idx++)
 			if ((err = snd_ctl_add(card, snd_ac97_cnew(&snd_ac97_controls_pc_beep[idx], ac97))) < 0)
 				return err;
-		snd_ac97_write_cache(ac97, AC97_PC_BEEP, 0x801e);
+		snd_ac97_write_cache(ac97, AC97_PC_BEEP,
+				     snd_ac97_read(ac97, AC97_PC_BEEP) | 0x801e);
 	}
 	
 	/* build Phone controls */
@@ -1349,15 +1404,26 @@
 	
 	/* build MIC controls */
 	snd_ac97_change_volume_params3(ac97, AC97_MIC, &max);
-	for (idx = 0; idx < 3; idx++) {
-		if ((err = snd_ctl_add(card, kctl = snd_ac97_cnew(&snd_ac97_controls_mic[idx], ac97))) < 0)
+	if (snd_ac97_is_stereo_vol(ac97, AC97_MIC)) {
+		/* build stereo mic */
+		if ((err = snd_ac97_cmute_new(card, "Mic Playback Switch", AC97_MIC, ac97)) < 0)
+			return err;
+		if ((err = snd_ac97_cvol_new(card, "Mic Playback Volume", AC97_MIC, max, ac97)) < 0)
+			return err;
+		if ((err = snd_ctl_add(card, snd_ac97_cnew(&snd_ac97_controls_mic[2], ac97))) < 0)
 			return err;
-		if (idx == 1) {		// volume
-			kctl->private_value &= ~(0xff << 16);
-			kctl->private_value |= (int)max << 16;
+	} else {
+		/* build mono mic */
+		for (idx = 0; idx < 3; idx++) {
+			if ((err = snd_ctl_add(card, kctl = snd_ac97_cnew(&snd_ac97_controls_mic[idx], ac97))) < 0)
+				return err;
+			if (idx == 1) {		// volume
+				kctl->private_value &= ~(0xff << 16);
+				kctl->private_value |= (int)max << 16;
+			}
 		}
+		snd_ac97_write_cache(ac97, AC97_MIC, 0x8000 | max);
 	}
-	snd_ac97_write_cache(ac97, AC97_MIC, 0x8000 | max);
 
 	/* build Line controls */
 	if ((err = snd_ac97_cmix_new(card, "Line Playback", AC97_LINE, 0, ac97)) < 0)
@@ -1410,9 +1476,7 @@
 		if ((err = snd_ac97_cmute_new(card, "PCM Playback Switch", AC97_PCM, ac97)) < 0)
 			return err;
 		/* FIXME: C-Media chips have no PCM volume!! */
-		if (/*ac97->id == 0x434d4941 ||*/
-		    ac97->id == 0x434d4942 ||
-		    ac97->id == 0x434d4961)
+		if (ac97->id == AC97_ID_CM9739)
 			snd_ac97_write_cache(ac97, AC97_PCM, 0x9f1f);
 		else {
 			if ((err = snd_ac97_cvol_new(card, "PCM Playback Volume", AC97_PCM, 31, ac97)) < 0)
@@ -1520,6 +1584,7 @@
 			/* set default PCM S/PDIF params */
 			/* consumer,PCM audio,no copyright,no preemphasis,PCM coder,original,48000Hz */
 			snd_ac97_write_cache(ac97, AC97_SPDIF, 0x2a20);
+			ac97->rates[AC97_RATES_SPDIF] = snd_ac97_determine_spdif_rates(ac97);
 		}
 		ac97->spdif_status = SNDRV_PCM_DEFAULT_CON_SPDIF;
 	}
@@ -1675,7 +1740,7 @@
 		if (snd_ac97_read(ac97, AC97_REC_GAIN) == 0x8a05)
 			return 0;
 		set_current_state(TASK_UNINTERRUPTIBLE);
-		schedule_timeout(HZ/100);
+		schedule_timeout(1);
 	} while (time_after_eq(end_time, jiffies));
 	return -ENODEV;
 }
@@ -1712,7 +1777,7 @@
 
 	snd_assert(card != NULL, return -EINVAL);
 	snd_assert(_bus != NULL && rbus != NULL, return -EINVAL);
-	bus = snd_magic_kmalloc(ac97_bus_t, 0, GFP_KERNEL);
+	bus = kmalloc(sizeof(*bus), GFP_KERNEL);
 	if (bus == NULL)
 		return -ENOMEM;
 	*bus = *_bus;
@@ -1767,13 +1832,14 @@
 	snd_assert(bus != NULL && _ac97 != NULL, return -EINVAL);
 	snd_assert(_ac97->num < 4 && bus->codec[_ac97->num] == NULL, return -EINVAL);
 	card = bus->card;
-	ac97 = snd_magic_kmalloc(ac97_t, 0, GFP_KERNEL);
+	ac97 = kmalloc(sizeof(*ac97), GFP_KERNEL);
 	if (ac97 == NULL)
 		return -ENOMEM;
 	*ac97 = *_ac97;
 	ac97->bus = bus;
 	bus->codec[ac97->num] = ac97;
 	spin_lock_init(&ac97->reg_lock);
+	init_MUTEX(&ac97->mutex);
 
 	if (ac97->pci) {
 		pci_read_config_word(ac97->pci, PCI_SUBSYSTEM_VENDOR_ID, &ac97->subsystem_vendor);
@@ -1789,8 +1855,14 @@
 		bus->wait(ac97);
 	else {
 		udelay(50);
-		if (ac97_reset_wait(ac97, HZ/2, 0) < 0 &&
-		    ac97_reset_wait(ac97, HZ/2, 1) < 0) {
+		if (ac97->scaps & AC97_SCAP_SKIP_AUDIO)
+			err = ac97_reset_wait(ac97, HZ/2, 1);
+		else {
+			err = ac97_reset_wait(ac97, HZ/2, 0);
+			if (err < 0)
+				err = ac97_reset_wait(ac97, 0, 1);
+		}
+		if (err < 0) {
 			snd_printk(KERN_WARNING "AC'97 %d does not respond - RESET\n", ac97->num);
 			/* proceed anyway - it's often non-critical */
 		}
@@ -1803,20 +1875,6 @@
 		snd_ac97_free(ac97);
 		return -EIO;
 	}
-	/* AC97 audio codec chip revision detection. */
-	/* Currently only Realtek ALC650 detection implemented. */
-	switch(ac97->id & 0xfffffff0) {
-	case 0x414c4720:        /* ALC650 */
-		reg = snd_ac97_read(ac97, AC97_ALC650_REVISION);
-		if (((reg & 0x3f) >= 0) && ((reg & 0x3f) < 3))
-			ac97->id = 0x414c4720;          /* Old version */
-		else if (((reg & 0x3f) >= 3) && ((reg & 0x3f) < 0x10))
-			ac97->id = 0x414c4721;          /* D version */
-		else if ((reg&0x30) == 0x10)
-			ac97->id = 0x414c4722;          /* E version */
-		else if ((reg&0x30) == 0x20)
-			ac97->id = 0x414c4723;          /* F version */
-        }
 	
 	/* test for AC'97 */
 	if (!(ac97->scaps & AC97_SCAP_SKIP_AUDIO) && !(ac97->scaps & AC97_SCAP_AUDIO)) {
@@ -1865,9 +1923,9 @@
 			if ((snd_ac97_read(ac97, AC97_POWERDOWN) & 0x0f) == 0x0f)
 				goto __ready_ok;
 			set_current_state(TASK_UNINTERRUPTIBLE);
-			schedule_timeout(HZ/10);
+			schedule_timeout(1);
 		} while (time_after_eq(end_time, jiffies));
-		snd_printk(KERN_ERR "AC'97 %d analog subsections not ready\n", ac97->num);
+		snd_printk(KERN_WARNING "AC'97 %d analog subsections not ready\n", ac97->num);
 	}
 
 	/* FIXME: add powerdown control */
@@ -1898,9 +1956,9 @@
 			if ((snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS) & tmp) == tmp)
 				goto __ready_ok;
 			set_current_state(TASK_UNINTERRUPTIBLE);
-			schedule_timeout(HZ/10);
+			schedule_timeout(1);
 		} while (time_after_eq(end_time, jiffies));
-		snd_printk(KERN_ERR "MC'97 %d converters and GPIO not ready (0x%x)\n", ac97->num, snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS));
+		snd_printk(KERN_WARNING "MC'97 %d converters and GPIO not ready (0x%x)\n", ac97->num, snd_ac97_read(ac97, AC97_EXTENDED_MSTATUS));
 	}
 	
       __ready_ok:
@@ -1919,12 +1977,7 @@
 	}
 	if (ac97->ext_id & AC97_EI_SPDIF) {
 		/* codec specific code (patch) should override these values */
-		if (ac97->flags & AC97_CS_SPDIF)
-			ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_44100;
-		else if (ac97->id == AC97_ID_CM9739)
-			ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_48000;
-		else
-			ac97->rates[AC97_RATES_SPDIF] = snd_ac97_determine_spdif_rates(ac97);
+		ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_32000;
 	}
 	if (ac97->ext_id & AC97_EI_VRM) {	/* MIC VRA support */
 		snd_ac97_determine_rates(ac97, AC97_PCM_MIC_ADC_RATE, 0, &ac97->rates[AC97_RATES_MIC_ADC]);
@@ -1942,8 +1995,8 @@
 	/* additional initializations */
 	if (bus->init)
 		bus->init(ac97);
-	snd_ac97_get_name(ac97, ac97->id, name, 0);
-	snd_ac97_get_name(NULL, ac97->id, name, 0);  // ac97->id might be changed in the special setup code
+	snd_ac97_get_name(ac97, ac97->id, name, !ac97_is_audio(ac97));
+	snd_ac97_get_name(NULL, ac97->id, name, !ac97_is_audio(ac97));  // ac97->id might be changed in the special setup code
 	if (ac97_is_audio(ac97)) {
 		if (card->mixername[0] == '\0') {
 			strcpy(card->mixername, name);
@@ -2066,18 +2119,28 @@
 	snd_ac97_write(ac97, AC97_GENERAL_PURPOSE, 0);
 
 	snd_ac97_write(ac97, AC97_POWERDOWN, ac97->regs[AC97_POWERDOWN]);
-	ac97->bus->write(ac97, AC97_MASTER, 0x8101);
-	for (i = 0; i < 10; i++) {
-		if (snd_ac97_read(ac97, AC97_MASTER) == 0x8101)
-			break;
-		set_current_state(TASK_UNINTERRUPTIBLE);
-		schedule_timeout(1);
-	}
-	/* FIXME: extra delay */
-	ac97->bus->write(ac97, AC97_MASTER, 0x8000);
-	if (snd_ac97_read(ac97, AC97_MASTER) != 0x8000) {
-		set_current_state(TASK_UNINTERRUPTIBLE);
-		schedule_timeout(HZ/4);
+	if (ac97_is_audio(ac97)) {
+		ac97->bus->write(ac97, AC97_MASTER, 0x8101);
+		for (i = HZ/10; i >= 0; i--) {
+			if (snd_ac97_read(ac97, AC97_MASTER) == 0x8101)
+				break;
+			set_current_state(TASK_UNINTERRUPTIBLE);
+			schedule_timeout(1);
+		}
+		/* FIXME: extra delay */
+		ac97->bus->write(ac97, AC97_MASTER, 0x8000);
+		if (snd_ac97_read(ac97, AC97_MASTER) != 0x8000) {
+			set_current_state(TASK_UNINTERRUPTIBLE);
+			schedule_timeout(HZ/4);
+		}
+	} else {
+		for (i = HZ/10; i >= 0; i--) {
+			unsigned short val = snd_ac97_read(ac97, AC97_EXTENDED_MID);
+			if (val != 0xffff && (val & 1) != 0)
+				break;
+			set_current_state(TASK_UNINTERRUPTIBLE);
+			schedule_timeout(1);
+		}
 	}
 __reset_ready:
 
@@ -2151,42 +2214,57 @@
 
 /*
  */
-int snd_ac97_remove_ctl(ac97_t *ac97, const char *name)
+static void set_ctl_name(char *dst, const char *src, const char *suffix)
+{
+	if (suffix)
+		sprintf(dst, "%s %s", src, suffix);
+	else
+		strcpy(dst, src);
+}	
+
+int snd_ac97_remove_ctl(ac97_t *ac97, const char *name, const char *suffix)
 {
 	snd_ctl_elem_id_t id;
 	memset(&id, 0, sizeof(id));
-	strcpy(id.name, name);
+	set_ctl_name(id.name, name, suffix);
 	id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
 	return snd_ctl_remove_id(ac97->bus->card, &id);
 }
 
-static snd_kcontrol_t *ctl_find(ac97_t *ac97, const char *name)
+static snd_kcontrol_t *ctl_find(ac97_t *ac97, const char *name, const char *suffix)
 {
 	snd_ctl_elem_id_t sid;
 	memset(&sid, 0, sizeof(sid));
-	strcpy(sid.name, name);
+	set_ctl_name(sid.name, name, suffix);
 	sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
 	return snd_ctl_find_id(ac97->bus->card, &sid);
 }
 
-int snd_ac97_rename_ctl(ac97_t *ac97, const char *src, const char *dst)
+int snd_ac97_rename_ctl(ac97_t *ac97, const char *src, const char *dst, const char *suffix)
 {
-	snd_kcontrol_t *kctl = ctl_find(ac97, src);
+	snd_kcontrol_t *kctl = ctl_find(ac97, src, suffix);
 	if (kctl) {
-		strcpy(kctl->id.name, dst);
+		set_ctl_name(kctl->id.name, dst, suffix);
 		return 0;
 	}
 	return -ENOENT;
 }
 
-int snd_ac97_swap_ctl(ac97_t *ac97, const char *s1, const char *s2)
+/* rename both Volume and Switch controls - don't check the return value */
+void snd_ac97_rename_vol_ctl(ac97_t *ac97, const char *src, const char *dst)
+{
+	snd_ac97_rename_ctl(ac97, src, dst, "Switch");
+	snd_ac97_rename_ctl(ac97, src, dst, "Volume");
+}
+
+int snd_ac97_swap_ctl(ac97_t *ac97, const char *s1, const char *s2, const char *suffix)
 {
 	snd_kcontrol_t *kctl1, *kctl2;
-	kctl1 = ctl_find(ac97, s1);
-	kctl2 = ctl_find(ac97, s2);
+	kctl1 = ctl_find(ac97, s1, suffix);
+	kctl2 = ctl_find(ac97, s2, suffix);
 	if (kctl1 && kctl2) {
-		strcpy(kctl1->id.name, s2);
-		strcpy(kctl2->id.name, s1);
+		set_ctl_name(kctl1->id.name, s2, suffix);
+		set_ctl_name(kctl2->id.name, s1, suffix);
 		return 0;
 	}
 	return -ENOENT;
@@ -2194,26 +2272,22 @@
 
 static int swap_headphone(ac97_t *ac97, int remove_master)
 {
-	/* FIXME: error checks.. */
 	if (remove_master) {
-		if (ctl_find(ac97, "Headphone Playback Switch") == NULL)
+		if (ctl_find(ac97, "Headphone Playback Switch", NULL) == NULL)
 			return 0;
-		snd_ac97_remove_ctl(ac97, "Master Playback Switch");
-		snd_ac97_remove_ctl(ac97, "Master Playback Volume");
-	} else {
-		snd_ac97_rename_ctl(ac97, "Master Playback Switch", "Line-Out Playback Switch");
-		snd_ac97_rename_ctl(ac97, "Master Playback Volume", "Line-Out Playback Volume");
-	}
-	snd_ac97_rename_ctl(ac97, "Headphone Playback Switch", "Master Playback Switch");
-	snd_ac97_rename_ctl(ac97, "Headphone Playback Volume", "Master Playback Volume");
+		snd_ac97_remove_ctl(ac97, "Master Playback", "Switch");
+		snd_ac97_remove_ctl(ac97, "Master Playback", "Volume");
+	} else
+		snd_ac97_rename_vol_ctl(ac97, "Master Playback", "Line-Out Playback");
+	snd_ac97_rename_vol_ctl(ac97, "Headphone Playback", "Master Playback");
 	return 0;
 }
 
 static int swap_surround(ac97_t *ac97)
 {
 	/* FIXME: error checks.. */
-	snd_ac97_swap_ctl(ac97, "Master Playback Switch", "Surround Playback Switch");
-	snd_ac97_swap_ctl(ac97, "Master Playback Volume", "Surround Playback Volume");
+	snd_ac97_swap_ctl(ac97, "Master Playback", "Surround Playback", "Switch");
+	snd_ac97_swap_ctl(ac97, "Master Playback", "Surround Playback", "Volume");
 	return 0;
 }
 
diff -Nru a/sound/pci/ac97/ac97_id.h b/sound/pci/ac97/ac97_id.h
--- a/sound/pci/ac97/ac97_id.h	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ac97/ac97_id.h	2004-07-27 18:28:33 -07:00
@@ -45,7 +45,14 @@
 #define AC97_ID_CS4201		0x43525948
 #define AC97_ID_CS4205		0x43525958
 #define AC97_ID_CS_MASK		0xfffffff8	/* bit 0-2: rev */
+#define AC97_ID_ALC100		0x414c4300
 #define AC97_ID_ALC650		0x414c4720
+#define AC97_ID_ALC650D		0x414c4721
+#define AC97_ID_ALC650E		0x414c4722
+#define AC97_ID_ALC650F		0x414c4723
+#define AC97_ID_ALC655		0x414c4760
+#define AC97_ID_ALC658		0x414c4780
+#define AC97_ID_ALC850		0x414c4790
 #define AC97_ID_YMF753		0x594d4803
 #define AC97_ID_VT1616		0x49434551
 #define AC97_ID_CM9738		0x434d4941
diff -Nru a/sound/pci/ac97/ac97_local.h b/sound/pci/ac97/ac97_local.h
--- a/sound/pci/ac97/ac97_local.h	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ac97/ac97_local.h	2004-07-27 18:28:33 -07:00
@@ -23,10 +23,15 @@
  */
 
 #define AC97_SINGLE_VALUE(reg,shift,mask,invert) ((reg) | ((shift) << 8) | ((mask) << 16) | ((invert) << 24))
+#define AC97_PAGE_SINGLE_VALUE(reg,shift,mask,invert,page) ((reg) | ((shift) << 8) | ((mask) << 16) | ((invert) << 24) | ((page) << 25))
 #define AC97_SINGLE(xname, reg, shift, mask, invert) \
 { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_ac97_info_single, \
   .get = snd_ac97_get_single, .put = snd_ac97_put_single, \
   .private_value =  AC97_SINGLE_VALUE(reg, shift, mask, invert) }
+#define AC97_PAGE_SINGLE(xname, reg, shift, mask, invert, page)		\
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_ac97_info_single, \
+  .get = snd_ac97_page_get_single, .put = snd_ac97_page_put_single, \
+  .private_value =  AC97_PAGE_SINGLE_VALUE(reg, shift, mask, invert, page) }
 
 /* ac97_codec.c */
 extern const char *snd_ac97_stereo_enhancements[];
@@ -37,10 +42,13 @@
 int snd_ac97_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo);
 int snd_ac97_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
 int snd_ac97_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
+int snd_ac97_page_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
+int snd_ac97_page_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
 int snd_ac97_try_bit(ac97_t * ac97, int reg, int bit);
-int snd_ac97_remove_ctl(ac97_t *ac97, const char *name);
-int snd_ac97_rename_ctl(ac97_t *ac97, const char *src, const char *dst);
-int snd_ac97_swap_ctl(ac97_t *ac97, const char *s1, const char *s2);
+int snd_ac97_remove_ctl(ac97_t *ac97, const char *name, const char *suffix);
+int snd_ac97_rename_ctl(ac97_t *ac97, const char *src, const char *dst, const char *suffix);
+int snd_ac97_swap_ctl(ac97_t *ac97, const char *s1, const char *s2, const char *suffix);
+void snd_ac97_rename_vol_ctl(ac97_t *ac97, const char *src, const char *dst);
 
 /* ac97_proc.c */
 void snd_ac97_bus_proc_init(ac97_bus_t * ac97);
diff -Nru a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
--- a/sound/pci/ac97/ac97_patch.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ac97/ac97_patch.c	2004-07-27 18:28:33 -07:00
@@ -35,8 +35,6 @@
 #include "ac97_id.h"
 #include "ac97_local.h"
 
-#define chip_t ac97_t
-
 /*
  *  Chip specific initialization
  */
@@ -51,6 +49,21 @@
 	return 0;
 }
 
+/* set to the page, update bits and restore the page */
+static int ac97_update_bits_page(ac97_t *ac97, unsigned short reg, unsigned short mask, unsigned short value, unsigned short page)
+{
+	unsigned short page_save;
+	int ret;
+
+	down(&ac97->mutex);
+	page_save = snd_ac97_read(ac97, AC97_INT_PAGING) & AC97_PAGE_MASK;
+	snd_ac97_update_bits(ac97, AC97_INT_PAGING, AC97_PAGE_MASK, page);
+	ret = snd_ac97_update_bits(ac97, reg, mask, value);
+	snd_ac97_update_bits(ac97, AC97_INT_PAGING, AC97_PAGE_MASK, page_save);
+	up(&ac97->mutex); /* unlock paging */
+	return ret;
+}
+
 /* The following snd_ac97_ymf753_... items added by David Shust (dshust@shustring.com) */
 
 /* It is possible to indicate to the Yamaha YMF753 the type of speakers being used. */
@@ -204,7 +217,7 @@
 	if ((err = snd_ctl_add(ac97->bus->card, kctl = snd_ac97_cnew(&snd_ac97_controls_3d[0], ac97))) < 0)
 		return err;
 	strcpy(kctl->id.name, "3D Control - Wide");
-	kctl->private_value = AC97_3D_CONTROL | (9 << 8) | (7 << 16);
+	kctl->private_value = AC97_SINGLE_VALUE(AC97_3D_CONTROL, 9, 7, 0);
 	snd_ac97_write_cache(ac97, AC97_3D_CONTROL, 0x0000);
 	if ((err = snd_ctl_add(ac97->bus->card, snd_ac97_cnew(&snd_ac97_ymf753_controls_speaker, ac97))) < 0)
 		return err;
@@ -315,7 +328,7 @@
 	if ((err = snd_ctl_add(ac97->bus->card, kctl = snd_ac97_cnew(&snd_ac97_controls_3d[0], ac97))) < 0)
 		return err;
 	strcpy(kctl->id.name, "3D Control Sigmatel - Depth");
-	kctl->private_value = AC97_3D_CONTROL | (3 << 16);
+	kctl->private_value = AC97_SINGLE_VALUE(AC97_3D_CONTROL, 2, 3, 0);
 	snd_ac97_write_cache(ac97, AC97_3D_CONTROL, 0x0000);
 	return 0;
 }
@@ -328,11 +341,11 @@
 	if ((err = snd_ctl_add(ac97->bus->card, kctl = snd_ac97_cnew(&snd_ac97_controls_3d[0], ac97))) < 0)
 		return err;
 	strcpy(kctl->id.name, "3D Control Sigmatel - Depth");
-	kctl->private_value = AC97_3D_CONTROL | (3 << 16);
+	kctl->private_value = AC97_SINGLE_VALUE(AC97_3D_CONTROL, 0, 3, 0);
 	if ((err = snd_ctl_add(ac97->bus->card, kctl = snd_ac97_cnew(&snd_ac97_controls_3d[0], ac97))) < 0)
 		return err;
 	strcpy(kctl->id.name, "3D Control Sigmatel - Rear Depth");
-	kctl->private_value = AC97_3D_CONTROL | (2 << 8) | (3 << 16);
+	kctl->private_value = AC97_SINGLE_VALUE(AC97_3D_CONTROL, 2, 3, 0);
 	snd_ac97_write_cache(ac97, AC97_3D_CONTROL, 0x0000);
 	return 0;
 }
@@ -373,22 +386,29 @@
 	.build_specific	= patch_sigmatel_stac97xx_specific
 };
 
-static struct snd_ac97_build_ops patch_sigmatel_stac9708_ops = {
-	.build_3d	= patch_sigmatel_stac9708_3d,
-	.build_specific	= patch_sigmatel_stac97xx_specific
-};
-
 int patch_sigmatel_stac9700(ac97_t * ac97)
 {
 	ac97->build_ops = &patch_sigmatel_stac9700_ops;
 	return 0;
 }
 
+static int patch_sigmatel_stac9708_specific(ac97_t *ac97)
+{
+	snd_ac97_rename_vol_ctl(ac97, "Headphone Playback", "Sigmatel Surround Playback");
+	return patch_sigmatel_stac97xx_specific(ac97);
+}
+
+static struct snd_ac97_build_ops patch_sigmatel_stac9708_ops = {
+	.build_3d	= patch_sigmatel_stac9708_3d,
+	.build_specific	= patch_sigmatel_stac9708_specific
+};
+
 int patch_sigmatel_stac9708(ac97_t * ac97)
 {
 	unsigned int codec72, codec6c;
 
 	ac97->build_ops = &patch_sigmatel_stac9708_ops;
+	ac97->caps |= 0x10;	/* HP (sigmatel surround) support */
 
 	codec72 = snd_ac97_read(ac97, AC97_SIGMATEL_BIAS2) & 0x8000;
 	codec6c = snd_ac97_read(ac97, AC97_SIGMATEL_ANALOG);
@@ -467,11 +487,11 @@
 	int shift = kcontrol->private_value;
 	unsigned short val;
 
-	val = ac97->regs[AC97_SIGMATEL_OUTSEL];
-	if (!((val >> shift) & 4))
+	val = ac97->regs[AC97_SIGMATEL_OUTSEL] >> shift;
+	if (!(val & 4))
 		ucontrol->value.enumerated.item[0] = 0;
 	else
-		ucontrol->value.enumerated.item[0] = 1 + ((val >> shift) & 3);
+		ucontrol->value.enumerated.item[0] = 1 + (val & 3);
 	return 0;
 }
 
@@ -487,8 +507,8 @@
 		val = 0;
 	else
 		val = 4 | (ucontrol->value.enumerated.item[0] - 1);
-	return snd_ac97_update_bits(ac97, AC97_SIGMATEL_OUTSEL,
-				    7 << shift, val << shift);
+	return ac97_update_bits_page(ac97, AC97_SIGMATEL_OUTSEL,
+				     7 << shift, val << shift, 0);
 }
 
 static int snd_ac97_stac9758_input_jack_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
@@ -521,8 +541,8 @@
 	ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
 	int shift = kcontrol->private_value;
 
-	return snd_ac97_update_bits(ac97, AC97_SIGMATEL_INSEL, 7 << shift,
-				    ucontrol->value.enumerated.item[0] << shift);
+	return ac97_update_bits_page(ac97, AC97_SIGMATEL_INSEL, 7 << shift,
+				     ucontrol->value.enumerated.item[0] << shift, 0);
 }
 
 static int snd_ac97_stac9758_phonesel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
@@ -550,8 +570,8 @@
 {
 	ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
 
-	return snd_ac97_update_bits(ac97, AC97_SIGMATEL_IOMISC, 3,
-				    ucontrol->value.enumerated.item[0]);
+	return ac97_update_bits_page(ac97, AC97_SIGMATEL_IOMISC, 3,
+				     ucontrol->value.enumerated.item[0], 0);
 }
 
 #define STAC9758_OUTPUT_JACK(xname, shift) \
@@ -596,6 +616,14 @@
 				   ARRAY_SIZE(snd_ac97_sigmatel_stac9758_controls));
 	if (err < 0)
 		return err;
+	/* DAC-A direct */
+	snd_ac97_rename_vol_ctl(ac97, "Headphone Playback", "Front Playback");
+	/* DAC-A to Mix = PCM */
+	/* DAC-B direct = Surround */
+	/* DAC-B to Mix */
+	snd_ac97_rename_vol_ctl(ac97, "Video Playback", "Surround Mix Playback");
+	/* DAC-C direct = Center/LFE */
+
 	return 0;
 }
 
@@ -613,16 +641,16 @@
 		AC97_SIGMATEL_VARIOUS
 	};
 	static unsigned short def_regs[4] = {
-		/* OUTSEL */ 0xd794,
+		/* OUTSEL */ 0xd794, /* CL:CL, SR:SR, LO:MX, LI:DS, MI:DS */
 		/* IOMISC */ 0x2001,
-		/* INSEL */ 0x0201,
+		/* INSEL */ 0x0201, /* LI:LI, MI:M1 */
 		/* VARIOUS */ 0x0040
 	};
 	static unsigned short m675_regs[4] = {
-		/* OUTSEL */ 0x9040,
-		/* IOMISC */ 0x2102,
-		/* INSEL */ 0x0203,
-		/* VARIOUS */ 0x0041
+		/* OUTSEL */ 0xfc70, /* CL:MX, SR:MX, LO:DS, LI:MX, MI:DS */
+		/* IOMISC */ 0x2102, /* HP amp on */
+		/* INSEL */ 0x0203, /* LI:LI, MI:FR */
+		/* VARIOUS */ 0x0041 /* stereo mic */
 	};
 	unsigned short *pregs = def_regs;
 	int i;
@@ -635,6 +663,8 @@
 
 	// patch for SigmaTel
 	ac97->build_ops = &patch_sigmatel_stac9758_ops;
+	/* FIXME: assume only page 0 for writing cache */
+	snd_ac97_update_bits(ac97, AC97_INT_PAGING, AC97_PAGE_MASK, AC97_PAGE_VENDOR);
 	for (i = 0; i < 4; i++)
 		snd_ac97_write_cache(ac97, regs[i], pregs[i]);
 
@@ -654,8 +684,10 @@
 {
 	int err;
 
+	/* con mask, pro mask, default */
 	if ((err = patch_build_controls(ac97, &snd_ac97_controls_spdif[0], 3)) < 0)
 		return err;
+	/* switch, spsa */
 	if ((err = patch_build_controls(ac97, &snd_ac97_cirrus_controls_spdif[0], 1)) < 0)
 		return err;
 	switch (ac97->id & AC97_ID_CS_MASK) {
@@ -714,8 +746,10 @@
 {
 	int err;
 
+	/* con mask, pro mask, default */
 	if ((err = patch_build_controls(ac97, &snd_ac97_controls_spdif[0], 3)) < 0)
 		return err;
+	/* switch */
 	if ((err = patch_build_controls(ac97, &snd_ac97_conexant_controls_spdif[0], 1)) < 0)
 		return err;
 	/* set default PCM S/PDIF params */
@@ -734,6 +768,7 @@
 	ac97->build_ops = &patch_conexant_ops;
 	ac97->flags |= AC97_CX_SPDIF;
         ac97->ext_id |= AC97_EI_SPDIF;	/* force the detection of spdif */
+	ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_48000; /* 48k only */
 	return 0;
 }
 
@@ -821,8 +856,6 @@
 	unsigned short val;
 	int idx, num;
 
-	init_MUTEX(&ac97->spec.ad18xx.mutex);
-
 	val = snd_ac97_read(ac97, AC97_AD_SERIAL_CFG);
 	snd_ac97_write_cache(ac97, AC97_AD_SERIAL_CFG, val);
 	codecs[0] = patch_ad1881_unchained(ac97, 0, (1<<12));
@@ -1114,10 +1147,8 @@
 static int patch_ad1888_specific(ac97_t *ac97)
 {
 	/* rename 0x04 as "Master" and 0x02 as "Master Surround" */
-	snd_ac97_rename_ctl(ac97, "Master Playback Switch", "Master Surround Playback Switch");
-	snd_ac97_rename_ctl(ac97, "Master Playback Volume", "Master Surround Playback Volume");
-	snd_ac97_rename_ctl(ac97, "Headphone Playback Switch", "Master Playback Switch");
-	snd_ac97_rename_ctl(ac97, "Headphone Playback Volume", "Master Playback Volume");
+	snd_ac97_rename_vol_ctl(ac97, "Master Playback", "Master Surround Playback");
+	snd_ac97_rename_vol_ctl(ac97, "Headphone Playback", "Master Playback");
 	return patch_build_controls(ac97, snd_ac97_ad1888_controls, ARRAY_SIZE(snd_ac97_ad1888_controls));
 }
 
@@ -1213,7 +1244,7 @@
 }
 
 /*
- * realtek ALC65x codecs
+ * realtek ALC65x/850 codecs
  */
 static int snd_ac97_alc650_mic_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
@@ -1303,6 +1334,17 @@
 
 	ac97->build_ops = &patch_alc650_ops;
 
+	/* determine the revision */
+	val = snd_ac97_read(ac97, AC97_ALC650_REVISION) & 0x3f;
+	if (val < 3)
+		ac97->id = 0x414c4720;          /* Old version */
+	else if (val < 0x10)
+		ac97->id = 0x414c4721;          /* D version */
+	else if (val < 0x20)
+		ac97->id = 0x414c4722;          /* E version */
+	else if (val < 0x30)
+		ac97->id = 0x414c4723;          /* F version */
+
 	/* revision E or F */
 	/* FIXME: what about revision D ? */
 	ac97->spec.dev_flags = (ac97->id == 0x414c4722 ||
@@ -1351,20 +1393,19 @@
 static int snd_ac97_alc655_mic_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
         ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
-        int change;
 
 	/* misc control; vrefout disable */
 	snd_ac97_update_bits(ac97, AC97_ALC650_CLOCK, 1 << 12,
 			     ucontrol->value.integer.value[0] ? (1 << 12) : 0);
-	change = snd_ac97_update_bits(ac97, AC97_ALC650_MULTICH, 1 << 10,
-				      ucontrol->value.integer.value[0] ? (1 << 10) : 0);
-	return change;
+	return ac97_update_bits_page(ac97, AC97_ALC650_MULTICH, 1 << 10,
+				     ucontrol->value.integer.value[0] ? (1 << 10) : 0,
+				     0);
 }
 
 
 static const snd_kcontrol_new_t snd_ac97_controls_alc655[] = {
-	AC97_SINGLE("Duplicate Front", AC97_ALC650_MULTICH, 0, 1, 0),
-	AC97_SINGLE("Line-In As Surround", AC97_ALC650_MULTICH, 9, 1, 0),
+	AC97_PAGE_SINGLE("Duplicate Front", AC97_ALC650_MULTICH, 0, 1, 0, 0),
+	AC97_PAGE_SINGLE("Line-In As Surround", AC97_ALC650_MULTICH, 9, 1, 0, 0),
 	{
 		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
 		.name = "Mic As Center/LFE",
@@ -1391,7 +1432,6 @@
 	       texts_658[uinfo->value.enumerated.item] :
 	       texts_655[uinfo->value.enumerated.item]);
 	return 0;
-
 }
 
 static int alc655_iec958_route_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
@@ -1410,13 +1450,15 @@
 static int alc655_iec958_route_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
 	ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
-	return snd_ac97_update_bits(ac97, AC97_ALC650_MULTICH, 3 << 12,
-				    (unsigned short)ucontrol->value.enumerated.item[0]);
+
+	return ac97_update_bits_page(ac97, AC97_ALC650_MULTICH, 3 << 12,
+				     (unsigned short)ucontrol->value.enumerated.item[0],
+				     0);
 }
 
 static const snd_kcontrol_new_t snd_ac97_spdif_controls_alc655[] = {
-        AC97_SINGLE("IEC958 Capture Switch", AC97_ALC650_MULTICH, 11, 1, 0),
-        AC97_SINGLE("IEC958 Input Monitor", AC97_ALC650_MULTICH, 14, 1, 0),
+        AC97_PAGE_SINGLE("IEC958 Capture Switch", AC97_ALC650_MULTICH, 11, 1, 0, 0),
+        AC97_PAGE_SINGLE("IEC958 Input Monitor", AC97_ALC650_MULTICH, 14, 1, 0, 0),
 	{
 		.iface  = SNDRV_CTL_ELEM_IFACE_MIXER,
 		.name   = "IEC958 Playback Route",
@@ -1451,6 +1493,9 @@
 
 	ac97->build_ops = &patch_alc655_ops;
 
+	/* assume only page 0 for writing cache */
+	snd_ac97_update_bits(ac97, AC97_INT_PAGING, AC97_PAGE_MASK, AC97_PAGE_VENDOR);
+
 	/* adjust default values */
 	val = snd_ac97_read(ac97, 0x7a); /* misc control */
 	val |= (1 << 1); /* spdif input pin */
@@ -1469,6 +1514,120 @@
 	return 0;
 }
 
+
+#define AC97_ALC850_JACK_SELECT	0x76
+#define AC97_ALC850_MISC1	0x7a
+
+static int ac97_alc850_surround_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol)
+{
+        ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
+        ucontrol->value.integer.value[0] = ((ac97->regs[AC97_ALC850_JACK_SELECT] >> 12) & 7) == 2;
+        return 0;
+}
+
+static int ac97_alc850_surround_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol)
+{
+        ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
+
+	/* SURR 1kOhm (bit4), Amp (bit5) */
+	snd_ac97_update_bits(ac97, AC97_ALC850_MISC1, (1<<4)|(1<<5),
+			     ucontrol->value.integer.value[0] ? (1<<5) : (1<<4));
+	/* LINE-IN = 0, SURROUND = 2 */
+	return snd_ac97_update_bits(ac97, AC97_ALC850_JACK_SELECT, 7 << 12,
+				    ucontrol->value.integer.value[0] ? (2<<12) : (0<<12));
+}
+
+static int ac97_alc850_mic_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol)
+{
+        ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
+        ucontrol->value.integer.value[0] = ((ac97->regs[AC97_ALC850_JACK_SELECT] >> 4) & 7) == 2;
+        return 0;
+}
+
+static int ac97_alc850_mic_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t * ucontrol)
+{
+        ac97_t *ac97 = snd_kcontrol_chip(kcontrol);
+
+	/* Vref disable (bit12), 1kOhm (bit13) */
+	snd_ac97_update_bits(ac97, AC97_ALC850_MISC1, (1<<12)|(1<<13),
+			     ucontrol->value.integer.value[0] ? (1<<12) : (1<<13));
+	/* MIC-IN = 1, CENTER-LFE = 2 */
+	return snd_ac97_update_bits(ac97, AC97_ALC850_JACK_SELECT, 7 << 4,
+				    ucontrol->value.integer.value[0] ? (2<<4) : (1<<4));
+}
+
+static const snd_kcontrol_new_t snd_ac97_controls_alc850[] = {
+	AC97_PAGE_SINGLE("Duplicate Front", AC97_ALC650_MULTICH, 0, 1, 0, 0),
+	{
+		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+		.name = "Line-In As Surround",
+		.info = snd_ac97_info_single,
+		.get = ac97_alc850_surround_get,
+		.put = ac97_alc850_surround_put,
+		.private_value = AC97_SINGLE_VALUE(0, 0, 1, 0) /* only mask needed */
+	},
+	{
+		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+		.name = "Mic As Center/LFE",
+		.info = snd_ac97_info_single,
+		.get = ac97_alc850_mic_get,
+		.put = ac97_alc850_mic_put,
+		.private_value = AC97_SINGLE_VALUE(0, 0, 1, 0) /* only mask needed */
+	},
+
+};
+
+static int patch_alc850_specific(ac97_t *ac97)
+{
+	int err;
+
+	if ((err = patch_build_controls(ac97, snd_ac97_controls_alc850, ARRAY_SIZE(snd_ac97_controls_alc850))) < 0)
+		return err;
+	if (ac97->ext_id & AC97_EI_SPDIF) {
+		if ((err = patch_build_controls(ac97, snd_ac97_spdif_controls_alc655, ARRAY_SIZE(snd_ac97_spdif_controls_alc655))) < 0)
+			return err;
+	}
+	return 0;
+}
+
+static struct snd_ac97_build_ops patch_alc850_ops = {
+	.build_specific	= patch_alc850_specific
+};
+
+int patch_alc850(ac97_t *ac97)
+{
+	ac97->build_ops = &patch_alc850_ops;
+
+	ac97->spec.dev_flags = 0; /* for IEC958 playback route - ALC655 compatible */
+
+	/* assume only page 0 for writing cache */
+	snd_ac97_update_bits(ac97, AC97_INT_PAGING, AC97_PAGE_MASK, AC97_PAGE_VENDOR);
+
+	/* adjust default values */
+	/* set default: spdif-in enabled,
+	   spdif-in monitor off, spdif-in PCM off
+	   center on mic off, surround on line-in off
+	   duplicate front off
+	*/
+	snd_ac97_write_cache(ac97, AC97_ALC650_MULTICH, 1<<15);
+	/* SURR_OUT: on, Surr 1kOhm: on, Surr Amp: off, Front 1kOhm: off
+	 * Front Amp: on, Vref: enable, Center 1kOhm: on, Mix: on
+	 */
+	snd_ac97_write_cache(ac97, 0x7a, (1<<1)|(1<<4)|(0<<5)|(1<<6)|
+			     (1<<7)|(0<<12)|(1<<13)|(0<<14));
+	/* detection UIO2,3: all path floating, UIO3: MIC, Vref2: disable,
+	 * UIO1: FRONT, Vref3: disable, UIO3: LINE, Front-Mic: mute
+	 */
+	snd_ac97_write_cache(ac97, 0x76, (0<<0)|(0<<2)|(1<<4)|(1<<7)|(2<<8)|
+			     (1<<11)|(0<<12)|(1<<15));
+
+	/* full DAC volume */
+	snd_ac97_write_cache(ac97, AC97_ALC650_SURR_DAC_VOL, 0x0808);
+	snd_ac97_write_cache(ac97, AC97_ALC650_LFE_DAC_VOL, 0x0808);
+	return 0;
+}
+
+
 /*
  * C-Media CM97xx codecs
  */
@@ -1599,8 +1758,10 @@
 		/* enable spdif in */
 		snd_ac97_write_cache(ac97, AC97_CM9739_SPDIF_CTRL,
 				     snd_ac97_read(ac97, AC97_CM9739_SPDIF_CTRL) | 0x01);
+		ac97->rates[AC97_RATES_SPDIF] = SNDRV_PCM_RATE_48000; /* 48k only */
 	} else {
 		ac97->ext_id &= ~AC97_EI_SPDIF; /* disable extended-id */
+		ac97->rates[AC97_RATES_SPDIF] = 0;
 	}
 
 	/* set-up multi channel */
diff -Nru a/sound/pci/ac97/ac97_patch.h b/sound/pci/ac97/ac97_patch.h
--- a/sound/pci/ac97/ac97_patch.h	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/ac97/ac97_patch.h	2004-07-27 18:28:32 -07:00
@@ -49,6 +49,7 @@
 int patch_ad1985(ac97_t * ac97);
 int patch_alc650(ac97_t * ac97);
 int patch_alc655(ac97_t * ac97);
+int patch_alc850(ac97_t * ac97);
 int patch_cm9738(ac97_t * ac97);
 int patch_cm9739(ac97_t * ac97);
 int patch_vt1616(ac97_t * ac97);
diff -Nru a/sound/pci/ac97/ac97_pcm.c b/sound/pci/ac97/ac97_pcm.c
--- a/sound/pci/ac97/ac97_pcm.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/ac97/ac97_pcm.c	2004-07-27 18:28:32 -07:00
@@ -36,8 +36,6 @@
 #include "ac97_id.h"
 #include "ac97_local.h"
 
-#define chip_t ac97_t
-
 /*
  *  PCM support
  */
@@ -430,7 +428,7 @@
 	unsigned int rates;
 	ac97_t *codec;
 
-	rpcms = snd_kcalloc(sizeof(struct ac97_pcm) * pcms_count, GFP_KERNEL);
+	rpcms = kcalloc(pcms_count, sizeof(struct ac97_pcm), GFP_KERNEL);
 	if (rpcms == NULL)
 		return -ENOMEM;
 	memset(avail_slots, 0, sizeof(avail_slots));
diff -Nru a/sound/pci/ac97/ac97_proc.c b/sound/pci/ac97/ac97_proc.c
--- a/sound/pci/ac97/ac97_proc.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ac97/ac97_proc.c	2004-07-27 18:28:33 -07:00
@@ -290,11 +290,11 @@
 
 static void snd_ac97_proc_read(snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	ac97_t *ac97 = snd_magic_cast(ac97_t, entry->private_data, return);
+	ac97_t *ac97 = entry->private_data;
 	
+	down(&ac97->mutex);
 	if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) {	// Analog Devices AD1881/85/86
 		int idx;
-		down(&ac97->spec.ad18xx.mutex);
 		for (idx = 0; idx < 3; idx++)
 			if (ac97->spec.ad18xx.id[idx]) {
 				/* select single codec */
@@ -305,7 +305,6 @@
 			}
 		/* select all codecs */
 		snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000, 0x7000);
-		up(&ac97->spec.ad18xx.mutex);
 		
 		snd_iprintf(buffer, "\nAD18XX configuration\n");
 		snd_iprintf(buffer, "Unchained        : 0x%04x,0x%04x,0x%04x\n",
@@ -319,15 +318,17 @@
 	} else {
 		snd_ac97_proc_read_main(ac97, buffer, 0);
 	}
+	up(&ac97->mutex);
 }
 
 #ifdef CONFIG_SND_DEBUG
 /* direct register write for debugging */
 static void snd_ac97_proc_regs_write(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
 {
-	ac97_t *ac97 = snd_magic_cast(ac97_t, entry->private_data, return);
+	ac97_t *ac97 = entry->private_data;
 	char line[64];
 	unsigned int reg, val;
+	down(&ac97->mutex);
 	while (!snd_info_get_line(buffer, line, sizeof(line))) {
 		if (sscanf(line, "%x %x", &reg, &val) != 2)
 			continue;
@@ -335,6 +336,7 @@
 		if (reg < 0x80 && (reg & 1) == 0 && val <= 0xffff)
 			snd_ac97_write_cache(ac97, reg, val);
 	}
+	up(&ac97->mutex);
 }
 #endif
 
@@ -351,12 +353,12 @@
 static void snd_ac97_proc_regs_read(snd_info_entry_t *entry, 
 				    snd_info_buffer_t * buffer)
 {
-	ac97_t *ac97 = snd_magic_cast(ac97_t, entry->private_data, return);
+	ac97_t *ac97 = entry->private_data;
 
+	down(&ac97->mutex);
 	if ((ac97->id & 0xffffff40) == AC97_ID_AD1881) {	// Analog Devices AD1881/85/86
 
 		int idx;
-		down(&ac97->spec.ad18xx.mutex);
 		for (idx = 0; idx < 3; idx++)
 			if (ac97->spec.ad18xx.id[idx]) {
 				/* select single codec */
@@ -366,10 +368,10 @@
 			}
 		/* select all codecs */
 		snd_ac97_update_bits(ac97, AC97_AD_SERIAL_CFG, 0x7000, 0x7000);
-		up(&ac97->spec.ad18xx.mutex);
 	} else {
 		snd_ac97_proc_regs_read_main(ac97, buffer, 0);
 	}	
+	up(&ac97->mutex);
 }
 
 void snd_ac97_proc_init(ac97_t * ac97)
diff -Nru a/sound/pci/ac97/ak4531_codec.c b/sound/pci/ac97/ak4531_codec.c
--- a/sound/pci/ac97/ak4531_codec.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/ac97/ak4531_codec.c	2004-07-27 18:28:32 -07:00
@@ -30,8 +30,6 @@
 MODULE_DESCRIPTION("Universal routines for AK4531 codec");
 MODULE_LICENSE("GPL");
 
-#define chip_t ak4531_t
-
 static void snd_ak4531_proc_init(snd_card_t * card, ak4531_t * ak4531);
 
 /*
@@ -315,14 +313,14 @@
 	if (ak4531) {
 		if (ak4531->private_free)
 			ak4531->private_free(ak4531);
-		snd_magic_kfree(ak4531);
+		kfree(ak4531);
 	}
 	return 0;
 }
 
 static int snd_ak4531_dev_free(snd_device_t *device)
 {
-	ak4531_t *ak4531 = snd_magic_cast(ak4531_t, device->device_data, return -ENXIO);
+	ak4531_t *ak4531 = device->device_data;
 	return snd_ak4531_free(ak4531);
 }
 
@@ -367,7 +365,7 @@
 	snd_assert(rak4531 != NULL, return -EINVAL);
 	*rak4531 = NULL;
 	snd_assert(card != NULL && _ak4531 != NULL, return -EINVAL);
-	ak4531 = snd_magic_kcalloc(ak4531_t, 0, GFP_KERNEL);
+	ak4531 = kcalloc(1, sizeof(*ak4531), GFP_KERNEL);
 	if (ak4531 == NULL)
 		return -ENOMEM;
 	*ak4531 = *_ak4531;
@@ -411,7 +409,7 @@
 static void snd_ak4531_proc_read(snd_info_entry_t *entry, 
 				 snd_info_buffer_t * buffer)
 {
-	ak4531_t *ak4531 = snd_magic_cast(ak4531_t, entry->private_data, return);
+	ak4531_t *ak4531 = entry->private_data;
 
 	snd_iprintf(buffer, "Asahi Kasei AK4531\n\n");
 	snd_iprintf(buffer, "Recording source   : %s\n"
diff -Nru a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c
--- a/sound/pci/ali5451/ali5451.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ali5451/ali5451.c	2004-07-27 18:28:33 -07:00
@@ -43,8 +43,7 @@
 MODULE_AUTHOR("Matt Wu <Matt_Wu@acersoftech.com.cn>");
 MODULE_DESCRIPTION("ALI M5451");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ALI,M5451,pci},{ALI,M5451}}");
+MODULE_SUPPORTED_DEVICE("{{ALI,M5451,pci},{ALI,M5451}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -55,19 +54,14 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for ALI M5451 PCI Audio.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ALI M5451 PCI Audio.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable ALI 5451 PCI Audio.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(pcm_channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_channels, "PCM Channels");
-MODULE_PARM_SYNTAX(pcm_channels, SNDRV_ENABLED ",default:32,allows:{{1,32}}");
 module_param_array(spdif, bool, boot_devs, 0444);
 MODULE_PARM_DESC(spdif, "Support SPDIF I/O");
-MODULE_PARM_SYNTAX(spdif, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 
 /*
  *  Debug part definitions
@@ -171,7 +165,6 @@
 
 typedef struct snd_stru_ali ali_t;
 typedef struct snd_ali_stru_voice snd_ali_voice_t;
-#define chip_t ali_t
 
 typedef struct snd_ali_channel_control {
 	// register data
@@ -495,7 +488,7 @@
 				unsigned short reg,
 				unsigned short val )
 {
-	ali_t *codec = snd_magic_cast(ali_t, ac97->private_data, return);
+	ali_t *codec = ac97->private_data;
 
 	snd_ali_printk("codec_write: reg=%xh data=%xh.\n", reg, val);
 	snd_ali_codec_poke(codec, 0, reg, val);
@@ -505,7 +498,7 @@
 
 static unsigned short snd_ali_codec_read(ac97_t *ac97, unsigned short reg)
 {
-	ali_t *codec = snd_magic_cast(ali_t, ac97->private_data, return -ENXIO);
+	ali_t *codec = ac97->private_data;
 
 	snd_ali_printk("codec_read reg=%xh.\n", reg);
 	return (snd_ali_codec_peek(codec, 0, reg));
@@ -1051,7 +1044,7 @@
 				   void *dev_id,
 				   struct pt_regs *regs)
 {
-	ali_t 	*codec = snd_magic_cast(ali_t, dev_id, return IRQ_NONE);
+	ali_t 	*codec = dev_id;
 
 	if (codec == NULL)
 		return IRQ_NONE;
@@ -1247,7 +1240,7 @@
 	what = whati = capture_flag = 0;
 	snd_pcm_group_for_each(pos, substream) {
 		s = snd_pcm_group_substream_entry(pos);
-		if ((ali_t *) _snd_pcm_chip(s->pcm) == codec) {
+		if ((ali_t *) snd_pcm_substream_chip(s) == codec) {
 			pvoice = (snd_ali_voice_t *) s->runtime->private_data;
 			evoice = pvoice->extra;
 			what |= 1 << (pvoice->number & 0x1f);
@@ -1720,7 +1713,7 @@
 
 static void snd_ali_pcm_free(snd_pcm_t *pcm)
 {
-	ali_t *codec = snd_magic_cast(ali_t, pcm->private_data, return);
+	ali_t *codec = pcm->private_data;
 	codec->pcm = NULL;
 }
 
@@ -1769,7 +1762,7 @@
 static int snd_ali5451_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
 	unsigned long flags;
-	ali_t *codec = snd_magic_cast(ali_t, kcontrol->private_data, -ENXIO);
+	ali_t *codec = kcontrol->private_data;
 	unsigned int enable;
 
 	enable = ucontrol->value.integer.value[0] ? 1 : 0;
@@ -1796,7 +1789,7 @@
 static int snd_ali5451_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
 	unsigned long flags;
-	ali_t *codec = snd_magic_cast(ali_t, kcontrol->private_data, -ENXIO);
+	ali_t *codec = kcontrol->private_data;
 	unsigned int change = 0, enable = 0;
 
 	enable = ucontrol->value.integer.value[0] ? 1 : 0;
@@ -1863,13 +1856,13 @@
 
 static void snd_ali_mixer_free_ac97_bus(ac97_bus_t *bus)
 {
-	ali_t *codec = snd_magic_cast(ali_t, bus->private_data, return);
+	ali_t *codec = bus->private_data;
 	codec->ac97_bus = NULL;
 }
 
 static void snd_ali_mixer_free_ac97(ac97_t *ac97)
 {
-	ali_t *codec = snd_magic_cast(ali_t, ac97->private_data, return);
+	ali_t *codec = ac97->private_data;
 	codec->ac97 = NULL;
 }
 
@@ -1907,7 +1900,7 @@
 #ifdef CONFIG_PM
 static int ali_suspend(snd_card_t *card, unsigned int state)
 {
-	ali_t *chip = snd_magic_cast(ali_t, card->pm_private_data, return -EINVAL);
+	ali_t *chip = card->pm_private_data;
 	ali_image_t *im;
 	int i, j;
 
@@ -1948,7 +1941,7 @@
 
 static int ali_resume(snd_card_t *card, unsigned int state)
 {
-	ali_t *chip = snd_magic_cast(ali_t, card->pm_private_data, return -EINVAL);
+	ali_t *chip = card->pm_private_data;
 	ali_image_t *im;
 	int i, j;
 
@@ -2001,7 +1994,7 @@
 	if (codec->image)
 		kfree(codec->image);
 #endif
-	snd_magic_kfree(codec);
+	kfree(codec);
 	return 0;
 }
 
@@ -2071,7 +2064,7 @@
 }
 static int snd_ali_dev_free(snd_device_t *device) 
 {
-	ali_t *codec=snd_magic_cast(ali_t, device->device_data, return -ENXIO);
+	ali_t *codec=device->device_data;
 	snd_ali_free(codec);
 	return 0;
 }
@@ -2106,7 +2099,7 @@
 		return -ENXIO;
 	}
 
-	if ((codec = snd_magic_kcalloc(ali_t, 0, GFP_KERNEL)) == NULL)
+	if ((codec = kcalloc(1, sizeof(*codec), GFP_KERNEL)) == NULL)
 		return -ENOMEM;
 
 	spin_lock_init(&codec->reg_lock);
diff -Nru a/sound/pci/als4000.c b/sound/pci/als4000.c
--- a/sound/pci/als4000.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/als4000.c	2004-07-27 18:28:33 -07:00
@@ -76,8 +76,7 @@
 MODULE_AUTHOR("Bart Hartgers <bart@etpmod.phys.tue.nl>");
 MODULE_DESCRIPTION("Avance Logic ALS4000");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Avance Logic,ALS4000}}");
+MODULE_SUPPORTED_DEVICE("{{Avance Logic,ALS4000}}");
 
 #if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
 #define SUPPORT_JOYSTICK 1
@@ -93,21 +92,15 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for ALS4000 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ALS4000 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable ALS4000 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_INDEX_DESC);
 #ifdef SUPPORT_JOYSTICK
 module_param_array(joystick_port, int, boot_devs, 0444);
 MODULE_PARM_DESC(joystick_port, "Joystick port address for ALS4000 soundcard. (0 = disabled)");
-MODULE_PARM_SYNTAX(joystick_port, SNDRV_ENABLED);
 #endif
 
-#define chip_t sb_t
-
 typedef struct {
 	unsigned long gcr;
 	struct resource *res_gcr;
@@ -368,7 +361,7 @@
 
 static irqreturn_t snd_als4000_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	sb_t *chip = snd_magic_cast(sb_t, dev_id, return IRQ_NONE);
+	sb_t *chip = dev_id;
 	unsigned long flags;
 	unsigned gcr_status;
 	unsigned sb_status;
@@ -506,7 +499,7 @@
 
 static void snd_als4000_pcm_free(snd_pcm_t *pcm)
 {
-	sb_t *chip = snd_magic_cast(sb_t, pcm->private_data, return);
+	sb_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
diff -Nru a/sound/pci/atiixp.c b/sound/pci/atiixp.c
--- a/sound/pci/atiixp.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/atiixp.c	2004-07-27 18:28:33 -07:00
@@ -1,5 +1,5 @@
 /*
- *   ALSA driver for ATI IXP 150/200/250 AC97 controllers
+ *   ALSA driver for ATI IXP 150/200/250/300 AC97 controllers
  *
  *	Copyright (c) 2004 Takashi Iwai <tiwai@suse.de>
  *
@@ -37,8 +37,7 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("ATI IXP AC97 controller");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ATI,IXP150/200/250/300}}");
+MODULE_SUPPORTED_DEVICE("{{ATI,IXP150/200/250/300}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -49,19 +48,14 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for ATI IXP controller.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ATI IXP controller.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable audio part of ATI IXP controller.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(ac97_clock, int, boot_devs, 0444);
 MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (default 48000Hz).");
-MODULE_PARM_SYNTAX(ac97_clock, SNDRV_ENABLED ",default:48000");
 module_param_array(spdif_aclink, bool, boot_devs, 0444);
 MODULE_PARM_DESC(spdif_aclink, "S/PDIF over AC-link.");
-MODULE_PARM_SYNTAX(spdif_aclink, SNDRV_ENABLED "," SNDRV_BOOLEAN_TRUE_DESC);
 
 
 /*
@@ -207,7 +201,6 @@
 typedef struct snd_atiixp atiixp_t;
 typedef struct snd_atiixp_dma atiixp_dma_t;
 typedef struct snd_atiixp_dma_ops atiixp_dma_ops_t;
-#define chip_t atiixp_t
 
 
 /*
@@ -491,7 +484,7 @@
 
 static unsigned short snd_atiixp_ac97_read(ac97_t *ac97, unsigned short reg)
 {
-	atiixp_t *chip = snd_magic_cast(atiixp_t, ac97->private_data, return 0xffff);
+	atiixp_t *chip = ac97->private_data;
 	unsigned short data;
 	spin_lock(&chip->ac97_lock);
 	data = snd_atiixp_codec_read(chip, ac97->num, reg);
@@ -502,7 +495,7 @@
 
 static void snd_atiixp_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val)
 {
-	atiixp_t *chip = snd_magic_cast(atiixp_t, ac97->private_data, return);
+	atiixp_t *chip = ac97->private_data;
 	spin_lock(&chip->ac97_lock);
 	snd_atiixp_codec_write(chip, ac97->num, reg, val);
 	spin_unlock(&chip->ac97_lock);
@@ -996,6 +989,7 @@
 {
 	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
+				 SNDRV_PCM_INFO_RESUME |
 				 SNDRV_PCM_INFO_MMAP_VALID),
 	.formats =		SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S32_LE,
 	.rates =		SNDRV_PCM_RATE_48000,
@@ -1308,7 +1302,7 @@
  */
 static irqreturn_t snd_atiixp_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	atiixp_t *chip = snd_magic_cast(atiixp_t, dev_id, return IRQ_NONE);
+	atiixp_t *chip = dev_id;
 	unsigned int status;
 
 	status = atiixp_read(chip, ISR);
@@ -1387,17 +1381,9 @@
 		ac97.num = i;
 		ac97.scaps = AC97_SCAP_SKIP_MODEM;
 		if ((err = snd_ac97_mixer(pbus, &ac97, &chip->ac97[i])) < 0) {
-			if (chip->codec_not_ready_bits)
-				/* codec(s) was detected but not available.
-				 * return the error
-				 */
-				return err;
-			else {
-				/* codec(s) was NOT detected, so just ignore here */
-				chip->ac97[i] = NULL; /* to be sure */
-				snd_printd("atiixp: codec %d not found\n", i);
-				continue;
-			}
+			chip->ac97[i] = NULL; /* to be sure */
+			snd_printdd("atiixp: codec %d not available for audio\n", i);
+			continue;
 		}
 		codec_count++;
 	}
@@ -1419,7 +1405,7 @@
  */
 static int snd_atiixp_suspend(snd_card_t *card, unsigned int state)
 {
-	atiixp_t *chip = snd_magic_cast(atiixp_t, card->pm_private_data, return -EINVAL);
+	atiixp_t *chip = card->pm_private_data;
 	int i;
 
 	for (i = 0; i < NUM_ATI_PCMDEVS; i++)
@@ -1440,7 +1426,7 @@
 
 static int snd_atiixp_resume(snd_card_t *card, unsigned int state)
 {
-	atiixp_t *chip = snd_magic_cast(atiixp_t, card->pm_private_data, return -EINVAL);
+	atiixp_t *chip = card->pm_private_data;
 	int i;
 
 	pci_enable_device(chip->pci);
@@ -1466,7 +1452,7 @@
 
 static void snd_atiixp_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
 {
-	atiixp_t *chip = snd_magic_cast(atiixp_t, entry->private_data, return);
+	atiixp_t *chip = entry->private_data;
 	int i;
 
 	for (i = 0; i < 256; i += 4)
@@ -1502,13 +1488,13 @@
 	}
 	if (chip->irq >= 0)
 		free_irq(chip->irq, (void *)chip);
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_atiixp_dev_free(snd_device_t *device)
 {
-	atiixp_t *chip = snd_magic_cast(atiixp_t, device->device_data, return -ENXIO);
+	atiixp_t *chip = device->device_data;
 	return snd_atiixp_free(chip);
 }
 
@@ -1528,7 +1514,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	chip = snd_magic_kcalloc(atiixp_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 
diff -Nru a/sound/pci/au88x0/au88x0.c b/sound/pci/au88x0/au88x0.c
--- a/sound/pci/au88x0/au88x0.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/au88x0/au88x0.c	2004-07-27 18:28:33 -07:00
@@ -31,23 +31,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(pcifix, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcifix, "Enable VIA-workaround for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(pcifix,
-		   SNDRV_ENABLED
-		   ",allows:{{0,Disabled},{1,Latency},{2,Bridge},{3,Both},{255,Auto}},default:4,dialog:check");
 
 MODULE_DESCRIPTION("Aureal vortex");
-MODULE_CLASSES("{sound}");
 MODULE_LICENSE("GPL");
-MODULE_DEVICES("{{Aureal Semiconductor Inc., Aureal Vortex Sound Processor}}");
+MODULE_SUPPORTED_DEVICE("{{Aureal Semiconductor Inc., Aureal Vortex Sound Processor}}");
 
 MODULE_DEVICE_TABLE(pci, snd_vortex_ids);
 
@@ -122,8 +115,7 @@
 // (see "Management of Cards and Components")
 static int snd_vortex_dev_free(snd_device_t * device)
 {
-	vortex_t *vortex = snd_magic_cast(vortex_t, device->device_data,
-					  return -ENXIO);
+	vortex_t *vortex = device->device_data;
 
 	vortex_gameport_unregister(vortex);
 	vortex_core_shutdown(vortex);
@@ -132,7 +124,7 @@
 	free_irq(vortex->irq, vortex);
 	pci_release_regions(vortex->pci_dev);
 	pci_disable_device(vortex->pci_dev);
-	snd_magic_kfree(vortex);
+	kfree(vortex);
 
 	return 0;
 }
@@ -159,7 +151,7 @@
 	}
 	pci_set_dma_mask(pci, VORTEX_DMA_MASK);
 
-	chip = snd_magic_kcalloc(vortex_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 
diff -Nru a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h
--- a/sound/pci/au88x0/au88x0.h	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/au88x0/au88x0.h	2004-07-27 18:28:33 -07:00
@@ -180,8 +180,6 @@
 	u8 rev;
 };
 
-#define chip_t vortex_t
-
 /* Functions. */
 
 /* SRC */
diff -Nru a/sound/pci/au88x0/au88x0_a3d.c b/sound/pci/au88x0/au88x0_a3d.c
--- a/sound/pci/au88x0/au88x0_a3d.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/au88x0/au88x0_a3d.c	2004-07-27 18:28:33 -07:00
@@ -567,7 +567,7 @@
 	v->xt_mode = mode;	/* this_14 */
 
 	vortex_XtalkHw_init(v);
-	vortex_XtalkHw_SetGains(v, asXtalkGainsAllChan);
+	vortex_XtalkHw_SetGains(v, vortex_asXtalkGainsAllChan);
 	switch (v->xt_mode) {
 	case XT_SPEAKER0:
 		vortex_XtalkHw_ProgramXtalkNarrow(v);
@@ -864,7 +864,7 @@
 		if ((kcontrol =
 		     snd_ctl_new1(&vortex_a3d_kcontrol, vortex)) == NULL)
 			return -ENOMEM;
-		kcontrol->private_data = &vortex->a3d[i];
+		kcontrol->private_value = (long)&(vortex->a3d[i]);
 		kcontrol->id.numid = CTRLID_HRTF;
 		kcontrol->info = snd_vortex_a3d_hrtf_info;
 		kcontrol->put = snd_vortex_a3d_hrtf_put;
@@ -876,7 +876,7 @@
 		if ((kcontrol =
 		     snd_ctl_new1(&vortex_a3d_kcontrol, vortex)) == NULL)
 			return -ENOMEM;
-		kcontrol->private_data = &vortex->a3d[i];
+		kcontrol->private_value = (long)&(vortex->a3d[i]);
 		kcontrol->id.numid = CTRLID_ITD;
 		kcontrol->info = snd_vortex_a3d_itd_info;
 		kcontrol->put = snd_vortex_a3d_itd_put;
@@ -888,7 +888,7 @@
 		if ((kcontrol =
 		     snd_ctl_new1(&vortex_a3d_kcontrol, vortex)) == NULL)
 			return -ENOMEM;
-		kcontrol->private_data = &vortex->a3d[i];
+		kcontrol->private_value = (long)&(vortex->a3d[i]);
 		kcontrol->id.numid = CTRLID_GAINS;
 		kcontrol->info = snd_vortex_a3d_ild_info;
 		kcontrol->put = snd_vortex_a3d_ild_put;
@@ -900,7 +900,7 @@
 		if ((kcontrol =
 		     snd_ctl_new1(&vortex_a3d_kcontrol, vortex)) == NULL)
 			return -ENOMEM;
-		kcontrol->private_data = &vortex->a3d[i];
+		kcontrol->private_value = (long)&(vortex->a3d[i]);
 		kcontrol->id.numid = CTRLID_FILTER;
 		kcontrol->info = snd_vortex_a3d_filter_info;
 		kcontrol->put = snd_vortex_a3d_filter_put;
diff -Nru a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c
--- a/sound/pci/au88x0/au88x0_core.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/au88x0/au88x0_core.c	2004-07-27 18:28:33 -07:00
@@ -2362,7 +2362,7 @@
 
 static irqreturn_t vortex_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	vortex_t *vortex = snd_magic_cast(vortex_t, dev_id, return IRQ_NONE);
+	vortex_t *vortex = dev_id;
 	int i, handled;
 	u32 source;
 
diff -Nru a/sound/pci/au88x0/au88x0_game.c b/sound/pci/au88x0/au88x0_game.c
--- a/sound/pci/au88x0/au88x0_game.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/au88x0/au88x0_game.c	2004-07-27 18:28:32 -07:00
@@ -96,7 +96,7 @@
 
 static int vortex_gameport_register(vortex_t * vortex)
 {
-	if ((vortex->gameport = snd_kcalloc(sizeof(struct gameport), GFP_KERNEL)) == NULL) {
+	if ((vortex->gameport = kcalloc(1, sizeof(struct gameport), GFP_KERNEL)) == NULL) {
 		return -1;
 	};
 	
diff -Nru a/sound/pci/au88x0/au88x0_mpu401.c b/sound/pci/au88x0/au88x0_mpu401.c
--- a/sound/pci/au88x0/au88x0_mpu401.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/au88x0/au88x0_mpu401.c	2004-07-27 18:28:33 -07:00
@@ -104,7 +104,7 @@
 			 ~CTRL_MIDI_PORT) & ~CTRL_MIDI_EN);
 		return temp;
 	}
-	mpu = snd_magic_cast(mpu401_t, rmidi->private_data, return -ENOMEM);
+	mpu = rmidi->private_data;
 	mpu->cport = (unsigned long)(vortex->mmio + (VORTEX_MIDI_CMD >> 2));
 #endif
 	vortex->rmidi = rmidi;
diff -Nru a/sound/pci/au88x0/au88x0_pcm.c b/sound/pci/au88x0/au88x0_pcm.c
--- a/sound/pci/au88x0/au88x0_pcm.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/au88x0/au88x0_pcm.c	2004-07-27 18:28:33 -07:00
@@ -28,7 +28,6 @@
 #include <sound/pcm_params.h>
 #include "au88x0.h"
 
-#define chip_t vortex_t
 #define VORTEX_PCM_TYPE(x) (x->name[40])
 
 /* hardware definition */
@@ -189,7 +188,7 @@
 snd_vortex_pcm_hw_params(snd_pcm_substream_t * substream,
 			 snd_pcm_hw_params_t * hw_params)
 {
-	chip_t *chip = snd_pcm_substream_chip(substream);
+	vortex_t *chip = snd_pcm_substream_chip(substream);
 	stream_t *stream = (stream_t *) (substream->runtime->private_data);
 	snd_pcm_sgbuf_t *sgbuf;
 	int err;
@@ -250,7 +249,7 @@
 /* hw_free callback */
 static int snd_vortex_pcm_hw_free(snd_pcm_substream_t * substream)
 {
-	chip_t *chip = snd_pcm_substream_chip(substream);
+	vortex_t *chip = snd_pcm_substream_chip(substream);
 	stream_t *stream = (stream_t *) (substream->runtime->private_data);
 
 	// Delete audio routes.
@@ -305,7 +304,7 @@
 /* trigger callback */
 static int snd_vortex_pcm_trigger(snd_pcm_substream_t * substream, int cmd)
 {
-	chip_t *chip = snd_pcm_substream_chip(substream);
+	vortex_t *chip = snd_pcm_substream_chip(substream);
 	stream_t *stream = (stream_t *) substream->runtime->private_data;
 	int dma = stream->dma;
 
diff -Nru a/sound/pci/au88x0/au88x0_xtalk.c b/sound/pci/au88x0/au88x0_xtalk.c
--- a/sound/pci/au88x0/au88x0_xtalk.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/au88x0/au88x0_xtalk.c	2004-07-27 18:28:33 -07:00
@@ -61,7 +61,7 @@
 };
 
 // Input gain for 4 A3D slices. One possible input pair is left zero.
-static xtalk_gains_t const asXtalkGainsAllChan = {
+xtalk_gains_t const vortex_asXtalkGainsAllChan = {
 	0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF, 0, 0x7FFF, 0x7FFF, 0x7FFF, 0x7FFF,
 	0
 	    //0x7FFF,0x7FFF,0x7FFF,0x7FFF,0x7fff,0x7FFF,0x7FFF,0x7FFF,0x7FFF,0x7fff
diff -Nru a/sound/pci/au88x0/au88x0_xtalk.h b/sound/pci/au88x0/au88x0_xtalk.h
--- a/sound/pci/au88x0/au88x0_xtalk.h	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/au88x0/au88x0_xtalk.h	2004-07-27 18:28:33 -07:00
@@ -45,7 +45,7 @@
 typedef short xtalk_coefs_t[5][5];
 typedef short xtalk_state_t[5][4];
 
-extern xtalk_gains_t const asXtalkGainsAllChan;
+extern xtalk_gains_t const vortex_asXtalkGainsAllChan;
 
 static void vortex_XtalkHw_SetGains(vortex_t * vortex,
 				    xtalk_gains_t const gains);
diff -Nru a/sound/pci/azt3328.c b/sound/pci/azt3328.c
--- a/sound/pci/azt3328.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/azt3328.c	2004-07-27 18:28:33 -07:00
@@ -111,8 +111,7 @@
 MODULE_AUTHOR("Andreas Mohr <hw7oshyuv3001@sneakemail.com>");
 MODULE_DESCRIPTION("Aztech AZF3328 (PCI168)");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Aztech,AZF3328}}");
+MODULE_SUPPORTED_DEVICE("{{Aztech,AZF3328}}");
 
 #if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
 #define SUPPORT_JOYSTICK 1
@@ -170,21 +169,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for AZF3328 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for AZF3328 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable AZF3328 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_INDEX_DESC);
 #ifdef SUPPORT_JOYSTICK
 module_param_array(joystick, bool, boot_devs, 0444);
 MODULE_PARM_DESC(joystick, "Enable joystick for AZF3328 soundcard.");
-MODULE_PARM_SYNTAX(joystick, SNDRV_BOOLEAN_FALSE_DESC);
 #endif
 
 typedef struct _snd_azf3328 azf3328_t;
-#define chip_t azf3328_t
 
 struct _snd_azf3328 {
 	int irq;
@@ -1032,7 +1026,7 @@
 
 static irqreturn_t snd_azf3328_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	azf3328_t *chip = snd_magic_cast(azf3328_t, dev_id, return IRQ_NONE);
+	azf3328_t *chip = dev_id;
 	unsigned int status, which;
 	static unsigned long count;
 
@@ -1232,7 +1226,7 @@
 
 static void snd_azf3328_pcm_free(snd_pcm_t *pcm)
 {
-	azf3328_t *chip = snd_magic_cast(azf3328_t, pcm->private_data, return);
+	azf3328_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1310,13 +1304,13 @@
         if (chip->irq >= 0)
 		free_irq(chip->irq, (void *)chip);
 
-        snd_magic_kfree(chip);
+        kfree(chip);
         return 0;
 }
 
 static int snd_azf3328_dev_free(snd_device_t *device)
 {
-	azf3328_t *chip = snd_magic_cast(azf3328_t, device->device_data, return -ENXIO);
+	azf3328_t *chip = device->device_data;
 	return snd_azf3328_free(chip);
 }
 
@@ -1358,7 +1352,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	chip = snd_magic_kcalloc(azf3328_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
diff -Nru a/sound/pci/bt87x.c b/sound/pci/bt87x.c
--- a/sound/pci/bt87x.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/bt87x.c	2004-07-27 18:28:33 -07:00
@@ -38,8 +38,7 @@
 MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
 MODULE_DESCRIPTION("Brooktree Bt87x audio driver");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Brooktree,Bt878},"
+MODULE_SUPPORTED_DEVICE("{{Brooktree,Bt878},"
 		"{Brooktree,Bt879}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
@@ -50,16 +49,12 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Bt87x soundcard");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Bt87x soundcard");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Bt87x soundcard");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(digital_rate, int, boot_devs, 0444);
 MODULE_PARM_DESC(digital_rate, "Digital input rate for Bt87x soundcard");
-MODULE_PARM_SYNTAX(digital_rate, SNDRV_ENABLED);
 
 
 #ifndef PCI_VENDOR_ID_BROOKTREE
@@ -152,7 +147,6 @@
 /* SYNC, one WRITE per line, one extra WRITE per page boundary, SYNC, JUMP */
 #define MAX_RISC_SIZE ((1 + 255 + (PAGE_ALIGN(255 * 4092) / PAGE_SIZE - 1) + 1 + 1) * 8)
 
-#define chip_t bt87x_t
 typedef struct snd_bt87x bt87x_t;
 struct snd_bt87x {
 	snd_card_t *card;
@@ -251,7 +245,7 @@
 
 static irqreturn_t snd_bt87x_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	bt87x_t *chip = snd_magic_cast(bt87x_t, dev_id, return IRQ_NONE);
+	bt87x_t *chip = dev_id;
 	unsigned int status;
 
 	status = snd_bt87x_readl(chip, REG_INT_STAT);
@@ -661,13 +655,13 @@
 	}
 	if (chip->irq >= 0)
 		free_irq(chip->irq, chip);
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_bt87x_dev_free(snd_device_t *device)
 {
-	bt87x_t *chip = snd_magic_cast(bt87x_t, device->device_data, return -ENXIO);
+	bt87x_t *chip = device->device_data;
 	return snd_bt87x_free(chip);
 }
 
@@ -705,7 +699,7 @@
 	if (err < 0)
 		return err;
 
-	chip = snd_magic_kcalloc(bt87x_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (!chip)
 		return -ENOMEM;
 	chip->card = card;
diff -Nru a/sound/pci/cmipci.c b/sound/pci/cmipci.c
--- a/sound/pci/cmipci.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/cmipci.c	2004-07-27 18:28:33 -07:00
@@ -43,8 +43,7 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("C-Media CMI8x38 PCI");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{C-Media,CMI8738},"
+MODULE_SUPPORTED_DEVICE("{{C-Media,CMI8738},"
 		"{C-Media,CMI8738B},"
 		"{C-Media,CMI8338A},"
 		"{C-Media,CMI8338B}}");
@@ -66,25 +65,19 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for C-Media PCI soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for C-Media PCI soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable C-Media PCI soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_ENABLED ",allows:{{0},{0x330},{0x320},{0x310},{0x300}},dialog:list");
 module_param_array(fm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(fm_port, "FM port.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_ENABLED ",allows:{{0},{0x388},{0x3c8},{0x3e0},{0x3e8}},dialog:list");
 module_param_array(soft_ac3, bool, boot_devs, 0444);
 MODULE_PARM_DESC(soft_ac3, "Sofware-conversion of raw SPDIF packets (model 033 only).");
 #ifdef SUPPORT_JOYSTICK
 module_param_array(joystick_port, int, boot_devs, 0444);
 MODULE_PARM_DESC(joystick_port, "Joystick port address.");
-MODULE_PARM_SYNTAX(joystick_port, SNDRV_ENABLED ",allows:{{0},{1},{0x200},{0x201}},dialog:list");
 #endif
 
 #ifndef PCI_DEVICE_ID_CMEDIA_CM8738
@@ -405,8 +398,6 @@
 typedef struct snd_stru_cmipci cmipci_t;
 typedef struct snd_stru_cmipci_pcm cmipci_pcm_t;
 
-#define chip_t cmipci_t
-
 struct snd_stru_cmipci_pcm {
 	snd_pcm_substream_t *substream;
 	int running;		/* dac/adc running? */
@@ -1072,30 +1063,36 @@
  */
 
 /* save mixer setting and mute for AC3 playback */
-static void save_mixer_state(cmipci_t *cm)
+static int save_mixer_state(cmipci_t *cm)
 {
 	if (! cm->mixer_insensitive) {
+		snd_ctl_elem_value_t *val;
 		unsigned int i;
+
+		val = kmalloc(sizeof(*val), GFP_ATOMIC);
+		if (!val)
+			return -ENOMEM;
 		for (i = 0; i < CM_SAVED_MIXERS; i++) {
 			snd_kcontrol_t *ctl = cm->mixer_res_ctl[i];
 			if (ctl) {
-				snd_ctl_elem_value_t val;
 				int event;
-				memset(&val, 0, sizeof(val));
-				ctl->get(ctl, &val);
-				cm->mixer_res_status[i] = val.value.integer.value[0];
-				val.value.integer.value[0] = cm_saved_mixer[i].toggle_on;
+				memset(val, 0, sizeof(*val));
+				ctl->get(ctl, val);
+				cm->mixer_res_status[i] = val->value.integer.value[0];
+				val->value.integer.value[0] = cm_saved_mixer[i].toggle_on;
 				event = SNDRV_CTL_EVENT_MASK_INFO;
-				if (cm->mixer_res_status[i] != val.value.integer.value[0]) {
-					ctl->put(ctl, &val); /* toggle */
+				if (cm->mixer_res_status[i] != val->value.integer.value[0]) {
+					ctl->put(ctl, val); /* toggle */
 					event |= SNDRV_CTL_EVENT_MASK_VALUE;
 				}
 				ctl->vd[0].access |= SNDRV_CTL_ELEM_ACCESS_INACTIVE;
 				snd_ctl_notify(cm->card, event, &ctl->id);
 			}
 		}
+		kfree(val);
 		cm->mixer_insensitive = 1;
 	}
+	return 0;
 }
 
 
@@ -1103,27 +1100,32 @@
 static void restore_mixer_state(cmipci_t *cm)
 {
 	if (cm->mixer_insensitive) {
+		snd_ctl_elem_value_t *val;
 		unsigned int i;
+
+		val = kmalloc(sizeof(*val), GFP_KERNEL);
+		if (!val)
+			return;
 		cm->mixer_insensitive = 0; /* at first clear this;
 					      otherwise the changes will be ignored */
 		for (i = 0; i < CM_SAVED_MIXERS; i++) {
 			snd_kcontrol_t *ctl = cm->mixer_res_ctl[i];
 			if (ctl) {
-				snd_ctl_elem_value_t val;
 				int event;
 
-				memset(&val, 0, sizeof(val));
+				memset(val, 0, sizeof(*val));
 				ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE;
-				ctl->get(ctl, &val);
+				ctl->get(ctl, val);
 				event = SNDRV_CTL_EVENT_MASK_INFO;
-				if (val.value.integer.value[0] != cm->mixer_res_status[i]) {
-					val.value.integer.value[0] = cm->mixer_res_status[i];
-					ctl->put(ctl, &val);
+				if (val->value.integer.value[0] != cm->mixer_res_status[i]) {
+					val->value.integer.value[0] = cm->mixer_res_status[i];
+					ctl->put(ctl, val);
 					event |= SNDRV_CTL_EVENT_MASK_VALUE;
 				}
 				snd_ctl_notify(cm->card, event, &ctl->id);
 			}
 		}
+		kfree(val);
 	}
 }
 
@@ -1175,15 +1177,16 @@
 	}
 }
 
-static void setup_spdif_playback(cmipci_t *cm, snd_pcm_substream_t *subs, int up, int do_ac3)
+static int setup_spdif_playback(cmipci_t *cm, snd_pcm_substream_t *subs, int up, int do_ac3)
 {
-	int rate;
+	int rate, err;
 	unsigned long flags;
 
 	rate = subs->runtime->rate;
 
 	if (up && do_ac3)
-		save_mixer_state(cm);
+		if ((err = save_mixer_state(cm)) < 0)
+			return err;
 
 	spin_lock_irqsave(&cm->reg_lock, flags);
 	cm->spdif_playback_avail = up;
@@ -1208,6 +1211,7 @@
 		setup_ac3(cm, subs, 0, 0);
 	}
 	spin_unlock_irqrestore(&cm->reg_lock, flags);
+	return 0;
 }
 
 
@@ -1220,13 +1224,15 @@
 {
 	cmipci_t *cm = snd_pcm_substream_chip(substream);
 	int rate = substream->runtime->rate;
-	int do_spdif, do_ac3 = 0;
+	int err, do_spdif, do_ac3 = 0;
+
 	do_spdif = ((rate == 44100 || rate == 48000) &&
 		    substream->runtime->format == SNDRV_PCM_FORMAT_S16_LE &&
 		    substream->runtime->channels == 2);
 	if (do_spdif && cm->can_ac3_hw) 
 		do_ac3 = cm->dig_pcm_status & IEC958_AES0_NONAUDIO;
-	setup_spdif_playback(cm, substream, do_spdif, do_ac3);
+	if ((err = setup_spdif_playback(cm, substream, do_spdif, do_ac3)) < 0)
+		return err;
 	return snd_cmipci_pcm_prepare(cm, &cm->channel[CM_CH_PLAY], substream);
 }
 
@@ -1234,12 +1240,14 @@
 static int snd_cmipci_playback_spdif_prepare(snd_pcm_substream_t *substream)
 {
 	cmipci_t *cm = snd_pcm_substream_chip(substream);
-	int do_ac3;
+	int err, do_ac3;
+
 	if (cm->can_ac3_hw) 
 		do_ac3 = cm->dig_pcm_status & IEC958_AES0_NONAUDIO;
 	else
 		do_ac3 = 1; /* doesn't matter */
-	setup_spdif_playback(cm, substream, 1, do_ac3);
+	if ((err = setup_spdif_playback(cm, substream, 1, do_ac3)) < 0)
+		return err;
 	return snd_cmipci_pcm_prepare(cm, &cm->channel[CM_CH_PLAY], substream);
 }
 
@@ -1289,7 +1297,7 @@
  */
 static irqreturn_t snd_cmipci_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	cmipci_t *cm = snd_magic_cast(cmipci_t, dev_id, return IRQ_NONE);
+	cmipci_t *cm = dev_id;
 	unsigned int status, mask = 0;
 	
 	/* fastpath out, to ease interrupt sharing */
@@ -2446,7 +2454,7 @@
 static void snd_cmipci_proc_read(snd_info_entry_t *entry, 
 				 snd_info_buffer_t *buffer)
 {
-	cmipci_t *cm = snd_magic_cast(cmipci_t, entry->private_data, return);
+	cmipci_t *cm = entry->private_data;
 	int i;
 	
 	snd_iprintf(buffer, "%s\n\n", cm->card->longname);
@@ -2570,13 +2578,13 @@
 		release_resource(cm->res_iobase);
 		kfree_nocheck(cm->res_iobase);
 	}
-	snd_magic_kfree(cm);
+	kfree(cm);
 	return 0;
 }
 
 static int snd_cmipci_dev_free(snd_device_t *device)
 {
-	cmipci_t *cm = snd_magic_cast(cmipci_t, device->device_data, return -ENXIO);
+	cmipci_t *cm = device->device_data;
 	return snd_cmipci_free(cm);
 }
 
@@ -2598,7 +2606,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	cm = snd_magic_kcalloc(cmipci_t, 0, GFP_KERNEL);
+	cm = kcalloc(1, sizeof(*cm), GFP_KERNEL);
 	if (cm == NULL)
 		return -ENOMEM;
 
@@ -2776,12 +2784,12 @@
 			int i;
 			for (i = 0; ports[i]; i++) {
 				joystick_port[dev] = ports[i];
-				cm->res_joystick = request_region(ports[i], 8, "CMIPCI gameport");
+				cm->res_joystick = request_region(ports[i], 1, "CMIPCI gameport");
 				if (cm->res_joystick)
 					break;
 			}
 		} else {
-			cm->res_joystick = request_region(joystick_port[dev], 8, "CMIPCI gameport");
+			cm->res_joystick = request_region(joystick_port[dev], 1, "CMIPCI gameport");
 		}
 	}
 	if (cm->res_joystick) {
diff -Nru a/sound/pci/cs4281.c b/sound/pci/cs4281.c
--- a/sound/pci/cs4281.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/cs4281.c	2004-07-27 18:28:33 -07:00
@@ -40,8 +40,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Cirrus Logic CS4281");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Cirrus Logic,CS4281}}");
+MODULE_SUPPORTED_DEVICE("{{Cirrus Logic,CS4281}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -51,16 +50,12 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for CS4281 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for CS4281 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable CS4281 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(dual_codec, bool, boot_devs, 0444);
 MODULE_PARM_DESC(dual_codec, "Secondary Codec ID (0 = disabled).");
-MODULE_PARM_SYNTAX(dual_codec, SNDRV_ENABLED ",allows:{{0,3}}");
 
 /*
  *
@@ -441,8 +436,6 @@
  *
  */
 
-#define chip_t cs4281_t
-
 typedef struct snd_cs4281 cs4281_t;
 typedef struct snd_cs4281_dma cs4281_dma_t;
 
@@ -575,7 +568,7 @@
 	 *  4. Read ACCTL = 460h, DCV should be reset by now and 460h = 07h
 	 *  5. if DCV not cleared, break and return error
 	 */
-	cs4281_t *chip = snd_magic_cast(cs4281_t, ac97->private_data, return);
+	cs4281_t *chip = ac97->private_data;
 	int count;
 
 	/*
@@ -613,7 +606,7 @@
 static unsigned short snd_cs4281_ac97_read(ac97_t *ac97,
 					   unsigned short reg)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, ac97->private_data, return -ENXIO);
+	cs4281_t *chip = ac97->private_data;
 	int count;
 	unsigned short result;
 	// FIXME: volatile is necessary in the following due to a bug of
@@ -1015,7 +1008,7 @@
 
 static void snd_cs4281_pcm_free(snd_pcm_t *pcm)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, pcm->private_data, return);
+	cs4281_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1124,13 +1117,13 @@
 
 static void snd_cs4281_mixer_free_ac97_bus(ac97_bus_t *bus)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, bus->private_data, return);
+	cs4281_t *chip = bus->private_data;
 	chip->ac97_bus = NULL;
 }
 
 static void snd_cs4281_mixer_free_ac97(ac97_t *ac97)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, ac97->private_data, return);
+	cs4281_t *chip = ac97->private_data;
 	if (ac97->num)
 		chip->ac97_secondary = NULL;
 	else
@@ -1177,7 +1170,7 @@
 static void snd_cs4281_proc_read(snd_info_entry_t *entry, 
 				  snd_info_buffer_t * buffer)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, entry->private_data, return);
+	cs4281_t *chip = entry->private_data;
 
 	snd_iprintf(buffer, "Cirrus Logic CS4281\n\n");
 	snd_iprintf(buffer, "Spurious half IRQs   : %u\n", chip->spurious_dhtc_irq);
@@ -1188,7 +1181,7 @@
 				struct file *file, char __user *buf, long count)
 {
 	long size;
-	cs4281_t *chip = snd_magic_cast(cs4281_t, entry->private_data, return -ENXIO);
+	cs4281_t *chip = entry->private_data;
 	
 	size = count;
 	if (file->f_pos + size > CS4281_BA0_SIZE)
@@ -1205,7 +1198,7 @@
 				struct file *file, char __user *buf, long count)
 {
 	long size;
-	cs4281_t *chip = snd_magic_cast(cs4281_t, entry->private_data, return -ENXIO);
+	cs4281_t *chip = entry->private_data;
 	
 	size = count;
 	if (file->f_pos + size > CS4281_BA1_SIZE)
@@ -1262,7 +1255,7 @@
 	cs4281_gameport_t *gp = (cs4281_gameport_t *)gameport;
 	cs4281_t *chip;
 	snd_assert(gp, return);
-	chip = snd_magic_cast(cs4281_t, gp->chip, return);
+	chip = gp->chip;
 	snd_cs4281_pokeBA0(chip, BA0_JSPT, 0xff);
 }
 
@@ -1271,7 +1264,7 @@
 	cs4281_gameport_t *gp = (cs4281_gameport_t *)gameport;
 	cs4281_t *chip;
 	snd_assert(gp, return 0);
-	chip = snd_magic_cast(cs4281_t, gp->chip, return 0);
+	chip = gp->chip;
 	return snd_cs4281_peekBA0(chip, BA0_JSPT);
 }
 
@@ -1283,7 +1276,7 @@
 	unsigned js1, js2, jst;
 	
 	snd_assert(gp, return 0);
-	chip = snd_magic_cast(cs4281_t, gp->chip, return 0);
+	chip = gp->chip;
 
 	js1 = snd_cs4281_peekBA0(chip, BA0_JSC1);
 	js2 = snd_cs4281_peekBA0(chip, BA0_JSC2);
@@ -1384,13 +1377,13 @@
 	if (chip->irq >= 0)
 		free_irq(chip->irq, (void *)chip);
 
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_cs4281_dev_free(snd_device_t *device)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, device->device_data, return -ENXIO);
+	cs4281_t *chip = device->device_data;
 	return snd_cs4281_free(chip);
 }
 
@@ -1415,7 +1408,7 @@
 	*rchip = NULL;
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
-	chip = snd_magic_kcalloc(cs4281_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
@@ -1714,7 +1707,7 @@
 static int snd_cs4281_midi_input_open(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	cs4281_t *chip = snd_magic_cast(cs4281_t, substream->rmidi->private_data, return -ENXIO);
+	cs4281_t *chip = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
  	chip->midcr |= BA0_MIDCR_RXE;
@@ -1731,7 +1724,7 @@
 static int snd_cs4281_midi_input_close(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	cs4281_t *chip = snd_magic_cast(cs4281_t, substream->rmidi->private_data, return -ENXIO);
+	cs4281_t *chip = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
 	chip->midcr &= ~(BA0_MIDCR_RXE | BA0_MIDCR_RIE);
@@ -1749,7 +1742,7 @@
 static int snd_cs4281_midi_output_open(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	cs4281_t *chip = snd_magic_cast(cs4281_t, substream->rmidi->private_data, return -ENXIO);
+	cs4281_t *chip = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
 	chip->uartm |= CS4281_MODE_OUTPUT;
@@ -1767,7 +1760,7 @@
 static int snd_cs4281_midi_output_close(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	cs4281_t *chip = snd_magic_cast(cs4281_t, substream->rmidi->private_data, return -ENXIO);
+	cs4281_t *chip = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
 	chip->midcr &= ~(BA0_MIDCR_TXE | BA0_MIDCR_TIE);
@@ -1785,7 +1778,7 @@
 static void snd_cs4281_midi_input_trigger(snd_rawmidi_substream_t * substream, int up)
 {
 	unsigned long flags;
-	cs4281_t *chip = snd_magic_cast(cs4281_t, substream->rmidi->private_data, return);
+	cs4281_t *chip = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
 	if (up) {
@@ -1805,7 +1798,7 @@
 static void snd_cs4281_midi_output_trigger(snd_rawmidi_substream_t * substream, int up)
 {
 	unsigned long flags;
-	cs4281_t *chip = snd_magic_cast(cs4281_t, substream->rmidi->private_data, return);
+	cs4281_t *chip = substream->rmidi->private_data;
 	unsigned char byte;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -1872,7 +1865,7 @@
 
 static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, dev_id, return IRQ_NONE);
+	cs4281_t *chip = dev_id;
 	unsigned int status, dma, val;
 	cs4281_dma_t *cdma;
 
@@ -2040,7 +2033,7 @@
 
 static int cs4281_suspend(snd_card_t *card, unsigned int state)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, card->pm_private_data, return -EINVAL);
+	cs4281_t *chip = card->pm_private_data;
 	u32 ulCLK;
 	unsigned int i;
 
@@ -2085,7 +2078,7 @@
 
 static int cs4281_resume(snd_card_t *card, unsigned int state)
 {
-	cs4281_t *chip = snd_magic_cast(cs4281_t, card->pm_private_data, return -EINVAL);
+	cs4281_t *chip = card->pm_private_data;
 	unsigned int i;
 	u32 ulCLK;
 
diff -Nru a/sound/pci/cs46xx/cs46xx.c b/sound/pci/cs46xx/cs46xx.c
--- a/sound/pci/cs46xx/cs46xx.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/cs46xx/cs46xx.c	2004-07-27 18:28:33 -07:00
@@ -37,8 +37,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Cirrus Logic Sound Fusion CS46XX");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Cirrus Logic,Sound Fusion (CS4280)},"
+MODULE_SUPPORTED_DEVICE("{{Cirrus Logic,Sound Fusion (CS4280)},"
 		"{Cirrus Logic,Sound Fusion (CS4610)},"
 		"{Cirrus Logic,Sound Fusion (CS4612)},"
 		"{Cirrus Logic,Sound Fusion (CS4615)},"
@@ -56,22 +55,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for the CS46xx soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for the CS46xx soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable CS46xx soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(external_amp, bool, boot_devs, 0444);
 MODULE_PARM_DESC(external_amp, "Force to enable external amplifer.");
-MODULE_PARM_SYNTAX(external_amp, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 module_param_array(thinkpad, bool, boot_devs, 0444);
 MODULE_PARM_DESC(thinkpad, "Force to enable Thinkpad's CLKRUN control.");
-MODULE_PARM_SYNTAX(thinkpad, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 module_param_array(mmap_valid, bool, boot_devs, 0444);
 MODULE_PARM_DESC(mmap_valid, "Support OSS mmap.");
-MODULE_PARM_SYNTAX(mmap_valid, SNDRV_ENABLED "," SNDRV_BOOLEAN_TRUE_DESC);
 
 static struct pci_device_id snd_cs46xx_ids[] = {
         { 0x1013, 0x6001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },   /* CS4280 */
diff -Nru a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
--- a/sound/pci/cs46xx/cs46xx_lib.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/cs46xx/cs46xx_lib.c	2004-07-27 18:28:32 -07:00
@@ -190,7 +190,7 @@
 static unsigned short snd_cs46xx_ac97_read(ac97_t * ac97,
 					    unsigned short reg)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, ac97->private_data, return -ENXIO);
+	cs46xx_t *chip = ac97->private_data;
 	unsigned short val;
 	int codec_index = -1;
 
@@ -281,7 +281,7 @@
 				   unsigned short reg,
 				   unsigned short val)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, ac97->private_data, return);
+	cs46xx_t *chip = ac97->private_data;
 	int codec_index = -1;
 
 	/* UGGLY: nr_ac97_codecs == 0 primery codec detection is in progress */
@@ -688,84 +688,35 @@
  *  PCM part
  */
 
+static void snd_cs46xx_pb_trans_copy(snd_pcm_substream_t *substream,
+				     snd_pcm_indirect_t *rec, size_t bytes)
+{
+	snd_pcm_runtime_t *runtime = substream->runtime;
+	cs46xx_pcm_t * cpcm = runtime->private_data;
+	memcpy(cpcm->hw_buf.area + rec->hw_data, runtime->dma_area + rec->sw_data, bytes);
+}
+
 static int snd_cs46xx_playback_transfer(snd_pcm_substream_t *substream)
 {
-	/* cs46xx_t *chip = snd_pcm_substream_chip(substream); */
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	cs46xx_pcm_t * cpcm = snd_magic_cast(cs46xx_pcm_t, runtime->private_data, return -ENXIO);
-	snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
-	snd_pcm_sframes_t diff = appl_ptr - cpcm->appl_ptr;
-	int buffer_size = runtime->period_size * CS46XX_FRAGS << cpcm->shift;
-
-	if (diff) {
-		if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
-			diff += runtime->boundary;
-		cpcm->sw_ready += diff * (1 << cpcm->shift);
-		cpcm->appl_ptr = appl_ptr;
-	}
-	while (cpcm->hw_ready < buffer_size && 
-	       cpcm->sw_ready > 0) {
-		size_t hw_to_end = buffer_size - cpcm->hw_data;
-		size_t sw_to_end = cpcm->sw_bufsize - cpcm->sw_data;
-		size_t bytes = buffer_size - cpcm->hw_ready;
-		if (cpcm->sw_ready < (int)bytes)
-			bytes = cpcm->sw_ready;
-		if (hw_to_end < bytes)
-			bytes = hw_to_end;
-		if (sw_to_end < bytes)
-			bytes = sw_to_end;
-		memcpy(cpcm->hw_buf.area + cpcm->hw_data,
-		       runtime->dma_area + cpcm->sw_data,
-		       bytes);
-		cpcm->hw_data += bytes;
-		if ((int)cpcm->hw_data == buffer_size)
-			cpcm->hw_data = 0;
-		cpcm->sw_data += bytes;
-		if (cpcm->sw_data == cpcm->sw_bufsize)
-			cpcm->sw_data = 0;
-		cpcm->hw_ready += bytes;
-		cpcm->sw_ready -= bytes;
-	}
+	cs46xx_pcm_t * cpcm = runtime->private_data;
+	snd_pcm_indirect_playback_transfer(substream, &cpcm->pcm_rec, snd_cs46xx_pb_trans_copy);
 	return 0;
 }
 
-static int snd_cs46xx_capture_transfer(snd_pcm_substream_t *substream)
+static void snd_cs46xx_cp_trans_copy(snd_pcm_substream_t *substream,
+				     snd_pcm_indirect_t *rec, size_t bytes)
 {
 	cs46xx_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
-	snd_pcm_sframes_t diff = appl_ptr - chip->capt.appl_ptr;
-	int buffer_size = runtime->period_size * CS46XX_FRAGS << chip->capt.shift;
-
-	if (diff) {
-		if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
-			diff += runtime->boundary;
-		chip->capt.sw_ready -= diff * (1 << chip->capt.shift);
-		chip->capt.appl_ptr = appl_ptr;
-	}
-	while (chip->capt.hw_ready > 0 && 
-	       chip->capt.sw_ready < (int)chip->capt.sw_bufsize) {
-		size_t hw_to_end = buffer_size - chip->capt.hw_data;
-		size_t sw_to_end = chip->capt.sw_bufsize - chip->capt.sw_data;
-		size_t bytes = chip->capt.sw_bufsize - chip->capt.sw_ready;
-		if (chip->capt.hw_ready < (int)bytes)
-			bytes = chip->capt.hw_ready;
-		if (hw_to_end < bytes)
-			bytes = hw_to_end;
-		if (sw_to_end < bytes)
-			bytes = sw_to_end;
-		memcpy(runtime->dma_area + chip->capt.sw_data,
-		       chip->capt.hw_buf.area + chip->capt.hw_data,
-		       bytes);
-		chip->capt.hw_data += bytes;
-		if ((int)chip->capt.hw_data == buffer_size)
-			chip->capt.hw_data = 0;
-		chip->capt.sw_data += bytes;
-		if (chip->capt.sw_data == chip->capt.sw_bufsize)
-			chip->capt.sw_data = 0;
-		chip->capt.hw_ready -= bytes;
-		chip->capt.sw_ready += bytes;
-	}
+	memcpy(runtime->dma_area + rec->sw_data,
+	       chip->capt.hw_buf.area + rec->hw_data, bytes);
+}
+
+static int snd_cs46xx_capture_transfer(snd_pcm_substream_t *substream)
+{
+	cs46xx_t *chip = snd_pcm_substream_chip(substream);
+	snd_pcm_indirect_capture_transfer(substream, &chip->capt.pcm_rec, snd_cs46xx_cp_trans_copy);
 	return 0;
 }
 
@@ -773,7 +724,7 @@
 {
 	cs46xx_t *chip = snd_pcm_substream_chip(substream);
 	size_t ptr;
-	cs46xx_pcm_t *cpcm = snd_magic_cast(cs46xx_pcm_t, substream->runtime->private_data, return -ENXIO);
+	cs46xx_pcm_t *cpcm = substream->runtime->private_data;
 	snd_assert (cpcm->pcm_channel,return -ENXIO);
 
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
@@ -789,9 +740,7 @@
 {
 	cs46xx_t *chip = snd_pcm_substream_chip(substream);
 	size_t ptr;
-	cs46xx_pcm_t *cpcm = snd_magic_cast(cs46xx_pcm_t, substream->runtime->private_data, return -ENXIO);
-	ssize_t bytes;
-	int buffer_size = substream->runtime->period_size * CS46XX_FRAGS << cpcm->shift;
+	cs46xx_pcm_t *cpcm = substream->runtime->private_data;
 
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 	snd_assert (cpcm->pcm_channel,return -ENXIO);
@@ -800,18 +749,7 @@
 	ptr = snd_cs46xx_peek(chip, BA1_PBA);
 #endif
 	ptr -= cpcm->hw_buf.addr;
-
-	bytes = ptr - cpcm->hw_io;
-
-	if (bytes < 0)
-		bytes += buffer_size;
-	cpcm->hw_io = ptr;
-	cpcm->hw_ready -= bytes;
-	cpcm->sw_io += bytes;
-	if (cpcm->sw_io >= cpcm->sw_bufsize)
-		cpcm->sw_io -= cpcm->sw_bufsize;
-	snd_cs46xx_playback_transfer(substream);
-	return cpcm->sw_io >> cpcm->shift;
+	return snd_pcm_indirect_playback_pointer(substream, &cpcm->pcm_rec, ptr);
 }
 
 static snd_pcm_uframes_t snd_cs46xx_capture_direct_pointer(snd_pcm_substream_t * substream)
@@ -825,18 +763,7 @@
 {
 	cs46xx_t *chip = snd_pcm_substream_chip(substream);
 	size_t ptr = snd_cs46xx_peek(chip, BA1_CBA) - chip->capt.hw_buf.addr;
-	ssize_t bytes = ptr - chip->capt.hw_io;
-	int buffer_size = substream->runtime->period_size * CS46XX_FRAGS << chip->capt.shift;
-
-	if (bytes < 0)
-		bytes += buffer_size;
-	chip->capt.hw_io = ptr;
-	chip->capt.hw_ready += bytes;
-	chip->capt.sw_io += bytes;
-	if (chip->capt.sw_io >= chip->capt.sw_bufsize)
-		chip->capt.sw_io -= chip->capt.sw_bufsize;
-	snd_cs46xx_capture_transfer(substream);
-	return chip->capt.sw_io >> chip->capt.shift;
+	return snd_pcm_indirect_capture_pointer(substream, &chip->capt.pcm_rec, ptr);
 }
 
 static int snd_cs46xx_playback_trigger(snd_pcm_substream_t * substream,
@@ -847,7 +774,7 @@
 	int result = 0;
 
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
-	cs46xx_pcm_t *cpcm = snd_magic_cast(cs46xx_pcm_t, substream->runtime->private_data, return -ENXIO);
+	cs46xx_pcm_t *cpcm = substream->runtime->private_data;
 #else
 	spin_lock(&chip->reg_lock);
 #endif
@@ -987,7 +914,7 @@
 	int sample_rate = params_rate(hw_params);
 	int period_size = params_period_bytes(hw_params);
 #endif
-	cpcm = snd_magic_cast(cs46xx_pcm_t, runtime->private_data, return -ENXIO);
+	cpcm = runtime->private_data;
 
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 	snd_assert (sample_rate != 0, return -ENXIO);
@@ -1084,7 +1011,7 @@
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	cs46xx_pcm_t *cpcm;
 
-	cpcm = snd_magic_cast(cs46xx_pcm_t, runtime->private_data, return -ENXIO);
+	cpcm = runtime->private_data;
 
 	/* if play_back open fails, then this function
 	   is called and cpcm can actually be NULL here */
@@ -1108,7 +1035,7 @@
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	cs46xx_pcm_t *cpcm;
 
-	cpcm = snd_magic_cast(cs46xx_pcm_t, runtime->private_data, return -ENXIO);
+	cpcm = runtime->private_data;
 
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
     snd_assert (cpcm->pcm_channel != NULL, return -ENXIO);
@@ -1143,10 +1070,9 @@
 			pfie |= 0x00004000;
 	}
 	
-	cpcm->sw_bufsize = snd_pcm_lib_buffer_bytes(substream);
-	cpcm->sw_data = cpcm->sw_io = cpcm->sw_ready = 0;
-	cpcm->hw_data = cpcm->hw_io = cpcm->hw_ready = 0;
-	cpcm->appl_ptr = 0;
+	memset(&cpcm->pcm_rec, 0, sizeof(cpcm->pcm_rec));
+	cpcm->pcm_rec.sw_buffer_size = snd_pcm_lib_buffer_bytes(substream);
+	cpcm->pcm_rec.hw_buffer_size = runtime->period_size * CS46XX_FRAGS << cpcm->shift;
 
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 
@@ -1223,10 +1149,9 @@
 
 	snd_cs46xx_poke(chip, BA1_CBA, chip->capt.hw_buf.addr);
 	chip->capt.shift = 2;
-	chip->capt.sw_bufsize = snd_pcm_lib_buffer_bytes(substream);
-	chip->capt.sw_data = chip->capt.sw_io = chip->capt.sw_ready = 0;
-	chip->capt.hw_data = chip->capt.hw_io = chip->capt.hw_ready = 0;
-	chip->capt.appl_ptr = 0;
+	memset(&chip->capt.pcm_rec, 0, sizeof(chip->capt.pcm_rec));
+	chip->capt.pcm_rec.sw_buffer_size = snd_pcm_lib_buffer_bytes(substream);
+	chip->capt.pcm_rec.hw_buffer_size = runtime->period_size * CS46XX_FRAGS << 2;
 	snd_cs46xx_set_capture_sample_rate(chip, runtime->rate);
 
 	return 0;
@@ -1234,7 +1159,7 @@
 
 static irqreturn_t snd_cs46xx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, dev_id, return IRQ_NONE);
+	cs46xx_t *chip = dev_id;
 	u32 status1;
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 	dsp_spos_instance_t * ins = chip->dsp_spos_instance;
@@ -1265,7 +1190,7 @@
 					if (ins->pcm_channels[i].active &&
 					    ins->pcm_channels[i].private_data &&
 					    !ins->pcm_channels[i].unlinked) {
-						cpcm = snd_magic_cast(cs46xx_pcm_t, ins->pcm_channels[i].private_data, continue);
+						cpcm = ins->pcm_channels[i].private_data;
 						snd_pcm_period_elapsed(cpcm->substream);
 					}
 				}
@@ -1275,7 +1200,7 @@
 				if (ins->pcm_channels[i].active && 
 				    ins->pcm_channels[i].private_data &&
 				    !ins->pcm_channels[i].unlinked) {
-					cpcm = snd_magic_cast(cs46xx_pcm_t, ins->pcm_channels[i].private_data, continue);
+					cpcm = ins->pcm_channels[i].private_data;
 					snd_pcm_period_elapsed(cpcm->substream);
 				}
 			}
@@ -1382,10 +1307,8 @@
 
 static void snd_cs46xx_pcm_free_substream(snd_pcm_runtime_t *runtime)
 {
-	cs46xx_pcm_t * cpcm = snd_magic_cast(cs46xx_pcm_t, runtime->private_data, return);
-	
-	if (cpcm)
-		snd_magic_kfree(cpcm);
+	cs46xx_pcm_t * cpcm = runtime->private_data;
+	kfree(cpcm);
 }
 
 static int _cs46xx_playback_open_channel (snd_pcm_substream_t * substream,int pcm_channel_id)
@@ -1394,11 +1317,11 @@
 	cs46xx_pcm_t * cpcm;
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
-	cpcm = snd_magic_kcalloc(cs46xx_pcm_t, 0, GFP_KERNEL);
+	cpcm = kcalloc(1, sizeof(*cpcm), GFP_KERNEL);
 	if (cpcm == NULL)
 		return -ENOMEM;
 	if (snd_dma_alloc_pages(&chip->dma_dev, PAGE_SIZE, &cpcm->hw_buf) < 0) {
-		snd_magic_kfree(cpcm);
+		kfree(cpcm);
 		return -ENOMEM;
 	}
 
@@ -1510,7 +1433,7 @@
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	cs46xx_pcm_t * cpcm;
 
-	cpcm = snd_magic_cast(cs46xx_pcm_t, runtime->private_data, return -ENXIO);
+	cpcm = runtime->private_data;
 
 	/* when playback_open fails, then cpcm can be NULL */
 	if (!cpcm) return -ENXIO;
@@ -1664,7 +1587,7 @@
 
 static void snd_cs46xx_pcm_free(snd_pcm_t *pcm)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, pcm->private_data, return);
+	cs46xx_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1672,21 +1595,21 @@
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
 static void snd_cs46xx_pcm_rear_free(snd_pcm_t *pcm)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, pcm->private_data, return);
+	cs46xx_t *chip = pcm->private_data;
 	chip->pcm_rear = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
 
 static void snd_cs46xx_pcm_center_lfe_free(snd_pcm_t *pcm)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, pcm->private_data, return);
+	cs46xx_t *chip = pcm->private_data;
 	chip->pcm_center_lfe = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
 
 static void snd_cs46xx_pcm_iec958_free(snd_pcm_t *pcm)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, pcm->private_data, return);
+	cs46xx_t *chip = pcm->private_data;
 	chip->pcm_iec958 = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1824,14 +1747,14 @@
  */
 static void snd_cs46xx_mixer_free_ac97_bus(ac97_bus_t *bus)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, bus->private_data, return);
+	cs46xx_t *chip = bus->private_data;
 
 	chip->ac97_bus = NULL;
 }
 
 static void snd_cs46xx_mixer_free_ac97(ac97_t *ac97)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, ac97->private_data, return);
+	cs46xx_t *chip = ac97->private_data;
 
 	snd_assert ((ac97 == chip->ac97[CS46XX_PRIMARY_CODEC_INDEX]) ||
 		    (ac97 == chip->ac97[CS46XX_SECONDARY_CODEC_INDEX]),
@@ -2420,7 +2343,7 @@
 {
 	unsigned long end_time;
 	int err;
-	cs46xx_t * chip = snd_magic_cast(cs46xx_t,ac97->private_data,return /* -ENXIO */);
+	cs46xx_t * chip = ac97->private_data;
 
 	/* reset to defaults */
 	snd_ac97_write(ac97, AC97_RESET, 0);	
@@ -2606,7 +2529,7 @@
 static int snd_cs46xx_midi_input_open(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, substream->rmidi->private_data, return -ENXIO);
+	cs46xx_t *chip = substream->rmidi->private_data;
 
 	chip->active_ctrl(chip, 1);
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -2625,7 +2548,7 @@
 static int snd_cs46xx_midi_input_close(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, substream->rmidi->private_data, return -ENXIO);
+	cs46xx_t *chip = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
 	chip->midcr &= ~(MIDCR_RXE | MIDCR_RIE);
@@ -2644,7 +2567,7 @@
 static int snd_cs46xx_midi_output_open(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, substream->rmidi->private_data, return -ENXIO);
+	cs46xx_t *chip = substream->rmidi->private_data;
 
 	chip->active_ctrl(chip, 1);
 
@@ -2664,7 +2587,7 @@
 static int snd_cs46xx_midi_output_close(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, substream->rmidi->private_data, return -ENXIO);
+	cs46xx_t *chip = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
 	chip->midcr &= ~(MIDCR_TXE | MIDCR_TIE);
@@ -2683,7 +2606,7 @@
 static void snd_cs46xx_midi_input_trigger(snd_rawmidi_substream_t * substream, int up)
 {
 	unsigned long flags;
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, substream->rmidi->private_data, return);
+	cs46xx_t *chip = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
 	if (up) {
@@ -2703,7 +2626,7 @@
 static void snd_cs46xx_midi_output_trigger(snd_rawmidi_substream_t * substream, int up)
 {
 	unsigned long flags;
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, substream->rmidi->private_data, return);
+	cs46xx_t *chip = substream->rmidi->private_data;
 	unsigned char byte;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -2781,7 +2704,7 @@
 	cs46xx_gameport_t *gp = (cs46xx_gameport_t *)gameport;
 	cs46xx_t *chip;
 	snd_assert(gp, return);
-	chip = snd_magic_cast(cs46xx_t, gp->chip, return);
+	chip = gp->chip;
 	snd_cs46xx_pokeBA0(chip, BA0_JSPT, 0xFF);  //outb(gameport->io, 0xFF);
 }
 
@@ -2790,7 +2713,7 @@
 	cs46xx_gameport_t *gp = (cs46xx_gameport_t *)gameport;
 	cs46xx_t *chip;
 	snd_assert(gp, return 0);
-	chip = snd_magic_cast(cs46xx_t, gp->chip, return 0);
+	chip = gp->chip;
 	return snd_cs46xx_peekBA0(chip, BA0_JSPT); //inb(gameport->io);
 }
 
@@ -2801,7 +2724,7 @@
 	unsigned js1, js2, jst;
 	
 	snd_assert(gp, return 0);
-	chip = snd_magic_cast(cs46xx_t, gp->chip, return 0);
+	chip = gp->chip;
 
 	js1 = snd_cs46xx_peekBA0(chip, BA0_JSC1);
 	js2 = snd_cs46xx_peekBA0(chip, BA0_JSC2);
@@ -3011,13 +2934,13 @@
 	}
 #endif
 	
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_cs46xx_dev_free(snd_device_t *device)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, device->device_data, return -ENXIO);
+	cs46xx_t *chip = device->device_data;
 	return snd_cs46xx_free(chip);
 }
 
@@ -3786,7 +3709,7 @@
 #ifdef CONFIG_PM
 static int snd_cs46xx_suspend(snd_card_t *card, unsigned int state)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, card->pm_private_data, return -EINVAL);
+	cs46xx_t *chip = card->pm_private_data;
 	int amp_saved;
 
 	snd_pcm_suspend_all(chip->pcm);
@@ -3810,7 +3733,7 @@
 
 static int snd_cs46xx_resume(snd_card_t *card, unsigned int state)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, card->pm_private_data, return -EINVAL);
+	cs46xx_t *chip = card->pm_private_data;
 	int amp_saved;
 
 	pci_enable_device(chip->pci);
@@ -3869,7 +3792,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	chip = snd_magic_kcalloc(cs46xx_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
diff -Nru a/sound/pci/cs46xx/cs46xx_lib.h b/sound/pci/cs46xx/cs46xx_lib.h
--- a/sound/pci/cs46xx/cs46xx_lib.h	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/cs46xx/cs46xx_lib.h	2004-07-27 18:28:32 -07:00
@@ -22,8 +22,6 @@
 #ifndef __CS46XX_LIB_H__
 #define __CS46XX_LIB_H__
 
-#define chip_t cs46xx_t
-
 /*
  *  constants
  */
diff -Nru a/sound/pci/cs46xx/dsp_spos.c b/sound/pci/cs46xx/dsp_spos.c
--- a/sound/pci/cs46xx/dsp_spos.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/cs46xx/dsp_spos.c	2004-07-27 18:28:33 -07:00
@@ -462,7 +462,7 @@
 
 static void cs46xx_dsp_proc_symbol_table_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, entry->private_data, return);
+	cs46xx_t *chip = entry->private_data;
 	dsp_spos_instance_t * ins = chip->dsp_spos_instance;
 	int i;
 
@@ -489,7 +489,7 @@
 
 static void cs46xx_dsp_proc_modules_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, entry->private_data, return);
+	cs46xx_t *chip = entry->private_data;
 	dsp_spos_instance_t * ins = chip->dsp_spos_instance;
 	int i,j;
 
@@ -511,7 +511,7 @@
 
 static void cs46xx_dsp_proc_task_tree_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, entry->private_data, return);
+	cs46xx_t *chip = entry->private_data;
 	dsp_spos_instance_t * ins = chip->dsp_spos_instance;
 	int i,j,col;
 	unsigned long dst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET;
@@ -538,7 +538,7 @@
 
 static void cs46xx_dsp_proc_scb_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, entry->private_data, return);
+	cs46xx_t *chip = entry->private_data;
 	dsp_spos_instance_t * ins = chip->dsp_spos_instance;
 	int i;
 
@@ -570,7 +570,7 @@
 
 static void cs46xx_dsp_proc_parameter_dump_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, entry->private_data, return);
+	cs46xx_t *chip = entry->private_data;
 	/*dsp_spos_instance_t * ins = chip->dsp_spos_instance; */
 	unsigned int i,col = 0;
 	unsigned long dst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET;
@@ -597,7 +597,7 @@
 
 static void cs46xx_dsp_proc_sample_dump_read (snd_info_entry_t *entry, snd_info_buffer_t * buffer)
 {
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, entry->private_data, return);
+	cs46xx_t *chip = entry->private_data;
 	int i,col = 0;
 	unsigned long dst = chip->region.idx[2].remap_addr;
 
@@ -1057,7 +1057,7 @@
 	
 	int fifo_addr,fifo_span,valid_slots;
 
-	spos_control_block_t sposcb = {
+	static spos_control_block_t sposcb = {
 		/* 0 */ HFG_TREE_SCB,HFG_STACK,
 		/* 1 */ SPOSCB_ADDR,BG_TREE_SCB_ADDR,
 		/* 2 */ DSP_SPOS_DC,0,
@@ -1110,18 +1110,18 @@
   
 	{
 		/* create the null SCB */
-		generic_scb_t null_scb = {
+		static generic_scb_t null_scb = {
 			{ 0, 0, 0, 0 },
 			{ 0, 0, 0, 0, 0 },
 			NULL_SCB_ADDR, NULL_SCB_ADDR,
-			null_algorithm->address, 0,
-			0,0,0,
+			0, 0, 0, 0, 0,
 			{
 				0,0,
 				0,0,
 			}
 		};
 
+		null_scb.entry_point = null_algorithm->address;
 		ins->the_null_scb = cs46xx_dsp_create_scb(chip, "nullSCB", (u32 *)&null_scb, NULL_SCB_ADDR);
 		ins->the_null_scb->task_entry = null_algorithm;
 		ins->the_null_scb->sub_list_ptr = ins->the_null_scb;
@@ -1132,7 +1132,7 @@
 
 	{
 		/* setup foreground task tree */
-		task_tree_control_block_t fg_task_tree_hdr =  {
+		static task_tree_control_block_t fg_task_tree_hdr =  {
 			{ FG_TASK_HEADER_ADDR | (DSP_SPOS_DC << 0x10),
 			  DSP_SPOS_DC_DC,
 			  DSP_SPOS_DC_DC,
@@ -1145,7 +1145,7 @@
     
 			{
 				BG_TREE_SCB_ADDR,TIMINGMASTER_SCB_ADDR, 
-				fg_task_tree_header_code->address,
+				0,
 				FG_TASK_HEADER_ADDR + TCBData,                  
 			},
 
@@ -1158,7 +1158,7 @@
 			},
 
 			{
-				DSP_SPOS_DC,task_tree_thread->address,
+				DSP_SPOS_DC,0,
 				DSP_SPOS_DC,DSP_SPOS_DC,
 				DSP_SPOS_DC,DSP_SPOS_DC,
 				DSP_SPOS_DC,DSP_SPOS_DC,
@@ -1200,13 +1200,15 @@
 			}
 		};
 
+		fg_task_tree_hdr.links.entry_point = fg_task_tree_header_code->address;
+		fg_task_tree_hdr.context_blk.stack0 = task_tree_thread->address;
 		cs46xx_dsp_create_task_tree(chip,"FGtaskTreeHdr",(u32 *)&fg_task_tree_hdr,FG_TASK_HEADER_ADDR,0x35);
 	}
 
 
 	{
 		/* setup foreground task tree */
-		task_tree_control_block_t bg_task_tree_hdr =  {
+		static task_tree_control_block_t bg_task_tree_hdr =  {
 			{ DSP_SPOS_DC_DC,
 			  DSP_SPOS_DC_DC,
 			  DSP_SPOS_DC_DC,
@@ -1219,7 +1221,7 @@
     
 			{
 				NULL_SCB_ADDR,NULL_SCB_ADDR,  /* Set up the background to do nothing */
-				task_tree_header_code->address,
+				0,
 				BG_TREE_SCB_ADDR + TCBData,
 			},
 
@@ -1232,7 +1234,7 @@
 			},
 
 			{
-				DSP_SPOS_DC,task_tree_thread->address,
+				DSP_SPOS_DC,0,
 				DSP_SPOS_DC,DSP_SPOS_DC,
 				DSP_SPOS_DC,DSP_SPOS_DC,
 				DSP_SPOS_DC,DSP_SPOS_DC,
@@ -1273,6 +1275,9 @@
 				0,0
 			}
 		};
+
+		bg_task_tree_hdr.links.entry_point = task_tree_header_code->address;
+		bg_task_tree_hdr.context_blk.stack0 = task_tree_thread->address;
 		cs46xx_dsp_create_task_tree(chip,"BGtaskTreeHdr",(u32 *)&bg_task_tree_hdr,BG_TREE_SCB_ADDR,0x35);
 	}
 
@@ -1312,7 +1317,7 @@
 	if (!write_back_scb) goto _fail_end;
 
 	{
-		mix2_ostream_spb_t mix2_ostream_spb = {
+		static mix2_ostream_spb_t mix2_ostream_spb = {
 			0x00020000,
 			0x0000ffff
 		};
diff -Nru a/sound/pci/cs46xx/dsp_spos_scb_lib.c b/sound/pci/cs46xx/dsp_spos_scb_lib.c
--- a/sound/pci/cs46xx/dsp_spos_scb_lib.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/cs46xx/dsp_spos_scb_lib.c	2004-07-27 18:28:33 -07:00
@@ -69,7 +69,7 @@
 	proc_scb_info_t * scb_info  = (proc_scb_info_t *)entry->private_data;
 	dsp_scb_descriptor_t * scb = scb_info->scb_desc;
 	dsp_spos_instance_t * ins;
-	cs46xx_t *chip = snd_magic_cast(cs46xx_t, scb_info->chip, return);
+	cs46xx_t *chip = scb_info->chip;
 	int j,col;
 	unsigned long dst = chip->region.idx[1].remap_addr + DSP_PARAMETER_BYTE_OFFSET;
 
diff -Nru a/sound/pci/emu10k1/emu10k1.c b/sound/pci/emu10k1/emu10k1.c
--- a/sound/pci/emu10k1/emu10k1.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/emu10k1/emu10k1.c	2004-07-27 18:28:32 -07:00
@@ -31,8 +31,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("EMU10K1");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Creative Labs,SB Live!/PCI512/E-mu APS},"
+MODULE_SUPPORTED_DEVICE("{{Creative Labs,SB Live!/PCI512/E-mu APS},"
 	       "{Creative Labs,SB Audigy}}");
 
 #if defined(CONFIG_SND_SEQUENCER) || (defined(MODULE) && defined(CONFIG_SND_SEQUENCER_MODULE))
@@ -53,37 +52,25 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for the EMU10K1 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for the EMU10K1 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable the EMU10K1 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(extin, int, boot_devs, 0444);
 MODULE_PARM_DESC(extin, "Available external inputs for FX8010. Zero=default.");
-MODULE_PARM_SYNTAX(extin, SNDRV_ENABLED "allows:{{0,0x0ffff}},base:16");
 module_param_array(extout, int, boot_devs, 0444);
 MODULE_PARM_DESC(extout, "Available external outputs for FX8010. Zero=default.");
-MODULE_PARM_SYNTAX(extout, SNDRV_ENABLED "allows:{{0,0x0ffff}},base:16");
 module_param_array(seq_ports, int, boot_devs, 0444);
 MODULE_PARM_DESC(seq_ports, "Allocated sequencer ports for internal synthesizer.");
-MODULE_PARM_SYNTAX(seq_ports, SNDRV_ENABLED "allows:{{0,32}}");
 module_param_array(max_synth_voices, int, boot_devs, 0444);
 MODULE_PARM_DESC(max_synth_voices, "Maximum number of voices for WaveTable.");
-MODULE_PARM_SYNTAX(max_synth_voices, SNDRV_ENABLED);
 module_param_array(max_buffer_size, int, boot_devs, 0444);
 MODULE_PARM_DESC(max_buffer_size, "Maximum sample buffer size in MB.");
-MODULE_PARM_SYNTAX(max_buffer_size, SNDRV_ENABLED);
 module_param_array(enable_ir, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable_ir, "Enable IR.");
-MODULE_PARM_SYNTAX(enable_ir, SNDRV_ENABLE_DESC);
 
 static struct pci_device_id snd_emu10k1_ids[] = {
 	{ 0x1102, 0x0002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },	/* EMU10K1 */
-#if 0 /* FIXME: not working! */
-	{ 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },	/* Dell OEM version (EMU10K1) */
-#endif
 	{ 0x1102, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 },	/* Audigy */
 	{ 0, }
 };
@@ -131,10 +118,6 @@
 		return err;
 	}		
 	if ((err = snd_emu10k1_pcm_efx(emu, 2, NULL)) < 0) {
-		snd_card_free(card);
-		return err;
-	}		
-	if ((err = snd_emu10k1_fx8010_pcm(emu, 3, NULL)) < 0) {
 		snd_card_free(card);
 		return err;
 	}		
diff -Nru a/sound/pci/emu10k1/emu10k1_callback.c b/sound/pci/emu10k1/emu10k1_callback.c
--- a/sound/pci/emu10k1/emu10k1_callback.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/emu10k1/emu10k1_callback.c	2004-07-27 18:28:32 -07:00
@@ -93,7 +93,7 @@
 	unsigned long flags;
 	int i;
 
-	emu = snd_magic_cast(snd_emux_t, hw->synth, return -EINVAL);
+	emu = hw->synth;
 
 	spin_lock_irqsave(&emu->voice_lock, flags);
 	lookup_voices(emu, hw, best, 1); /* no OFF voices */
@@ -128,7 +128,7 @@
 	int dcysusv;
 	emu10k1_t *hw;
 	
-	hw = snd_magic_cast(emu10k1_t, vp->hw, return);
+	hw = vp->hw;
 	dcysusv = 0x8000 | (unsigned char)vp->reg.parm.modrelease;
 	snd_emu10k1_ptr_write(hw, DCYSUSM, vp->ch, dcysusv);
 	dcysusv = 0x8000 | (unsigned char)vp->reg.parm.volrelease | DCYSUSV_CHANNELENABLE_MASK;
@@ -145,7 +145,7 @@
 	emu10k1_t *hw;
 	
 	snd_assert(vp, return);
-	hw = snd_magic_cast(emu10k1_t, vp->hw, return);
+	hw = vp->hw;
 	snd_emu10k1_ptr_write(hw, DCYSUSV, vp->ch, 0x807f | DCYSUSV_CHANNELENABLE_MASK);
 	if (vp->block) {
 		emu10k1_memblk_t *emem;
@@ -163,7 +163,7 @@
 {
 	emu10k1_t *hw;
 	
-	hw = snd_magic_cast(emu10k1_t, vp->hw, return);
+	hw = vp->hw;
 	if (vp->ch >= 0) {
 		snd_emu10k1_ptr_write(hw, IFATN, vp->ch, 0xff00);
 		snd_emu10k1_ptr_write(hw, DCYSUSV, vp->ch, 0x807f | DCYSUSV_CHANNELENABLE_MASK);
@@ -185,7 +185,7 @@
 {
 	emu10k1_t *hw;
 	
-	hw = snd_magic_cast(emu10k1_t, vp->hw, return);
+	hw = vp->hw;
 	if (update & SNDRV_EMUX_UPDATE_VOLUME)
 		snd_emu10k1_ptr_write(hw, IFATN_ATTENUATION, vp->ch, vp->avol);
 	if (update & SNDRV_EMUX_UPDATE_PITCH)
@@ -282,7 +282,7 @@
 	best_voice_t best[V_END];
 	int i;
 
-	hw = snd_magic_cast(emu10k1_t, emu->hw, return NULL);
+	hw = emu->hw;
 
 	lookup_voices(emu, hw, best, 0);
 	for (i = 0; i < V_END; i++) {
@@ -317,7 +317,7 @@
 	emu10k1_t *hw;
 	emu10k1_memblk_t *emem;
 	
-	hw = snd_magic_cast(emu10k1_t, vp->hw, return -EINVAL);
+	hw = vp->hw;
 	ch = vp->ch;
 	snd_assert(ch >= 0, return -EINVAL);
 	chan = vp->chan;
@@ -469,7 +469,7 @@
 	emu10k1_t *hw;
 	emu10k1_memblk_t *emem;
 	
-	hw = snd_magic_cast(emu10k1_t, vp->hw, return);
+	hw = vp->hw;
 
 	emem = (emu10k1_memblk_t *)vp->block;
 	if (! emem || emem->mapped_page < 0)
diff -Nru a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
--- a/sound/pci/emu10k1/emu10k1_main.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/emu10k1/emu10k1_main.c	2004-07-27 18:28:33 -07:00
@@ -561,13 +561,13 @@
 	}
 	if (emu->irq >= 0)
 		free_irq(emu->irq, (void *)emu);
-	snd_magic_kfree(emu);
+	kfree(emu);
 	return 0;
 }
 
 static int snd_emu10k1_dev_free(snd_device_t *device)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, device->device_data, return -ENXIO);
+	emu10k1_t *emu = device->device_data;
 	return snd_emu10k1_free(emu);
 }
 
@@ -595,7 +595,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	emu = snd_magic_kcalloc(emu10k1_t, 0, GFP_KERNEL);
+	emu = kcalloc(1, sizeof(*emu), GFP_KERNEL);
 	if (emu == NULL)
 		return -ENOMEM;
 	/* set the DMA transfer mask */
@@ -603,7 +603,7 @@
 	if (pci_set_dma_mask(pci, emu->dma_mask) < 0 ||
 	    pci_set_consistent_dma_mask(pci, emu->dma_mask) < 0) {
 		snd_printk(KERN_ERR "architecture does not support PCI busmaster DMA with mask 0x%lx\n", emu->dma_mask);
-		snd_magic_kfree(emu);
+		kfree(emu);
 		return -ENXIO;
 	}
 	emu->card = card;
@@ -683,8 +683,14 @@
 		 * (for both input and output), so we skip the AC97 detections
 		 */
 		snd_printdd(KERN_INFO "Audigy2 EX is detected. skpping ac97.\n");
-		emu->no_ac97 = 1;
+		emu->no_ac97 = 1;	
 	}
+	
+	if (emu->revision == 4) {
+		/*  FIXME - Audigy 2 ZS detection */
+		emu->spk71 = 1;
+	}
+	
 	
 	emu->fx8010.fxbus_mask = 0x303f;
 	if (extin_mask == 0)
diff -Nru a/sound/pci/emu10k1/emu10k1_patch.c b/sound/pci/emu10k1/emu10k1_patch.c
--- a/sound/pci/emu10k1/emu10k1_patch.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/emu10k1/emu10k1_patch.c	2004-07-27 18:28:33 -07:00
@@ -44,7 +44,7 @@
 	unsigned int start_addr;
 	emu10k1_t *emu;
 
-	emu = snd_magic_cast(emu10k1_t, rec->hw, return -ENXIO);
+	emu = rec->hw;
 	snd_assert(sp != NULL, return -EINVAL);
 	snd_assert(hdr != NULL, return -EINVAL);
 
@@ -210,7 +210,7 @@
 {
 	emu10k1_t *emu;
 
-	emu = snd_magic_cast(emu10k1_t, rec->hw, return -ENXIO);
+	emu = rec->hw;
 	snd_assert(sp != NULL, return -EINVAL);
 	snd_assert(hdr != NULL, return -EINVAL);
 
diff -Nru a/sound/pci/emu10k1/emu10k1_synth.c b/sound/pci/emu10k1/emu10k1_synth.c
--- a/sound/pci/emu10k1/emu10k1_synth.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/emu10k1/emu10k1_synth.c	2004-07-27 18:28:32 -07:00
@@ -85,9 +85,9 @@
 	if (dev->driver_data == NULL)
 		return 0; /* not registered actually */
 
-	emu = snd_magic_cast(snd_emux_t, dev->driver_data, return -EINVAL);
+	emu = dev->driver_data;
 
-	hw = snd_magic_cast(emu10k1_t, emu->hw, return -EINVAL);
+	hw = emu->hw;
 	spin_lock_irqsave(&hw->voice_lock, flags);
 	hw->synth = NULL;
 	hw->get_synth_voice = NULL;
diff -Nru a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
--- a/sound/pci/emu10k1/emufx.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/emu10k1/emufx.c	2004-07-27 18:28:33 -07:00
@@ -33,8 +33,6 @@
 #include <sound/core.h>
 #include <sound/emu10k1.h>
 
-#define chip_t emu10k1_t
-
 #if 0		/* for testing purposes - digital out -> capture */
 #define EMU10K1_CAPTURE_DIGITAL_OUT
 #endif
@@ -405,7 +403,7 @@
 	}
 }
 
-static int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu,
+int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu,
 						   snd_fx8010_irq_handler_t *handler,
 						   unsigned char gpr_running,
 						   void *private_data,
@@ -438,7 +436,7 @@
 	return 0;
 }
 
-static int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu,
+int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu,
 						     snd_emu10k1_fx8010_irq_t *irq)
 {
 	snd_emu10k1_fx8010_irq_t *tmp;
@@ -463,312 +461,6 @@
 	return 0;
 }
 
-/*
- *   PCM streams
- */
-
-#define INITIAL_TRAM_SHIFT     14
-#define INITIAL_TRAM_POS(size) ((((size) / 2) - INITIAL_TRAM_SHIFT) - 1)
-
-static void snd_emu10k1_fx8010_playback_irq(emu10k1_t *emu, void *private_data)
-{
-	snd_pcm_substream_t *substream = snd_magic_cast(snd_pcm_substream_t, private_data, return);
-	snd_pcm_period_elapsed(substream);
-}
-
-static void snd_emu10k1_fx8010_playback_tram_poke1(unsigned short *dst_left,
-						   unsigned short *dst_right,
-						   unsigned short *src,
-						   unsigned int count,
-						   unsigned int tram_shift)
-{
-	// printk("tram_poke1: dst_left = 0x%p, dst_right = 0x%p, src = 0x%p, count = 0x%x\n", dst_left, dst_right, src, count);
-	if ((tram_shift & 1) == 0) {
-		while (count--) {
-			*dst_left-- = *src++;
-			*dst_right-- = *src++;
-		}
-	} else {
-		while (count--) {
-			*dst_right-- = *src++;
-			*dst_left-- = *src++;
-		}
-	}
-}
-
-static void snd_emu10k1_fx8010_playback_tram_poke(emu10k1_t *emu,
-						  unsigned int *tram_pos,
-						  unsigned int *tram_shift,
-						  unsigned int tram_size,
-						  unsigned short *src,
-						  unsigned int frames)
-{
-	unsigned int count;
-
-	while (frames > *tram_pos) {
-		count = *tram_pos + 1;
-		snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages.area + *tram_pos,
-						       (unsigned short *)emu->fx8010.etram_pages.area + *tram_pos + tram_size / 2,
-						       src, count, *tram_shift);
-		src += count * 2;
-		frames -= count;
-		*tram_pos = (tram_size / 2) - 1;
-		(*tram_shift)++;
-	}
-	snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages.area + *tram_pos,
-					       (unsigned short *)emu->fx8010.etram_pages.area + *tram_pos + tram_size / 2,
-					       src, frames, *tram_shift++);
-	*tram_pos -= frames;
-}
-
-static int snd_emu10k1_fx8010_playback_transfer(snd_pcm_substream_t *substream)
-{
-	emu10k1_t *emu = snd_pcm_substream_chip(substream);
-	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
-	snd_pcm_uframes_t appl_ptr = runtime->control->appl_ptr;
-	snd_pcm_sframes_t diff = appl_ptr - pcm->appl_ptr;
-	snd_pcm_uframes_t buffer_size = pcm->buffer_size / 2;
-
-	if (diff) {
-		if (diff < -(snd_pcm_sframes_t) (runtime->boundary / 2))
-			diff += runtime->boundary;
-		pcm->sw_ready += diff;
-		pcm->appl_ptr = appl_ptr;
-	}
-	while (pcm->hw_ready < buffer_size &&
-	       pcm->sw_ready > 0) {
-	       	size_t hw_to_end = buffer_size - pcm->hw_data;
-	       	size_t sw_to_end = (runtime->buffer_size << 2) - pcm->sw_data;
-	       	size_t tframes = buffer_size - pcm->hw_ready;
-	       	if (pcm->sw_ready < tframes)
-	       		tframes = pcm->sw_ready;
-	       	if (hw_to_end < tframes)
-	       		tframes = hw_to_end;
-	       	if (sw_to_end < tframes)
-	       		tframes = sw_to_end;
-	       	snd_emu10k1_fx8010_playback_tram_poke(emu, &pcm->tram_pos, &pcm->tram_shift,
-	       					      pcm->buffer_size,
-	       					      (unsigned short *)(runtime->dma_area + (pcm->sw_data << 2)),
-	       					      tframes);
-		pcm->hw_data += tframes;
-		if (pcm->hw_data == buffer_size)
-			pcm->hw_data = 0;
-		pcm->sw_data += tframes;
-		if (pcm->sw_data == runtime->buffer_size)
-			pcm->sw_data = 0;
-		pcm->hw_ready += tframes;
-		pcm->sw_ready -= tframes;
-	}
-	return 0;
-}
-
-static int snd_emu10k1_fx8010_playback_hw_params(snd_pcm_substream_t * substream,
-						 snd_pcm_hw_params_t * hw_params)
-{
-	return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
-}
-
-static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream)
-{
-	emu10k1_t *emu = snd_pcm_substream_chip(substream);
-	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
-	unsigned int i;
-
-	for (i = 0; i < pcm->channels; i++)
-		snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + 0x80 + pcm->etram[i], 0, 0);
-	snd_pcm_lib_free_pages(substream);
-	return 0;
-}
-
-static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream)
-{
-	emu10k1_t *emu = snd_pcm_substream_chip(substream);
-	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
-	unsigned int i;
-	
-	// printk("prepare: etram_pages = 0x%p, dma_area = 0x%x, buffer_size = 0x%x (0x%x)\n", emu->fx8010.etram_pages, runtime->dma_area, runtime->buffer_size, runtime->buffer_size << 2);
-	pcm->sw_data = pcm->sw_io = pcm->sw_ready = 0;
-	pcm->hw_data = pcm->hw_io = pcm->hw_ready = 0;
-	pcm->tram_pos = INITIAL_TRAM_POS(pcm->buffer_size);
-	pcm->tram_shift = 0;
-	pcm->appl_ptr = 0;
-	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_running, 0, 0);	/* reset */
-	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 0);	/* reset */
-	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_size, 0, runtime->buffer_size);
-	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_ptr, 0, 0);		/* reset ptr number */
-	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_count, 0, runtime->period_size);
-	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_tmpcount, 0, runtime->period_size);
-	for (i = 0; i < pcm->channels; i++)
-		snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + 0x80 + pcm->etram[i], 0, (TANKMEMADDRREG_READ|TANKMEMADDRREG_ALIGN) + i * (runtime->buffer_size / pcm->channels));
-	return 0;
-}
-
-static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream, int cmd)
-{
-	emu10k1_t *emu = snd_pcm_substream_chip(substream);
-	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
-	unsigned long flags;
-	int result = 0;
-
-	spin_lock_irqsave(&emu->reg_lock, flags);
-	switch (cmd) {
-	case SNDRV_PCM_TRIGGER_START:
-		/* follow thru */
-	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-#ifdef EMU10K1_SET_AC3_IEC958
-	{
-		int i;
-		for (i = 0; i < 3; i++) {
-			unsigned int bits;
-			bits = SPCS_CLKACCY_1000PPM | SPCS_SAMPLERATE_48 |
-			       SPCS_CHANNELNUM_LEFT | SPCS_SOURCENUM_UNSPEC | SPCS_GENERATIONSTATUS |
-			       0x00001200 | SPCS_EMPHASIS_NONE | SPCS_COPYRIGHT | SPCS_NOTAUDIODATA;
-			snd_emu10k1_ptr_write(emu, SPCS0 + i, 0, bits);
-		}
-	}
-#endif
-		result = snd_emu10k1_fx8010_register_irq_handler(emu, snd_emu10k1_fx8010_playback_irq, pcm->gpr_running, substream, &pcm->irq);
-		if (result < 0)
-			goto __err;
-		snd_emu10k1_fx8010_playback_transfer(substream);	/* roll the ball */
-		snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 1);
-		break;
-	case SNDRV_PCM_TRIGGER_STOP:
-	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-		snd_emu10k1_fx8010_unregister_irq_handler(emu, pcm->irq); pcm->irq = NULL;
-		snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 0);
-		pcm->tram_pos = INITIAL_TRAM_POS(pcm->buffer_size);
-		pcm->tram_shift = 0;
-		break;
-	default:
-		result = -EINVAL;
-		break;
-	}
-      __err:
-	spin_unlock_irqrestore(&emu->reg_lock, flags);
-	return result;
-}
-
-static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t * substream)
-{
-	emu10k1_t *emu = snd_pcm_substream_chip(substream);
-	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
-	size_t ptr;
-	snd_pcm_sframes_t frames;
-
-	if (!snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_trigger, 0))
-		return 0;
-	ptr = snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_ptr, 0);
-	frames = ptr - pcm->hw_io;
-	if (frames < 0)
-		frames += runtime->buffer_size;
-	pcm->hw_io = ptr;
-	pcm->hw_ready -= frames;
-	pcm->sw_io += frames;
-	if (pcm->sw_io >= runtime->buffer_size)
-		pcm->sw_io -= runtime->buffer_size;
-	snd_emu10k1_fx8010_playback_transfer(substream);
-	return pcm->sw_io;
-}
-
-static snd_pcm_hardware_t snd_emu10k1_fx8010_playback =
-{
-	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
-				 /* SNDRV_PCM_INFO_MMAP_VALID | */ SNDRV_PCM_INFO_PAUSE),
-	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
-	.rates =		SNDRV_PCM_RATE_48000,
-	.rate_min =		48000,
-	.rate_max =		48000,
-	.channels_min =		1,
-	.channels_max =		1,
-	.buffer_bytes_max =	(128*1024),
-	.period_bytes_min =	1024,
-	.period_bytes_max =	(128*1024),
-	.periods_min =		1,
-	.periods_max =		1024,
-	.fifo_size =		0,
-};
-
-static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream)
-{
-	emu10k1_t *emu = snd_pcm_substream_chip(substream);
-	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
-
-	runtime->hw = snd_emu10k1_fx8010_playback;
-	runtime->hw.channels_min = runtime->hw.channels_max = pcm->channels;
-	runtime->hw.period_bytes_max = (pcm->buffer_size * 2) / 2;
-	spin_lock(&emu->reg_lock);
-	if (pcm->valid == 0) {
-		spin_unlock(&emu->reg_lock);
-		return -ENODEV;
-	}
-	pcm->opened = 1;
-	spin_unlock(&emu->reg_lock);
-	return 0;
-}
-
-static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream)
-{
-	emu10k1_t *emu = snd_pcm_substream_chip(substream);
-	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
-
-	spin_lock(&emu->reg_lock);
-	pcm->opened = 0;
-	spin_unlock(&emu->reg_lock);
-	return 0;
-}
-
-static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = {
-	.open =			snd_emu10k1_fx8010_playback_open,
-	.close =		snd_emu10k1_fx8010_playback_close,
-	.ioctl =		snd_pcm_lib_ioctl,
-	.hw_params =		snd_emu10k1_fx8010_playback_hw_params,
-	.hw_free =		snd_emu10k1_fx8010_playback_hw_free,
-	.prepare =		snd_emu10k1_fx8010_playback_prepare,
-	.trigger =		snd_emu10k1_fx8010_playback_trigger,
-	.pointer =		snd_emu10k1_fx8010_playback_pointer,
-	.ack =			snd_emu10k1_fx8010_playback_transfer,
-};
-
-static void snd_emu10k1_fx8010_pcm_free(snd_pcm_t *pcm)
-{
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, pcm->private_data, return);
-	emu->pcm_fx8010 = NULL;
-	snd_pcm_lib_preallocate_free_for_all(pcm);
-}
-
-int snd_emu10k1_fx8010_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm)
-{
-	snd_pcm_t *pcm;
-	int err;
-
-	if (rpcm)
-		*rpcm = NULL;
-
-	if ((err = snd_pcm_new(emu->card, "emu10k1", device, 8, 0, &pcm)) < 0)
-		return err;
-
-	pcm->private_data = emu;
-	pcm->private_free = snd_emu10k1_fx8010_pcm_free;
-
-	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_fx8010_playback_ops);
-
-	pcm->info_flags = 0;
-	strcpy(pcm->name, "EMU10K1 FX8010");
-	emu->pcm_fx8010 = pcm;
-	
-	snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(emu->pci), 64*1024, 0);
-
-	if (rpcm)
-		*rpcm = pcm;
-
-	return 0;
-}
-
 /*************************************************************************
  * EMU10K1 effect manager
  *************************************************************************/
@@ -1193,7 +885,7 @@
 
 #define SND_EMU10K1_GPR_CONTROLS	41
 #define SND_EMU10K1_INPUTS		10
-#define SND_EMU10K1_PLAYBACK_CHANNELS	6
+#define SND_EMU10K1_PLAYBACK_CHANNELS	8
 #define SND_EMU10K1_CAPTURE_CHANNELS	4
 
 static void __devinit snd_emu10k1_init_mono_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval)
@@ -1262,9 +954,9 @@
 	spin_lock_init(&emu->fx8010.irq_lock);
 	INIT_LIST_HEAD(&emu->fx8010.gpr_ctl);
 
-	if ((icode = snd_kcalloc(sizeof(emu10k1_fx8010_code_t), GFP_KERNEL)) == NULL)
+	if ((icode = kcalloc(1, sizeof(*icode), GFP_KERNEL)) == NULL)
 		return -ENOMEM;
-	if ((controls = snd_kcalloc(sizeof(emu10k1_fx8010_control_gpr_t) * SND_EMU10K1_GPR_CONTROLS, GFP_KERNEL)) == NULL) {
+	if ((controls = kcalloc(SND_EMU10K1_GPR_CONTROLS, sizeof(*controls), GFP_KERNEL)) == NULL) {
 		kfree(icode);
 		return -ENOMEM;
 	}
@@ -1292,6 +984,14 @@
 	A_OP(icode, &ptr, iMAC0, A_GPR(playback+3), A_C_00000000, A_GPR(gpr+1), A_FXBUS(FXBUS_PCM_RIGHT_REAR));
 	snd_emu10k1_init_stereo_control(&controls[nctl++], "PCM Surround Playback Volume", gpr, 100);
 	gpr += 2;
+	
+	/* PCM Side Playback (independent from stereo mix) */
+	if (emu->spk71) {
+		A_OP(icode, &ptr, iMAC0, A_GPR(playback+6), A_C_00000000, A_GPR(gpr), A_FXBUS(FXBUS_PCM_LEFT_SIDE));
+		A_OP(icode, &ptr, iMAC0, A_GPR(playback+7), A_C_00000000, A_GPR(gpr+1), A_FXBUS(FXBUS_PCM_RIGHT_SIDE));
+		snd_emu10k1_init_stereo_control(&controls[nctl++], "PCM Side Playback Volume", gpr, 100);
+		gpr += 2;
+	}
 
 	/* PCM Center Playback (independent from stereo mix) */
 	A_OP(icode, &ptr, iMAC0, A_GPR(playback+4), A_C_00000000, A_GPR(gpr), A_FXBUS(FXBUS_PCM_CENTER));
@@ -1440,6 +1140,14 @@
 	A_OP(icode, &ptr, iMAC0, A_GPR(playback+5), A_GPR(playback+5), A_GPR(gpr), A_GPR(tmp));
 	snd_emu10k1_init_mono_control(&controls[nctl++], "LFE Playback Volume", gpr, 0);
 	gpr++;
+	
+	if (emu->spk71) {
+		/* Stereo Mix Side Playback */
+		A_OP(icode, &ptr, iMAC0, A_GPR(playback+6), A_GPR(playback+6), A_GPR(gpr), A_GPR(stereo_mix));
+		A_OP(icode, &ptr, iMAC0, A_GPR(playback+7), A_GPR(playback+7), A_GPR(gpr+1), A_GPR(stereo_mix+1));
+		snd_emu10k1_init_stereo_control(&controls[nctl++], "Side Playback Volume", gpr, 0);
+		gpr += 2;
+	}
 
 	/*
 	 * outputs
@@ -1467,6 +1175,11 @@
 	A_OP(icode, &ptr, iACC3, A_GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 3), A_GPR(playback + 3), A_C_00000000, A_C_00000000); /* rear right */
 	A_OP(icode, &ptr, iACC3, A_GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 4), A_GPR(playback + 4), A_C_00000000, A_C_00000000); /* center */
 	A_OP(icode, &ptr, iACC3, A_GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 5), A_GPR(playback + 5), A_C_00000000, A_C_00000000); /* LFE */
+	if (emu->spk71) {
+		A_OP(icode, &ptr, iACC3, A_GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 6), A_GPR(playback + 6), A_C_00000000, A_C_00000000); /* side left */
+		A_OP(icode, &ptr, iACC3, A_GPR(playback + SND_EMU10K1_PLAYBACK_CHANNELS + 7), A_GPR(playback + 7), A_C_00000000, A_C_00000000); /* side right */
+	}
+	
 
 	ctl = &controls[nctl + 0];
 	ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
@@ -1497,7 +1210,7 @@
 			controls[nctl + 1].gpr[z * 2 + j] = TREBLE_GPR + z * 2 + j;
 		}
 	}
-	for (z = 0; z < 3; z++) {		/* front/rear/center-lfe */
+	for (z = 0; z < 4; z++) {		/* front/rear/center-lfe/side */
 		int j, k, l, d;
 		for (j = 0; j < 2; j++) {	/* left/right */
 			k = 0xb0 + (z * 8) + (j * 4);
@@ -1529,7 +1242,7 @@
 #undef BASS_GPR
 #undef TREBLE_GPR
 
-	for (z = 0; z < 6; z++) {
+	for (z = 0; z < 8; z++) {
 		A_SWITCH(icode, &ptr, tmp + 0, playback + SND_EMU10K1_PLAYBACK_CHANNELS + z, gpr + 0);
 		A_SWITCH_NEG(icode, &ptr, tmp + 1, gpr + 0);
 		A_SWITCH(icode, &ptr, tmp + 1, playback + z, tmp + 1);
@@ -1540,12 +1253,14 @@
 
 	/* Master volume (will be renamed later) */
 	A_OP(icode, &ptr, iMAC0, A_GPR(playback+0+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+0+SND_EMU10K1_PLAYBACK_CHANNELS));
-	A_OP(icode, &ptr, iMAC0, A_GPR(playback+1+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr+1), A_GPR(playback+1+SND_EMU10K1_PLAYBACK_CHANNELS));
-	A_OP(icode, &ptr, iMAC0, A_GPR(playback+2+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr+1), A_GPR(playback+2+SND_EMU10K1_PLAYBACK_CHANNELS));
-	A_OP(icode, &ptr, iMAC0, A_GPR(playback+3+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr+1), A_GPR(playback+3+SND_EMU10K1_PLAYBACK_CHANNELS));
-	A_OP(icode, &ptr, iMAC0, A_GPR(playback+4+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr+1), A_GPR(playback+4+SND_EMU10K1_PLAYBACK_CHANNELS));
-	A_OP(icode, &ptr, iMAC0, A_GPR(playback+5+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr+1), A_GPR(playback+5+SND_EMU10K1_PLAYBACK_CHANNELS));
-	snd_emu10k1_init_stereo_control(&controls[nctl++], "Wave Master Playback Volume", gpr, 0);
+	A_OP(icode, &ptr, iMAC0, A_GPR(playback+1+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+1+SND_EMU10K1_PLAYBACK_CHANNELS));
+	A_OP(icode, &ptr, iMAC0, A_GPR(playback+2+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+2+SND_EMU10K1_PLAYBACK_CHANNELS));
+	A_OP(icode, &ptr, iMAC0, A_GPR(playback+3+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+3+SND_EMU10K1_PLAYBACK_CHANNELS));
+	A_OP(icode, &ptr, iMAC0, A_GPR(playback+4+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+4+SND_EMU10K1_PLAYBACK_CHANNELS));
+	A_OP(icode, &ptr, iMAC0, A_GPR(playback+5+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+5+SND_EMU10K1_PLAYBACK_CHANNELS));
+	A_OP(icode, &ptr, iMAC0, A_GPR(playback+6+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+6+SND_EMU10K1_PLAYBACK_CHANNELS));
+	A_OP(icode, &ptr, iMAC0, A_GPR(playback+7+SND_EMU10K1_PLAYBACK_CHANNELS), A_C_00000000, A_GPR(gpr), A_GPR(playback+7+SND_EMU10K1_PLAYBACK_CHANNELS));
+	snd_emu10k1_init_mono_control(&controls[nctl++], "Wave Master Playback Volume", gpr, 0);
 	gpr += 2;
 
 	/* analog speakers */
@@ -1553,6 +1268,8 @@
 	A_PUT_STEREO_OUTPUT(A_EXTOUT_AREAR_L, A_EXTOUT_AREAR_R, playback+2 + SND_EMU10K1_PLAYBACK_CHANNELS);
 	A_PUT_OUTPUT(A_EXTOUT_ACENTER, playback+4 + SND_EMU10K1_PLAYBACK_CHANNELS);
 	A_PUT_OUTPUT(A_EXTOUT_ALFE, playback+5 + SND_EMU10K1_PLAYBACK_CHANNELS);
+	if (emu->spk71)
+		A_PUT_STEREO_OUTPUT(A_EXTOUT_ASIDE_L, A_EXTOUT_ASIDE_R, playback+6 + SND_EMU10K1_PLAYBACK_CHANNELS);
 
 	/* headphone */
 	A_PUT_STEREO_OUTPUT(A_EXTOUT_HEADPHONE_L, A_EXTOUT_HEADPHONE_R, playback + SND_EMU10K1_PLAYBACK_CHANNELS);
@@ -1674,13 +1391,13 @@
 	spin_lock_init(&emu->fx8010.irq_lock);
 	INIT_LIST_HEAD(&emu->fx8010.gpr_ctl);
 
-	if ((icode = snd_kcalloc(sizeof(emu10k1_fx8010_code_t), GFP_KERNEL)) == NULL)
+	if ((icode = kcalloc(1, sizeof(*icode), GFP_KERNEL)) == NULL)
 		return -ENOMEM;
-	if ((controls = snd_kcalloc(sizeof(emu10k1_fx8010_control_gpr_t) * SND_EMU10K1_GPR_CONTROLS, GFP_KERNEL)) == NULL) {
+	if ((controls = kcalloc(SND_EMU10K1_GPR_CONTROLS, sizeof(emu10k1_fx8010_control_gpr_t), GFP_KERNEL)) == NULL) {
 		kfree(icode);
 		return -ENOMEM;
 	}
-	if ((ipcm = snd_kcalloc(sizeof(emu10k1_fx8010_pcm_t), GFP_KERNEL)) == NULL) {
+	if ((ipcm = kcalloc(1, sizeof(*ipcm), GFP_KERNEL)) == NULL) {
 		kfree(controls);
 		kfree(icode);
 		return -ENOMEM;
@@ -2297,7 +2014,7 @@
 
 static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigned int cmd, unsigned long arg)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, hw->private_data, return -ENXIO);
+	emu10k1_t *emu = hw->private_data;
 	emu10k1_fx8010_info_t *info;
 	emu10k1_fx8010_code_t *icode;
 	emu10k1_fx8010_pcm_t *ipcm;
@@ -2364,7 +2081,7 @@
 	case SNDRV_EMU10K1_IOCTL_PCM_PEEK:
 		if (emu->audigy)
 			return -EINVAL;
-		ipcm = (emu10k1_fx8010_pcm_t *)snd_kcalloc(sizeof(*ipcm), GFP_KERNEL);
+		ipcm = kcalloc(1, sizeof(*ipcm), GFP_KERNEL);
 		if (ipcm == NULL)
 			return -ENOMEM;
 		if (copy_from_user(ipcm, argp, sizeof(*ipcm))) {
diff -Nru a/sound/pci/emu10k1/emumixer.c b/sound/pci/emu10k1/emumixer.c
--- a/sound/pci/emu10k1/emumixer.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/emu10k1/emumixer.c	2004-07-27 18:28:33 -07:00
@@ -32,8 +32,6 @@
 #include <sound/core.h>
 #include <sound/emu10k1.h>
 
-#define chip_t emu10k1_t
-
 #define AC97_ID_STAC9758	0x83847658
 
 static int snd_emu10k1_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -421,7 +419,7 @@
  */
 static void snd_emu10k1_mixer_free_ac97(ac97_t *ac97)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, ac97->private_data, return);
+	emu10k1_t *emu = ac97->private_data;
 	emu->ac97 = NULL;
 }
 
diff -Nru a/sound/pci/emu10k1/emupcm.c b/sound/pci/emu10k1/emupcm.c
--- a/sound/pci/emu10k1/emupcm.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/emu10k1/emupcm.c	2004-07-27 18:28:32 -07:00
@@ -34,8 +34,6 @@
 #include <sound/core.h>
 #include <sound/emu10k1.h>
 
-#define chip_t emu10k1_t
-
 static void snd_emu10k1_pcm_interrupt(emu10k1_t *emu, emu10k1_voice_t *voice)
 {
 	emu10k1_pcm_t *epcm;
@@ -354,7 +352,7 @@
 {
 	emu10k1_t *emu = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	emu10k1_pcm_t *epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return -ENXIO);
+	emu10k1_pcm_t *epcm = runtime->private_data;
 	int err;
 
 	if ((err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params))) < 0)
@@ -383,7 +381,7 @@
 
 	if (runtime->private_data == NULL)
 		return 0;
-	epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return -ENXIO);
+	epcm = runtime->private_data;
 	if (epcm->extra) {
 		snd_emu10k1_voice_free(epcm->emu, epcm->extra);
 		epcm->extra = NULL;
@@ -409,7 +407,7 @@
 {
 	emu10k1_t *emu = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	emu10k1_pcm_t *epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return -ENXIO);
+	emu10k1_pcm_t *epcm = runtime->private_data;
 	unsigned int start_addr, end_addr;
 
 	start_addr = epcm->start_addr;
@@ -443,7 +441,7 @@
 {
 	emu10k1_t *emu = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	emu10k1_pcm_t *epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return -ENXIO);
+	emu10k1_pcm_t *epcm = runtime->private_data;
 	int idx;
 
 	snd_emu10k1_ptr_write(emu, epcm->capture_bs_reg, 0, 0);
@@ -452,7 +450,11 @@
 		snd_emu10k1_ptr_write(emu, ADCCR, 0, 0);
 		break;
 	case CAPTURE_EFX:
-		snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
+		if (emu->audigy) {
+			snd_emu10k1_ptr_write(emu, A_FXWC1, 0, 0);
+			snd_emu10k1_ptr_write(emu, A_FXWC2, 0, 0);
+		} else
+			snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
 		break;
 	default:
 		break;
@@ -565,7 +567,7 @@
 {
 	emu10k1_t *emu = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	emu10k1_pcm_t *epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return -ENXIO);
+	emu10k1_pcm_t *epcm = runtime->private_data;
 	unsigned long flags;
 	int result = 0;
 
@@ -602,7 +604,7 @@
 {
 	emu10k1_t *emu = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	emu10k1_pcm_t *epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return -ENXIO);
+	emu10k1_pcm_t *epcm = runtime->private_data;
 	unsigned long flags;
 	int result = 0;
 
@@ -618,7 +620,11 @@
 			snd_emu10k1_ptr_write(emu, ADCCR, 0, epcm->capture_cr_val);
 			break;
 		case CAPTURE_EFX:
-			snd_emu10k1_ptr_write(emu, FXWC, 0, epcm->capture_cr_val);
+			if (emu->audigy) {
+				snd_emu10k1_ptr_write(emu, A_FXWC1, 0, epcm->capture_cr_val);
+				snd_emu10k1_ptr_write(emu, A_FXWC2, 0, epcm->capture_cr_val2);
+			} else
+				snd_emu10k1_ptr_write(emu, FXWC, 0, epcm->capture_cr_val);
 			break;
 		default:	
 			break;
@@ -637,7 +643,11 @@
 			snd_emu10k1_ptr_write(emu, ADCCR, 0, 0);
 			break;
 		case CAPTURE_EFX:
-			snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
+			if (emu->audigy) {
+				snd_emu10k1_ptr_write(emu, A_FXWC1, 0, 0);
+				snd_emu10k1_ptr_write(emu, A_FXWC2, 0, 0);
+			} else
+				snd_emu10k1_ptr_write(emu, FXWC, 0, 0);
 			break;
 		default:
 			break;
@@ -654,7 +664,7 @@
 {
 	emu10k1_t *emu = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	emu10k1_pcm_t *epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return -ENXIO);
+	emu10k1_pcm_t *epcm = runtime->private_data;
 	unsigned int ptr;
 
 	if (!epcm->running)
@@ -681,7 +691,7 @@
 {
 	emu10k1_t *emu = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	emu10k1_pcm_t *epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return -ENXIO);
+	emu10k1_pcm_t *epcm = runtime->private_data;
 	unsigned int ptr;
 
 	if (!epcm->running)
@@ -767,10 +777,10 @@
 
 static void snd_emu10k1_pcm_free_substream(snd_pcm_runtime_t *runtime)
 {
-	emu10k1_pcm_t *epcm = snd_magic_cast(emu10k1_pcm_t, runtime->private_data, return);
+	emu10k1_pcm_t *epcm = runtime->private_data;
 
 	if (epcm)
-		snd_magic_kfree(epcm);
+		kfree(epcm);
 }
 
 static int snd_emu10k1_playback_open(snd_pcm_substream_t * substream)
@@ -781,7 +791,7 @@
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	int i, err;
 
-	epcm = snd_magic_kcalloc(emu10k1_pcm_t, 0, GFP_KERNEL);
+	epcm = kcalloc(1, sizeof(*epcm), GFP_KERNEL);
 	if (epcm == NULL)
 		return -ENOMEM;
 	epcm->emu = emu;
@@ -791,11 +801,11 @@
 	runtime->private_free = snd_emu10k1_pcm_free_substream;
 	runtime->hw = snd_emu10k1_playback;
 	if ((err = snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS)) < 0) {
-		snd_magic_kfree(epcm);
+		kfree(epcm);
 		return err;
 	}
 	if ((err = snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, 256, UINT_MAX)) < 0) {
-		snd_magic_kfree(epcm);
+		kfree(epcm);
 		return err;
 	}
 	mix = &emu->pcm_mixer[substream->number];
@@ -826,7 +836,7 @@
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	emu10k1_pcm_t *epcm;
 
-	epcm = snd_magic_kcalloc(emu10k1_pcm_t, 0, GFP_KERNEL);
+	epcm = kcalloc(1, sizeof(*epcm), GFP_KERNEL);
 	if (epcm == NULL)
 		return -ENOMEM;
 	epcm->emu = emu;
@@ -862,7 +872,7 @@
 	emu10k1_pcm_t *epcm;
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
-	epcm = snd_magic_kcalloc(emu10k1_pcm_t, 0, GFP_KERNEL);
+	epcm = kcalloc(1, sizeof(*epcm), GFP_KERNEL);
 	if (epcm == NULL)
 		return -ENOMEM;
 	epcm->emu = emu;
@@ -903,7 +913,7 @@
 	int nefx = emu->audigy ? 64 : 32;
 	int idx;
 
-	epcm = snd_magic_kcalloc(emu10k1_pcm_t, 0, GFP_KERNEL);
+	epcm = kcalloc(1, sizeof(*epcm), GFP_KERNEL);
 	if (epcm == NULL)
 		return -ENOMEM;
 	epcm->emu = emu;
@@ -970,7 +980,7 @@
 
 static void snd_emu10k1_pcm_free(snd_pcm_t *pcm)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, pcm->private_data, return);
+	emu10k1_t *emu = pcm->private_data;
 	emu->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1024,7 +1034,7 @@
 
 static void snd_emu10k1_pcm_mic_free(snd_pcm_t *pcm)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, pcm->private_data, return);
+	emu10k1_t *emu = pcm->private_data;
 	emu->pcm_mic = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1125,9 +1135,239 @@
 	.pointer =		snd_emu10k1_capture_pointer,
 };
 
+
+/* EFX playback */
+
+#define INITIAL_TRAM_SHIFT     14
+#define INITIAL_TRAM_POS(size) ((((size) / 2) - INITIAL_TRAM_SHIFT) - 1)
+
+static void snd_emu10k1_fx8010_playback_irq(emu10k1_t *emu, void *private_data)
+{
+	snd_pcm_substream_t *substream = private_data;
+	snd_pcm_period_elapsed(substream);
+}
+
+static void snd_emu10k1_fx8010_playback_tram_poke1(unsigned short *dst_left,
+						   unsigned short *dst_right,
+						   unsigned short *src,
+						   unsigned int count,
+						   unsigned int tram_shift)
+{
+	// printk("tram_poke1: dst_left = 0x%p, dst_right = 0x%p, src = 0x%p, count = 0x%x\n", dst_left, dst_right, src, count);
+	if ((tram_shift & 1) == 0) {
+		while (count--) {
+			*dst_left-- = *src++;
+			*dst_right-- = *src++;
+		}
+	} else {
+		while (count--) {
+			*dst_right-- = *src++;
+			*dst_left-- = *src++;
+		}
+	}
+}
+
+static void fx8010_pb_trans_copy(snd_pcm_substream_t *substream,
+				 snd_pcm_indirect_t *rec, size_t bytes)
+{
+	emu10k1_t *emu = snd_pcm_substream_chip(substream);
+	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
+	unsigned int tram_size = pcm->buffer_size;
+	unsigned short *src = (unsigned short *)(substream->runtime->dma_area + rec->sw_data);
+	unsigned int frames = bytes >> 2, count;
+	unsigned int tram_pos = pcm->tram_pos;
+	unsigned int tram_shift = pcm->tram_shift;
+
+	while (frames > tram_pos) {
+		count = tram_pos + 1;
+		snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages.area + tram_pos,
+						       (unsigned short *)emu->fx8010.etram_pages.area + tram_pos + tram_size / 2,
+						       src, count, tram_shift);
+		src += count * 2;
+		frames -= count;
+		tram_pos = (tram_size / 2) - 1;
+		tram_shift++;
+	}
+	snd_emu10k1_fx8010_playback_tram_poke1((unsigned short *)emu->fx8010.etram_pages.area + tram_pos,
+					       (unsigned short *)emu->fx8010.etram_pages.area + tram_pos + tram_size / 2,
+					       src, frames, tram_shift++);
+	tram_pos -= frames;
+	pcm->tram_pos = tram_pos;
+	pcm->tram_shift = tram_shift;
+}
+
+static int snd_emu10k1_fx8010_playback_transfer(snd_pcm_substream_t *substream)
+{
+	emu10k1_t *emu = snd_pcm_substream_chip(substream);
+	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
+
+	snd_pcm_indirect_playback_transfer(substream, &pcm->pcm_rec, fx8010_pb_trans_copy);
+	return 0;
+}
+
+static int snd_emu10k1_fx8010_playback_hw_params(snd_pcm_substream_t * substream,
+						 snd_pcm_hw_params_t * hw_params)
+{
+	return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
+}
+
+static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream)
+{
+	emu10k1_t *emu = snd_pcm_substream_chip(substream);
+	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
+	unsigned int i;
+
+	for (i = 0; i < pcm->channels; i++)
+		snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + 0x80 + pcm->etram[i], 0, 0);
+	snd_pcm_lib_free_pages(substream);
+	return 0;
+}
+
+static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream)
+{
+	emu10k1_t *emu = snd_pcm_substream_chip(substream);
+	snd_pcm_runtime_t *runtime = substream->runtime;
+	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
+	unsigned int i;
+	
+	// printk("prepare: etram_pages = 0x%p, dma_area = 0x%x, buffer_size = 0x%x (0x%x)\n", emu->fx8010.etram_pages, runtime->dma_area, runtime->buffer_size, runtime->buffer_size << 2);
+	memset(&pcm->pcm_rec, 0, sizeof(pcm->pcm_rec));
+	pcm->pcm_rec.hw_buffer_size = pcm->buffer_size * 2; /* byte size */
+	pcm->pcm_rec.sw_buffer_size = snd_pcm_lib_buffer_bytes(substream);
+	pcm->tram_pos = INITIAL_TRAM_POS(pcm->buffer_size);
+	pcm->tram_shift = 0;
+	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_running, 0, 0);	/* reset */
+	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 0);	/* reset */
+	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_size, 0, runtime->buffer_size);
+	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_ptr, 0, 0);		/* reset ptr number */
+	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_count, 0, runtime->period_size);
+	snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_tmpcount, 0, runtime->period_size);
+	for (i = 0; i < pcm->channels; i++)
+		snd_emu10k1_ptr_write(emu, TANKMEMADDRREGBASE + 0x80 + pcm->etram[i], 0, (TANKMEMADDRREG_READ|TANKMEMADDRREG_ALIGN) + i * (runtime->buffer_size / pcm->channels));
+	return 0;
+}
+
+static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream, int cmd)
+{
+	emu10k1_t *emu = snd_pcm_substream_chip(substream);
+	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
+	unsigned long flags;
+	int result = 0;
+
+	spin_lock_irqsave(&emu->reg_lock, flags);
+	switch (cmd) {
+	case SNDRV_PCM_TRIGGER_START:
+		/* follow thru */
+	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+#ifdef EMU10K1_SET_AC3_IEC958
+	{
+		int i;
+		for (i = 0; i < 3; i++) {
+			unsigned int bits;
+			bits = SPCS_CLKACCY_1000PPM | SPCS_SAMPLERATE_48 |
+			       SPCS_CHANNELNUM_LEFT | SPCS_SOURCENUM_UNSPEC | SPCS_GENERATIONSTATUS |
+			       0x00001200 | SPCS_EMPHASIS_NONE | SPCS_COPYRIGHT | SPCS_NOTAUDIODATA;
+			snd_emu10k1_ptr_write(emu, SPCS0 + i, 0, bits);
+		}
+	}
+#endif
+		result = snd_emu10k1_fx8010_register_irq_handler(emu, snd_emu10k1_fx8010_playback_irq, pcm->gpr_running, substream, &pcm->irq);
+		if (result < 0)
+			goto __err;
+		snd_emu10k1_fx8010_playback_transfer(substream);	/* roll the ball */
+		snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 1);
+		break;
+	case SNDRV_PCM_TRIGGER_STOP:
+	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+		snd_emu10k1_fx8010_unregister_irq_handler(emu, pcm->irq); pcm->irq = NULL;
+		snd_emu10k1_ptr_write(emu, emu->gpr_base + pcm->gpr_trigger, 0, 0);
+		pcm->tram_pos = INITIAL_TRAM_POS(pcm->buffer_size);
+		pcm->tram_shift = 0;
+		break;
+	default:
+		result = -EINVAL;
+		break;
+	}
+      __err:
+	spin_unlock_irqrestore(&emu->reg_lock, flags);
+	return result;
+}
+
+static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t * substream)
+{
+	emu10k1_t *emu = snd_pcm_substream_chip(substream);
+	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
+	size_t ptr; /* byte pointer */
+
+	if (!snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_trigger, 0))
+		return 0;
+	ptr = snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_ptr, 0) << 2;
+	return snd_pcm_indirect_playback_pointer(substream, &pcm->pcm_rec, ptr);
+}
+
+static snd_pcm_hardware_t snd_emu10k1_fx8010_playback =
+{
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+				 /* SNDRV_PCM_INFO_MMAP_VALID | */ SNDRV_PCM_INFO_PAUSE),
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_48000,
+	.rate_min =		48000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		1,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	1024,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
+};
+
+static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream)
+{
+	emu10k1_t *emu = snd_pcm_substream_chip(substream);
+	snd_pcm_runtime_t *runtime = substream->runtime;
+	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
+
+	runtime->hw = snd_emu10k1_fx8010_playback;
+	runtime->hw.channels_min = runtime->hw.channels_max = pcm->channels;
+	runtime->hw.period_bytes_max = (pcm->buffer_size * 2) / 2;
+	spin_lock(&emu->reg_lock);
+	if (pcm->valid == 0) {
+		spin_unlock(&emu->reg_lock);
+		return -ENODEV;
+	}
+	pcm->opened = 1;
+	spin_unlock(&emu->reg_lock);
+	return 0;
+}
+
+static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream)
+{
+	emu10k1_t *emu = snd_pcm_substream_chip(substream);
+	snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number];
+
+	spin_lock(&emu->reg_lock);
+	pcm->opened = 0;
+	spin_unlock(&emu->reg_lock);
+	return 0;
+}
+
+static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = {
+	.open =			snd_emu10k1_fx8010_playback_open,
+	.close =		snd_emu10k1_fx8010_playback_close,
+	.ioctl =		snd_pcm_lib_ioctl,
+	.hw_params =		snd_emu10k1_fx8010_playback_hw_params,
+	.hw_free =		snd_emu10k1_fx8010_playback_hw_free,
+	.prepare =		snd_emu10k1_fx8010_playback_prepare,
+	.trigger =		snd_emu10k1_fx8010_playback_trigger,
+	.pointer =		snd_emu10k1_fx8010_playback_pointer,
+	.ack =			snd_emu10k1_fx8010_playback_transfer,
+};
+
 static void snd_emu10k1_pcm_efx_free(snd_pcm_t *pcm)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, pcm->private_data, return);
+	emu10k1_t *emu = pcm->private_data;
 	emu->pcm_efx = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1140,12 +1380,13 @@
 	if (rpcm)
 		*rpcm = NULL;
 
-	if ((err = snd_pcm_new(emu->card, "emu10k1 efx", device, 0, 1, &pcm)) < 0)
+	if ((err = snd_pcm_new(emu->card, "emu10k1 efx", device, 8, 1, &pcm)) < 0)
 		return err;
 
 	pcm->private_data = emu;
 	pcm->private_free = snd_emu10k1_pcm_efx_free;
 
+	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_emu10k1_fx8010_playback_ops);
 	snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_emu10k1_capture_efx_ops);
 
 	pcm->info_flags = 0;
diff -Nru a/sound/pci/emu10k1/emuproc.c b/sound/pci/emu10k1/emuproc.c
--- a/sound/pci/emu10k1/emuproc.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/emu10k1/emuproc.c	2004-07-27 18:28:33 -07:00
@@ -71,31 +71,32 @@
 static void snd_emu10k1_proc_read(snd_info_entry_t *entry, 
 				  snd_info_buffer_t * buffer)
 {
-	static char *outputs[32] = {
-		/* 00 */ "PCM Left",
-		/* 01 */ "PCM Right",
-		/* 02 */ "PCM Surround Left",
-		/* 03 */ "PCM Surround Right",
-		/* 04 */ "MIDI Left",
-		/* 05 */ "MIDI Right",
-		/* 06 */ "PCM Center",
-		/* 07 */ "PCM LFE",
-		/* 08 */ "???",
-		/* 09 */ "???",
-		/* 10 */ "???",
-		/* 11 */ "???",
-		/* 12 */ "MIDI Reverb",
-		/* 13 */ "MIDI Chorus",
-		/* 14 */ "???",
+	/* FIXME - output names are in emufx.c too */
+	static char *creative_outs[32] = {
+		/* 00 */ "AC97 Left",
+		/* 01 */ "AC97 Right",
+		/* 02 */ "Optical IEC958 Left",
+		/* 03 */ "Optical IEC958 Right",
+		/* 04 */ "Center",
+		/* 05 */ "LFE",
+		/* 06 */ "Headphone Left",
+		/* 07 */ "Headphone Right",
+		/* 08 */ "Surround Left",
+		/* 09 */ "Surround Right",
+		/* 10 */ "PCM Capture Left",
+		/* 11 */ "PCM Capture Right",
+		/* 12 */ "MIC Capture",
+		/* 13 */ "AC97 Surround Left",
+		/* 14 */ "AC97 Surround Right",
 		/* 15 */ "???",
 		/* 16 */ "???",
-		/* 17 */ "???",
-		/* 18 */ "ADC Left / CDROM S/PDIF Left",
-		/* 19 */ "ADC Right / CDROM S/PDIF Right",
-		/* 20 */ "MIC / Zoom Video Left",
-		/* 21 */ "Zoom Video Right",
-		/* 22 */ "S/PDIF Left",
-		/* 23 */ "S/PDIF Right",
+		/* 17 */ "Analog Center",
+		/* 18 */ "Analog LFE",
+		/* 19 */ "???",
+		/* 20 */ "???",
+		/* 21 */ "???",
+		/* 22 */ "???",
+		/* 23 */ "???",
 		/* 24 */ "???",
 		/* 25 */ "???",
 		/* 26 */ "???",
@@ -105,9 +106,78 @@
 		/* 30 */ "???",
 		/* 31 */ "???"
 	};
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, entry->private_data, return);
+
+	static char *audigy_outs[64] = {
+		/* 00 */ "Digital Front Left",
+		/* 01 */ "Digital Front Right",
+		/* 02 */ "Digital Center",
+		/* 03 */ "Digital LEF",
+		/* 04 */ "Headphone Left",
+		/* 05 */ "Headphone Right",
+		/* 06 */ "Digital Rear Left",
+		/* 07 */ "Digital Rear Right",
+		/* 08 */ "Front Left",
+		/* 09 */ "Front Right",
+		/* 10 */ "Center",
+		/* 11 */ "LFE",
+		/* 12 */ "???",
+		/* 13 */ "???",
+		/* 14 */ "Rear Left",
+		/* 15 */ "Rear Right",
+		/* 16 */ "AC97 Front Left",
+		/* 17 */ "AC97 Front Right",
+		/* 18 */ "ADC Caputre Left",
+		/* 19 */ "ADC Capture Right",
+		/* 20 */ "???",
+		/* 21 */ "???",
+		/* 22 */ "???",
+		/* 23 */ "???",
+		/* 24 */ "???",
+		/* 25 */ "???",
+		/* 26 */ "???",
+		/* 27 */ "???",
+		/* 28 */ "???",
+		/* 29 */ "???",
+		/* 30 */ "???",
+		/* 31 */ "???",
+		/* 32 */ "???",
+		/* 33 */ "???",
+		/* 34 */ "???",
+		/* 35 */ "???",
+		/* 36 */ "???",
+		/* 37 */ "???",
+		/* 38 */ "???",
+		/* 39 */ "???",
+		/* 40 */ "???",
+		/* 41 */ "???",
+		/* 42 */ "???",
+		/* 43 */ "???",
+		/* 44 */ "???",
+		/* 45 */ "???",
+		/* 46 */ "???",
+		/* 47 */ "???",
+		/* 48 */ "???",
+		/* 49 */ "???",
+		/* 50 */ "???",
+		/* 51 */ "???",
+		/* 52 */ "???",
+		/* 53 */ "???",
+		/* 54 */ "???",
+		/* 55 */ "???",
+		/* 56 */ "???",
+		/* 57 */ "???",
+		/* 58 */ "???",
+		/* 59 */ "???",
+		/* 60 */ "???",
+		/* 61 */ "???",
+		/* 62 */ "???",
+		/* 33 */ "???"
+	};
+
+	emu10k1_t *emu = entry->private_data;
 	unsigned int val;
 	int nefx = emu->audigy ? 64 : 32;
+	char **outputs = emu->audigy ? audigy_outs : creative_outs;
 	int idx;
 	
 	snd_iprintf(buffer, "EMU10K1\n\n");
@@ -135,7 +205,7 @@
 	snd_iprintf(buffer, "\nCaptured FX Outputs   :\n");
 	for (idx = 0; idx < nefx; idx++) {
 		if (emu->efx_voices_mask[idx/32] & (1 << (idx%32)))
-			snd_iprintf(buffer, "  Output %02i [%s]\n", idx, outputs[idx%32]);
+			snd_iprintf(buffer, "  Output %02i [%s]\n", idx, outputs[idx]);
 	}
 	snd_iprintf(buffer, "\nAll FX Outputs        :\n");
 	for (idx = 0; idx < 32; idx++)
@@ -155,7 +225,7 @@
 				        snd_info_buffer_t * buffer)
 {
 	u32 pc;
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, entry->private_data, return);
+	emu10k1_t *emu = entry->private_data;
 
 	snd_iprintf(buffer, "FX8010 Instruction List '%s'\n", emu->fx8010.name);
 	snd_iprintf(buffer, "  Code dump      :\n");
@@ -194,7 +264,7 @@
 				    struct file *file, char __user *buf, long count)
 {
 	long size;
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, entry->private_data, return -ENXIO);
+	emu10k1_t *emu = entry->private_data;
 	unsigned int offset;
 	
 	if (!strcmp(entry->name, "fx8010_tram_addr")) {
diff -Nru a/sound/pci/emu10k1/io.c b/sound/pci/emu10k1/io.c
--- a/sound/pci/emu10k1/io.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/emu10k1/io.c	2004-07-27 18:28:32 -07:00
@@ -231,7 +231,7 @@
 
 unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, ac97->private_data, return -ENXIO);
+	emu10k1_t *emu = ac97->private_data;
 	unsigned long flags;
 	unsigned short val;
 
@@ -244,7 +244,7 @@
 
 void snd_emu10k1_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short data)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, ac97->private_data, return);
+	emu10k1_t *emu = ac97->private_data;
 	unsigned long flags;
 
 	spin_lock_irqsave(&emu->emu_lock, flags);
diff -Nru a/sound/pci/emu10k1/irq.c b/sound/pci/emu10k1/irq.c
--- a/sound/pci/emu10k1/irq.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/emu10k1/irq.c	2004-07-27 18:28:33 -07:00
@@ -32,7 +32,7 @@
 
 irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	emu10k1_t *emu = snd_magic_cast(emu10k1_t, dev_id, return IRQ_NONE);
+	emu10k1_t *emu = dev_id;
 	unsigned int status, orig_status;
 	int handled = 0;
 
diff -Nru a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c
--- a/sound/pci/emu10k1/memory.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/emu10k1/memory.c	2004-07-27 18:28:33 -07:00
@@ -291,7 +291,7 @@
 snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	struct snd_sg_buf *sgbuf = runtime->dma_private;
+	struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream);
 	snd_util_memhdr_t *hdr;
 	emu10k1_memblk_t *blk;
 	int page, err, idx;
diff -Nru a/sound/pci/ens1370.c b/sound/pci/ens1370.c
--- a/sound/pci/ens1370.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ens1370.c	2004-07-27 18:28:33 -07:00
@@ -40,8 +40,6 @@
 #include <sound/initval.h>
 #include <sound/asoundef.h>
 
-#define chip_t ensoniq_t
-
 #ifndef CHIP1371
 #undef CHIP1370
 #define CHIP1370
@@ -56,15 +54,14 @@
 
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, Thomas Sailer <sailer@ife.ee.ethz.ch>");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 #ifdef CHIP1370
 MODULE_DESCRIPTION("Ensoniq AudioPCI ES1370");
-MODULE_DEVICES("{{Ensoniq,AudioPCI-97 ES1370},"
+MODULE_SUPPORTED_DEVICE("{{Ensoniq,AudioPCI-97 ES1370},"
 	        "{Creative Labs,SB PCI64/128 (ES1370)}}");
 #endif
 #ifdef CHIP1371
 MODULE_DESCRIPTION("Ensoniq/Creative AudioPCI ES1371+");
-MODULE_DEVICES("{{Ensoniq,AudioPCI ES1371/73},"
+MODULE_SUPPORTED_DEVICE("{{Ensoniq,AudioPCI ES1371/73},"
 		"{Ensoniq,AudioPCI ES1373},"
 		"{Creative Labs,Ectiva EV1938},"
 		"{Creative Labs,SB PCI64/128 (ES1371/73)},"
@@ -90,22 +87,17 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Ensoniq AudioPCI soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Ensoniq AudioPCI soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Ensoniq AudioPCI soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 #ifdef SUPPORT_JOYSTICK
 #ifdef CHIP1371
 module_param_array(joystick_port, int, boot_devs, 0444);
 MODULE_PARM_DESC(joystick_port, "Joystick port address.");
-MODULE_PARM_SYNTAX(joystick_port, SNDRV_ENABLED ",allows:{{0},{1},{0x200},{0x208},{0x210},{0x218}},dialog:list");
 #else
 module_param_array(joystick, bool, boot_devs, 0444);
 MODULE_PARM_DESC(joystick, "Enable joystick.");
-MODULE_PARM_SYNTAX(joystick, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 #endif
 #endif /* SUPPORT_JOYSTICK */
 
@@ -581,7 +573,7 @@
 static void snd_es1370_codec_write(ak4531_t *ak4531,
 				   unsigned short reg, unsigned short val)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, ak4531->private_data, return);
+	ensoniq_t *ensoniq = ak4531->private_data;
 	unsigned long flags;
 	unsigned long end_time = jiffies + HZ / 10;
 
@@ -611,7 +603,7 @@
 static void snd_es1371_codec_write(ac97_t *ac97,
 				   unsigned short reg, unsigned short val)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, ac97->private_data, return);
+	ensoniq_t *ensoniq = ac97->private_data;
 	unsigned long flags;
 	unsigned int t, x;
 
@@ -649,7 +641,7 @@
 static unsigned short snd_es1371_codec_read(ac97_t *ac97,
 					    unsigned short reg)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, ac97->private_data, return -ENXIO);
+	ensoniq_t *ensoniq = ac97->private_data;
 	unsigned long flags;
 	unsigned int t, x, fail = 0;
 
@@ -1214,7 +1206,7 @@
 
 static void snd_ensoniq_pcm_free(snd_pcm_t *pcm)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, pcm->private_data, return);
+	ensoniq_t *ensoniq = pcm->private_data;
 	ensoniq->pcm1 = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1261,7 +1253,7 @@
 
 static void snd_ensoniq_pcm_free2(snd_pcm_t *pcm)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, pcm->private_data, return);
+	ensoniq_t *ensoniq = pcm->private_data;
 	ensoniq->pcm2 = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1565,7 +1557,7 @@
 
 static void snd_ensoniq_mixer_free_ac97(ac97_t *ac97)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, ac97->private_data, return);
+	ensoniq_t *ensoniq = ac97->private_data;
 	ensoniq->u.es1371.ac97 = NULL;
 }
 
@@ -1703,7 +1695,7 @@
 
 static void snd_ensoniq_mixer_free_ak4531(ak4531_t *ak4531)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, ak4531->private_data, return);
+	ensoniq_t *ensoniq = ak4531->private_data;
 	ensoniq->u.es1370.ak4531 = NULL;
 }
 
@@ -1785,7 +1777,7 @@
 static void snd_ensoniq_proc_read(snd_info_entry_t *entry, 
 				  snd_info_buffer_t * buffer)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, entry->private_data, return);
+	ensoniq_t *ensoniq = entry->private_data;
 
 #ifdef CHIP1370
 	snd_iprintf(buffer, "Ensoniq AudioPCI ES1370\n\n");
@@ -1841,13 +1833,13 @@
 	}
 	if (ensoniq->irq >= 0)
 		free_irq(ensoniq->irq, (void *)ensoniq);
-	snd_magic_kfree(ensoniq);
+	kfree(ensoniq);
 	return 0;
 }
 
 static int snd_ensoniq_dev_free(snd_device_t *device)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, device->device_data, return -ENXIO);
+	ensoniq_t *ensoniq = device->device_data;
 	return snd_ensoniq_free(ensoniq);
 }
 
@@ -1894,7 +1886,7 @@
 	*rensoniq = NULL;
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
-	ensoniq = snd_magic_kcalloc(ensoniq_t, 0, GFP_KERNEL);
+	ensoniq = kcalloc(1, sizeof(*ensoniq), GFP_KERNEL);
 	if (ensoniq == NULL)
 		return -ENOMEM;
 	spin_lock_init(&ensoniq->reg_lock);
@@ -2075,7 +2067,7 @@
 static int snd_ensoniq_midi_input_open(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, substream->rmidi->private_data, return -ENXIO);
+	ensoniq_t *ensoniq = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&ensoniq->reg_lock, flags);
 	ensoniq->uartm |= ES_MODE_INPUT;
@@ -2092,7 +2084,7 @@
 static int snd_ensoniq_midi_input_close(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, substream->rmidi->private_data, return -ENXIO);
+	ensoniq_t *ensoniq = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&ensoniq->reg_lock, flags);
 	if (!(ensoniq->uartm & ES_MODE_OUTPUT)) {
@@ -2110,7 +2102,7 @@
 static int snd_ensoniq_midi_output_open(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, substream->rmidi->private_data, return -ENXIO);
+	ensoniq_t *ensoniq = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&ensoniq->reg_lock, flags);
 	ensoniq->uartm |= ES_MODE_OUTPUT;
@@ -2127,7 +2119,7 @@
 static int snd_ensoniq_midi_output_close(snd_rawmidi_substream_t * substream)
 {
 	unsigned long flags;
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, substream->rmidi->private_data, return -ENXIO);
+	ensoniq_t *ensoniq = substream->rmidi->private_data;
 
 	spin_lock_irqsave(&ensoniq->reg_lock, flags);
 	if (!(ensoniq->uartm & ES_MODE_INPUT)) {
@@ -2145,7 +2137,7 @@
 static void snd_ensoniq_midi_input_trigger(snd_rawmidi_substream_t * substream, int up)
 {
 	unsigned long flags;
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, substream->rmidi->private_data, return);
+	ensoniq_t *ensoniq = substream->rmidi->private_data;
 	int idx;
 
 	spin_lock_irqsave(&ensoniq->reg_lock, flags);
@@ -2169,7 +2161,7 @@
 static void snd_ensoniq_midi_output_trigger(snd_rawmidi_substream_t * substream, int up)
 {
 	unsigned long flags;
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, substream->rmidi->private_data, return);
+	ensoniq_t *ensoniq = substream->rmidi->private_data;
 	unsigned char byte;
 
 	spin_lock_irqsave(&ensoniq->reg_lock, flags);
@@ -2240,7 +2232,7 @@
 
 static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	ensoniq_t *ensoniq = snd_magic_cast(ensoniq_t, dev_id, return IRQ_NONE);
+	ensoniq_t *ensoniq = dev_id;
 	unsigned int status, sctrl;
 
 	if (ensoniq == NULL)
diff -Nru a/sound/pci/es1938.c b/sound/pci/es1938.c
--- a/sound/pci/es1938.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/es1938.c	2004-07-27 18:28:33 -07:00
@@ -54,6 +54,7 @@
 #include <linux/slab.h>
 #include <linux/gameport.h>
 #include <linux/moduleparam.h>
+#include <linux/delay.h>
 #include <sound/core.h>
 #include <sound/control.h>
 #include <sound/pcm.h>
@@ -63,13 +64,10 @@
 
 #include <asm/io.h>
 
-#define chip_t es1938_t
-
 MODULE_AUTHOR("Jaromir Koutek <miri@punknet.cz>");
 MODULE_DESCRIPTION("ESS Solo-1");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ESS,ES1938},"
+MODULE_SUPPORTED_DEVICE("{{ESS,ES1938},"
                 "{ESS,ES1946},"
                 "{ESS,ES1969},"
 		"{TerraTec,128i PCI}}");
@@ -88,13 +86,10 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for ESS Solo-1 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ESS Solo-1 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable ESS Solo-1 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 
 #define SLIO_REG(chip, x) ((chip)->io_port + ESSIO_REG_##x)
 
@@ -573,7 +568,12 @@
 	case SNDRV_PCM_TRIGGER_START:
 		/* According to the documentation this should be:
 		   0x13 but that value may randomly swap stereo channels */
+                snd_es1938_mixer_write(chip, ESSSB_IREG_AUDIO2CONTROL1, 0x92);
+                udelay(10);
 		snd_es1938_mixer_write(chip, ESSSB_IREG_AUDIO2CONTROL1, 0x93);
+                /* This two stage init gives the FIFO -> DAC connection time to
+                 * settle before first data from DMA flows in.  This should ensure
+                 * no swapping of stereo channels.  Report a bug if otherwise :-) */
 		outb(0x0a, SLIO_REG(chip, AUDIO2MODE));
 		chip->active |= DAC2;
 		break;
@@ -690,6 +690,8 @@
 
 	chip->dma2_shift = 2 - mono - is8;
 
+        snd_es1938_reset_fifo(chip);
+
 	/* set clock and counters */
         snd_es1938_rate_set(chip, substream, DAC2);
 
@@ -874,9 +876,9 @@
 	.rate_max =		48000,
 	.channels_min =		1,
 	.channels_max =		2,
-	.buffer_bytes_max =	65536,
+        .buffer_bytes_max =	0x8000,       /* DMA controller screws on higher values */
 	.period_bytes_min =	64,
-	.period_bytes_max =	65536,
+	.period_bytes_max =	0x8000,
 	.periods_min =		1,
 	.periods_max =		1024,
 	.fifo_size =		256,
@@ -896,9 +898,9 @@
 	.rate_max =		48000,
 	.channels_min =		1,
 	.channels_max =		2,
-	.buffer_bytes_max =	65536,
+        .buffer_bytes_max =	0x8000,       /* DMA controller screws on higher values */
 	.period_bytes_min =	64,
-	.period_bytes_max =	65536,
+	.period_bytes_max =	0x8000,
 	.periods_min =		1,
 	.periods_max =		1024,
 	.fifo_size =		256,
@@ -1129,7 +1131,7 @@
 
 static void snd_es1938_hwv_free(snd_kcontrol_t *kcontrol)
 {
-	es1938_t *chip = snd_magic_cast(es1938_t, _snd_kcontrol_chip(kcontrol), return);
+	es1938_t *chip = snd_kcontrol_chip(kcontrol);
 	chip->master_volume = NULL;
 	chip->master_switch = NULL;
 	chip->hw_volume = NULL;
@@ -1370,13 +1372,13 @@
 	}
 	if (chip->irq >= 0)
 		free_irq(chip->irq, (void *)chip);
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_es1938_dev_free(snd_device_t *device)
 {
-	es1938_t *chip = snd_magic_cast(es1938_t, device->device_data, return -ENXIO);
+	es1938_t *chip = device->device_data;
 	return snd_es1938_free(chip);
 }
 
@@ -1402,7 +1404,7 @@
                 return -ENXIO;
         }
 
-	chip = snd_magic_kcalloc(es1938_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
@@ -1492,7 +1494,7 @@
  * -------------------------------------------------------------------- */
 static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	es1938_t *chip = snd_magic_cast(es1938_t, dev_id, return IRQ_NONE);
+	es1938_t *chip = dev_id;
 	unsigned char status, audiostatus;
 	int handled = 0;
 
diff -Nru a/sound/pci/es1968.c b/sound/pci/es1968.c
--- a/sound/pci/es1968.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/es1968.c	2004-07-27 18:28:33 -07:00
@@ -109,15 +109,12 @@
 #include <sound/ac97_codec.h>
 #include <sound/initval.h>
 
-#define chip_t es1968_t
-
 #define CARD_NAME "ESS Maestro1/2"
 #define DRIVER_NAME "ES1968"
 
 MODULE_DESCRIPTION("ESS Maestro");
-MODULE_CLASSES("{sound}");
 MODULE_LICENSE("GPL");
-MODULE_DEVICES("{{ESS,Maestro 2e},"
+MODULE_SUPPORTED_DEVICE("{{ESS,Maestro 2e},"
 		"{ESS,Maestro 2},"
 		"{ESS,Maestro 1},"
 		"{TerraTec,DMX}}");
@@ -142,35 +139,25 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(total_bufsize, int, boot_devs, 0444);
 MODULE_PARM_DESC(total_bufsize, "Total buffer size in kB.");
-MODULE_PARM_SYNTAX(total_bufsize, SNDRV_ENABLED ",allows:{{1,4096}},skill:advanced");
 module_param_array(pcm_substreams_p, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_substreams_p, "PCM Playback substreams for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(pcm_substreams_p, SNDRV_ENABLED ",allows:{{1,8}}");
 module_param_array(pcm_substreams_c, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_substreams_c, "PCM Capture substreams for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(pcm_substreams_c, SNDRV_ENABLED ",allows:{{0,8}}");
 module_param_array(clock, int, boot_devs, 0444);
 MODULE_PARM_DESC(clock, "Clock on " CARD_NAME " soundcard.  (0 = auto-detect)");
-MODULE_PARM_SYNTAX(clock, SNDRV_ENABLED);
 module_param_array(use_pm, int, boot_devs, 0444);
 MODULE_PARM_DESC(use_pm, "Toggle power-management.  (0 = off, 1 = on, 2 = auto)");
-MODULE_PARM_SYNTAX(use_pm, SNDRV_ENABLED ",allows:{{0,1,2}},default:2,skill:advanced");
 module_param_array(enable_mpu, int, boot_devs, 0444);
 MODULE_PARM_DESC(enable_mpu, "Enable MPU401.  (0 = off, 1 = on, 2 = auto)");
-MODULE_PARM_SYNTAX(enable_mpu, SNDRV_ENABLED ",allows:{{0,2}},default:2");
 #ifdef SUPPORT_JOYSTICK
 module_param_array(joystick, bool, boot_devs, 0444);
 MODULE_PARM_DESC(joystick, "Enable joystick.");
-MODULE_PARM_SYNTAX(joystick, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 #endif
 
 
@@ -522,9 +509,7 @@
 
 /* DMA Hack! */
 struct snd_esm_memory {
-	char *buf;
-	unsigned long addr;
-	int size;
+	struct snd_dma_buffer buf;
 	int empty;	/* status */
 	struct list_head list;
 };
@@ -696,7 +681,7 @@
 
 static void snd_es1968_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val)
 {
-	es1968_t *chip = snd_magic_cast(es1968_t, ac97->private_data, return);
+	es1968_t *chip = ac97->private_data;
 	unsigned long flags;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -715,7 +700,7 @@
 static unsigned short snd_es1968_ac97_read(ac97_t *ac97, unsigned short reg)
 {
 	u16 data = 0;
-	es1968_t *chip = snd_magic_cast(es1968_t, ac97->private_data, return 0);
+	es1968_t *chip = ac97->private_data;
 	unsigned long flags;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -1078,10 +1063,10 @@
 	for (channel = 0; channel <= high_apu; channel++) {
 		apu = es->apu[channel];
 
-		snd_es1968_program_wavecache(chip, es, channel, es->memory->addr, 0);
+		snd_es1968_program_wavecache(chip, es, channel, es->memory->buf.addr, 0);
 
 		/* Offset to PCMBAR */
-		pa = es->memory->addr;
+		pa = es->memory->buf.addr;
 		pa -= chip->dma.addr;
 		pa >>= 1;	/* words */
 
@@ -1230,20 +1215,20 @@
 	/* input mixer (left/mono) */
 	/* parallel in crap, see maestro reg 0xC [8-11] */
 	init_capture_apu(chip, es, 2,
-			 es->mixbuf->addr, ESM_MIXBUF_SIZE/4, /* in words */
+			 es->mixbuf->buf.addr, ESM_MIXBUF_SIZE/4, /* in words */
 			 ESM_APU_INPUTMIXER, 0x14);
 	/* SRC (left/mono); get input from inputing apu */
-	init_capture_apu(chip, es, 0, es->memory->addr, size,
+	init_capture_apu(chip, es, 0, es->memory->buf.addr, size,
 			 ESM_APU_SRCONVERTOR, es->apu[2]);
 	if (es->fmt & ESS_FMT_STEREO) {
 		/* input mixer (right) */
 		init_capture_apu(chip, es, 3,
-				 es->mixbuf->addr + ESM_MIXBUF_SIZE/2,
+				 es->mixbuf->buf.addr + ESM_MIXBUF_SIZE/2,
 				 ESM_MIXBUF_SIZE/4, /* in words */
 				 ESM_APU_INPUTMIXER, 0x15);
 		/* SRC (right) */
 		init_capture_apu(chip, es, 1,
-				 es->memory->addr + size*2, size,
+				 es->memory->buf.addr + size*2, size,
 				 ESM_APU_SRCONVERTOR, es->apu[3]);
 	}
 
@@ -1281,7 +1266,7 @@
 {
 	es1968_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	esschan_t *es = snd_magic_cast(esschan_t, runtime->private_data, return -ENXIO);
+	esschan_t *es = runtime->private_data;
 
 	es->dma_size = snd_pcm_lib_buffer_bytes(substream);
 	es->frag_size = snd_pcm_lib_period_bytes(substream);
@@ -1312,7 +1297,7 @@
 static int snd_es1968_pcm_trigger(snd_pcm_substream_t *substream, int cmd)
 {
 	es1968_t *chip = snd_pcm_substream_chip(substream);
-	esschan_t *es = snd_magic_cast(esschan_t, substream->runtime->private_data, return -ENXIO);
+	esschan_t *es = substream->runtime->private_data;
 	unsigned long flags;
 
 	spin_lock_irqsave(&chip->substream_lock, flags);
@@ -1343,7 +1328,7 @@
 static snd_pcm_uframes_t snd_es1968_pcm_pointer(snd_pcm_substream_t *substream)
 {
 	es1968_t *chip = snd_pcm_substream_chip(substream);
-	esschan_t *es = snd_magic_cast(esschan_t, substream->runtime->private_data, return -ENXIO);
+	esschan_t *es = substream->runtime->private_data;
 	unsigned int ptr;
 
 	ptr = snd_es1968_get_dma_ptr(chip, es) << es->wav_shift;
@@ -1408,8 +1393,8 @@
 	down(&chip->memory_mutex);
 	list_for_each(p, &chip->buf_list) {
 		esm_memory_t *buf = list_entry(p, esm_memory_t, list);
-		if (buf->empty && buf->size > max_size)
-			max_size = buf->size;
+		if (buf->empty && buf->buf.bytes > max_size)
+			max_size = buf->buf.bytes;
 	}
 	up(&chip->memory_mutex);
 	if (max_size >= 128*1024)
@@ -1427,24 +1412,25 @@
 	down(&chip->memory_mutex);
 	list_for_each(p, &chip->buf_list) {
 		buf = list_entry(p, esm_memory_t, list);
-		if (buf->empty && buf->size >= size)
+		if (buf->empty && buf->buf.bytes >= size)
 			goto __found;
 	}
 	up(&chip->memory_mutex);
 	return NULL;
 
 __found:
-	if (buf->size > size) {
+	if (buf->buf.bytes > size) {
 		esm_memory_t *chunk = kmalloc(sizeof(*chunk), GFP_KERNEL);
 		if (chunk == NULL) {
 			up(&chip->memory_mutex);
 			return NULL;
 		}
-		chunk->size = buf->size - size;
-		chunk->buf = buf->buf + size;
-		chunk->addr = buf->addr + size;
+		chunk->buf = buf->buf;
+		chunk->buf.bytes -= size;
+		chunk->buf.area += size;
+		chunk->buf.addr += size;
 		chunk->empty = 1;
-		buf->size = size;
+		buf->buf.bytes = size;
 		list_add(&chunk->list, &buf->list);
 	}
 	buf->empty = 0;
@@ -1462,7 +1448,7 @@
 	if (buf->list.prev != &chip->buf_list) {
 		chunk = list_entry(buf->list.prev, esm_memory_t, list);
 		if (chunk->empty) {
-			chunk->size += buf->size;
+			chunk->buf.bytes += buf->buf.bytes;
 			list_del(&buf->list);
 			kfree(buf);
 			buf = chunk;
@@ -1471,7 +1457,7 @@
 	if (buf->list.next != &chip->buf_list) {
 		chunk = list_entry(buf->list.next, esm_memory_t, list);
 		if (chunk->empty) {
-			buf->size += chunk->size;
+			buf->buf.bytes += chunk->buf.bytes;
 			list_del(&chunk->list);
 			kfree(chunk);
 		}
@@ -1525,9 +1511,10 @@
 		return -ENOMEM;
 	}
 	memset(chip->dma.area, 0, ESM_MEM_ALIGN);
-	chunk->buf = chip->dma.area + ESM_MEM_ALIGN;
-	chunk->addr = chip->dma.addr + ESM_MEM_ALIGN;
-	chunk->size = chip->dma.bytes - ESM_MEM_ALIGN;
+	chunk->buf = chip->dma;
+	chunk->buf.area += ESM_MEM_ALIGN;
+	chunk->buf.addr += ESM_MEM_ALIGN;
+	chunk->buf.bytes -= ESM_MEM_ALIGN;
 	chunk->empty = 1;
 	list_add(&chunk->list, &chip->buf_list);
 
@@ -1541,11 +1528,11 @@
 {
 	es1968_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	esschan_t *chan = snd_magic_cast(esschan_t, runtime->private_data, return -ENXIO);
+	esschan_t *chan = runtime->private_data;
 	int size = params_buffer_bytes(hw_params);
 
 	if (chan->memory) {
-		if (chan->memory->size >= size) {
+		if (chan->memory->buf.bytes >= size) {
 			runtime->dma_bytes = size;
 			return 0;
 		}
@@ -1556,9 +1543,7 @@
 		// snd_printd("cannot allocate dma buffer: size = %d\n", size);
 		return -ENOMEM;
 	}
-	runtime->dma_bytes = size;
-	runtime->dma_area = chan->memory->buf;
-	runtime->dma_addr = chan->memory->addr;
+	snd_pcm_set_runtime_buffer(substream, &chan->memory->buf);
 	return 1; /* area was changed */
 }
 
@@ -1571,7 +1556,7 @@
 	
 	if (runtime->private_data == NULL)
 		return 0;
-	chan = snd_magic_cast(esschan_t, runtime->private_data, return -ENXIO);
+	chan = runtime->private_data;
 	if (chan->memory) {
 		snd_es1968_free_memory(chip, chan->memory);
 		chan->memory = NULL;
@@ -1623,7 +1608,7 @@
 	if (apu1 < 0)
 		return apu1;
 
-	es = snd_magic_kcalloc(esschan_t, 0, GFP_KERNEL);
+	es = kcalloc(1, sizeof(*es), GFP_KERNEL);
 	if (!es) {
 		snd_es1968_free_apu_pair(chip, apu1);
 		return -ENOMEM;
@@ -1637,6 +1622,8 @@
 	es->substream = substream;
 	es->mode = ESM_MODE_PLAY;
 
+	substream->dma_device = chip->dma_dev; /* for mmap */
+
 	runtime->private_data = es;
 	runtime->hw = snd_es1968_playback;
 	runtime->hw.buffer_bytes_max = runtime->hw.period_bytes_max =
@@ -1669,7 +1656,7 @@
 		return apu2;
 	}
 	
-	es = snd_magic_kcalloc(esschan_t, 0, GFP_KERNEL);
+	es = kcalloc(1, sizeof(*es), GFP_KERNEL);
 	if (!es) {
 		snd_es1968_free_apu_pair(chip, apu1);
 		snd_es1968_free_apu_pair(chip, apu2);
@@ -1692,10 +1679,12 @@
 	if ((es->mixbuf = snd_es1968_new_memory(chip, ESM_MIXBUF_SIZE)) == NULL) {
 		snd_es1968_free_apu_pair(chip, apu1);
 		snd_es1968_free_apu_pair(chip, apu2);
-		snd_magic_kfree(es);
+		kfree(es);
                 return -ENOMEM;
         }
-	memset(es->mixbuf->buf, 0, ESM_MIXBUF_SIZE);
+	memset(es->mixbuf->buf.area, 0, ESM_MIXBUF_SIZE);
+
+	substream->dma_device = chip->dma_dev; /* for mmap */
 
 	runtime->private_data = es;
 	runtime->hw = snd_es1968_capture;
@@ -1720,12 +1709,12 @@
 
 	if (substream->runtime->private_data == NULL)
 		return 0;
-	es = snd_magic_cast(esschan_t, substream->runtime->private_data, return -ENXIO);
+	es = substream->runtime->private_data;
 	spin_lock_irqsave(&chip->substream_lock, flags);
 	list_del(&es->list);
 	spin_unlock_irqrestore(&chip->substream_lock, flags);
 	snd_es1968_free_apu_pair(chip, es->apu[0]);
-	snd_magic_kfree(es);
+	kfree(es);
 
 	return 0;
 }
@@ -1738,14 +1727,14 @@
 
 	if (substream->runtime->private_data == NULL)
 		return 0;
-	es = snd_magic_cast(esschan_t, substream->runtime->private_data, return -ENXIO);
+	es = substream->runtime->private_data;
 	spin_lock_irqsave(&chip->substream_lock, flags);
 	list_del(&es->list);
 	spin_unlock_irqrestore(&chip->substream_lock, flags);
 	snd_es1968_free_memory(chip, es->mixbuf);
 	snd_es1968_free_apu_pair(chip, es->apu[0]);
 	snd_es1968_free_apu_pair(chip, es->apu[2]);
-	snd_magic_kfree(es);
+	kfree(es);
 
 	return 0;
 }
@@ -1800,11 +1789,11 @@
 		return;
 	}
 
-	memset(memory->buf, 0, CLOCK_MEASURE_BUFSIZE);
+	memset(memory->buf.area, 0, CLOCK_MEASURE_BUFSIZE);
 
-	wave_set_register(chip, apu << 3, (memory->addr - 0x10) & 0xfff8);
+	wave_set_register(chip, apu << 3, (memory->buf.addr - 0x10) & 0xfff8);
 
-	pa = (unsigned int)((memory->addr - chip->dma.addr) >> 1);
+	pa = (unsigned int)((memory->buf.addr - chip->dma.addr) >> 1);
 	pa |= 0x00400000;	/* System RAM (Bit 22) */
 
 	/* initialize apu */
@@ -1879,7 +1868,7 @@
 
 static void snd_es1968_pcm_free(snd_pcm_t *pcm)
 {
-	es1968_t *esm = snd_magic_cast(es1968_t, pcm->private_data, return);
+	es1968_t *esm = pcm->private_data;
 	snd_es1968_free_dmabuf(esm);
 	esm->pcm = NULL;
 }
@@ -1952,7 +1941,7 @@
  */
 static void es1968_update_hw_volume(unsigned long private_data)
 {
-	es1968_t *chip = snd_magic_cast(es1968_t, (void*)private_data, return);
+	es1968_t *chip = (es1968_t *) private_data;
 	int x, val;
 
 	/* Figure out which volume control button was pushed,
@@ -2001,7 +1990,7 @@
  */
 static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	es1968_t *chip = snd_magic_cast(es1968_t, dev_id, return IRQ_NONE);
+	es1968_t *chip = dev_id;
 	u32 event;
 
 	if (!(event = inb(chip->io_port + 0x1A)))
@@ -2418,7 +2407,7 @@
  */
 static int es1968_suspend(snd_card_t *card, unsigned int state)
 {
-	es1968_t *chip = snd_magic_cast(es1968_t, card->pm_private_data, return -EINVAL);
+	es1968_t *chip = card->pm_private_data;
 
 	if (! chip->do_pm)
 		return 0;
@@ -2433,7 +2422,7 @@
 
 static int es1968_resume(snd_card_t *card, unsigned int state)
 {
-	es1968_t *chip = snd_magic_cast(es1968_t, card->pm_private_data, return -EINVAL);
+	es1968_t *chip = card->pm_private_data;
 
 	if (! chip->do_pm)
 		return 0;
@@ -2470,6 +2459,8 @@
 		outw(0, chip->io_port + ESM_PORT_HOST_IRQ); /* disable IRQ */
 	}
 
+	if (chip->irq >= 0)
+		free_irq(chip->irq, (void *)chip);
 #ifdef SUPPORT_JOYSTICK
 	if (chip->res_joystick) {
 		gameport_unregister_port(&chip->gameport);
@@ -2484,15 +2475,13 @@
 		release_resource(chip->res_io_port);
 		kfree_nocheck(chip->res_io_port);
 	}
-	if (chip->irq >= 0)
-		free_irq(chip->irq, (void *)chip);
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_es1968_dev_free(snd_device_t *device)
 {
-	es1968_t *chip = snd_magic_cast(es1968_t, device->device_data, return -ENXIO);
+	es1968_t *chip = device->device_data;
 	return snd_es1968_free(chip);
 }
 
@@ -2540,7 +2529,7 @@
 		return -ENXIO;
 	}
 
-	chip = (es1968_t *) snd_magic_kcalloc(es1968_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (! chip)
 		return -ENOMEM;
 
diff -Nru a/sound/pci/fm801.c b/sound/pci/fm801.c
--- a/sound/pci/fm801.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/fm801.c	2004-07-27 18:28:33 -07:00
@@ -40,13 +40,10 @@
 #define TEA575X_RADIO 1
 #endif
 
-#define chip_t fm801_t
-
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("ForteMedia FM801");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ForteMedia,FM801},"
+MODULE_SUPPORTED_DEVICE("{{ForteMedia,FM801},"
 		"{Genius,SoundMaker Live 5.1}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
@@ -64,16 +61,12 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for the FM801 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for the FM801 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable FM801 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(tea575x_tuner, bool, boot_devs, 0444);
 MODULE_PARM_DESC(tea575x_tuner, "Enable TEA575x tuner.");
-MODULE_PARM_SYNTAX(tea575x_tuner, SNDRV_ENABLE_DESC);
 
 /*
  *  Direct registers
@@ -233,7 +226,7 @@
 				  unsigned short reg,
 				  unsigned short val)
 {
-	fm801_t *chip = snd_magic_cast(fm801_t, ac97->private_data, return);
+	fm801_t *chip = ac97->private_data;
 	int idx;
 
 	/*
@@ -264,7 +257,7 @@
 
 static unsigned short snd_fm801_codec_read(ac97_t *ac97, unsigned short reg)
 {
-	fm801_t *chip = snd_magic_cast(fm801_t, ac97->private_data, return -ENXIO);
+	fm801_t *chip = ac97->private_data;
 	int idx;
 
 	/*
@@ -522,7 +515,7 @@
 
 static irqreturn_t snd_fm801_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	fm801_t *chip = snd_magic_cast(fm801_t, dev_id, return IRQ_NONE);
+	fm801_t *chip = dev_id;
 	unsigned short status;
 	unsigned int tmp;
 
@@ -680,7 +673,7 @@
 
 static void snd_fm801_pcm_free(snd_pcm_t *pcm)
 {
-	fm801_t *chip = snd_magic_cast(fm801_t, pcm->private_data, return);
+	fm801_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1176,13 +1169,13 @@
 
 static void snd_fm801_mixer_free_ac97_bus(ac97_bus_t *bus)
 {
-	fm801_t *chip = snd_magic_cast(fm801_t, bus->private_data, return);
+	fm801_t *chip = bus->private_data;
 	chip->ac97_bus = NULL;
 }
 
 static void snd_fm801_mixer_free_ac97(ac97_t *ac97)
 {
-	fm801_t *chip = snd_magic_cast(fm801_t, ac97->private_data, return);
+	fm801_t *chip = ac97->private_data;
 	if (ac97->num == 0) {
 		chip->ac97 = NULL;
 	} else {
@@ -1252,13 +1245,13 @@
 	if (chip->irq >= 0)
 		free_irq(chip->irq, (void *)chip);
 
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_fm801_dev_free(snd_device_t *device)
 {
-	fm801_t *chip = snd_magic_cast(fm801_t, device->device_data, return -ENXIO);
+	fm801_t *chip = device->device_data;
 	return snd_fm801_free(chip);
 }
 
@@ -1279,7 +1272,7 @@
 	*rchip = NULL;
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
-	chip = snd_magic_kcalloc(fm801_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
diff -Nru a/sound/pci/ice1712/Makefile b/sound/pci/ice1712/Makefile
--- a/sound/pci/ice1712/Makefile	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ice1712/Makefile	2004-07-27 18:28:33 -07:00
@@ -5,7 +5,7 @@
 
 snd-ice17xx-ak4xxx-objs := ak4xxx.o
 snd-ice1712-objs := ice1712.o delta.o hoontech.o ews.o
-snd-ice1724-objs := ice1724.o amp.o revo.o aureon.o
+snd-ice1724-objs := ice1724.o amp.o revo.o aureon.o vt1720_mobo.o
 
 # Toplevel Module Dependency
 obj-$(CONFIG_SND_ICE1712) += snd-ice1712.o snd-ice17xx-ak4xxx.o
diff -Nru a/sound/pci/ice1712/ak4xxx.c b/sound/pci/ice1712/ak4xxx.c
--- a/sound/pci/ice1712/ak4xxx.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/ice1712/ak4xxx.c	2004-07-27 18:28:32 -07:00
@@ -33,7 +33,6 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("ICEnsemble ICE17xx <-> AK4xxx AD/DA chip interface");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
 
 static void snd_ice1712_akm4xxx_lock(akm4xxx_t *ak, int chip)
 {
diff -Nru a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c
--- a/sound/pci/ice1712/aureon.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ice1712/aureon.c	2004-07-27 18:28:33 -07:00
@@ -149,11 +149,19 @@
 }
 
 /*
+ * set the register value of WM codec
+ */
+static void wm_put_nocache(ice1712_t *ice, int reg, unsigned short val)
+{
+	aureon_spi_write(ice, AUREON_WM_CS, (reg << 9) | (val & 0x1ff), 16);
+}
+
+/*
  * set the register value of WM codec and remember it
  */
 static void wm_put(ice1712_t *ice, int reg, unsigned short val)
 {
-	aureon_spi_write(ice, AUREON_WM_CS, (reg << 9) | (val & 0x1ff), 16);
+	wm_put_nocache(ice, reg, val);
 	reg <<= 1;
 	ice->akm[0].images[reg] = val >> 8;
 	ice->akm[0].images[reg + 1] = val;
@@ -219,10 +227,7 @@
 	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;
+	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;
@@ -240,18 +245,17 @@
 	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;
+	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 */
+		else {
+			wm_put(ice, idx, nvol | 0x80); /* zero-detect, prelatch */
+			wm_put_nocache(ice, idx, nvol | 0x180); /* update */
+		}
 	}
 	snd_ice1712_restore_gpio_status(ice);
 	return change;
@@ -718,15 +722,15 @@
 
 	if (ice->eeprom.subvendor == VT1724_SUBDEVICE_AUREON51_SKY) {
 		ice->num_total_dacs = 6;
-		ice->num_total_adcs = 6;
+		ice->num_total_adcs = 2;
 	} else {
 		/* aureon 7.1 and prodigy 7.1 */
 		ice->num_total_dacs = 8;
-		ice->num_total_adcs = 8;
+		ice->num_total_adcs = 2;
 	}
 
 	/* to remeber the register values */
-	ice->akm = snd_kcalloc(sizeof(akm4xxx_t), GFP_KERNEL);
+	ice->akm = kcalloc(1, sizeof(akm4xxx_t), GFP_KERNEL);
 	if (! ice->akm)
 		return -ENOMEM;
 	ice->akm_codecs = 1;
diff -Nru a/sound/pci/ice1712/delta.c b/sound/pci/ice1712/delta.c
--- a/sound/pci/ice1712/delta.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/ice1712/delta.c	2004-07-27 18:28:32 -07:00
@@ -126,7 +126,7 @@
 /* sequential write */
 static int ap_cs8427_sendbytes(snd_i2c_device_t *device, unsigned char *bytes, int count)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, device->bus->private_data, return -EIO);
+	ice1712_t *ice = device->bus->private_data;
 	int res = count;
 	unsigned char tmp;
 
@@ -143,7 +143,7 @@
 /* sequential read */
 static int ap_cs8427_readbytes(snd_i2c_device_t *device, unsigned char *bytes, int count)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, device->bus->private_data, return -EIO);
+	ice1712_t *ice = device->bus->private_data;
 	int res = count;
 	unsigned char tmp;
 	
diff -Nru a/sound/pci/ice1712/ews.c b/sound/pci/ice1712/ews.c
--- a/sound/pci/ice1712/ews.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/ice1712/ews.c	2004-07-27 18:28:32 -07:00
@@ -45,7 +45,7 @@
 /* send SDA and SCL */
 static void ewx_i2c_setlines(snd_i2c_bus_t *bus, int clk, int data)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, bus->private_data, return);
+	ice1712_t *ice = bus->private_data;
 	unsigned char tmp = 0;
 	if (clk)
 		tmp |= ICE1712_EWX2496_SERIAL_CLOCK;
@@ -57,13 +57,13 @@
 
 static int ewx_i2c_getclock(snd_i2c_bus_t *bus)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, bus->private_data, return -EIO);
+	ice1712_t *ice = bus->private_data;
 	return snd_ice1712_read(ice, ICE1712_IREG_GPIO_DATA) & ICE1712_EWX2496_SERIAL_CLOCK ? 1 : 0;
 }
 
 static int ewx_i2c_getdata(snd_i2c_bus_t *bus, int ack)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, bus->private_data, return -EIO);
+	ice1712_t *ice = bus->private_data;
 	int bit;
 	/* set RW pin to low */
 	snd_ice1712_write(ice, ICE1712_IREG_GPIO_WRITE_MASK, ~ICE1712_EWX2496_RW);
@@ -80,7 +80,7 @@
 
 static void ewx_i2c_start(snd_i2c_bus_t *bus)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, bus->private_data, return);
+	ice1712_t *ice = bus->private_data;
 	unsigned char mask;
 
 	snd_ice1712_save_gpio_status(ice);
@@ -99,13 +99,13 @@
 
 static void ewx_i2c_stop(snd_i2c_bus_t *bus)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, bus->private_data, return);
+	ice1712_t *ice = bus->private_data;
 	snd_ice1712_restore_gpio_status(ice);
 }
 
 static void ewx_i2c_direction(snd_i2c_bus_t *bus, int clock, int data)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, bus->private_data, return);
+	ice1712_t *ice = bus->private_data;
 	unsigned char mask = 0;
 
 	if (clock)
diff -Nru a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
--- a/sound/pci/ice1712/ice1712.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ice1712/ice1712.c	2004-07-27 18:28:33 -07:00
@@ -73,8 +73,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("ICEnsemble ICE1712 (Envy24)");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{"
+MODULE_SUPPORTED_DEVICE("{"
 	       HOONTECH_DEVICE_DESC
 	       DELTA_DEVICE_DESC
 	       EWS_DEVICE_DESC
@@ -91,19 +90,14 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for ICE1712 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ICE1712 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable ICE1712 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(omni, bool, boot_devs, 0444);
 MODULE_PARM_DESC(omni, "Enable Midiman M-Audio Delta Omni I/O support.");
-MODULE_PARM_SYNTAX(omni, SNDRV_ENABLED "," SNDRV_ENABLE_DESC);
 module_param_array(cs8427_timeout, int, boot_devs, 0444);
 MODULE_PARM_DESC(cs8427_timeout, "Define reset timeout for cs8427 chip in msec resolution.");
-MODULE_PARM_SYNTAX(cs8427_timeout, SNDRV_ENABLED ", allows:{{1,1000}},default=500,skill:advanced");
 module_param_array(model, charp, boot_devs, 0444);
 MODULE_PARM_DESC(model, "Use the given board model.");
 
@@ -416,7 +410,7 @@
 
 static irqreturn_t snd_ice1712_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, dev_id, return IRQ_NONE);
+	ice1712_t *ice = dev_id;
 	unsigned char status;
 	int handled = 0;
 
@@ -874,7 +868,7 @@
 
 static void snd_ice1712_pcm_free(snd_pcm_t *pcm)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, pcm->private_data, return);
+	ice1712_t *ice = pcm->private_data;
 	ice->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -912,7 +906,7 @@
 
 static void snd_ice1712_pcm_free_ds(snd_pcm_t *pcm)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, pcm->private_data, return);
+	ice1712_t *ice = pcm->private_data;
 	ice->pcm_ds = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1238,7 +1232,7 @@
 
 static void snd_ice1712_pcm_profi_free(snd_pcm_t *pcm)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, pcm->private_data, return);
+	ice1712_t *ice = pcm->private_data;
 	ice->pcm_pro = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1511,7 +1505,7 @@
 
 static void snd_ice1712_mixer_free_ac97(ac97_t *ac97)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, ac97->private_data, return);
+	ice1712_t *ice = ac97->private_data;
 	ice->ac97 = NULL;
 }
 
@@ -1570,7 +1564,7 @@
 static void snd_ice1712_proc_read(snd_info_entry_t *entry, 
 				  snd_info_buffer_t * buffer)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, entry->private_data, return);
+	ice1712_t *ice = entry->private_data;
 	unsigned int idx;
 
 	snd_iprintf(buffer, "%s\n\n", ice->card->longname);
@@ -2496,13 +2490,13 @@
 		kfree_nocheck(ice->res_profi_port);
 	}
 	snd_ice1712_akm4xxx_free(ice);
-	snd_magic_kfree(ice);
+	kfree(ice);
 	return 0;
 }
 
 static int snd_ice1712_dev_free(snd_device_t *device)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, device->device_data, return -ENXIO);
+	ice1712_t *ice = device->device_data;
 	return snd_ice1712_free(ice);
 }
 
@@ -2531,7 +2525,7 @@
 		return -ENXIO;
 	}
 
-	ice = snd_magic_kcalloc(ice1712_t, 0, GFP_KERNEL);
+	ice = kcalloc(1, sizeof(*ice), GFP_KERNEL);
 	if (ice == NULL)
 		return -ENOMEM;
 	ice->omni = omni ? 1 : 0;
diff -Nru a/sound/pci/ice1712/ice1712.h b/sound/pci/ice1712/ice1712.h
--- a/sound/pci/ice1712/ice1712.h	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/ice1712/ice1712.h	2004-07-27 18:28:32 -07:00
@@ -368,8 +368,6 @@
 	struct semaphore gpio_mutex;
 };
 
-#define chip_t ice1712_t
-
 
 /*
  * gpio access functions
diff -Nru a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
--- a/sound/pci/ice1712/ice1724.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ice1712/ice1724.c	2004-07-27 18:28:33 -07:00
@@ -44,16 +44,17 @@
 #include "amp.h"
 #include "revo.h"
 #include "aureon.h"
+#include "vt1720_mobo.h"
 
 
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("VIA ICEnsemble ICE1724/1720 (Envy24HT/PT)");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{"
+MODULE_SUPPORTED_DEVICE("{"
 	       REVO_DEVICE_DESC
 	       AMP_AUDIO2000_DEVICE_DESC
 	       AUREON_DEVICE_DESC
+	       VT1720_MOBO_DEVICE_DESC
 		"{VIA,VT1720},"
 		"{VIA,VT1724},"
 		"{ICEnsemble,Generic ICE1724},"
@@ -68,13 +69,10 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for ICE1724 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for ICE1724 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable ICE1724 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(model, charp, boot_devs, 0444);
 MODULE_PARM_DESC(model, "Use the given board model.");
 
@@ -190,21 +188,26 @@
 static void snd_vt1724_set_gpio_mask(ice1712_t *ice, unsigned int data)
 {
 	outw(data, ICEREG1724(ice, GPIO_WRITE_MASK));
-	outb((data >> 16) & 0xff, ICEREG1724(ice, GPIO_WRITE_MASK_22));
+	if (! ice->vt1720) /* VT1720 supports only 16 GPIO bits */
+		outb((data >> 16) & 0xff, ICEREG1724(ice, GPIO_WRITE_MASK_22));
 	inw(ICEREG1724(ice, GPIO_WRITE_MASK)); /* dummy read for pci-posting */
 }
 
 static void snd_vt1724_set_gpio_data(ice1712_t *ice, unsigned int data)
 {
 	outw(data, ICEREG1724(ice, GPIO_DATA));
-	outb(data >> 16, ICEREG1724(ice, GPIO_DATA_22));
+	if (! ice->vt1720)
+		outb(data >> 16, ICEREG1724(ice, GPIO_DATA_22));
 	inw(ICEREG1724(ice, GPIO_DATA)); /* dummy read for pci-posting */
 }
 
 static unsigned int snd_vt1724_get_gpio_data(ice1712_t *ice)
 {
 	unsigned int data;
-	data = (unsigned int)inb(ICEREG1724(ice, GPIO_DATA_22));
+	if (! ice->vt1720)
+		data = (unsigned int)inb(ICEREG1724(ice, GPIO_DATA_22));
+	else
+		data = 0;
 	data = (data << 16) | inw(ICEREG1724(ice, GPIO_DATA));
 	return data;
 }
@@ -215,7 +218,7 @@
 
 static irqreturn_t snd_vt1724_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, dev_id, return IRQ_NONE);
+	ice1712_t *ice = dev_id;
 	unsigned char status;
 	int handled = 0;
 
@@ -230,7 +233,7 @@
 		if ((status & VT1724_IRQ_MPU_RX)||(status & VT1724_IRQ_MPU_TX)) {
 			if (ice->rmidi[0])
 				snd_mpu401_uart_interrupt(irq, ice->rmidi[0]->private_data, regs);
-			outb(VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX, ICEREG1724(ice, IRQSTAT));
+			outb(status & (VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX), ICEREG1724(ice, IRQSTAT));
 			status &= ~(VT1724_IRQ_MPU_RX|VT1724_IRQ_MPU_TX);
 		}
 		if (status & VT1724_IRQ_MTPCM) {
@@ -317,6 +320,13 @@
 	.mask = 0,
 };
 
+struct vt1724_pcm_reg {
+	unsigned int addr;	/* ADDR register offset */
+	unsigned int size;	/* SIZE register offset */
+	unsigned int count;	/* COUNT register offset */
+	unsigned int start;	/* start & pause bit */
+};
+
 static int snd_vt1724_pcm_trigger(snd_pcm_substream_t *substream, int cmd)
 {
 	ice1712_t *ice = snd_pcm_substream_chip(substream);
@@ -327,8 +337,10 @@
 
 	what = 0;
 	snd_pcm_group_for_each(pos, substream) {
+		struct vt1724_pcm_reg *reg;
 		s = snd_pcm_group_substream_entry(pos);
-		what |= (unsigned long)(s->runtime->private_data);
+		reg = s->runtime->private_data;
+		what |= reg->start;
 		snd_pcm_trigger_done(s, substream);
 	}
 
@@ -371,12 +383,26 @@
 #define DMA_PAUSES	(VT1724_RDMA0_PAUSE|VT1724_PDMA0_PAUSE|VT1724_RDMA1_PAUSE|\
 	VT1724_PDMA1_PAUSE|VT1724_PDMA2_PAUSE|VT1724_PDMA3_PAUSE|VT1724_PDMA4_PAUSE)
 
+static int get_max_rate(ice1712_t *ice)
+{
+	if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) {
+		if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720)
+			return 192000;
+		else
+			return 96000;
+	} else
+		return 48000;
+}
+
 static void snd_vt1724_set_pro_rate(ice1712_t *ice, unsigned int rate, int force)
 {
 	unsigned long flags;
 	unsigned char val, old;
 	unsigned int i;
 
+	if (rate > get_max_rate(ice))
+		return;
+
 	spin_lock_irqsave(&ice->reg_lock, flags);
 	if ((inb(ICEMT1724(ice, DMA_CONTROL)) & DMA_STARTS) || 
 	    (inb(ICEMT1724(ice, DMA_PAUSE)) & DMA_PAUSES)) {
@@ -410,6 +436,8 @@
 		val = 0;
 		break;
 	}
+	old = inb(ICEMT1724(ice, RATE));
+	val |= (old & 0xf0);
 	outb(val, ICEMT1724(ice, RATE));
 	if (rate == ice->cur_rate) {
 		spin_unlock_irqrestore(&ice->reg_lock, flags);
@@ -419,7 +447,7 @@
 	ice->cur_rate = rate;
 
 	/* check MT02 */
-	if (ice->eeprom.data[ICE_EEP2_ACLINK] & 0x80) {
+	if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) {
 		val = old = inb(ICEMT1724(ice, I2S_FORMAT));
 		if (rate > 96000)
 			val |= VT1724_MT_I2S_MCLK_128X; /* 128x MCLK */
@@ -446,15 +474,6 @@
 		if (ice->akm[i].ops.set_rate_val)
 			ice->akm[i].ops.set_rate_val(&ice->akm[i], rate);
 	}
-
-	/* set up AC97 registers if needed */
-	if (! (ice->eeprom.data[ICE_EEP2_ACLINK] & 0x80) && ice->ac97) {
-		snd_ac97_set_rate(ice->ac97, AC97_PCM_FRONT_DAC_RATE, rate);
-		snd_ac97_set_rate(ice->ac97, AC97_PCM_SURR_DAC_RATE, rate);
-		snd_ac97_set_rate(ice->ac97, AC97_PCM_LFE_DAC_RATE, rate);
-		snd_ac97_set_rate(ice->ac97, AC97_SPDIF, rate);
-		snd_ac97_set_rate(ice->ac97, AC97_PCM_LR_ADC_RATE, rate);
-	}
 }
 
 static int snd_vt1724_pcm_hw_params(snd_pcm_substream_t * substream,
@@ -562,7 +581,9 @@
 	ptr = inl(ICEMT1724(ice, PLAYBACK_SIZE)) & 0xffffff;
 	ptr = (ptr + 1) << 2;
 	ptr = bytes_to_frames(substream->runtime, ptr);
-	if (ptr <= substream->runtime->buffer_size)
+	if (! ptr)
+		;
+	else if (ptr <= substream->runtime->buffer_size)
 		ptr = substream->runtime->buffer_size - ptr;
 	else {
 		snd_printd("ice1724: invalid ptr %d (size=%d)\n", (int)ptr, (int)substream->runtime->buffer_size);
@@ -572,17 +593,10 @@
 	return ptr;
 }
 
-struct vt1724_pcm_reg {
-	unsigned int addr;	/* ADDR register offset */
-	unsigned int size;	/* SIZE register offset */
-	unsigned int count;	/* COUNT register offset */
-	unsigned int start;	/* start bit */
-	unsigned int pause;	/* pause bit */
-};
-
-static int snd_vt1724_pcm_prepare(snd_pcm_substream_t *substream, const struct vt1724_pcm_reg *reg)
+static int snd_vt1724_pcm_prepare(snd_pcm_substream_t *substream)
 {
 	ice1712_t *ice = snd_pcm_substream_chip(substream);
+	struct vt1724_pcm_reg *reg = substream->runtime->private_data;
 
 	spin_lock(&ice->reg_lock);
 	outl(substream->runtime->dma_addr, ice->profi_port + reg->addr);
@@ -592,9 +606,10 @@
 	return 0;
 }
 
-static snd_pcm_uframes_t snd_vt1724_pcm_pointer(snd_pcm_substream_t *substream, const struct vt1724_pcm_reg *reg)
+static snd_pcm_uframes_t snd_vt1724_pcm_pointer(snd_pcm_substream_t *substream)
 {
 	ice1712_t *ice = snd_pcm_substream_chip(substream);
+	struct vt1724_pcm_reg *reg = substream->runtime->private_data;
 	size_t ptr;
 
 	if (!(inl(ICEMT1724(ice, DMA_CONTROL)) & reg->start))
@@ -607,7 +622,9 @@
 	ptr = inw(ice->profi_port + reg->size);
 	ptr = (ptr + 1) << 2;
 	ptr = bytes_to_frames(substream->runtime, ptr);
-	if (ptr <= substream->runtime->buffer_size)
+	if (! ptr)
+		;
+	else if (ptr <= substream->runtime->buffer_size)
 		ptr = substream->runtime->buffer_size - ptr;
 	else {
 		snd_printd("ice1724: invalid ptr %d (size=%d)\n", (int)ptr, (int)substream->runtime->buffer_size);
@@ -617,24 +634,20 @@
 #endif
 }
 
-const static struct vt1724_pcm_reg vt1724_capture_pro_reg = {
+static struct vt1724_pcm_reg vt1724_playback_pro_reg = {
+	.addr = VT1724_MT_PLAYBACK_ADDR,
+	.size = VT1724_MT_PLAYBACK_SIZE,
+	.count = VT1724_MT_PLAYBACK_COUNT,
+	.start = VT1724_PDMA0_START,
+};
+
+static struct vt1724_pcm_reg vt1724_capture_pro_reg = {
 	.addr = VT1724_MT_CAPTURE_ADDR,
 	.size = VT1724_MT_CAPTURE_SIZE,
 	.count = VT1724_MT_CAPTURE_COUNT,
 	.start = VT1724_RDMA0_START,
-	.pause = VT1724_RDMA0_PAUSE,
 };
 
-static int snd_vt1724_capture_pro_prepare(snd_pcm_substream_t * substream)
-{
-	return snd_vt1724_pcm_prepare(substream, &vt1724_capture_pro_reg);
-}
-
-static snd_pcm_uframes_t snd_vt1724_capture_pro_pointer(snd_pcm_substream_t * substream)
-{
-	return snd_vt1724_pcm_pointer(substream, &vt1724_capture_pro_reg);
-}
-
 static snd_pcm_hardware_t snd_vt1724_playback_pro =
 {
 	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
@@ -698,9 +711,10 @@
 static int set_rate_constraints(ice1712_t *ice, snd_pcm_substream_t *substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	if (ice->eeprom.data[ICE_EEP2_ACLINK] & 0x80) {
+	if (ice->eeprom.data[ICE_EEP2_ACLINK] & VT1724_CFG_PRO_I2S) {
 		/* I2S */
-		if (ice->eeprom.data[ICE_EEP2_I2S] & 0x08)
+		/* VT1720 doesn't support more than 96kHz */
+		if ((ice->eeprom.data[ICE_EEP2_I2S] & 0x08) && !ice->vt1720)
 			return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_192);
 		else {
 			runtime->hw.rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_96000;
@@ -709,25 +723,14 @@
 		}
 	} else if (ice->ac97) {
 		/* ACLINK */
-		int ratec;
-		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
-			ratec = AC97_RATES_FRONT_DAC;
-		else
-			ratec = AC97_RATES_ADC;
-		runtime->hw.rates = ice->ac97->rates[ratec];
 		runtime->hw.rate_max = 48000;
-		if (runtime->hw.rates == SNDRV_PCM_RATE_48000) {
-			runtime->hw.rate_min = 48000;
-			return 0;
-		} else {
-			runtime->hw.rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000;
-			return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_48);
-		}
+		runtime->hw.rates = SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000;
+		return snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates_48);
 	}
 	return 0;
 }
 
-/* multi-channel playback needs alignment 8x32bit regarless of the channels
+/* multi-channel playback needs alignment 8x32bit regardless of the channels
  * actually used
  */
 #define VT1724_BUFFER_ALIGN	0x20
@@ -738,7 +741,7 @@
 	ice1712_t *ice = snd_pcm_substream_chip(substream);
 	int chs;
 
-	runtime->private_data = (void*)VT1724_PDMA0_START; /* irq/status/trigger bit */
+	runtime->private_data = &vt1724_playback_pro_reg;
 	ice->playback_pro_substream = substream;
 	runtime->hw = snd_vt1724_playback_pro;
 	snd_pcm_set_sync(substream);
@@ -767,12 +770,16 @@
 	ice1712_t *ice = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
-	runtime->private_data = (void*)VT1724_RDMA0_START; /* irq/status/trigger bit */
+	runtime->private_data = &vt1724_capture_pro_reg;
 	ice->capture_pro_substream = substream;
 	runtime->hw = snd_vt1724_2ch_stereo;
 	snd_pcm_set_sync(substream);
 	snd_pcm_hw_constraint_msbits(runtime, 0, 32, 24);
 	set_rate_constraints(ice, substream);
+	snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
+				   VT1724_BUFFER_ALIGN);
+	snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
+				   VT1724_BUFFER_ALIGN);
 	return 0;
 }
 
@@ -814,9 +821,9 @@
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_vt1724_pcm_hw_params,
 	.hw_free =	snd_vt1724_pcm_hw_free,
-	.prepare =	snd_vt1724_capture_pro_prepare,
+	.prepare =	snd_vt1724_pcm_prepare,
 	.trigger =	snd_vt1724_pcm_trigger,
-	.pointer =	snd_vt1724_capture_pro_pointer,
+	.pointer =	snd_vt1724_pcm_pointer,
 };
 
 static int __devinit snd_vt1724_pcm_profi(ice1712_t * ice, int device)
@@ -848,40 +855,60 @@
  * SPDIF PCM
  */
 
-const static struct vt1724_pcm_reg vt1724_playback_spdif_reg = {
+static struct vt1724_pcm_reg vt1724_playback_spdif_reg = {
 	.addr = VT1724_MT_PDMA4_ADDR,
 	.size = VT1724_MT_PDMA4_SIZE,
 	.count = VT1724_MT_PDMA4_COUNT,
 	.start = VT1724_PDMA4_START,
-	.pause = VT1724_PDMA4_PAUSE,
 };
 
-const static struct vt1724_pcm_reg vt1724_capture_spdif_reg = {
+static struct vt1724_pcm_reg vt1724_capture_spdif_reg = {
 	.addr = VT1724_MT_RDMA1_ADDR,
 	.size = VT1724_MT_RDMA1_SIZE,
 	.count = VT1724_MT_RDMA1_COUNT,
 	.start = VT1724_RDMA1_START,
-	.pause = VT1724_RDMA1_PAUSE,
 };
 
-static int snd_vt1724_playback_spdif_prepare(snd_pcm_substream_t * substream)
+/* update spdif control bits; call with reg_lock */
+static void update_spdif_bits(ice1712_t *ice, unsigned int val)
 {
-	return snd_vt1724_pcm_prepare(substream, &vt1724_playback_spdif_reg);
-}
+	unsigned char cbit, disabled;
 
-static snd_pcm_uframes_t snd_vt1724_playback_spdif_pointer(snd_pcm_substream_t * substream)
-{
-	return snd_vt1724_pcm_pointer(substream, &vt1724_playback_spdif_reg);
+	cbit = inb(ICEREG1724(ice, SPDIF_CFG));
+	disabled = cbit & ~VT1724_CFG_SPDIF_OUT_EN;
+	if (cbit != disabled)
+		outb(disabled, ICEREG1724(ice, SPDIF_CFG));
+	outw(val, ICEMT1724(ice, SPDIF_CTRL));
+	if (cbit != disabled)
+		outb(cbit, ICEREG1724(ice, SPDIF_CFG));
+	outw(val, ICEMT1724(ice, SPDIF_CTRL));
 }
 
-static int snd_vt1724_capture_spdif_prepare(snd_pcm_substream_t * substream)
+/* update SPDIF control bits according to the given rate */
+static void update_spdif_rate(ice1712_t *ice, unsigned int rate)
 {
-	return snd_vt1724_pcm_prepare(substream, &vt1724_capture_spdif_reg);
+	unsigned int val, nval;
+	unsigned long flags;
+
+	spin_lock_irqsave(&ice->reg_lock, flags);
+	nval = val = inw(ICEMT1724(ice, SPDIF_CTRL));
+	nval &= ~(7 << 12);
+	switch (rate) {
+	case 44100: break;
+	case 48000: nval |= 2 << 12; break;
+	case 32000: nval |= 3 << 12; break;
+	}
+	if (val != nval)
+		update_spdif_bits(ice, nval);
+	spin_unlock_irqrestore(&ice->reg_lock, flags);
 }
 
-static snd_pcm_uframes_t snd_vt1724_capture_spdif_pointer(snd_pcm_substream_t * substream)
+static int snd_vt1724_playback_spdif_prepare(snd_pcm_substream_t * substream)
 {
-	return snd_vt1724_pcm_pointer(substream, &vt1724_capture_spdif_reg);
+	ice1712_t *ice = snd_pcm_substream_chip(substream);
+	if (! ice->force_pdma4)
+		update_spdif_rate(ice, substream->runtime->rate);
+	return snd_vt1724_pcm_prepare(substream);
 }
 
 static int snd_vt1724_playback_spdif_open(snd_pcm_substream_t *substream)
@@ -889,7 +916,7 @@
 	ice1712_t *ice = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
-	runtime->private_data = (void*)VT1724_PDMA4_START; /* irq/status/trigger bit */
+	runtime->private_data = &vt1724_playback_spdif_reg;
 	ice->playback_con_substream = substream;
 	if (ice->force_pdma4) {
 		runtime->hw = snd_vt1724_2ch_stereo;
@@ -898,6 +925,10 @@
 		runtime->hw = snd_vt1724_spdif;
 	snd_pcm_set_sync(substream);
 	snd_pcm_hw_constraint_msbits(runtime, 0, 32, 24);
+	snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
+				   VT1724_BUFFER_ALIGN);
+	snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
+				   VT1724_BUFFER_ALIGN);
 	return 0;
 }
 
@@ -917,7 +948,7 @@
 	ice1712_t *ice = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
-	runtime->private_data = (void*)VT1724_RDMA1_START; /* irq/status/trigger bit */
+	runtime->private_data = &vt1724_capture_spdif_reg;
 	ice->capture_con_substream = substream;
 	if (ice->force_rdma1) {
 		runtime->hw = snd_vt1724_2ch_stereo;
@@ -926,6 +957,10 @@
 		runtime->hw = snd_vt1724_spdif;
 	snd_pcm_set_sync(substream);
 	snd_pcm_hw_constraint_msbits(runtime, 0, 32, 24);
+	snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
+				   VT1724_BUFFER_ALIGN);
+	snd_pcm_hw_constraint_step(runtime, 0, SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
+				   VT1724_BUFFER_ALIGN);
 	return 0;
 }
 
@@ -948,7 +983,7 @@
 	.hw_free =	snd_vt1724_pcm_hw_free,
 	.prepare =	snd_vt1724_playback_spdif_prepare,
 	.trigger =	snd_vt1724_pcm_trigger,
-	.pointer =	snd_vt1724_playback_spdif_pointer,
+	.pointer =	snd_vt1724_pcm_pointer,
 };
 
 static snd_pcm_ops_t snd_vt1724_capture_spdif_ops = {
@@ -957,9 +992,9 @@
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_vt1724_pcm_hw_params,
 	.hw_free =	snd_vt1724_pcm_hw_free,
-	.prepare =	snd_vt1724_capture_spdif_prepare,
+	.prepare =	snd_vt1724_pcm_prepare,
 	.trigger =	snd_vt1724_pcm_trigger,
-	.pointer =	snd_vt1724_capture_spdif_pointer,
+	.pointer =	snd_vt1724_pcm_pointer,
 };
 
 
@@ -1017,27 +1052,24 @@
  * independent surround PCMs
  */
 
-const static struct vt1724_pcm_reg vt1724_playback_dma_regs[3] = {
+static struct vt1724_pcm_reg vt1724_playback_dma_regs[3] = {
 	{
 		.addr = VT1724_MT_PDMA1_ADDR,
 		.size = VT1724_MT_PDMA1_SIZE,
 		.count = VT1724_MT_PDMA1_COUNT,
 		.start = VT1724_PDMA1_START,
-		.pause = VT1724_PDMA1_PAUSE,
 	},
 	{
 		.addr = VT1724_MT_PDMA2_ADDR,
 		.size = VT1724_MT_PDMA2_SIZE,
 		.count = VT1724_MT_PDMA2_COUNT,
 		.start = VT1724_PDMA2_START,
-		.pause = VT1724_PDMA2_PAUSE,
 	},
 	{
 		.addr = VT1724_MT_PDMA3_ADDR,
 		.size = VT1724_MT_PDMA3_SIZE,
 		.count = VT1724_MT_PDMA3_COUNT,
 		.start = VT1724_PDMA3_START,
-		.pause = VT1724_PDMA3_PAUSE,
 	},
 };
 
@@ -1051,12 +1083,7 @@
 	if (inb(ICEMT1724(ice, BURST)) < val)
 		outb(val, ICEMT1724(ice, BURST));
 	spin_unlock(&ice->reg_lock);
-	return snd_vt1724_pcm_prepare(substream, &vt1724_playback_dma_regs[substream->number]);
-}
-
-static snd_pcm_uframes_t snd_vt1724_playback_indep_pointer(snd_pcm_substream_t * substream)
-{
-	return snd_vt1724_pcm_pointer(substream, &vt1724_playback_dma_regs[substream->number]);
+	return snd_vt1724_pcm_prepare(substream);
 }
 
 static int snd_vt1724_playback_indep_open(snd_pcm_substream_t *substream)
@@ -1071,7 +1098,7 @@
 		return -EBUSY; /* FIXME: should handle blocking mode properly */
 	}
 	up(&ice->open_mutex);
-	runtime->private_data = (void*)(1UL << (substream->number + 4));
+	runtime->private_data = &vt1724_playback_dma_regs[substream->number];
 	ice->playback_con_substream_ds[substream->number] = substream;
 	runtime->hw = snd_vt1724_2ch_stereo;
 	snd_pcm_set_sync(substream);
@@ -1100,7 +1127,7 @@
 	.hw_free =	snd_vt1724_pcm_hw_free,
 	.prepare =	snd_vt1724_playback_indep_prepare,
 	.trigger =	snd_vt1724_pcm_trigger,
-	.pointer =	snd_vt1724_playback_indep_pointer,
+	.pointer =	snd_vt1724_pcm_pointer,
 };
 
 
@@ -1181,7 +1208,7 @@
 static void snd_vt1724_proc_read(snd_info_entry_t *entry, 
 				 snd_info_buffer_t * buffer)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, entry->private_data, return);
+	ice1712_t *ice = entry->private_data;
 	unsigned int idx;
 
 	snd_iprintf(buffer, "%s\n\n", ice->card->longname);
@@ -1274,7 +1301,7 @@
 		}
 	} else {
 		/* consumer */
-		val |= diga->status[0] & 0x04; /* copyright */
+		val |= diga->status[1] & 0x04; /* copyright */
 		if ((diga->status[0] & IEC958_AES0_CON_EMPHASIS)== IEC958_AES0_CON_EMPHASIS_5015)
 			val |= 1U << 3;
 		val |= (unsigned int)(diga->status[1] & 0x3f) << 4; /* category */
@@ -1331,16 +1358,8 @@
 	val = encode_spdif_bits(&ucontrol->value.iec958);
 	spin_lock_irqsave(&ice->reg_lock, flags);
 	old = inw(ICEMT1724(ice, SPDIF_CTRL));
-	if (val != old) {
-		unsigned char cbit, disabled;
-		cbit = inb(ICEREG1724(ice, SPDIF_CFG));
-		disabled = cbit & ~VT1724_CFG_SPDIF_OUT_EN;
-		if (cbit != disabled)
-			outb(disabled, ICEREG1724(ice, SPDIF_CFG));
-		outw(val, ICEMT1724(ice, SPDIF_CTRL));
-		if (cbit != disabled)
-			outb(cbit, ICEREG1724(ice, SPDIF_CFG));
-	}
+	if (val != old)
+		update_spdif_bits(ice, val);
 	spin_unlock_irqrestore(&ice->reg_lock, flags);
 	return (val != old);
 }
@@ -1544,6 +1563,7 @@
 {
 	ice1712_t *ice = snd_kcontrol_chip(kcontrol);
 	unsigned char oval;
+	int rate;
 	int change = 0;
 
 	spin_lock_irq(&ice->reg_lock);
@@ -1551,10 +1571,13 @@
 	if (ucontrol->value.enumerated.item[0] == 15) {
 		outb(oval | VT1724_SPDIF_MASTER, ICEMT1724(ice, RATE));
 	} else {
-		PRO_RATE_DEFAULT = rates[ucontrol->value.integer.value[0] % 15];
-		spin_unlock_irq(&ice->reg_lock);
-		snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 1);
-		spin_lock_irq(&ice->reg_lock);
+		rate = rates[ucontrol->value.integer.value[0] % 15];
+		if (rate <= get_max_rate(ice)) {
+			PRO_RATE_DEFAULT = rate;
+			spin_unlock_irq(&ice->reg_lock);
+			snd_vt1724_set_pro_rate(ice, PRO_RATE_DEFAULT, 1);
+			spin_lock_irq(&ice->reg_lock);
+		}
 	}
 	change = inb(ICEMT1724(ice, RATE)) != oval;
 	spin_unlock_irq(&ice->reg_lock);
@@ -1815,6 +1838,7 @@
 	snd_vt1724_revo_cards,
 	snd_vt1724_amp_cards, 
 	snd_vt1724_aureon_cards,
+	snd_vt1720_mobo_cards,
 	NULL,
 };
 
@@ -1822,24 +1846,28 @@
 /*
  */
 
-unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr)
+static void wait_i2c_busy(ice1712_t *ice)
 {
-	long t = 0x10000;
+	int t = 0x10000;
+	while ((inb(ICEREG1724(ice, I2C_CTRL)) & VT1724_I2C_BUSY) && t--)
+		;
+}
 
+unsigned char snd_vt1724_read_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr)
+{
 	outb(addr, ICEREG1724(ice, I2C_BYTE_ADDR));
 	outb(dev & ~VT1724_I2C_WRITE, ICEREG1724(ice, I2C_DEV_ADDR));
-	while (t-- > 0 && (inb(ICEREG1724(ice, I2C_CTRL)) & VT1724_I2C_BUSY)) ;
+	wait_i2c_busy(ice);
 	return inb(ICEREG1724(ice, I2C_DATA));
 }
 
 void snd_vt1724_write_i2c(ice1712_t *ice, unsigned char dev, unsigned char addr, unsigned char data)
 {
-	long t = 0x10000;
-
+	wait_i2c_busy(ice);
 	outb(addr, ICEREG1724(ice, I2C_BYTE_ADDR));
 	outb(data, ICEREG1724(ice, I2C_DATA));
 	outb(dev | VT1724_I2C_WRITE, ICEREG1724(ice, I2C_DEV_ADDR));
-	while (t-- > 0 && (inb(ICEREG1724(ice, I2C_CTRL)) & VT1724_I2C_BUSY)) ;
+	wait_i2c_busy(ice);
 }
 
 static int __devinit snd_vt1724_read_eeprom(ice1712_t *ice, const char *modelname)
@@ -1930,9 +1958,6 @@
 
 	outb(0, ICEREG1724(ice, POWERDOWN));
 
-	/* read back to check the availability of SPDIF out */
-	ice->eeprom.data[ICE_EEP2_SPDIF] = inb(ICEREG1724(ice, SPDIF_CFG));
-
 	return 0;
 }
 
@@ -1994,10 +2019,9 @@
 
 	if (ice->num_total_dacs > 0) {
 		snd_kcontrol_new_t tmp = snd_vt1724_mixer_pro_analog_route;
-		if (ice->vt1720)
+		tmp.count = ice->num_total_dacs;
+		if (ice->vt1720 && tmp.count > 2)
 			tmp.count = 2;
-		else
-			tmp.count = ice->num_total_dacs;
 		err = snd_ctl_add(ice->card, snd_ctl_new1(&tmp, ice));
 		if (err < 0)
 			return err;
@@ -2032,13 +2056,13 @@
 		kfree_nocheck(ice->res_profi_port);
 	}
 	snd_ice1712_akm4xxx_free(ice);
-	snd_magic_kfree(ice);
+	kfree(ice);
 	return 0;
 }
 
 static int snd_vt1724_dev_free(snd_device_t *device)
 {
-	ice1712_t *ice = snd_magic_cast(ice1712_t, device->device_data, return -ENXIO);
+	ice1712_t *ice = device->device_data;
 	return snd_vt1724_free(ice);
 }
 
@@ -2060,7 +2084,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	ice = snd_magic_kcalloc(ice1712_t, 0, GFP_KERNEL);
+	ice = kcalloc(1, sizeof(*ice), GFP_KERNEL);
 	if (ice == NULL)
 		return -ENOMEM;
 	ice->vt1724 = 1;
diff -Nru a/sound/pci/ice1712/revo.c b/sound/pci/ice1712/revo.c
--- a/sound/pci/ice1712/revo.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ice1712/revo.c	2004-07-27 18:28:33 -07:00
@@ -128,7 +128,7 @@
 	switch (ice->eeprom.subvendor) {
 	case VT1724_SUBDEVICE_REVOLUTION71:
 		ice->num_total_dacs = 8;
-		ice->num_total_adcs = 4;
+		ice->num_total_adcs = 2;
 		break;
 	default:
 		snd_BUG();
@@ -136,7 +136,7 @@
 	}
 
 	/* second stage of initialization, analog parts and others */
-	ak = ice->akm = snd_kcalloc(sizeof(akm4xxx_t) * 2, GFP_KERNEL);
+	ak = ice->akm = kcalloc(2, sizeof(akm4xxx_t), GFP_KERNEL);
 	if (! ak)
 		return -ENOMEM;
 	ice->akm_codecs = 2;
diff -Nru a/sound/pci/ice1712/vt1720_mobo.c b/sound/pci/ice1712/vt1720_mobo.c
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/sound/pci/ice1712/vt1720_mobo.c	2004-07-27 18:28:33 -07:00
@@ -0,0 +1,97 @@
+/*
+ *   ALSA driver for VT1720/VT1724 (Envy24PT/Envy24HT)
+ *
+ *   Lowlevel functions for VT1720-based motherboards
+ *
+ *	Copyright (c) 2004 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
+ *
+ */      
+
+#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 "vt1720_mobo.h"
+
+
+static int __devinit k8x800_init(ice1712_t *ice)
+{
+	ice->vt1720 = 1;
+
+	/* VT1616 codec */
+	ice->num_total_dacs = 6;
+	ice->num_total_adcs = 2;
+
+	/* WM8728 codec */
+	/* FIXME: TODO */
+
+	return 0;
+}
+
+static int __devinit k8x800_add_controls(ice1712_t *ice)
+{
+	/* FIXME: needs some quirks for VT1616? */
+	return 0;
+}
+
+/* EEPROM image */
+
+static unsigned char k8x800_eeprom[] __devinitdata = {
+	0x01,	/* SYSCONF: clock 256, 1ADC, 2DACs */
+	0x02,	/* ACLINK: ACLINK, packed */
+	0x00,	/* I2S: - */
+	0x00,	/* SPDIF: - */
+	0xff,	/* GPIO_DIR */
+	0xff,	/* GPIO_DIR1 */
+	0x00,	/* - */
+	0xff,	/* GPIO_MASK */
+	0xff,	/* GPIO_MASK1 */
+	0x00,	/* - */
+	0x00,	/* GPIO_STATE */
+	0x00,	/* GPIO_STATE1 */
+	0x00,	/* - */
+};
+
+
+/* entry point */
+struct snd_ice1712_card_info snd_vt1720_mobo_cards[] __devinitdata = {
+	{
+		.subvendor = VT1720_SUBDEVICE_K8X800,
+		.name = "Albatron K8X800 Pro II",
+		.model = "k8x800",
+		.chip_init = k8x800_init,
+		.build_controls = k8x800_add_controls,
+		.eeprom_size = sizeof(k8x800_eeprom),
+		.eeprom_data = k8x800_eeprom,
+	},
+	{
+		.subvendor = VT1720_SUBDEVICE_ZNF3_150,
+		.name = "Chaintech ZNF3-150",
+		/* identical with k8x800 */
+		.chip_init = k8x800_init,
+		.build_controls = k8x800_add_controls,
+		.eeprom_size = sizeof(k8x800_eeprom),
+		.eeprom_data = k8x800_eeprom,
+	},
+	{ } /* terminator */
+};
+
diff -Nru a/sound/pci/ice1712/vt1720_mobo.h b/sound/pci/ice1712/vt1720_mobo.h
--- /dev/null	Wed Dec 31 16:00:00 196900
+++ b/sound/pci/ice1712/vt1720_mobo.h	2004-07-27 18:28:33 -07:00
@@ -0,0 +1,35 @@
+#ifndef __SOUND_VT1720_MOBO_H
+#define __SOUND_VT1720_MOBO_H
+
+/*
+ *   ALSA driver for VT1720/VT1724 (Envy24PT/Envy24HT)
+ *
+ *   Lowlevel functions for VT1720-based motherboards
+ *
+ *	Copyright (c) 2004 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 VT1720_MOBO_DEVICE_DESC        "{Albatron,K8X800 Pro II},"\
+				       "{Chaintech,ZNF3-150},"
+
+#define VT1720_SUBDEVICE_K8X800		0xf217052c
+#define VT1720_SUBDEVICE_ZNF3_150	0x0f2741f6
+
+extern struct snd_ice1712_card_info  snd_vt1720_mobo_cards[];
+
+#endif /* __SOUND_VT1720_MOBO_H */
diff -Nru a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
--- a/sound/pci/intel8x0.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/intel8x0.c	2004-07-27 18:28:33 -07:00
@@ -48,8 +48,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440; SiS 7012; Ali 5455");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Intel,82801AA-ICH},"
+MODULE_SUPPORTED_DEVICE("{{Intel,82801AA-ICH},"
 		"{Intel,82901AB-ICH0},"
 		"{Intel,82801BA-ICH2},"
 		"{Intel,82801CA-ICH3},"
@@ -85,28 +84,21 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Intel i8x0 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Intel i8x0 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Intel i8x0 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(ac97_clock, int, boot_devs, 0444);
 MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (0 = auto-detect).");
-MODULE_PARM_SYNTAX(ac97_clock, SNDRV_ENABLED ",default:0");
 module_param_array(ac97_quirk, int, boot_devs, 0444);
 MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware.");
-MODULE_PARM_SYNTAX(ac97_quirk, SNDRV_ENABLED ",allows:{{-1,4}},dialog:list,default:-1");
 #ifdef SUPPORT_JOYSTICK
 module_param_array(joystick, bool, boot_devs, 0444);
 MODULE_PARM_DESC(joystick, "Enable joystick for Intel i8x0 soundcard.");
-MODULE_PARM_SYNTAX(joystick, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 #endif
 #ifdef SUPPORT_MIDI
 module_param_array(mpu_port, int, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU401 port # for Intel i8x0 driver.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_ENABLED ",allows:{{0},{0x330},{0x300}},dialog:list");
 #endif
 
 /*
@@ -149,6 +141,9 @@
 #ifndef PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO
 #define PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO	0x006a
 #endif
+#ifndef PCI_DEVICE_ID_NVIDIA_CK8_AUDIO
+#define PCI_DEVICE_ID_NVIDIA_CK8_AUDIO	0x008a
+#endif
 #ifndef PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO
 #define PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO	0x00da
 #endif
@@ -397,7 +392,6 @@
 } ichdev_t;
 
 typedef struct _snd_intel8x0 intel8x0_t;
-#define chip_t intel8x0_t
 
 struct _snd_intel8x0 {
 	unsigned int device_type;
@@ -463,6 +457,7 @@
 	{ 0x1039, 0x7012, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_SIS },	/* SI7012 */
 	{ 0x10de, 0x01b1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE },	/* NFORCE */
 	{ 0x10de, 0x006a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE },	/* NFORCE2 */
+	{ 0x10de, 0x008a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE },	/* CK8 */
 	{ 0x10de, 0x00da, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE },	/* NFORCE3 */
 	{ 0x10de, 0x00ea, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_NFORCE },	/* CK8S */
 	{ 0x1022, 0x746d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL },	/* AMD8111 */
@@ -605,7 +600,7 @@
 				     unsigned short reg,
 				     unsigned short val)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, ac97->private_data, return);
+	intel8x0_t *chip = ac97->private_data;
 	
 	spin_lock(&chip->ac97_lock);
 	if (snd_intel8x0_codec_semaphore(chip, ac97->num) < 0) {
@@ -619,7 +614,7 @@
 static unsigned short snd_intel8x0_codec_read(ac97_t *ac97,
 					      unsigned short reg)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, ac97->private_data, return ~0);
+	intel8x0_t *chip = ac97->private_data;
 	unsigned short res;
 	unsigned int tmp;
 
@@ -669,7 +664,7 @@
 
 static unsigned short snd_intel8x0_ali_codec_read(ac97_t *ac97, unsigned short reg)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, ac97->private_data, return ~0);
+	intel8x0_t *chip = ac97->private_data;
 	unsigned short data = 0xffff;
 
 	spin_lock(&chip->ac97_lock);
@@ -689,7 +684,7 @@
 
 static void snd_intel8x0_ali_codec_write(ac97_t *ac97, unsigned short reg, unsigned short val)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, ac97->private_data, return);
+	intel8x0_t *chip = ac97->private_data;
 
 	spin_lock(&chip->ac97_lock);
 	if (snd_intel8x0_ali_codec_semaphore(chip)) {
@@ -822,7 +817,7 @@
 
 static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, dev_id, return IRQ_NONE);
+	intel8x0_t *chip = dev_id;
 	ichdev_t *ichdev;
 	unsigned int status;
 	unsigned int i;
@@ -1058,17 +1053,23 @@
 {
 	intel8x0_t *chip = snd_pcm_substream_chip(substream);
 	ichdev_t *ichdev = get_ichdev(substream);
-	unsigned long flags;
 	size_t ptr1, ptr;
+	int civ, timeout = 10;
+	unsigned int position;
 
-	ptr1 = igetword(chip, ichdev->reg_offset + ichdev->roff_picb) << ichdev->pos_shift;
-	if (ptr1 != 0)
-		ptr = ichdev->fragsize1 - ptr1;
-	else
-		ptr = 0;
-	spin_lock_irqsave(&chip->reg_lock, flags);
-	ptr += ichdev->position;
-	spin_unlock_irqrestore(&chip->reg_lock, flags);
+	do {
+		civ = igetbyte(chip, ichdev->reg_offset + ICH_REG_OFF_CIV);
+		ptr1 = igetword(chip, ichdev->reg_offset + ichdev->roff_picb);
+		position = ichdev->position;
+		if (ptr1 == 0)
+			udelay(1);
+		if (civ == igetbyte(chip, ichdev->reg_offset + ICH_REG_OFF_CIV) &&
+		    ptr1 == igetword(chip, ichdev->reg_offset + ichdev->roff_picb))
+			break;
+	} while (timeout--);
+	ptr1 <<= ichdev->pos_shift;
+	ptr = ichdev->fragsize1 - ptr1;
+	ptr += position;
 	if (ptr >= ichdev->size)
 		return 0;
 	return bytes_to_frames(substream->runtime, ptr);
@@ -1627,13 +1628,13 @@
 
 static void snd_intel8x0_mixer_free_ac97_bus(ac97_bus_t *bus)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, bus->private_data, return);
+	intel8x0_t *chip = bus->private_data;
 	chip->ac97_bus = NULL;
 }
 
 static void snd_intel8x0_mixer_free_ac97(ac97_t *ac97)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, ac97->private_data, return);
+	intel8x0_t *chip = ac97->private_data;
 	chip->ac97[ac97->num] = NULL;
 }
 
@@ -2198,7 +2199,7 @@
 	}
 	if (chip->irq >= 0)
 		free_irq(chip->irq, (void *)chip);
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
@@ -2208,7 +2209,7 @@
  */
 static int intel8x0_suspend(snd_card_t *card, unsigned int state)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, card->pm_private_data, return -EINVAL);
+	intel8x0_t *chip = card->pm_private_data;
 	int i;
 
 	for (i = 0; i < chip->pcm_devs; i++)
@@ -2223,7 +2224,7 @@
 
 static int intel8x0_resume(snd_card_t *card, unsigned int state)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, card->pm_private_data, return -EINVAL);
+	intel8x0_t *chip = card->pm_private_data;
 	int i;
 
 	pci_restore_state(chip->pci, chip->pci_state);
@@ -2346,7 +2347,7 @@
 static void snd_intel8x0_proc_read(snd_info_entry_t * entry,
 				   snd_info_buffer_t * buffer)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, entry->private_data, return);
+	intel8x0_t *chip = entry->private_data;
 	unsigned int tmp;
 
 	snd_iprintf(buffer, "Intel8x0\n\n");
@@ -2379,7 +2380,7 @@
 
 static int snd_intel8x0_dev_free(snd_device_t *device)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, device->device_data, return -ENXIO);
+	intel8x0_t *chip = device->device_data;
 	return snd_intel8x0_free(chip);
 }
 
@@ -2438,7 +2439,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	chip = snd_magic_kcalloc(intel8x0_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
@@ -2614,6 +2615,7 @@
 	{ PCI_DEVICE_ID_NVIDIA_MCP2_AUDIO, "NVidia nForce2" },
 	{ PCI_DEVICE_ID_NVIDIA_MCP3_AUDIO, "NVidia nForce3" },
 	{ PCI_DEVICE_ID_NVIDIA_CK8S_AUDIO, "NVidia CK8S" },
+	{ PCI_DEVICE_ID_NVIDIA_CK8_AUDIO, "NVidia CK8" },
 	{ 0x746d, "AMD AMD8111" },
 	{ 0x7445, "AMD AMD768" },
 	{ 0x5455, "ALi M5455" },
diff -Nru a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c
--- a/sound/pci/intel8x0m.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/intel8x0m.c	2004-07-27 18:28:33 -07:00
@@ -42,8 +42,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Intel 82801AA,82901AB,i810,i820,i830,i840,i845,MX440 modem");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Intel,82801AA-ICH},"
+MODULE_SUPPORTED_DEVICE("{{Intel,82801AA-ICH},"
 		"{Intel,82901AB-ICH0},"
 		"{Intel,82801BA-ICH2},"
 		"{Intel,82801CA-ICH3},"
@@ -60,16 +59,12 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Intel i8x0 modemcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Intel i8x0 modemcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Intel i8x0 modemcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(ac97_clock, int, boot_devs, 0444);
 MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (0 = auto-detect).");
-MODULE_PARM_SYNTAX(ac97_clock, SNDRV_ENABLED ",default:0");
 
 /*
  *  Direct registers
@@ -228,7 +223,6 @@
 } ichdev_t;
 
 typedef struct _snd_intel8x0m intel8x0_t;
-#define chip_t intel8x0_t
 
 struct _snd_intel8x0m {
 	unsigned int device_type;
@@ -408,7 +402,7 @@
 				     unsigned short reg,
 				     unsigned short val)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, ac97->private_data, return);
+	intel8x0_t *chip = ac97->private_data;
 	
 	spin_lock(&chip->ac97_lock);
 	if (snd_intel8x0m_codec_semaphore(chip, ac97->num) < 0) {
@@ -422,7 +416,7 @@
 static unsigned short snd_intel8x0_codec_read(ac97_t *ac97,
 					      unsigned short reg)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, ac97->private_data, return ~0);
+	intel8x0_t *chip = ac97->private_data;
 	unsigned short res;
 	unsigned int tmp;
 
@@ -542,7 +536,7 @@
 
 static irqreturn_t snd_intel8x0_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, dev_id, return IRQ_NONE);
+	intel8x0_t *chip = dev_id;
 	ichdev_t *ichdev;
 	unsigned int status;
 	unsigned int i;
@@ -872,13 +866,13 @@
 
 static void snd_intel8x0_mixer_free_ac97_bus(ac97_bus_t *bus)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, bus->private_data, return);
+	intel8x0_t *chip = bus->private_data;
 	chip->ac97_bus = NULL;
 }
 
 static void snd_intel8x0_mixer_free_ac97(ac97_t *ac97)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, ac97->private_data, return);
+	intel8x0_t *chip = ac97->private_data;
 	chip->ac97 = NULL;
 }
 
@@ -1071,7 +1065,7 @@
 	}
 	if (chip->irq >= 0)
 		free_irq(chip->irq, (void *)chip);
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
@@ -1081,7 +1075,7 @@
  */
 static int intel8x0m_suspend(snd_card_t *card, unsigned int state)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, card->pm_private_data, return -EINVAL);
+	intel8x0_t *chip = card->pm_private_data;
 	int i;
 
 	for (i = 0; i < chip->pcm_devs; i++)
@@ -1094,7 +1088,7 @@
 
 static int intel8x0m_resume(snd_card_t *card, unsigned int state)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, card->pm_private_data, return -EINVAL);
+	intel8x0_t *chip = card->pm_private_data;
 	pci_enable_device(chip->pci);
 	pci_set_master(chip->pci);
 	snd_intel8x0_chip_init(chip, 0);
@@ -1109,7 +1103,7 @@
 static void snd_intel8x0m_proc_read(snd_info_entry_t * entry,
 				   snd_info_buffer_t * buffer)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, entry->private_data, return);
+	intel8x0_t *chip = entry->private_data;
 	unsigned int tmp;
 
 	snd_iprintf(buffer, "Intel8x0m\n\n");
@@ -1135,7 +1129,7 @@
 
 static int snd_intel8x0_dev_free(snd_device_t *device)
 {
-	intel8x0_t *chip = snd_magic_cast(intel8x0_t, device->device_data, return -ENXIO);
+	intel8x0_t *chip = device->device_data;
 	return snd_intel8x0_free(chip);
 }
 
@@ -1168,7 +1162,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	chip = snd_magic_kcalloc(intel8x0_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	spin_lock_init(&chip->reg_lock);
diff -Nru a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c
--- a/sound/pci/korg1212/korg1212.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/korg1212/korg1212.c	2004-07-27 18:28:32 -07:00
@@ -411,8 +411,7 @@
 
 MODULE_DESCRIPTION("korg1212");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{KORG,korg1212}}");
+MODULE_SUPPORTED_DEVICE("{{KORG,korg1212}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;     /* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	   /* ID for this card */
@@ -421,13 +420,10 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Korg 1212 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Korg 1212 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Korg 1212 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 MODULE_AUTHOR("Haroldo Gamal <gamal@alternex.com.br>");
 
 static struct pci_device_id snd_korg1212_ids[] = {
@@ -637,7 +633,7 @@
 /* timer callback for checking the ack of stop request */
 static void snd_korg1212_timer_func(unsigned long data)
 {
-        korg1212_t *korg1212 = snd_magic_cast(korg1212_t, (void*)data, return);
+        korg1212_t *korg1212 = (korg1212_t *) data;
 	
 	spin_lock(&korg1212->lock);
 	if (readl(&korg1212->sharedBufferPtr->cardCommand) == 0) {
@@ -1143,7 +1139,7 @@
 static irqreturn_t snd_korg1212_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
         u32 doorbellValue;
-        korg1212_t *korg1212 = snd_magic_cast(korg1212_t, dev_id, return IRQ_NONE);
+        korg1212_t *korg1212 = dev_id;
 
 	if(irq != korg1212->irq)
 		return IRQ_NONE;
@@ -1407,20 +1403,21 @@
 static int snd_korg1212_playback_open(snd_pcm_substream_t *substream)
 {
         unsigned long flags;
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
         snd_pcm_runtime_t *runtime = substream->runtime;
 
 #if K1212_DEBUG_LEVEL > 0
 		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_open [%s]\n", stateName[korg1212->cardState]);
 #endif
 
+	substream->dma_device = korg1212->dma_dev; /* set for mmap */
+
         snd_pcm_set_sync(substream);    // ???
 
 	snd_korg1212_OpenCard(korg1212);
 
         runtime->hw = snd_korg1212_playback_info;
-	runtime->dma_area = (char *) korg1212->playDataBufsPtr;
-	runtime->dma_bytes = K1212_BUF_SIZE;
+	snd_pcm_set_runtime_buffer(substream, &korg1212->dma_play);
 
         spin_lock_irqsave(&korg1212->lock, flags);
 
@@ -1438,20 +1435,21 @@
 static int snd_korg1212_capture_open(snd_pcm_substream_t *substream)
 {
         unsigned long flags;
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
         snd_pcm_runtime_t *runtime = substream->runtime;
 
 #if K1212_DEBUG_LEVEL > 0
 		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_open [%s]\n", stateName[korg1212->cardState]);
 #endif
 
+	substream->dma_device = korg1212->dma_dev; /* set for mmap */
+
         snd_pcm_set_sync(substream);    // ???
 
 	snd_korg1212_OpenCard(korg1212);
 
         runtime->hw = snd_korg1212_capture_info;
-	runtime->dma_area = (char *) korg1212->recordDataBufsPtr;
-	runtime->dma_bytes = K1212_BUF_SIZE;
+	snd_pcm_set_runtime_buffer(substream, &korg1212->dma_rec);
 
         spin_lock_irqsave(&korg1212->lock, flags);
 
@@ -1468,7 +1466,7 @@
 static int snd_korg1212_playback_close(snd_pcm_substream_t *substream)
 {
         unsigned long flags;
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
 
 #if K1212_DEBUG_LEVEL > 0
 		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_close [%s]\n", stateName[korg1212->cardState]);
@@ -1490,7 +1488,7 @@
 static int snd_korg1212_capture_close(snd_pcm_substream_t *substream)
 {
         unsigned long flags;
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
 
 #if K1212_DEBUG_LEVEL > 0
 		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_close [%s]\n", stateName[korg1212->cardState]);
@@ -1532,7 +1530,7 @@
                              snd_pcm_hw_params_t *params)
 {
         unsigned long flags;
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
         int err;
 
 #if K1212_DEBUG_LEVEL > 0
@@ -1560,7 +1558,7 @@
 
 static int snd_korg1212_prepare(snd_pcm_substream_t *substream)
 {
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
 	int rc;
 
 #if K1212_DEBUG_LEVEL > 0
@@ -1595,7 +1593,7 @@
 static int snd_korg1212_trigger(snd_pcm_substream_t *substream,
                            int cmd)
 {
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
 	int rc;
 
 #if K1212_DEBUG_LEVEL > 0
@@ -1640,7 +1638,7 @@
 
 static snd_pcm_uframes_t snd_korg1212_playback_pointer(snd_pcm_substream_t *substream)
 {
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
         snd_pcm_uframes_t pos;
 
 	pos = korg1212->currentBuffer * kPlayBufferFrames;
@@ -1655,7 +1653,7 @@
 
 static snd_pcm_uframes_t snd_korg1212_capture_pointer(snd_pcm_substream_t *substream)
 {
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
         snd_pcm_uframes_t pos;
 
 	pos = korg1212->currentBuffer * kPlayBufferFrames;
@@ -1674,7 +1672,7 @@
                         void __user *src,
                         snd_pcm_uframes_t count)
 {
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
 
 #if K1212_DEBUG_LEVEL > 2
 		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_copy [%s] %ld %ld\n", stateName[korg1212->cardState], pos, count);
@@ -1689,7 +1687,7 @@
                            snd_pcm_uframes_t pos,
                            snd_pcm_uframes_t count)
 {
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
 
 #if K1212_DEBUG_LEVEL > 0
 		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_playback_silence [%s]\n", stateName[korg1212->cardState]);
@@ -1704,7 +1702,7 @@
                         void __user *dst,
                         snd_pcm_uframes_t count)
 {
-        korg1212_t *korg1212 = _snd_pcm_substream_chip(substream);
+        korg1212_t *korg1212 = snd_pcm_substream_chip(substream);
 
 #if K1212_DEBUG_LEVEL > 2
 		K1212_DEBUG_PRINTK("K1212_DEBUG: snd_korg1212_capture_copy [%s] %ld %ld\n", stateName[korg1212->cardState], pos, count);
@@ -1749,7 +1747,7 @@
 
 static int snd_korg1212_control_phase_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int i = kcontrol->private_value;
 
@@ -1767,7 +1765,7 @@
 
 static int snd_korg1212_control_phase_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
         int change = 0;
         int i, val;
@@ -1814,7 +1812,7 @@
 
 static int snd_korg1212_control_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
         int i;
 
@@ -1833,7 +1831,7 @@
 
 static int snd_korg1212_control_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
         int change = 0;
         int i;
@@ -1878,7 +1876,7 @@
 
 static int snd_korg1212_control_route_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
         int i;
 
@@ -1897,7 +1895,7 @@
 
 static int snd_korg1212_control_route_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
         int change = 0, i;
 
@@ -1933,7 +1931,7 @@
 
 static int snd_korg1212_control_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 
 	spin_lock_irqsave(&korg1212->lock, flags);
@@ -1948,7 +1946,7 @@
 
 static int snd_korg1212_control_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
         int change = 0;
 
@@ -1985,7 +1983,7 @@
 
 static int snd_korg1212_control_sync_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 
 	spin_lock_irqsave(&korg1212->lock, flags);
@@ -1998,7 +1996,7 @@
 
 static int snd_korg1212_control_sync_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	korg1212_t *korg1212 = _snd_kcontrol_chip(kcontrol);
+	korg1212_t *korg1212 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change;
@@ -2171,13 +2169,13 @@
 		korg1212->dma_shared.area = NULL;
         }
         
-        snd_magic_kfree(korg1212);
+        kfree(korg1212);
         return 0;
 }
 
 static int snd_korg1212_dev_free(snd_device_t *device)
 {
-        korg1212_t *korg1212 = snd_magic_cast(korg1212_t, device->device_data, return -ENXIO);
+        korg1212_t *korg1212 = device->device_data;
 #if K1212_DEBUG_LEVEL > 0
         K1212_DEBUG_PRINTK("K1212_DEBUG: Freeing device\n");
 #endif
@@ -2201,7 +2199,7 @@
         if ((err = pci_enable_device(pci)) < 0)
                 return err;
 
-        korg1212 = snd_magic_kcalloc(korg1212_t, 0, GFP_KERNEL);
+        korg1212 = kcalloc(1, sizeof(*korg1212), GFP_KERNEL);
         if (korg1212 == NULL)
                 return -ENOMEM;
 
diff -Nru a/sound/pci/maestro3.c b/sound/pci/maestro3.c
--- a/sound/pci/maestro3.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/maestro3.c	2004-07-27 18:28:33 -07:00
@@ -51,8 +51,7 @@
 MODULE_AUTHOR("Zach Brown <zab@zabbo.net>, Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("ESS Maestro3 PCI");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{ESS,Maestro3 PCI},"
+MODULE_SUPPORTED_DEVICE("{{ESS,Maestro3 PCI},"
 		"{ESS,ES1988},"
 		"{ESS,Allegro PCI},"
 		"{ESS,Allegro-1 PCI},"
@@ -67,19 +66,14 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable this soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(external_amp, bool, boot_devs, 0444);
 MODULE_PARM_DESC(external_amp, "Enable external amp for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(external_amp, SNDRV_ENABLED "," SNDRV_BOOLEAN_TRUE_DESC);
 module_param_array(amp_gpio, int, boot_devs, 0444);
 MODULE_PARM_DESC(amp_gpio, "GPIO pin number for external amp. (default = -1)");
-MODULE_PARM_SYNTAX(amp_gpio, SNDRV_ENABLED);
 
 #define MAX_PLAYBACKS	2
 #define MAX_CAPTURES	1
@@ -776,8 +770,6 @@
 
 typedef struct snd_m3_dma m3_dma_t;
 typedef struct snd_m3 m3_t;
-#define chip_t m3_t
-
 
 /* quirk lists */
 struct m3_quirk {
@@ -1573,7 +1565,7 @@
 static irqreturn_t
 snd_m3_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	m3_t *chip = snd_magic_cast(m3_t, dev_id, );
+	m3_t *chip = dev_id;
 	u8 status;
 	int i;
 
@@ -1848,7 +1840,7 @@
 static unsigned short
 snd_m3_ac97_read(ac97_t *ac97, unsigned short reg)
 {
-	m3_t *chip = snd_magic_cast(m3_t, ac97->private_data, return -ENXIO);
+	m3_t *chip = ac97->private_data;
 	unsigned short ret = 0;
 	unsigned long flags;
 
@@ -1867,7 +1859,7 @@
 static void
 snd_m3_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short val)
 {
-	m3_t *chip = snd_magic_cast(m3_t, ac97->private_data, return);
+	m3_t *chip = ac97->private_data;
 	unsigned long flags;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -2402,7 +2394,7 @@
 	if (chip->irq >= 0)
 		free_irq(chip->irq, (void *)chip);
 
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
@@ -2413,7 +2405,7 @@
 #ifdef CONFIG_PM
 static int m3_suspend(snd_card_t *card, unsigned int state)
 {
-	m3_t *chip = snd_magic_cast(m3_t, card->pm_private_data, return -EINVAL);
+	m3_t *chip = card->pm_private_data;
 	int i, index;
 
 	if (chip->suspend_mem == NULL)
@@ -2444,7 +2436,7 @@
 
 static int m3_resume(snd_card_t *card, unsigned int state)
 {
-	m3_t *chip = snd_magic_cast(m3_t, card->pm_private_data, return -EINVAL);
+	m3_t *chip = card->pm_private_data;
 	int i, index;
 
 	if (chip->suspend_mem == NULL)
@@ -2489,7 +2481,7 @@
 
 static int snd_m3_dev_free(snd_device_t *device)
 {
-	m3_t *chip = snd_magic_cast(m3_t, device->device_data, return -ENXIO);
+	m3_t *chip = device->device_data;
 	return snd_m3_free(chip);
 }
 
@@ -2519,7 +2511,7 @@
 		return -ENXIO;
 	}
 
-	chip = snd_magic_kcalloc(m3_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 
@@ -2562,7 +2554,7 @@
 	chip->num_substreams = NR_DSPS;
 	chip->substreams = kmalloc(sizeof(m3_dma_t) * chip->num_substreams, GFP_KERNEL);
 	if (chip->substreams == NULL) {
-		snd_magic_kfree(chip);
+		kfree(chip);
 		return -ENOMEM;
 	}
 	memset(chip->substreams, 0, sizeof(m3_dma_t) * chip->num_substreams);
diff -Nru a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c
--- a/sound/pci/mixart/mixart.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/mixart/mixart.c	2004-07-27 18:28:33 -07:00
@@ -42,25 +42,19 @@
 MODULE_AUTHOR("Digigram <alsa@digigram.com>");
 MODULE_DESCRIPTION("Digigram " CARD_NAME);
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Digigram," CARD_NAME "}}");
+MODULE_SUPPORTED_DEVICE("{{Digigram," CARD_NAME "}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;             /* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;              /* ID for this card */
 static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;     /* Enable this card */
 static int boot_devs;
 
-#define chip_t mixart_t
-
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Digigram " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Digigram " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Digigram " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 
 /*
  */
@@ -247,21 +241,27 @@
 	/* pipe is not yet defined */
 	if( pipe->status == PIPE_UNDEFINED ) {
 		int err, i;
-		mixart_streaming_group_t streaming_group_resp;
-		mixart_streaming_group_req_t streaming_group_req;
+		struct {
+			mixart_streaming_group_req_t sgroup_req;
+			mixart_streaming_group_t sgroup_resp;
+		} *buf;
 
 		snd_printdd("add_ref_pipe audio chip(%d) pcm(%d)\n", chip->chip_idx, pcm_number);
 
+		buf = kmalloc(sizeof(*buf), GFP_KERNEL);
+		if (!buf)
+			return NULL;
+
 		request.uid = (mixart_uid_t){0,0};      /* should be StreamManagerUID, but zero is OK if there is only one ! */
-		request.data = &streaming_group_req;
-		request.size = sizeof(streaming_group_req);
+		request.data = &buf->sgroup_req;
+		request.size = sizeof(buf->sgroup_req);
 
-		memset(&streaming_group_req, 0, sizeof(streaming_group_req));
+		memset(&buf->sgroup_req, 0, sizeof(buf->sgroup_req));
 
-		streaming_group_req.stream_count = stream_count;
-		streaming_group_req.channel_count = 2;
-		streaming_group_req.latency = 256;
-		streaming_group_req.connector = pipe->uid_left_connector;  /* the left connector */
+		buf->sgroup_req.stream_count = stream_count;
+		buf->sgroup_req.channel_count = 2;
+		buf->sgroup_req.latency = 256;
+		buf->sgroup_req.connector = pipe->uid_left_connector;  /* the left connector */
 
 		for (i=0; i<stream_count; i++) {
 			int j;
@@ -269,15 +269,15 @@
 			struct mixart_bufferinfo *bufferinfo;
 			
 			/* we don't yet know the format, so config 16 bit pcm audio for instance */
-			streaming_group_req.stream_info[i].size_max_byte_frame = 1024;
-			streaming_group_req.stream_info[i].size_max_sample_frame = 256;
-			streaming_group_req.stream_info[i].nb_bytes_max_per_sample = MIXART_FLOAT_P__4_0_TO_HEX; /* is 4.0f */
+			buf->sgroup_req.stream_info[i].size_max_byte_frame = 1024;
+			buf->sgroup_req.stream_info[i].size_max_sample_frame = 256;
+			buf->sgroup_req.stream_info[i].nb_bytes_max_per_sample = MIXART_FLOAT_P__4_0_TO_HEX; /* is 4.0f */
 
 			/* find the right bufferinfo_array */
 			j = (chip->chip_idx * MIXART_MAX_STREAM_PER_CARD) + (pcm_number * (MIXART_PLAYBACK_STREAMS + MIXART_CAPTURE_STREAMS)) + i;
 			if(capture) j += MIXART_PLAYBACK_STREAMS; /* in the array capture is behind playback */
 
-			streaming_group_req.flow_entry[i] = j;
+			buf->sgroup_req.flow_entry[i] = j;
 
 			flowinfo = (struct mixart_flowinfo *)chip->mgr->flowinfo.area;
 			flowinfo[j].bufferinfo_array_phy_address = (u32)chip->mgr->bufferinfo.addr + (j * sizeof(mixart_bufferinfo_t));
@@ -294,17 +294,19 @@
 			}
 		}
 
-		err = snd_mixart_send_msg(chip->mgr, &request, sizeof(streaming_group_resp), &streaming_group_resp);
-		if((err < 0) || (streaming_group_resp.status != 0)) {
-			snd_printk(KERN_ERR "error MSG_STREAM_ADD_**PUT_GROUP err=%x stat=%x !\n", err, streaming_group_resp.status);
+		err = snd_mixart_send_msg(chip->mgr, &request, sizeof(buf->sgroup_resp), &buf->sgroup_resp);
+		if((err < 0) || (buf->sgroup_resp.status != 0)) {
+			snd_printk(KERN_ERR "error MSG_STREAM_ADD_**PUT_GROUP err=%x stat=%x !\n", err, buf->sgroup_resp.status);
+			kfree(buf);
 			return NULL;
 		}
 
-		pipe->group_uid = streaming_group_resp.group;     /* id of the pipe, as returned by embedded */
-		pipe->stream_count = streaming_group_resp.stream_count;
-		/* pipe->stream_uid[i] = streaming_group_resp.stream[i].stream_uid; */
+		pipe->group_uid = buf->sgroup_resp.group;     /* id of the pipe, as returned by embedded */
+		pipe->stream_count = buf->sgroup_resp.stream_count;
+		/* pipe->stream_uid[i] = buf->sgroup_resp.stream[i].stream_uid; */
 
 		pipe->status = PIPE_STOPPED;
+		kfree(buf);
 	}
 
 	if(monitoring)	pipe->monitoring = 1;
@@ -979,13 +981,13 @@
 
 static int snd_mixart_chip_free(mixart_t *chip)
 {
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_mixart_chip_dev_free(snd_device_t *device)
 {
-	mixart_t *chip = snd_magic_cast(mixart_t, device->device_data, return -ENXIO);
+	mixart_t *chip = device->device_data;
 	return snd_mixart_chip_free(chip);
 }
 
@@ -1000,7 +1002,7 @@
 		.dev_free = snd_mixart_chip_dev_free,
 	};
 
-	mgr->chip[idx] = chip = snd_magic_kcalloc(mixart_t, 0, GFP_KERNEL);
+	mgr->chip[idx] = chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (! chip) {
 		snd_printk(KERN_ERR "cannot allocate chip\n");
 		return -ENOMEM;
@@ -1091,7 +1093,7 @@
 		mgr->bufferinfo.area = NULL;
 	}
 
-	snd_magic_kfree(mgr);
+	kfree(mgr);
 	return 0;
 }
 
@@ -1156,7 +1158,7 @@
 static long snd_mixart_BA0_read(snd_info_entry_t *entry, void *file_private_data,
 				struct file *file, char __user *buf, long count)
 {
-	mixart_mgr_t *mgr = snd_magic_cast(mixart_mgr_t, entry->private_data, return -ENXIO);
+	mixart_mgr_t *mgr = entry->private_data;
 
 	count = count & ~3; /* make sure the read size is a multiple of 4 bytes */
 	if(count <= 0)
@@ -1175,7 +1177,7 @@
 static long snd_mixart_BA1_read(snd_info_entry_t *entry, void *file_private_data,
 				struct file *file, char __user *buf, long count)
 {
-	mixart_mgr_t *mgr = snd_magic_cast(mixart_mgr_t, entry->private_data, return -ENXIO);
+	mixart_mgr_t *mgr = entry->private_data;
 
 	count = count & ~3; /* make sure the read size is a multiple of 4 bytes */
 	if(count <= 0)
@@ -1202,7 +1204,7 @@
 static void snd_mixart_proc_read(snd_info_entry_t *entry, 
                                  snd_info_buffer_t * buffer)
 {
-	mixart_t *chip = snd_magic_cast(mixart_t, entry->private_data, return);        
+	mixart_t *chip = entry->private_data;        
 	u32 ref; 
 
 	snd_iprintf(buffer, "Digigram miXart (alsa card %d)\n\n", chip->chip_idx);
@@ -1297,7 +1299,7 @@
 
 	/*
 	 */
-	mgr = snd_magic_kcalloc(mixart_mgr_t, 0, GFP_KERNEL);
+	mgr = kcalloc(1, sizeof(*mgr), GFP_KERNEL);
 	if (! mgr)
 		return -ENOMEM;
 
diff -Nru a/sound/pci/mixart/mixart_core.c b/sound/pci/mixart/mixart_core.c
--- a/sound/pci/mixart/mixart_core.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/mixart/mixart_core.c	2004-07-27 18:28:33 -07:00
@@ -403,7 +403,7 @@
 
 irqreturn_t snd_mixart_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	mixart_mgr_t *mgr = snd_magic_cast(mixart_mgr_t, dev_id, return IRQ_NONE);
+	mixart_mgr_t *mgr = dev_id;
 	int err;
 	mixart_msg_t resp;
 
diff -Nru a/sound/pci/mixart/mixart_hwdep.c b/sound/pci/mixart/mixart_hwdep.c
--- a/sound/pci/mixart/mixart_hwdep.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/mixart/mixart_hwdep.c	2004-07-27 18:28:33 -07:00
@@ -146,7 +146,7 @@
 
 static int mixart_hwdep_dsp_status(snd_hwdep_t *hw, snd_hwdep_dsp_status_t *info)
 {
-	mixart_mgr_t *mgr = snd_magic_cast(mixart_mgr_t, hw->private_data, return -ENXIO);
+	mixart_mgr_t *mgr = hw->private_data;
 
 	strcpy(info->id, "miXart");
         info->num_dsps = MIXART_HARDW_FILES_MAX_INDEX;
@@ -346,7 +346,7 @@
 
 static int mixart_hwdep_dsp_load(snd_hwdep_t *hw, snd_hwdep_dsp_image_t *dsp)
 {
-	mixart_mgr_t* mgr = snd_magic_cast(mixart_mgr_t, hw->private_data, return -ENXIO);
+	mixart_mgr_t* mgr = hw->private_data;
 	int           err, card_index;
 	u32           status_xilinx, status_elf, status_daught;
 	u32           val;
diff -Nru a/sound/pci/mixart/mixart_mixer.c b/sound/pci/mixart/mixart_mixer.c
--- a/sound/pci/mixart/mixart_mixer.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/mixart/mixart_mixer.c	2004-07-27 18:28:33 -07:00
@@ -31,8 +31,6 @@
 #include <sound/control.h>
 #include "mixart_mixer.h"
 
-#define chip_t mixart_t
-
 static u32 mixart_analog_level[256] = {
 	0xc2c00000,		/* [000] -96.0 dB */
 	0xc2bf0000,		/* [001] -95.5 dB */
diff -Nru a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c
--- a/sound/pci/nm256/nm256.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/nm256/nm256.c	2004-07-27 18:28:33 -07:00
@@ -45,8 +45,7 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("NeoMagic NM256AV/ZX");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{NeoMagic,NM256AV},"
+MODULE_SUPPORTED_DEVICE("{{NeoMagic,NM256AV},"
 		"{NeoMagic,NM256ZX}}");
 
 /*
@@ -66,31 +65,22 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable this soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(playback_bufsize, int, boot_devs, 0444);
 MODULE_PARM_DESC(playback_bufsize, "DAC frame size in kB for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(playback_bufsize, SNDRV_ENABLED);
 module_param_array(capture_bufsize, int, boot_devs, 0444);
 MODULE_PARM_DESC(capture_bufsize, "ADC frame size in kB for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(capture_bufsize, SNDRV_ENABLED);
 module_param_array(force_ac97, bool, boot_devs, 0444);
 MODULE_PARM_DESC(force_ac97, "Force to use AC97 codec for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(force_ac97, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 module_param_array(buffer_top, int, boot_devs, 0444);
 MODULE_PARM_DESC(buffer_top, "Set the top address of audio buffer for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(buffer_top, SNDRV_ENABLED);
 module_param_array(use_cache, bool, boot_devs, 0444);
 MODULE_PARM_DESC(use_cache, "Enable the cache for coefficient table access.");
-MODULE_PARM_SYNTAX(use_cache, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 module_param_array(vaio_hack, bool, boot_devs, 0444);
 MODULE_PARM_DESC(vaio_hack, "Enable workaround for Sony VAIO notebooks.");
-MODULE_PARM_SYNTAX(vaio_hack, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 
 /*
  * hw definitions
@@ -191,7 +181,6 @@
 
 typedef struct snd_nm256 nm256_t;
 typedef struct snd_nm256_stream nm256_stream_t;
-#define chip_t nm256_t
 
 struct snd_nm256_stream {
 
@@ -660,9 +649,9 @@
 	return bytes_to_frames(substream->runtime, curp);
 }
 
+/* Remapped I/O space can be accessible as pointer on i386 */
+/* This might be changed in the future */
 #ifndef __i386__
-/* FIXME: I/O space is not accessible via pointers on all architectures */
-
 /*
  * silence / copy for playback
  */
@@ -757,10 +746,8 @@
  */
 static snd_pcm_hardware_t snd_nm256_playback =
 {
-	.info =
-#ifdef __i386__
-				SNDRV_PCM_INFO_MMAP|SNDRV_PCM_INFO_MMAP_VALID|
-#endif
+	.info =			SNDRV_PCM_INFO_MMAP|SNDRV_PCM_INFO_MMAP_VALID|
+				SNDRV_PCM_INFO_MMAP_IOMEM|
 				SNDRV_PCM_INFO_INTERLEAVED |
 				/*SNDRV_PCM_INFO_PAUSE |*/
 				SNDRV_PCM_INFO_RESUME,
@@ -779,10 +766,8 @@
 
 static snd_pcm_hardware_t snd_nm256_capture =
 {
-	.info =
-#ifdef __i386__
-				SNDRV_PCM_INFO_MMAP|SNDRV_PCM_INFO_MMAP_VALID|
-#endif
+	.info =			SNDRV_PCM_INFO_MMAP|SNDRV_PCM_INFO_MMAP_VALID|
+				SNDRV_PCM_INFO_MMAP_IOMEM|
 				SNDRV_PCM_INFO_INTERLEAVED |
 				/*SNDRV_PCM_INFO_PAUSE |*/
 				SNDRV_PCM_INFO_RESUME,
@@ -981,7 +966,7 @@
 static irqreturn_t
 snd_nm256_interrupt(int irq, void *dev_id, struct pt_regs *dummy)
 {
-	nm256_t *chip = snd_magic_cast(nm256_t, dev_id, return IRQ_NONE);
+	nm256_t *chip = dev_id;
 	u16 status;
 	u8 cbyte;
 
@@ -1048,7 +1033,7 @@
 static irqreturn_t
 snd_nm256_interrupt_zx(int irq, void *dev_id, struct pt_regs *dummy)
 {
-	nm256_t *chip = snd_magic_cast(nm256_t, dev_id, return IRQ_NONE);
+	nm256_t *chip = dev_id;
 	u32 status;
 	u8 cbyte;
 
@@ -1139,7 +1124,7 @@
 static unsigned short
 snd_nm256_ac97_read(ac97_t *ac97, unsigned short reg)
 {
-	nm256_t *chip = snd_magic_cast(nm256_t, ac97->private_data, return -ENXIO);
+	nm256_t *chip = ac97->private_data;
 	int res;
 
 	if (reg >= 128)
@@ -1159,7 +1144,7 @@
 snd_nm256_ac97_write(ac97_t *ac97,
 		     unsigned short reg, unsigned short val)
 {
-	nm256_t *chip = snd_magic_cast(nm256_t, ac97->private_data, return);
+	nm256_t *chip = ac97->private_data;
 	int tries = 2;
 	u32 base;
 
@@ -1181,7 +1166,7 @@
 static void
 snd_nm256_ac97_reset(ac97_t *ac97)
 {
-	nm256_t *chip = snd_magic_cast(nm256_t, ac97->private_data, return);
+	nm256_t *chip = ac97->private_data;
 	unsigned long flags;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -1206,7 +1191,7 @@
 	/* looks like nm256 hangs up when unexpected registers are touched... */
 	static int mixer_regs[] = {
 		AC97_MASTER, AC97_HEADPHONE, AC97_MASTER_MONO,
-		AC97_PC_BEEP, AC97_PHONE, AC97_MIC, AC97_LINE,
+		AC97_PC_BEEP, AC97_PHONE, AC97_MIC, AC97_LINE, AC97_CD,
 		AC97_VIDEO, AC97_AUX, AC97_PCM, AC97_REC_SEL,
 		AC97_REC_GAIN, AC97_GENERAL_PURPOSE, AC97_3D_CONTROL,
 		AC97_EXTENDED_ID,
@@ -1290,7 +1275,7 @@
  */
 static int nm256_suspend(snd_card_t *card, unsigned int state)
 {
-	nm256_t *chip = snd_magic_cast(nm256_t, card->pm_private_data, return -EINVAL);
+	nm256_t *chip = card->pm_private_data;
 
 	snd_pcm_suspend_all(chip->pcm);
 	snd_ac97_suspend(chip->ac97);
@@ -1301,7 +1286,7 @@
 
 static int nm256_resume(snd_card_t *card, unsigned int state)
 {
-	nm256_t *chip = snd_magic_cast(nm256_t, card->pm_private_data, return -EINVAL);
+	nm256_t *chip = card->pm_private_data;
 
 	/* Perform a full reset on the hardware */
 	pci_enable_device(chip->pci);
@@ -1340,13 +1325,13 @@
 	if (chip->irq >= 0)
 		free_irq(chip->irq, (void*)chip);
 
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_nm256_dev_free(snd_device_t *device)
 {
-	nm256_t *chip = snd_magic_cast(nm256_t, device->device_data, return -ENXIO);
+	nm256_t *chip = device->device_data;
 	return snd_nm256_free(chip);
 }
 
@@ -1368,7 +1353,7 @@
 
 	*chip_ret = NULL;
 
-	chip = snd_magic_kcalloc(nm256_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 
diff -Nru a/sound/pci/rme32.c b/sound/pci/rme32.c
--- a/sound/pci/rme32.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/rme32.c	2004-07-27 18:28:33 -07:00
@@ -52,6 +52,19 @@
  * patch would be welcome!
  * 
  * ****************************************************************************
+ *
+ * "The story after the long seeking" -- tiwai
+ *
+ * Ok, the situation regarding the full duplex is now improved a bit.
+ * In the fullduplex mode (given by the module parameter), the hardware buffer
+ * is split to halves for read and write directions at the DMA pointer.
+ * That is, the half above the current DMA pointer is used for write, and
+ * the half below is used for read.  To mangle this strange behavior, an
+ * software intermediate buffer is introduced.  This is, of course, not good
+ * from the viewpoint of the data transfer efficiency.  However, this allows
+ * you to use arbitrary buffer sizes, instead of the fixed I/O buffer size.
+ *
+ * ****************************************************************************
  */
 
 
@@ -68,6 +81,7 @@
 #include <sound/control.h>
 #include <sound/pcm.h>
 #include <sound/pcm_params.h>
+#include <sound/pcm-indirect.h>
 #include <sound/asoundef.h>
 #include <sound/initval.h>
 
@@ -76,22 +90,21 @@
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
 static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;	/* Enable this card */
+static int fullduplex[SNDRV_CARDS]; // = {[0 ... (SNDRV_CARDS - 1)] = 1};
 static int boot_devs;
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for RME Digi32 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for RME Digi32 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable RME Digi32 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
+module_param_array(fullduplex, bool, boot_devs, 0444);
+MODULE_PARM_DESC(fullduplex, "Support full-duplex mode.");
 MODULE_AUTHOR("Martin Langer <martin-langer@gmx.de>");
 MODULE_DESCRIPTION("RME Digi32, Digi32/8, Digi32 PRO");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{RME,Digi32}," "{RME,Digi32/8}," "{RME,Digi32 PRO}}");
+MODULE_SUPPORTED_DEVICE("{{RME,Digi32}," "{RME,Digi32/8}," "{RME,Digi32 PRO}}");
 
 /* Defines for RME Digi32 series */
 #define RME32_SPDIF_NCHANNELS 2
@@ -168,6 +181,9 @@
 /* Block sizes in bytes */
 #define RME32_BLOCK_SIZE 8192
 
+/* Software intermediate buffer (max) size */
+#define RME32_MID_BUFFER_SIZE (1024*1024)
+
 /* Hardware revisions */
 #define RME32_32_REVISION 192
 #define RME32_328_REVISION_OLD 100
@@ -213,9 +229,11 @@
 	size_t playback_periodsize;	/* in bytes, zero if not used */
 	size_t capture_periodsize;	/* in bytes, zero if not used */
 
-	snd_pcm_uframes_t playback_last_appl_ptr;
-	size_t playback_ptr;
-	size_t capture_ptr;
+	unsigned int fullduplex_mode;
+	int running;
+
+	snd_pcm_indirect_t playback_pcm;
+	snd_pcm_indirect_t capture_pcm;
 
 	snd_card_t *card;
 	snd_pcm_t *spdif_pcm;
@@ -243,33 +261,16 @@
 
 static int snd_rme32_capture_prepare(snd_pcm_substream_t * substream);
 
-static int
-snd_rme32_playback_trigger(snd_pcm_substream_t * substream, int cmd);
-
-static int
-snd_rme32_capture_trigger(snd_pcm_substream_t * substream, int cmd);
-
-static snd_pcm_uframes_t
-snd_rme32_playback_pointer(snd_pcm_substream_t * substream);
-
-static snd_pcm_uframes_t
-snd_rme32_capture_pointer(snd_pcm_substream_t * substream);
+static int snd_rme32_pcm_trigger(snd_pcm_substream_t * substream, int cmd);
 
 static void snd_rme32_proc_init(rme32_t * rme32);
 
 static int snd_rme32_create_switches(snd_card_t * card, rme32_t * rme32);
 
-static inline unsigned int snd_rme32_playback_ptr(rme32_t * rme32)
-{
-
-	return (readl(rme32->iobase + RME32_IO_GET_POS)
-		& RME32_RCR_AUDIO_ADDR_MASK) >> rme32->playback_frlog;
-}
-
-static inline unsigned int snd_rme32_capture_ptr(rme32_t * rme32)
+static inline unsigned int snd_rme32_pcm_byteptr(rme32_t * rme32)
 {
 	return (readl(rme32->iobase + RME32_IO_GET_POS)
-		& RME32_RCR_AUDIO_ADDR_MASK) >> rme32->capture_frlog;
+		& RME32_RCR_AUDIO_ADDR_MASK);
 }
 
 static int snd_rme32_ratecode(int rate)
@@ -285,22 +286,24 @@
 	return 0;
 }
 
+/* silence callback for halfduplex mode */
 static int snd_rme32_playback_silence(snd_pcm_substream_t * substream, int channel,	/* not used (interleaved data) */
 				      snd_pcm_uframes_t pos,
 				      snd_pcm_uframes_t count)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	count <<= rme32->playback_frlog;
 	pos <<= rme32->playback_frlog;
 	memset_io(rme32->iobase + RME32_IO_DATA_BUFFER + pos, 0, count);
 	return 0;
 }
 
+/* copy callback for halfduplex mode */
 static int snd_rme32_playback_copy(snd_pcm_substream_t * substream, int channel,	/* not used (interleaved data) */
 				   snd_pcm_uframes_t pos,
 				   void __user *src, snd_pcm_uframes_t count)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	count <<= rme32->playback_frlog;
 	pos <<= rme32->playback_frlog;
 	if (copy_from_user_toio(rme32->iobase + RME32_IO_DATA_BUFFER + pos,
@@ -309,11 +312,12 @@
 	return 0;
 }
 
+/* copy callback for halfduplex mode */
 static int snd_rme32_capture_copy(snd_pcm_substream_t * substream, int channel,	/* not used (interleaved data) */
 				  snd_pcm_uframes_t pos,
 				  void __user *dst, snd_pcm_uframes_t count)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	count <<= rme32->capture_frlog;
 	pos <<= rme32->capture_frlog;
 	if (copy_to_user_fromio(dst,
@@ -324,13 +328,15 @@
 }
 
 /*
- * Digital output capabilites (S/PDIF)
+ * SPDIF I/O capabilites (half-duplex mode)
  */
-static snd_pcm_hardware_t snd_rme32_playback_spdif_info = {
+static snd_pcm_hardware_t snd_rme32_spdif_info = {
 	.info =		(SNDRV_PCM_INFO_MMAP |
 			 SNDRV_PCM_INFO_MMAP_VALID |
+			 SNDRV_PCM_INFO_MMAP_IOMEM |
 			 SNDRV_PCM_INFO_INTERLEAVED | 
-			 SNDRV_PCM_INFO_PAUSE),
+			 SNDRV_PCM_INFO_PAUSE |
+			 SNDRV_PCM_INFO_SYNC_START),
 	.formats =	(SNDRV_PCM_FMTBIT_S16_LE | 
 			 SNDRV_PCM_FMTBIT_S32_LE),
 	.rates =	(SNDRV_PCM_RATE_32000 |
@@ -349,13 +355,40 @@
 };
 
 /*
- * Digital input capabilites (S/PDIF)
+ * ADAT I/O capabilites (half-duplex mode)
+ */
+static snd_pcm_hardware_t snd_rme32_adat_info =
+{
+	.info =		     (SNDRV_PCM_INFO_MMAP |
+			      SNDRV_PCM_INFO_MMAP_VALID |
+			      SNDRV_PCM_INFO_MMAP_IOMEM |
+			      SNDRV_PCM_INFO_INTERLEAVED |
+			      SNDRV_PCM_INFO_PAUSE |
+			      SNDRV_PCM_INFO_SYNC_START),
+	.formats=            SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =             (SNDRV_PCM_RATE_44100 | 
+			      SNDRV_PCM_RATE_48000),
+	.rate_min =          44100,
+	.rate_max =          48000,
+	.channels_min =      8,
+	.channels_max =	     8,
+	.buffer_bytes_max =  RME32_BUFFER_SIZE,
+	.period_bytes_min =  RME32_BLOCK_SIZE,
+	.period_bytes_max =  RME32_BLOCK_SIZE,
+	.periods_min =	    RME32_BUFFER_SIZE / RME32_BLOCK_SIZE,
+	.periods_max =	    RME32_BUFFER_SIZE / RME32_BLOCK_SIZE,
+	.fifo_size =	    0,
+};
+
+/*
+ * SPDIF I/O capabilites (full-duplex mode)
  */
-static snd_pcm_hardware_t snd_rme32_capture_spdif_info = {
+static snd_pcm_hardware_t snd_rme32_spdif_fd_info = {
 	.info =		(SNDRV_PCM_INFO_MMAP |
 			 SNDRV_PCM_INFO_MMAP_VALID |
 			 SNDRV_PCM_INFO_INTERLEAVED | 
-			 SNDRV_PCM_INFO_PAUSE),
+			 SNDRV_PCM_INFO_PAUSE |
+			 SNDRV_PCM_INFO_SYNC_START),
 	.formats =	(SNDRV_PCM_FMTBIT_S16_LE | 
 			 SNDRV_PCM_FMTBIT_S32_LE),
 	.rates =	(SNDRV_PCM_RATE_32000 |
@@ -365,23 +398,24 @@
 	.rate_max =	48000,
 	.channels_min =	2,
 	.channels_max =	2,
-	.buffer_bytes_max = RME32_BUFFER_SIZE,
+	.buffer_bytes_max = RME32_MID_BUFFER_SIZE,
 	.period_bytes_min = RME32_BLOCK_SIZE,
 	.period_bytes_max = RME32_BLOCK_SIZE,
-	.periods_min =	RME32_BUFFER_SIZE / RME32_BLOCK_SIZE,
-	.periods_max =	RME32_BUFFER_SIZE / RME32_BLOCK_SIZE,
+	.periods_min =	2,
+	.periods_max =	RME32_MID_BUFFER_SIZE / RME32_BLOCK_SIZE,
 	.fifo_size =	0,
 };
 
 /*
- * Digital output capabilites (ADAT)
+ * ADAT I/O capabilites (full-duplex mode)
  */
-static snd_pcm_hardware_t snd_rme32_playback_adat_info =
+static snd_pcm_hardware_t snd_rme32_adat_fd_info =
 {
 	.info =		     (SNDRV_PCM_INFO_MMAP |
 			      SNDRV_PCM_INFO_MMAP_VALID |
 			      SNDRV_PCM_INFO_INTERLEAVED |
-			      SNDRV_PCM_INFO_PAUSE),
+			      SNDRV_PCM_INFO_PAUSE |
+			      SNDRV_PCM_INFO_SYNC_START),
 	.formats=            SNDRV_PCM_FMTBIT_S16_LE,
 	.rates =             (SNDRV_PCM_RATE_44100 | 
 			      SNDRV_PCM_RATE_48000),
@@ -389,38 +423,14 @@
 	.rate_max =          48000,
 	.channels_min =      8,
 	.channels_max =	     8,
-	.buffer_bytes_max =  RME32_BUFFER_SIZE,
+	.buffer_bytes_max =  RME32_MID_BUFFER_SIZE,
 	.period_bytes_min =  RME32_BLOCK_SIZE,
 	.period_bytes_max =  RME32_BLOCK_SIZE,
-	.periods_min =	    RME32_BUFFER_SIZE / RME32_BLOCK_SIZE,
-	.periods_max =	    RME32_BUFFER_SIZE / RME32_BLOCK_SIZE,
+	.periods_min =	    2,
+	.periods_max =	    RME32_MID_BUFFER_SIZE / RME32_BLOCK_SIZE,
 	.fifo_size =	    0,
 };
 
-/*
- * Digital input capabilites (ADAT)
- */
-static snd_pcm_hardware_t snd_rme32_capture_adat_info =
-{
-	.info =		     (SNDRV_PCM_INFO_MMAP |
-			      SNDRV_PCM_INFO_MMAP_VALID |
-			      SNDRV_PCM_INFO_INTERLEAVED |
-			      SNDRV_PCM_INFO_PAUSE),
-	.formats =           SNDRV_PCM_FMTBIT_S16_LE,
-	.rates =             (SNDRV_PCM_RATE_44100 | 
-			      SNDRV_PCM_RATE_48000),
-	.rate_min =          44100,
-	.rate_max =          48000,
-	.channels_min =	     8,
-	.channels_max =	     8,
-	.buffer_bytes_max =  RME32_BUFFER_SIZE,
-	.period_bytes_min =  RME32_BLOCK_SIZE,
-	.period_bytes_max =  RME32_BLOCK_SIZE,
-	.periods_min =	     RME32_BUFFER_SIZE / RME32_BLOCK_SIZE,
-	.periods_max =	     RME32_BUFFER_SIZE / RME32_BLOCK_SIZE,
-	.fifo_size =         0,
-};
-
 static void snd_rme32_reset_dac(rme32_t *rme32)
 {
         writel(rme32->wcreg | RME32_WCR_PD,
@@ -677,11 +687,19 @@
 			     snd_pcm_hw_params_t * params)
 {
 	int err, rate, dummy;
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	snd_pcm_runtime_t *runtime = substream->runtime;
+
+	if (rme32->fullduplex_mode) {
+		err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params));
+		if (err < 0)
+			return err;
+	} else {
+		runtime->dma_area = (void *)(rme32->iobase + RME32_IO_DATA_BUFFER);
+		runtime->dma_addr = rme32->port + RME32_IO_DATA_BUFFER;
+		runtime->dma_bytes = RME32_BUFFER_SIZE;
+	}
 
-	if ((err = snd_pcm_lib_malloc_pages(substream,
-				      params_buffer_bytes(params))) < 0)
-		return err;
 	spin_lock_irq(&rme32->lock);
 	if ((rme32->rcreg & RME32_RCR_KMODE) &&
 	    (rate = snd_rme32_capture_getrate(rme32, &dummy)) > 0) {
@@ -719,24 +737,25 @@
 	return 0;
 }
 
-static int snd_rme32_playback_hw_free(snd_pcm_substream_t * substream)
-{
-	snd_pcm_lib_free_pages(substream);
-	return 0;
-}
-
 static int
 snd_rme32_capture_hw_params(snd_pcm_substream_t * substream,
 			    snd_pcm_hw_params_t * params)
 {
 	unsigned long flags;
 	int err, isadat, rate;
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
-	if ((err = snd_pcm_lib_malloc_pages(substream,
-				      params_buffer_bytes(params))) < 0)
-		return err;
+	if (rme32->fullduplex_mode) {
+		err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params));
+		if (err < 0)
+			return err;
+	} else {
+		runtime->dma_area = (void *)rme32->iobase + RME32_IO_DATA_BUFFER;
+		runtime->dma_addr = rme32->port + RME32_IO_DATA_BUFFER;
+		runtime->dma_bytes = RME32_BUFFER_SIZE;
+	}
+
 	spin_lock_irqsave(&rme32->lock, flags);
 	/* enable AutoSync for record-preparing */
 	rme32->wcreg |= RME32_WCR_AUTOSYNC;
@@ -780,25 +799,15 @@
 	return 0;
 }
 
-static int snd_rme32_capture_hw_free(snd_pcm_substream_t * substream)
+static int snd_rme32_pcm_hw_free(snd_pcm_substream_t * substream)
 {
-	snd_pcm_lib_free_pages(substream);
-	return 0;
-}
-
-static void snd_rme32_playback_start(rme32_t * rme32, int from_pause)
-{
-	if (!from_pause) {
-		writel(0, rme32->iobase + RME32_IO_RESET_POS);
-		rme32->playback_last_appl_ptr = 0;
-		rme32->playback_ptr = 0;
-	}
-
-	rme32->wcreg |= RME32_WCR_START;
-	writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	if (! rme32->fullduplex_mode)
+		return 0;
+	return snd_pcm_lib_free_pages(substream);
 }
 
-static void snd_rme32_capture_start(rme32_t * rme32, int from_pause)
+static void snd_rme32_pcm_start(rme32_t * rme32, int from_pause)
 {
 	if (!from_pause) {
 		writel(0, rme32->iobase + RME32_IO_RESET_POS);
@@ -808,7 +817,7 @@
 	writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER);
 }
 
-static void snd_rme32_playback_stop(rme32_t * rme32)
+static void snd_rme32_pcm_stop(rme32_t * rme32, int to_pause)
 {
 	/*
 	 * Check if there is an unconfirmed IRQ, if so confirm it, or else
@@ -822,16 +831,8 @@
 	if (rme32->wcreg & RME32_WCR_SEL)
 		rme32->wcreg |= RME32_WCR_MUTE;
 	writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER);
-}
-
-static void snd_rme32_capture_stop(rme32_t * rme32)
-{
-	rme32->rcreg = readl(rme32->iobase + RME32_IO_CONTROL_REGISTER);
-	if (rme32->rcreg & RME32_RCR_IRQ) {
-		writel(0, rme32->iobase + RME32_IO_CONFIRM_ACTION_IRQ);
-	}
-	rme32->wcreg &= ~RME32_WCR_START;
-	writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER);
+	if (! to_pause)
+		writel(0, rme32->iobase + RME32_IO_RESET_POS);
 }
 
 static irqreturn_t
@@ -865,11 +866,23 @@
 	.mask = 0
 };
 
+static void snd_rme32_set_buffer_constraint(rme32_t *rme32, snd_pcm_runtime_t *runtime)
+{
+	if (! rme32->fullduplex_mode) {
+		snd_pcm_hw_constraint_minmax(runtime,
+					     SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
+					     RME32_BUFFER_SIZE, RME32_BUFFER_SIZE);
+		snd_pcm_hw_constraint_list(runtime, 0,
+					   SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
+					   &hw_constraints_period_bytes);
+	}
+}
+
 static int snd_rme32_playback_spdif_open(snd_pcm_substream_t * substream)
 {
 	unsigned long flags;
 	int rate, dummy;
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
 	snd_pcm_set_sync(substream);
@@ -882,11 +895,12 @@
 	rme32->wcreg &= ~RME32_WCR_ADAT;
 	writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER);
 	rme32->playback_substream = substream;
-	rme32->playback_last_appl_ptr = 0;
-	rme32->playback_ptr = 0;
 	spin_unlock_irqrestore(&rme32->lock, flags);
 
-	runtime->hw = snd_rme32_playback_spdif_info;
+	if (rme32->fullduplex_mode)
+		runtime->hw = snd_rme32_spdif_fd_info;
+	else
+		runtime->hw = snd_rme32_spdif_info;
 	if (rme32->pci->device == PCI_DEVICE_ID_DIGI32_PRO) {
 		runtime->hw.rates |= SNDRV_PCM_RATE_64000 | SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000;
 		runtime->hw.rate_max = 96000;
@@ -898,12 +912,8 @@
 		runtime->hw.rate_min = rate;
 		runtime->hw.rate_max = rate;
 	}       
-	snd_pcm_hw_constraint_minmax(runtime,
-				     SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
-				     RME32_BUFFER_SIZE, RME32_BUFFER_SIZE);
-	snd_pcm_hw_constraint_list(runtime, 0,
-				   SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
-				   &hw_constraints_period_bytes);
+
+	snd_rme32_set_buffer_constraint(rme32, runtime);
 
 	rme32->wcreg_spdif_stream = rme32->wcreg_spdif;
 	rme32->spdif_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE;
@@ -916,7 +926,7 @@
 {
 	unsigned long flags;
 	int isadat, rate;
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
 	snd_pcm_set_sync(substream);
@@ -927,10 +937,12 @@
                 return -EBUSY;
         }
 	rme32->capture_substream = substream;
-	rme32->capture_ptr = 0;
 	spin_unlock_irqrestore(&rme32->lock, flags);
 
-	runtime->hw = snd_rme32_capture_spdif_info;
+	if (rme32->fullduplex_mode)
+		runtime->hw = snd_rme32_spdif_fd_info;
+	else
+		runtime->hw = snd_rme32_spdif_info;
 	if (RME32_PRO_WITH_8414(rme32)) {
 		runtime->hw.rates |= SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000;
 		runtime->hw.rate_max = 96000;
@@ -944,12 +956,7 @@
 		runtime->hw.rate_max = rate;
 	}
 
-	snd_pcm_hw_constraint_minmax(runtime,
-				     SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
-				     RME32_BUFFER_SIZE, RME32_BUFFER_SIZE);
-	snd_pcm_hw_constraint_list(runtime, 0,
-				   SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
-				   &hw_constraints_period_bytes);
+	snd_rme32_set_buffer_constraint(rme32, runtime);
 
 	return 0;
 }
@@ -959,7 +966,7 @@
 {
 	unsigned long flags;
 	int rate, dummy;
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	
 	snd_pcm_set_sync(substream);
@@ -972,11 +979,12 @@
 	rme32->wcreg |= RME32_WCR_ADAT;
 	writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER);
 	rme32->playback_substream = substream;
-	rme32->playback_last_appl_ptr = 0;
-	rme32->playback_ptr = 0;
 	spin_unlock_irqrestore(&rme32->lock, flags);
 	
-	runtime->hw = snd_rme32_playback_adat_info;
+	if (rme32->fullduplex_mode)
+		runtime->hw = snd_rme32_adat_fd_info;
+	else
+		runtime->hw = snd_rme32_adat_info;
 	if ((rme32->rcreg & RME32_RCR_KMODE) &&
 	    (rate = snd_rme32_capture_getrate(rme32, &dummy)) > 0) {
                 /* AutoSync */
@@ -984,10 +992,8 @@
                 runtime->hw.rate_min = rate;
                 runtime->hw.rate_max = rate;
 	}        
-	snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
-				     RME32_BUFFER_SIZE, RME32_BUFFER_SIZE);
-	snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
-				   &hw_constraints_period_bytes);
+
+	snd_rme32_set_buffer_constraint(rme32, runtime);
 	return 0;
 }
 
@@ -996,10 +1002,13 @@
 {
 	unsigned long flags;
 	int isadat, rate;
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
-	runtime->hw = snd_rme32_capture_adat_info;
+	if (rme32->fullduplex_mode)
+		runtime->hw = snd_rme32_adat_fd_info;
+	else
+		runtime->hw = snd_rme32_adat_info;
 	if ((rate = snd_rme32_capture_getrate(rme32, &isadat)) > 0) {
 		if (!isadat) {
 			return -EIO;
@@ -1017,20 +1026,16 @@
 		return -EBUSY;
         }
 	rme32->capture_substream = substream;
-	rme32->capture_ptr = 0;
 	spin_unlock_irqrestore(&rme32->lock, flags);
 
-	snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
-				     RME32_BUFFER_SIZE, RME32_BUFFER_SIZE);
-	snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_PERIOD_BYTES,
-				   &hw_constraints_period_bytes);
+	snd_rme32_set_buffer_constraint(rme32, runtime);
 	return 0;
 }
 
 static int snd_rme32_playback_close(snd_pcm_substream_t * substream)
 {
 	unsigned long flags;
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 	int spdif = 0;
 
 	spin_lock_irqsave(&rme32->lock, flags);
@@ -1050,7 +1055,7 @@
 static int snd_rme32_capture_close(snd_pcm_substream_t * substream)
 {
 	unsigned long flags;
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 
 	spin_lock_irqsave(&rme32->lock, flags);
 	rme32->capture_substream = NULL;
@@ -1061,195 +1066,171 @@
 
 static int snd_rme32_playback_prepare(snd_pcm_substream_t * substream)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
-	unsigned long flags;
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 
-	spin_lock_irqsave(&rme32->lock, flags);
-	if (RME32_ISWORKING(rme32)) {
-		snd_rme32_playback_stop(rme32);
+	spin_lock(&rme32->lock);
+	if (rme32->fullduplex_mode) {
+		memset(&rme32->playback_pcm, 0, sizeof(rme32->playback_pcm));
+		rme32->playback_pcm.hw_buffer_size = RME32_BUFFER_SIZE;
+		rme32->playback_pcm.hw_queue_size = RME32_BUFFER_SIZE / 2;
+		rme32->playback_pcm.sw_buffer_size = snd_pcm_lib_buffer_bytes(substream);
+	} else {
+		writel(0, rme32->iobase + RME32_IO_RESET_POS);
 	}
-	writel(0, rme32->iobase + RME32_IO_RESET_POS);
 	if (rme32->wcreg & RME32_WCR_SEL)
 		rme32->wcreg &= ~RME32_WCR_MUTE;
 	writel(rme32->wcreg, rme32->iobase + RME32_IO_CONTROL_REGISTER);
-	spin_unlock_irqrestore(&rme32->lock, flags);
+	spin_unlock(&rme32->lock);
 	return 0;
 }
 
 static int snd_rme32_capture_prepare(snd_pcm_substream_t * substream)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
-	unsigned long flags;
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
 
-	spin_lock_irqsave(&rme32->lock, flags);
-	if (RME32_ISWORKING(rme32)) {
-		snd_rme32_capture_stop(rme32);
+	spin_lock(&rme32->lock);
+	if (rme32->fullduplex_mode) {
+		memset(&rme32->capture_pcm, 0, sizeof(rme32->capture_pcm));
+		rme32->capture_pcm.hw_buffer_size = RME32_BUFFER_SIZE;
+		rme32->capture_pcm.hw_queue_size = RME32_BUFFER_SIZE / 2;
+		rme32->capture_pcm.sw_buffer_size = snd_pcm_lib_buffer_bytes(substream);
+	} else {
+		writel(0, rme32->iobase + RME32_IO_RESET_POS);
 	}
-	writel(0, rme32->iobase + RME32_IO_RESET_POS);
-	spin_unlock_irqrestore(&rme32->lock, flags);
+	spin_unlock(&rme32->lock);
 	return 0;
 }
 
 static int
-snd_rme32_playback_trigger(snd_pcm_substream_t * substream, int cmd)
+snd_rme32_pcm_trigger(snd_pcm_substream_t * substream, int cmd)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
-	switch (cmd) {
-	case SNDRV_PCM_TRIGGER_START:
-		if (!RME32_ISWORKING(rme32)) {
-			if (substream != rme32->playback_substream) {
-				return -EBUSY;
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	struct list_head *pos;
+	snd_pcm_substream_t *s;
+
+	spin_lock(&rme32->lock);
+	snd_pcm_group_for_each(pos, substream) {
+		s = snd_pcm_group_substream_entry(pos);
+		if (s != rme32->playback_substream &&
+		    s != rme32->capture_substream)
+			continue;
+		switch (cmd) {
+		case SNDRV_PCM_TRIGGER_START:
+			rme32->running |= (1 << s->stream);
+			if (rme32->fullduplex_mode) {
+				/* remember the current DMA position */
+				if (s == rme32->playback_substream) {
+					rme32->playback_pcm.hw_data = snd_rme32_pcm_byteptr(rme32);
+					s->ops->ack(s); /* prefill buffer */
+				} else {
+					rme32->capture_pcm.hw_data = snd_rme32_pcm_byteptr(rme32);
+				}
 			}
-			snd_rme32_playback_start(rme32, 0);
+			break;
+		case SNDRV_PCM_TRIGGER_STOP:
+			rme32->running &= ~(1 << s->stream);
+			break;
 		}
+		snd_pcm_trigger_done(s, substream);
+	}
+	
+	switch (cmd) {
+	case SNDRV_PCM_TRIGGER_START:
+		if (rme32->running && ! RME32_ISWORKING(rme32))
+			snd_rme32_pcm_start(rme32, 0);
 		break;
-
 	case SNDRV_PCM_TRIGGER_STOP:
-		if (RME32_ISWORKING(rme32)) {
-			if (substream != rme32->playback_substream) {
-				return -EBUSY;
-			}
-			snd_rme32_playback_stop(rme32);
-		}
+		if (! rme32->running && RME32_ISWORKING(rme32))
+			snd_rme32_pcm_stop(rme32, 0);
 		break;
-
 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-		if (RME32_ISWORKING(rme32)) {
-			snd_rme32_playback_stop(rme32);
-		}
+		if (rme32->running && RME32_ISWORKING(rme32))
+			snd_rme32_pcm_stop(rme32, 1);
 		break;
-
 	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-		if (!RME32_ISWORKING(rme32)) {
-			snd_rme32_playback_start(rme32, 1);
-		}
+		if (rme32->running && ! RME32_ISWORKING(rme32))
+			snd_rme32_pcm_start(rme32, 1);
 		break;
-
-	default:
-		return -EINVAL;
 	}
+	spin_unlock(&rme32->lock);
 	return 0;
 }
 
-static int
-snd_rme32_capture_trigger(snd_pcm_substream_t * substream, int cmd)
+/* pointer callback for halfduplex mode */
+static snd_pcm_uframes_t
+snd_rme32_playback_pointer(snd_pcm_substream_t * substream)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	return snd_rme32_pcm_byteptr(rme32) >> rme32->playback_frlog;
+}
 
-	switch (cmd) {
-	case SNDRV_PCM_TRIGGER_START:
-		if (!RME32_ISWORKING(rme32)) {
-			if (substream != rme32->capture_substream) {
-				return -EBUSY;
-			}
-			snd_rme32_capture_start(rme32, 0);
-		}
-		break;
+static snd_pcm_uframes_t
+snd_rme32_capture_pointer(snd_pcm_substream_t * substream)
+{
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	return snd_rme32_pcm_byteptr(rme32) >> rme32->capture_frlog;
+}
 
-	case SNDRV_PCM_TRIGGER_STOP:
-		if (RME32_ISWORKING(rme32)) {
-			if (substream != rme32->capture_substream) {
-				return -EBUSY;
-			}
-			snd_rme32_capture_stop(rme32);
-		}
-		break;
 
-	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
-		if (RME32_ISWORKING(rme32)) {
-			snd_rme32_capture_stop(rme32);
-		}
-		break;
+/* ack and pointer callbacks for fullduplex mode */
+static void snd_rme32_pb_trans_copy(snd_pcm_substream_t *substream,
+				    snd_pcm_indirect_t *rec, size_t bytes)
+{
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	memcpy_toio(rme32->iobase + RME32_IO_DATA_BUFFER + rec->hw_data,
+		    substream->runtime->dma_area + rec->sw_data, bytes);
+}
 
-	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
-		if (!RME32_ISWORKING(rme32)) {
-			snd_rme32_capture_start(rme32, 1);
-		}
-		break;
+static int snd_rme32_playback_fd_ack(snd_pcm_substream_t *substream)
+{
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	snd_pcm_indirect_playback_transfer(substream, &rme32->playback_pcm,
+					   snd_rme32_pb_trans_copy);
+	return 0;
+}
 
-	default:
-		return -EINVAL;
-	}
+static void snd_rme32_cp_trans_copy(snd_pcm_substream_t *substream,
+				    snd_pcm_indirect_t *rec, size_t bytes)
+{
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	memcpy_fromio(substream->runtime->dma_area + rec->sw_data,
+		      rme32->iobase + RME32_IO_DATA_BUFFER + rec->hw_data,
+		      bytes);
+}
 
+static int snd_rme32_capture_fd_ack(snd_pcm_substream_t *substream)
+{
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	snd_pcm_indirect_capture_transfer(substream, &rme32->capture_pcm,
+					  snd_rme32_cp_trans_copy);
 	return 0;
 }
 
 static snd_pcm_uframes_t
-snd_rme32_playback_pointer(snd_pcm_substream_t * substream)
+snd_rme32_playback_fd_pointer(snd_pcm_substream_t * substream)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
-	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_pcm_sframes_t diff;
-	size_t bytes;
-
-
-	if (runtime->access == SNDRV_PCM_ACCESS_MMAP_INTERLEAVED) {
-		diff = runtime->control->appl_ptr -
-		       rme32->playback_last_appl_ptr;
-		rme32->playback_last_appl_ptr = runtime->control->appl_ptr;
-		if (diff != 0 && diff < -(snd_pcm_sframes_t) (runtime->boundary >> 1)) {
-			diff += runtime->boundary;
-		}
-		bytes = diff << rme32->playback_frlog;
-		if (bytes > RME32_BUFFER_SIZE - rme32->playback_ptr) {
-			memcpy_toio((void *)(rme32->iobase + RME32_IO_DATA_BUFFER + rme32->playback_ptr),
-				    runtime->dma_area + rme32->playback_ptr,
-				    RME32_BUFFER_SIZE - rme32->playback_ptr);
-			bytes -= RME32_BUFFER_SIZE - rme32->playback_ptr;
-			if (bytes > RME32_BUFFER_SIZE) {
-				bytes = RME32_BUFFER_SIZE;
-			}
-			memcpy_toio((void *)(rme32->iobase + RME32_IO_DATA_BUFFER),
-				    runtime->dma_area, bytes);
-			rme32->playback_ptr = bytes;
-		} else if (bytes != 0) {
-			memcpy_toio((void *)(rme32->iobase + RME32_IO_DATA_BUFFER + rme32->playback_ptr),
-				    runtime->dma_area + rme32->playback_ptr, bytes);
-			rme32->playback_ptr += bytes;
-		}
-	}
-	return snd_rme32_playback_ptr(rme32);
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	return snd_pcm_indirect_playback_pointer(substream, &rme32->playback_pcm,
+						 snd_rme32_pcm_byteptr(rme32));
 }
 
 static snd_pcm_uframes_t
-snd_rme32_capture_pointer(snd_pcm_substream_t * substream)
+snd_rme32_capture_fd_pointer(snd_pcm_substream_t * substream)
 {
-	rme32_t *rme32 = _snd_pcm_substream_chip(substream);
-	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_pcm_uframes_t frameptr;
-	size_t ptr;
-
-	frameptr = snd_rme32_capture_ptr(rme32);
-	if (runtime->access == SNDRV_PCM_ACCESS_MMAP_INTERLEAVED) {
-		ptr = frameptr << rme32->capture_frlog;
-		if (ptr > rme32->capture_ptr) {
-			memcpy_fromio(runtime->dma_area + rme32->capture_ptr,
-				      (void *)(rme32->iobase + RME32_IO_DATA_BUFFER +
-					       rme32->capture_ptr),
-				      ptr - rme32->capture_ptr);
-			rme32->capture_ptr += ptr - rme32->capture_ptr;
-		} else if (ptr < rme32->capture_ptr) {
-			memcpy_fromio(runtime->dma_area + rme32->capture_ptr,
-				      (void *)(rme32->iobase + RME32_IO_DATA_BUFFER +
-					       rme32->capture_ptr),
-				      RME32_BUFFER_SIZE - rme32->capture_ptr);
-			memcpy_fromio(runtime->dma_area,
-				      (void *)(rme32->iobase + RME32_IO_DATA_BUFFER),
-				      ptr);
-			rme32->capture_ptr = ptr;
-		}
-	}
-	return frameptr;
+	rme32_t *rme32 = snd_pcm_substream_chip(substream);
+	return snd_pcm_indirect_capture_pointer(substream, &rme32->capture_pcm,
+						snd_rme32_pcm_byteptr(rme32));
 }
 
+/* for halfduplex mode */
 static snd_pcm_ops_t snd_rme32_playback_spdif_ops = {
 	.open =		snd_rme32_playback_spdif_open,
 	.close =	snd_rme32_playback_close,
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_rme32_playback_hw_params,
-	.hw_free =	snd_rme32_playback_hw_free,
+	.hw_free =	snd_rme32_pcm_hw_free,
 	.prepare =	snd_rme32_playback_prepare,
-	.trigger =	snd_rme32_playback_trigger,
+	.trigger =	snd_rme32_pcm_trigger,
 	.pointer =	snd_rme32_playback_pointer,
 	.copy =		snd_rme32_playback_copy,
 	.silence =	snd_rme32_playback_silence,
@@ -1260,9 +1241,9 @@
 	.close =	snd_rme32_capture_close,
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_rme32_capture_hw_params,
-	.hw_free =	snd_rme32_capture_hw_free,
+	.hw_free =	snd_rme32_pcm_hw_free,
 	.prepare =	snd_rme32_capture_prepare,
-	.trigger =	snd_rme32_capture_trigger,
+	.trigger =	snd_rme32_pcm_trigger,
 	.pointer =	snd_rme32_capture_pointer,
 	.copy =		snd_rme32_capture_copy,
 };
@@ -1272,9 +1253,8 @@
 	.close =	snd_rme32_playback_close,
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_rme32_playback_hw_params,
-	.hw_free =	snd_rme32_playback_hw_free,
 	.prepare =	snd_rme32_playback_prepare,
-	.trigger =	snd_rme32_playback_trigger,
+	.trigger =	snd_rme32_pcm_trigger,
 	.pointer =	snd_rme32_playback_pointer,
 	.copy =		snd_rme32_playback_copy,
 	.silence =	snd_rme32_playback_silence,
@@ -1285,13 +1265,59 @@
 	.close =	snd_rme32_capture_close,
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_rme32_capture_hw_params,
-	.hw_free =	snd_rme32_capture_hw_free,
 	.prepare =	snd_rme32_capture_prepare,
-	.trigger =	snd_rme32_capture_trigger,
+	.trigger =	snd_rme32_pcm_trigger,
 	.pointer =	snd_rme32_capture_pointer,
 	.copy =		snd_rme32_capture_copy,
 };
 
+/* for fullduplex mode */
+static snd_pcm_ops_t snd_rme32_playback_spdif_fd_ops = {
+	.open =		snd_rme32_playback_spdif_open,
+	.close =	snd_rme32_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_rme32_playback_hw_params,
+	.hw_free =	snd_rme32_pcm_hw_free,
+	.prepare =	snd_rme32_playback_prepare,
+	.trigger =	snd_rme32_pcm_trigger,
+	.pointer =	snd_rme32_playback_fd_pointer,
+	.ack =		snd_rme32_playback_fd_ack,
+};
+
+static snd_pcm_ops_t snd_rme32_capture_spdif_fd_ops = {
+	.open =		snd_rme32_capture_spdif_open,
+	.close =	snd_rme32_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_rme32_capture_hw_params,
+	.hw_free =	snd_rme32_pcm_hw_free,
+	.prepare =	snd_rme32_capture_prepare,
+	.trigger =	snd_rme32_pcm_trigger,
+	.pointer =	snd_rme32_capture_fd_pointer,
+	.ack =		snd_rme32_capture_fd_ack,
+};
+
+static snd_pcm_ops_t snd_rme32_playback_adat_fd_ops = {
+	.open =		snd_rme32_playback_adat_open,
+	.close =	snd_rme32_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_rme32_playback_hw_params,
+	.prepare =	snd_rme32_playback_prepare,
+	.trigger =	snd_rme32_pcm_trigger,
+	.pointer =	snd_rme32_playback_fd_pointer,
+	.ack =		snd_rme32_playback_fd_ack,
+};
+
+static snd_pcm_ops_t snd_rme32_capture_adat_fd_ops = {
+	.open =		snd_rme32_capture_adat_open,
+	.close =	snd_rme32_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_rme32_capture_hw_params,
+	.prepare =	snd_rme32_capture_prepare,
+	.trigger =	snd_rme32_pcm_trigger,
+	.pointer =	snd_rme32_capture_fd_pointer,
+	.ack =		snd_rme32_capture_fd_ack,
+};
+
 static void snd_rme32_free(void *private_data)
 {
 	rme32_t *rme32 = (rme32_t *) private_data;
@@ -1300,8 +1326,7 @@
 		return;
 	}
 	if (rme32->irq >= 0) {
-		snd_rme32_playback_stop(rme32);
-		snd_rme32_capture_stop(rme32);
+		snd_rme32_pcm_stop(rme32, 0);
 		free_irq(rme32->irq, (void *) rme32);
 		rme32->irq = -1;
 	}
@@ -1319,7 +1344,6 @@
 {
 	rme32_t *rme32 = (rme32_t *) pcm->private_data;
 	rme32->spdif_pcm = NULL;
-	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
 
 static void
@@ -1327,7 +1351,6 @@
 {
 	rme32_t *rme32 = (rme32_t *) pcm->private_data;
 	rme32->adat_pcm = NULL;
-	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
 
 static int __devinit snd_rme32_create(rme32_t * rme32)
@@ -1371,18 +1394,22 @@
 	rme32->spdif_pcm->private_data = rme32;
 	rme32->spdif_pcm->private_free = snd_rme32_free_spdif_pcm;
 	strcpy(rme32->spdif_pcm->name, "Digi32 IEC958");
-	snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_PLAYBACK,
-			&snd_rme32_playback_spdif_ops);
-	snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_CAPTURE,
-			&snd_rme32_capture_spdif_ops);
-
-	rme32->spdif_pcm->info_flags = 0;
-
-	snd_pcm_lib_preallocate_pages_for_all(rme32->spdif_pcm,
-					      SNDRV_DMA_TYPE_CONTINUOUS,
-					      snd_dma_continuous_data(GFP_KERNEL),
-					      RME32_BUFFER_SIZE,
-					      RME32_BUFFER_SIZE);
+	if (rme32->fullduplex_mode) {
+		snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_PLAYBACK,
+				&snd_rme32_playback_spdif_fd_ops);
+		snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_CAPTURE,
+				&snd_rme32_capture_spdif_fd_ops);
+		snd_pcm_lib_preallocate_pages_for_all(rme32->spdif_pcm, SNDRV_DMA_TYPE_CONTINUOUS,
+						      snd_dma_continuous_data(GFP_KERNEL),
+						      0, RME32_MID_BUFFER_SIZE);
+		rme32->spdif_pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX;
+	} else {
+		snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_PLAYBACK,
+				&snd_rme32_playback_spdif_ops);
+		snd_pcm_set_ops(rme32->spdif_pcm, SNDRV_PCM_STREAM_CAPTURE,
+				&snd_rme32_capture_spdif_ops);
+		rme32->spdif_pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX;
+	}
 
 	/* set up ALSA pcm device for ADAT */
 	if ((pci->device == PCI_DEVICE_ID_DIGI32) ||
@@ -1399,18 +1426,22 @@
 		rme32->adat_pcm->private_data = rme32;
 		rme32->adat_pcm->private_free = snd_rme32_free_adat_pcm;
 		strcpy(rme32->adat_pcm->name, "Digi32 ADAT");
-		snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_PLAYBACK, 
-				&snd_rme32_playback_adat_ops);
-		snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_CAPTURE, 
-				&snd_rme32_capture_adat_ops);
-		
-		rme32->adat_pcm->info_flags = 0;
-
-		snd_pcm_lib_preallocate_pages_for_all(rme32->adat_pcm, 
-						      SNDRV_DMA_TYPE_CONTINUOUS,
-						      snd_dma_continuous_data(GFP_KERNEL),
-						      RME32_BUFFER_SIZE, 
-						      RME32_BUFFER_SIZE);
+		if (rme32->fullduplex_mode) {
+			snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_PLAYBACK, 
+					&snd_rme32_playback_adat_fd_ops);
+			snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_CAPTURE, 
+					&snd_rme32_capture_adat_fd_ops);
+			snd_pcm_lib_preallocate_pages_for_all(rme32->adat_pcm, SNDRV_DMA_TYPE_CONTINUOUS,
+							      snd_dma_continuous_data(GFP_KERNEL),
+							      0, RME32_MID_BUFFER_SIZE);
+			rme32->adat_pcm->info_flags = SNDRV_PCM_INFO_JOINT_DUPLEX;
+		} else {
+			snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_PLAYBACK, 
+					&snd_rme32_playback_adat_ops);
+			snd_pcm_set_ops(rme32->adat_pcm, SNDRV_PCM_STREAM_CAPTURE, 
+					&snd_rme32_capture_adat_ops);
+			rme32->adat_pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX;
+		}
 	}
 
 
@@ -1418,8 +1449,7 @@
 	rme32->capture_periodsize = 0;
 
 	/* make sure playback/capture is stopped, if by some reason active */
-	snd_rme32_playback_stop(rme32);
-	snd_rme32_capture_stop(rme32);
+	snd_rme32_pcm_stop(rme32, 0);
 
         /* reset DAC */
         snd_rme32_reset_dac(rme32);
@@ -1464,6 +1494,10 @@
 	snd_iprintf(buffer, " (index #%d)\n", rme32->card->number + 1);
 
 	snd_iprintf(buffer, "\nGeneral settings\n");
+	if (rme32->fullduplex_mode)
+		snd_iprintf(buffer, "  Full-duplex mode\n");
+	else
+		snd_iprintf(buffer, "  Half-duplex mode\n");
 	if (RME32_PRO_WITH_8414(rme32)) {
 		snd_iprintf(buffer, "  receiver: CS8414\n");
 	} else {
@@ -1569,7 +1603,7 @@
 snd_rme32_get_loopback_control(snd_kcontrol_t * kcontrol,
 			       snd_ctl_elem_value_t * ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 
 	spin_lock_irqsave(&rme32->lock, flags);
@@ -1582,7 +1616,7 @@
 snd_rme32_put_loopback_control(snd_kcontrol_t * kcontrol,
 			       snd_ctl_elem_value_t * ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change;
@@ -1605,7 +1639,7 @@
 snd_rme32_info_inputtype_control(snd_kcontrol_t * kcontrol,
 				 snd_ctl_elem_info_t * uinfo)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	static char *texts[4] = { "Optical", "Coaxial", "Internal", "XLR" };
 
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
@@ -1635,7 +1669,7 @@
 snd_rme32_get_inputtype_control(snd_kcontrol_t * kcontrol,
 				snd_ctl_elem_value_t * ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int items = 3;
 
@@ -1665,7 +1699,7 @@
 snd_rme32_put_inputtype_control(snd_kcontrol_t * kcontrol,
 				snd_ctl_elem_value_t * ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change, items = 3;
@@ -1714,7 +1748,7 @@
 snd_rme32_get_clockmode_control(snd_kcontrol_t * kcontrol,
 				snd_ctl_elem_value_t * ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 
 	spin_lock_irqsave(&rme32->lock, flags);
@@ -1726,7 +1760,7 @@
 snd_rme32_put_clockmode_control(snd_kcontrol_t * kcontrol,
 				snd_ctl_elem_value_t * ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change;
@@ -1770,7 +1804,7 @@
 static int snd_rme32_control_spdif_get(snd_kcontrol_t * kcontrol,
 				       snd_ctl_elem_value_t * ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 
 	snd_rme32_convert_to_aes(&ucontrol->value.iec958,
 				 rme32->wcreg_spdif);
@@ -1780,7 +1814,7 @@
 static int snd_rme32_control_spdif_put(snd_kcontrol_t * kcontrol,
 				       snd_ctl_elem_value_t * ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	u32 val;
@@ -1805,7 +1839,7 @@
 					      snd_ctl_elem_value_t *
 					      ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 
 	snd_rme32_convert_to_aes(&ucontrol->value.iec958,
 				 rme32->wcreg_spdif_stream);
@@ -1816,7 +1850,7 @@
 					      snd_ctl_elem_value_t *
 					      ucontrol)
 {
-	rme32_t *rme32 = _snd_kcontrol_chip(kcontrol);
+	rme32_t *rme32 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	u32 val;
@@ -1907,7 +1941,7 @@
 	int idx, err;
 	snd_kcontrol_t *kctl;
 
-	for (idx = 0; idx < 7; idx++) {
+	for (idx = 0; idx < (int)ARRAY_SIZE(snd_rme32_controls); idx++) {
 		if ((err = snd_ctl_add(card, kctl = snd_ctl_new1(&snd_rme32_controls[idx], rme32))) < 0)
 			return err;
 		if (idx == 1)	/* IEC958 (S/PDIF) Stream */
@@ -1952,6 +1986,8 @@
 	rme32->card = card;
 	rme32->pci = pci;
 	snd_card_set_dev(card, &pci->dev);
+        if (fullduplex[dev])
+		rme32->fullduplex_mode = 1;
 	if ((err = snd_rme32_create(rme32)) < 0) {
 		snd_card_free(card);
 		return err;
diff -Nru a/sound/pci/rme96.c b/sound/pci/rme96.c
--- a/sound/pci/rme96.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/rme96.c	2004-07-27 18:28:33 -07:00
@@ -47,8 +47,7 @@
 MODULE_DESCRIPTION("RME Digi96, Digi96/8, Digi96/8 PRO, Digi96/8 PST, "
 		   "Digi96/8 PAD");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{RME,Digi96},"
+MODULE_SUPPORTED_DEVICE("{{RME,Digi96},"
 		"{RME,Digi96/8},"
 		"{RME,Digi96/8 PRO},"
 		"{RME,Digi96/8 PST},"
@@ -61,13 +60,10 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for RME Digi96 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for RME Digi96 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable RME Digi96 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 
 /*
  * Defines for RME Digi96 series, from internal RME reference documents
@@ -250,10 +246,6 @@
         size_t playback_periodsize; /* in bytes, zero if not used */
 	size_t capture_periodsize; /* in bytes, zero if not used */
 
-        snd_pcm_uframes_t playback_last_appl_ptr;
-	size_t playback_ptr;
-	size_t capture_ptr;
-
 	snd_card_t         *card;
 	snd_pcm_t          *spdif_pcm;
 	snd_pcm_t          *adat_pcm; 
@@ -349,7 +341,7 @@
 			   snd_pcm_uframes_t pos,
 			   snd_pcm_uframes_t count)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	count <<= rme96->playback_frlog;
 	pos <<= rme96->playback_frlog;
 	memset_io(rme96->iobase + RME96_IO_PLAY_BUFFER + pos,
@@ -364,7 +356,7 @@
 			void __user *src,
 			snd_pcm_uframes_t count)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	count <<= rme96->playback_frlog;
 	pos <<= rme96->playback_frlog;
 	copy_from_user_toio(rme96->iobase + RME96_IO_PLAY_BUFFER + pos, src,
@@ -379,7 +371,7 @@
 		       void __user *dst,
 		       snd_pcm_uframes_t count)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	count <<= rme96->capture_frlog;
 	pos <<= rme96->capture_frlog;
 	copy_to_user_fromio(dst, rme96->iobase + RME96_IO_REC_BUFFER + pos,
@@ -394,6 +386,7 @@
 {
 	.info =		     (SNDRV_PCM_INFO_MMAP |
 			      SNDRV_PCM_INFO_MMAP_VALID |
+			      SNDRV_PCM_INFO_MMAP_IOMEM |
 			      SNDRV_PCM_INFO_INTERLEAVED |
 			      SNDRV_PCM_INFO_PAUSE),
 	.formats =	     (SNDRV_PCM_FMTBIT_S16_LE |
@@ -423,6 +416,7 @@
 {
 	.info =		     (SNDRV_PCM_INFO_MMAP |
 			      SNDRV_PCM_INFO_MMAP_VALID |
+			      SNDRV_PCM_INFO_MMAP_IOMEM |
 			      SNDRV_PCM_INFO_INTERLEAVED |
 			      SNDRV_PCM_INFO_PAUSE),
 	.formats =	     (SNDRV_PCM_FMTBIT_S16_LE |
@@ -452,6 +446,7 @@
 {
 	.info =		     (SNDRV_PCM_INFO_MMAP |
 			      SNDRV_PCM_INFO_MMAP_VALID |
+			      SNDRV_PCM_INFO_MMAP_IOMEM |
 			      SNDRV_PCM_INFO_INTERLEAVED |
 			      SNDRV_PCM_INFO_PAUSE),
 	.formats =	     (SNDRV_PCM_FMTBIT_S16_LE |
@@ -477,6 +472,7 @@
 {
 	.info =		     (SNDRV_PCM_INFO_MMAP |
 			      SNDRV_PCM_INFO_MMAP_VALID |
+			      SNDRV_PCM_INFO_MMAP_IOMEM |
 			      SNDRV_PCM_INFO_INTERLEAVED |
 			      SNDRV_PCM_INFO_PAUSE),
 	.formats =	     (SNDRV_PCM_FMTBIT_S16_LE |
@@ -992,11 +988,14 @@
 			     snd_pcm_hw_params_t *params)
 {
 	unsigned long flags;        
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
+	snd_pcm_runtime_t *runtime = substream->runtime;
 	int err, rate, dummy;
 
-	if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params))) < 0)
-		return err;
+	runtime->dma_area = (void *)(rme96->iobase + RME96_IO_PLAY_BUFFER);
+	runtime->dma_addr = rme96->port + RME96_IO_PLAY_BUFFER;
+	runtime->dma_bytes = RME96_BUFFER_SIZE;
+
 	spin_lock_irqsave(&rme96->lock, flags);
 	if (!(rme96->wcreg & RME96_WCR_MASTER) &&
             snd_rme96_getinputtype(rme96) != RME96_INPUT_ANALOG &&
@@ -1038,23 +1037,18 @@
 }
 
 static int
-snd_rme96_playback_hw_free(snd_pcm_substream_t *substream)
-{
-	snd_pcm_lib_free_pages(substream);
-	return 0;
-}
-
-static int
 snd_rme96_capture_hw_params(snd_pcm_substream_t *substream,
 			    snd_pcm_hw_params_t *params)
 {
 	unsigned long flags;
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	int err, isadat, rate;
 	
-	if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(params))) < 0)
-		return err;
+	runtime->dma_area = (void *)(rme96->iobase + RME96_IO_REC_BUFFER);
+	runtime->dma_addr = rme96->port + RME96_IO_REC_BUFFER;
+	runtime->dma_bytes = RME96_BUFFER_SIZE;
+
 	spin_lock_irqsave(&rme96->lock, flags);
 	if ((err = snd_rme96_capture_setformat(rme96, params_format(params))) < 0) {
 		spin_unlock_irqrestore(&rme96->lock, flags);
@@ -1096,21 +1090,12 @@
 	return 0;
 }
 
-static int
-snd_rme96_capture_hw_free(snd_pcm_substream_t *substream)
-{
-	snd_pcm_lib_free_pages(substream);
-	return 0;
-}
-
 static void
 snd_rme96_playback_start(rme96_t *rme96,
 			 int from_pause)
 {
 	if (!from_pause) {
 		writel(0, rme96->iobase + RME96_IO_RESET_PLAY_POS);
-		rme96->playback_last_appl_ptr = 0;
-		rme96->playback_ptr = 0;
 	}
 
 	rme96->wcreg |= RME96_WCR_START;
@@ -1123,7 +1108,6 @@
 {
 	if (!from_pause) {
 		writel(0, rme96->iobase + RME96_IO_RESET_REC_POS);
-		rme96->capture_ptr = 0;
 	}
 
 	rme96->wcreg |= RME96_WCR_START_2;
@@ -1199,7 +1183,7 @@
 {
 	unsigned long flags;
         int rate, dummy;
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
 	snd_pcm_set_sync(substream);
@@ -1212,8 +1196,6 @@
 	rme96->wcreg &= ~RME96_WCR_ADAT;
 	writel(rme96->wcreg, rme96->iobase + RME96_IO_CONTROL_REGISTER);
 	rme96->playback_substream = substream;
-	rme96->playback_last_appl_ptr = 0;
-	rme96->playback_ptr = 0;
 	spin_unlock_irqrestore(&rme96->lock, flags);
 
 	runtime->hw = snd_rme96_playback_spdif_info;
@@ -1241,7 +1223,7 @@
 {
 	unsigned long flags;
         int isadat, rate;
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
 	snd_pcm_set_sync(substream);
@@ -1264,7 +1246,6 @@
                 return -EBUSY;
         }
 	rme96->capture_substream = substream;
-	rme96->capture_ptr = 0;
 	spin_unlock_irqrestore(&rme96->lock, flags);
 	
 	snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, RME96_BUFFER_SIZE, RME96_BUFFER_SIZE);
@@ -1278,7 +1259,7 @@
 {
 	unsigned long flags;
         int rate, dummy;
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;        
 	
 	snd_pcm_set_sync(substream);
@@ -1291,8 +1272,6 @@
 	rme96->wcreg |= RME96_WCR_ADAT;
 	writel(rme96->wcreg, rme96->iobase + RME96_IO_CONTROL_REGISTER);
 	rme96->playback_substream = substream;
-	rme96->playback_last_appl_ptr = 0;
-	rme96->playback_ptr = 0;
 	spin_unlock_irqrestore(&rme96->lock, flags);
 	
 	runtime->hw = snd_rme96_playback_adat_info;
@@ -1315,7 +1294,7 @@
 {
 	unsigned long flags;
         int isadat, rate;
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
 	snd_pcm_set_sync(substream);
@@ -1341,7 +1320,6 @@
                 return -EBUSY;
         }
 	rme96->capture_substream = substream;
-	rme96->capture_ptr = 0;
 	spin_unlock_irqrestore(&rme96->lock, flags);
 
 	snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_BUFFER_BYTES, RME96_BUFFER_SIZE, RME96_BUFFER_SIZE);
@@ -1353,7 +1331,7 @@
 snd_rme96_playback_close(snd_pcm_substream_t *substream)
 {
 	unsigned long flags;
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	int spdif = 0;
 
 	spin_lock_irqsave(&rme96->lock, flags);	
@@ -1376,7 +1354,7 @@
 snd_rme96_capture_close(snd_pcm_substream_t *substream)
 {
 	unsigned long flags;
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	
 	spin_lock_irqsave(&rme96->lock, flags);	
 	if (RME96_ISRECORDING(rme96)) {
@@ -1391,7 +1369,7 @@
 static int
 snd_rme96_playback_prepare(snd_pcm_substream_t *substream)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme96->lock, flags);	
@@ -1406,7 +1384,7 @@
 static int
 snd_rme96_capture_prepare(snd_pcm_substream_t *substream)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme96->lock, flags);	
@@ -1422,7 +1400,7 @@
 snd_rme96_playback_trigger(snd_pcm_substream_t *substream, 
 			   int cmd)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 
 	switch (cmd) {
 	case SNDRV_PCM_TRIGGER_START:
@@ -1465,7 +1443,7 @@
 snd_rme96_capture_trigger(snd_pcm_substream_t *substream, 
 			  int cmd)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 
 	switch (cmd) {
 	case SNDRV_PCM_TRIGGER_START:
@@ -1508,75 +1486,15 @@
 static snd_pcm_uframes_t
 snd_rme96_playback_pointer(snd_pcm_substream_t *substream)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
-	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_pcm_sframes_t diff;
-	size_t bytes;
-	
-	if (runtime->access == SNDRV_PCM_ACCESS_MMAP_INTERLEAVED) {
-		diff = runtime->control->appl_ptr -
-		    rme96->playback_last_appl_ptr;
- 	        rme96->playback_last_appl_ptr = runtime->control->appl_ptr;
-	        if (diff != 0 &&
-		    diff < -(snd_pcm_sframes_t)(runtime->boundary >> 1))
-		{
-		        diff += runtime->boundary;
-		}
-		bytes = diff << rme96->playback_frlog;
-		
-		if (bytes > RME96_BUFFER_SIZE - rme96->playback_ptr) {
-			memcpy_toio((void *)(rme96->iobase + RME96_IO_PLAY_BUFFER +
-					     rme96->playback_ptr),
-				    runtime->dma_area + rme96->playback_ptr,
-				    RME96_BUFFER_SIZE - rme96->playback_ptr);
-		        bytes -= RME96_BUFFER_SIZE - rme96->playback_ptr;
-			if (bytes > RME96_BUFFER_SIZE) {
-			        bytes = RME96_BUFFER_SIZE;
-			}
-			memcpy_toio((void *)(rme96->iobase + RME96_IO_PLAY_BUFFER),
-				    runtime->dma_area,
-				    bytes);
-			rme96->playback_ptr = bytes;
-		} else if (bytes != 0) {
-			memcpy_toio((void *)(rme96->iobase + RME96_IO_PLAY_BUFFER +
-					     rme96->playback_ptr),
-				    runtime->dma_area + rme96->playback_ptr,
-				    bytes);
-			rme96->playback_ptr += bytes;
-		}
-	}
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
 	return snd_rme96_playback_ptr(rme96);
 }
 
 static snd_pcm_uframes_t
 snd_rme96_capture_pointer(snd_pcm_substream_t *substream)
 {
-	rme96_t *rme96 = _snd_pcm_substream_chip(substream);
-	snd_pcm_runtime_t *runtime = substream->runtime;
-	snd_pcm_uframes_t frameptr;
-	size_t ptr;
-
-	frameptr = snd_rme96_capture_ptr(rme96);
-	if (runtime->access == SNDRV_PCM_ACCESS_MMAP_INTERLEAVED) {
-		ptr = frameptr << rme96->capture_frlog;
-		if (ptr > rme96->capture_ptr) {
-			memcpy_fromio(runtime->dma_area + rme96->capture_ptr,
-				      (void *)(rme96->iobase + RME96_IO_REC_BUFFER +
-					       rme96->capture_ptr),
-				      ptr - rme96->capture_ptr);
-			rme96->capture_ptr += ptr - rme96->capture_ptr;
-		} else if (ptr < rme96->capture_ptr) {
-			memcpy_fromio(runtime->dma_area + rme96->capture_ptr,
-				      (void *)(rme96->iobase + RME96_IO_REC_BUFFER +
-					       rme96->capture_ptr),
-				      RME96_BUFFER_SIZE - rme96->capture_ptr);
-			memcpy_fromio(runtime->dma_area,
-				      (void *)(rme96->iobase + RME96_IO_REC_BUFFER),
-				      ptr);
-			rme96->capture_ptr = ptr;
-		}
-	}
-	return frameptr;
+	rme96_t *rme96 = snd_pcm_substream_chip(substream);
+	return snd_rme96_capture_ptr(rme96);
 }
 
 static snd_pcm_ops_t snd_rme96_playback_spdif_ops = {
@@ -1584,7 +1502,6 @@
 	.close =	snd_rme96_playback_close,
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_rme96_playback_hw_params,
-	.hw_free =	snd_rme96_playback_hw_free,
 	.prepare =	snd_rme96_playback_prepare,
 	.trigger =	snd_rme96_playback_trigger,
 	.pointer =	snd_rme96_playback_pointer,
@@ -1597,7 +1514,6 @@
 	.close =	snd_rme96_capture_close,
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_rme96_capture_hw_params,
-	.hw_free =	snd_rme96_capture_hw_free,
 	.prepare =	snd_rme96_capture_prepare,
 	.trigger =	snd_rme96_capture_trigger,
 	.pointer =	snd_rme96_capture_pointer,
@@ -1609,7 +1525,6 @@
 	.close =	snd_rme96_playback_close,
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_rme96_playback_hw_params,
-	.hw_free =	snd_rme96_playback_hw_free,
 	.prepare =	snd_rme96_playback_prepare,
 	.trigger =	snd_rme96_playback_trigger,
 	.pointer =	snd_rme96_playback_pointer,
@@ -1622,7 +1537,6 @@
 	.close =	snd_rme96_capture_close,
 	.ioctl =	snd_pcm_lib_ioctl,
 	.hw_params =	snd_rme96_capture_hw_params,
-	.hw_free =	snd_rme96_capture_hw_free,
 	.prepare =	snd_rme96_capture_prepare,
 	.trigger =	snd_rme96_capture_trigger,
 	.pointer =	snd_rme96_capture_pointer,
@@ -1661,7 +1575,6 @@
 {
 	rme96_t *rme96 = (rme96_t *) pcm->private_data;
 	rme96->spdif_pcm = NULL;
-	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
 
 static void
@@ -1669,7 +1582,6 @@
 {
 	rme96_t *rme96 = (rme96_t *) pcm->private_data;
 	rme96->adat_pcm = NULL;
-	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
 
 static int __devinit
@@ -1719,12 +1631,6 @@
 
 	rme96->spdif_pcm->info_flags = 0;
 
-	snd_pcm_lib_preallocate_pages_for_all(rme96->spdif_pcm,
-					      SNDRV_DMA_TYPE_CONTINUOUS,
-					      snd_dma_continuous_data(GFP_KERNEL),
-					      RME96_BUFFER_SIZE,
-					      RME96_BUFFER_SIZE);
-
 	/* set up ALSA pcm device for ADAT */
 	if (pci->device == PCI_DEVICE_ID_DIGI96) {
 		/* ADAT is not available on the base model */
@@ -1742,12 +1648,6 @@
 		snd_pcm_set_ops(rme96->adat_pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_rme96_capture_adat_ops);
 		
 		rme96->adat_pcm->info_flags = 0;
-
-		snd_pcm_lib_preallocate_pages_for_all(rme96->adat_pcm,
-						      SNDRV_DMA_TYPE_CONTINUOUS,
-						      snd_dma_continuous_data(GFP_KERNEL),
-						      RME96_BUFFER_SIZE,
-						      RME96_BUFFER_SIZE);
 	}
 
 	rme96->playback_periodsize = 0;
@@ -1958,7 +1858,7 @@
 static int
 snd_rme96_get_loopback_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme96->lock, flags);
@@ -1969,7 +1869,7 @@
 static int
 snd_rme96_put_loopback_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change;
@@ -1987,7 +1887,7 @@
 snd_rme96_info_inputtype_control(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
 	static char *_texts[5] = { "Optical", "Coaxial", "Internal", "XLR", "Analog" };
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	char *texts[5] = { _texts[0], _texts[1], _texts[2], _texts[3], _texts[4] };
 	
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
@@ -2023,7 +1923,7 @@
 static int
 snd_rme96_get_inputtype_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int items = 3;
 	
@@ -2063,7 +1963,7 @@
 static int
 snd_rme96_put_inputtype_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change, items = 3;
@@ -2120,7 +2020,7 @@
 static int
 snd_rme96_get_clockmode_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme96->lock, flags);
@@ -2131,7 +2031,7 @@
 static int
 snd_rme96_put_clockmode_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change;
@@ -2161,7 +2061,7 @@
 static int
 snd_rme96_get_attenuation_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme96->lock, flags);
@@ -2172,7 +2072,7 @@
 static int
 snd_rme96_put_attenuation_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change;
@@ -2203,7 +2103,7 @@
 static int
 snd_rme96_get_montracks_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme96->lock, flags);
@@ -2214,7 +2114,7 @@
 static int
 snd_rme96_put_montracks_control(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	unsigned int val;
 	int change;
@@ -2258,7 +2158,7 @@
 
 static int snd_rme96_control_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	
 	snd_rme96_convert_to_aes(&ucontrol->value.iec958, rme96->wcreg_spdif);
 	return 0;
@@ -2266,7 +2166,7 @@
 
 static int snd_rme96_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	u32 val;
@@ -2288,7 +2188,7 @@
 
 static int snd_rme96_control_spdif_stream_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	
 	snd_rme96_convert_to_aes(&ucontrol->value.iec958, rme96->wcreg_spdif_stream);
 	return 0;
@@ -2296,7 +2196,7 @@
 
 static int snd_rme96_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	u32 val;
@@ -2327,7 +2227,7 @@
 static int
 snd_rme96_dac_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	
         uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
         uinfo->count = 2;
@@ -2339,7 +2239,7 @@
 static int
 snd_rme96_dac_volume_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 
 	spin_lock_irqsave(&rme96->lock, flags);
@@ -2353,7 +2253,7 @@
 static int
 snd_rme96_dac_volume_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *u)
 {
-	rme96_t *rme96 = _snd_kcontrol_chip(kcontrol);
+	rme96_t *rme96 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
         int change = 0;
 
diff -Nru a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
--- a/sound/pci/rme9652/hdsp.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/rme9652/hdsp.c	2004-07-27 18:28:33 -07:00
@@ -52,24 +52,18 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for RME Hammerfall DSP interface.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for RME Hammerfall DSP interface.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable/disable specific Hammerfall DSP soundcards.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(precise_ptr, bool, boot_devs, 0444);
 MODULE_PARM_DESC(precise_ptr, "Enable precise pointer (doesn't work reliably).");
-MODULE_PARM_SYNTAX(precise_ptr, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 module_param_array(line_outs_monitor, bool, boot_devs, 0444);
 MODULE_PARM_DESC(line_outs_monitor, "Send all input and playback streams to line outs by default.");
-MODULE_PARM_SYNTAX(line_outs_monitor, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 MODULE_AUTHOR("Paul Davis <paul@linuxaudiosystems.com>, Marcus Andersson, Thomas Charbonnel <thomas@undata.org>");
 MODULE_DESCRIPTION("RME Hammerfall DSP");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{RME Hammerfall-DSP},"
+MODULE_SUPPORTED_DEVICE("{{RME Hammerfall-DSP},"
 	        "{RME HDSP-9652},"
 		"{RME HDSP-9632}}");
 
@@ -1563,7 +1557,7 @@
 
 static int snd_hdsp_control_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	snd_hdsp_convert_to_aes(&ucontrol->value.iec958, hdsp->creg_spdif);
 	return 0;
@@ -1571,7 +1565,7 @@
 
 static int snd_hdsp_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	u32 val;
@@ -1593,7 +1587,7 @@
 
 static int snd_hdsp_control_spdif_stream_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	snd_hdsp_convert_to_aes(&ucontrol->value.iec958, hdsp->creg_spdif_stream);
 	return 0;
@@ -1601,7 +1595,7 @@
 
 static int snd_hdsp_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	u32 val;
@@ -1653,7 +1647,7 @@
 static int snd_hdsp_info_spdif_in(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
 	static char *texts[4] = {"Optical", "Coaxial", "Internal", "AES"};
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
 	uinfo->count = 1;
@@ -1666,7 +1660,7 @@
 
 static int snd_hdsp_get_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_spdif_in(hdsp);
 	return 0;
@@ -1674,7 +1668,7 @@
 
 static int snd_hdsp_put_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1722,7 +1716,7 @@
 
 static int snd_hdsp_get_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.integer.value[0] = hdsp_spdif_out(hdsp);
 	return 0;
@@ -1730,7 +1724,7 @@
 
 static int snd_hdsp_put_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1768,7 +1762,7 @@
 
 static int snd_hdsp_get_spdif_professional(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.integer.value[0] = hdsp_spdif_professional(hdsp);
 	return 0;
@@ -1776,7 +1770,7 @@
 
 static int snd_hdsp_put_spdif_professional(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1814,7 +1808,7 @@
 
 static int snd_hdsp_get_spdif_emphasis(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.integer.value[0] = hdsp_spdif_emphasis(hdsp);
 	return 0;
@@ -1822,7 +1816,7 @@
 
 static int snd_hdsp_put_spdif_emphasis(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1860,7 +1854,7 @@
 
 static int snd_hdsp_get_spdif_nonaudio(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.integer.value[0] = hdsp_spdif_nonaudio(hdsp);
 	return 0;
@@ -1868,7 +1862,7 @@
 
 static int snd_hdsp_put_spdif_nonaudio(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1895,7 +1889,7 @@
 static int snd_hdsp_info_spdif_sample_rate(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
 	static char *texts[] = {"32000", "44100", "48000", "64000", "88200", "96000", "None", "128000", "176400", "192000"};
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
 	uinfo->count = 1;
@@ -1908,7 +1902,7 @@
 
 static int snd_hdsp_get_spdif_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	switch (hdsp_spdif_sample_rate(hdsp)) {
 	case 32000:
@@ -1962,7 +1956,7 @@
 
 static int snd_hdsp_get_system_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp->system_sample_rate;
 	return 0;
@@ -1979,7 +1973,7 @@
 
 static int snd_hdsp_info_autosync_sample_rate(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	static char *texts[] = {"32000", "44100", "48000", "64000", "88200", "96000", "None", "128000", "176400", "192000"};	
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
 	uinfo->count = 1;
@@ -1992,7 +1986,7 @@
 
 static int snd_hdsp_get_autosync_sample_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	switch (hdsp_external_sample_rate(hdsp)) {
 	case 32000:
@@ -2062,7 +2056,7 @@
 
 static int snd_hdsp_get_system_clock_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_system_clock_mode(hdsp);
 	return 0;
@@ -2159,7 +2153,7 @@
 static int snd_hdsp_info_clock_source(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
 	static char *texts[] = {"AutoSync", "Internal 32.0 kHz", "Internal 44.1 kHz", "Internal 48.0 kHz", "Internal 64.0 kHz", "Internal 88.2 kHz", "Internal 96.0 kHz", "Internal 128 kHz", "Internal 176.4 kHz", "Internal 192.0 KHz" };
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
 	uinfo->count = 1;
@@ -2175,7 +2169,7 @@
 
 static int snd_hdsp_get_clock_source(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_clock_source(hdsp);
 	return 0;
@@ -2183,7 +2177,7 @@
 
 static int snd_hdsp_put_clock_source(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	int val;
@@ -2266,7 +2260,7 @@
 
 static int snd_hdsp_get_da_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_da_gain(hdsp);
 	return 0;
@@ -2274,7 +2268,7 @@
 
 static int snd_hdsp_put_da_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	int val;
@@ -2353,7 +2347,7 @@
 
 static int snd_hdsp_get_ad_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_ad_gain(hdsp);
 	return 0;
@@ -2361,7 +2355,7 @@
 
 static int snd_hdsp_put_ad_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	int val;
@@ -2440,7 +2434,7 @@
 
 static int snd_hdsp_get_phone_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_phone_gain(hdsp);
 	return 0;
@@ -2448,7 +2442,7 @@
 
 static int snd_hdsp_put_phone_gain(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	int val;
@@ -2507,7 +2501,7 @@
 
 static int snd_hdsp_get_xlr_breakout_cable(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_xlr_breakout_cable(hdsp);
 	return 0;
@@ -2515,7 +2509,7 @@
 
 static int snd_hdsp_put_xlr_breakout_cable(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	int val;
@@ -2573,7 +2567,7 @@
 
 static int snd_hdsp_get_aeb(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_aeb(hdsp);
 	return 0;
@@ -2581,7 +2575,7 @@
 
 static int snd_hdsp_put_aeb(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	int val;
@@ -2662,7 +2656,7 @@
 static int snd_hdsp_info_pref_sync_ref(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
 	static char *texts[] = {"Word", "IEC958", "ADAT1", "ADAT Sync", "ADAT2", "ADAT3" };
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
 	uinfo->count = 1;
@@ -2691,7 +2685,7 @@
 
 static int snd_hdsp_get_pref_sync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_pref_sync_ref(hdsp);
 	return 0;
@@ -2699,7 +2693,7 @@
 
 static int snd_hdsp_put_pref_sync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change, max;
 	unsigned int val;
@@ -2780,7 +2774,7 @@
 
 static int snd_hdsp_get_autosync_ref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.enumerated.item[0] = hdsp_pref_sync_ref(hdsp);
 	return 0;
@@ -2806,7 +2800,7 @@
 
 static int snd_hdsp_get_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 
 	spin_lock_irqsave(&hdsp->lock, flags);
@@ -2817,7 +2811,7 @@
 
 static int snd_hdsp_put_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -2871,7 +2865,7 @@
 
 static int snd_hdsp_get_line_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&hdsp->lock, flags);
@@ -2882,7 +2876,7 @@
 
 static int snd_hdsp_put_line_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -2920,7 +2914,7 @@
 
 static int snd_hdsp_get_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int source;
 	int destination;
@@ -2943,7 +2937,7 @@
 
 static int snd_hdsp_put_mixer(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	int source;
@@ -3011,7 +3005,7 @@
 
 static int snd_hdsp_get_wc_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 
 	ucontrol->value.enumerated.item[0] = hdsp_wc_sync_check(hdsp);
 	return 0;
@@ -3043,7 +3037,7 @@
 
 static int snd_hdsp_get_spdif_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 
 	ucontrol->value.enumerated.item[0] = hdsp_spdif_sync_check(hdsp);
 	return 0;
@@ -3074,7 +3068,7 @@
 
 static int snd_hdsp_get_adatsync_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 
 	ucontrol->value.enumerated.item[0] = hdsp_adatsync_sync_check(hdsp);
 	return 0;
@@ -3105,7 +3099,7 @@
 static int snd_hdsp_get_adat_sync_check(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
 	int offset;
-	hdsp_t *hdsp = _snd_kcontrol_chip(kcontrol);
+	hdsp_t *hdsp = snd_kcontrol_chip(kcontrol);
 
 	offset = ucontrol->id.index - 1;
 	snd_assert(offset >= 0);
@@ -3809,7 +3803,7 @@
 
 static snd_pcm_uframes_t snd_hdsp_hw_pointer(snd_pcm_substream_t *substream)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	return hdsp_hw_pointer(hdsp);
 }
 
@@ -3836,7 +3830,7 @@
 static int snd_hdsp_playback_copy(snd_pcm_substream_t *substream, int channel,
 				  snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	char *channel_buf;
 
 	snd_assert(pos + count <= HDSP_CHANNEL_BUFFER_BYTES / 4, return -EINVAL);
@@ -3851,7 +3845,7 @@
 static int snd_hdsp_capture_copy(snd_pcm_substream_t *substream, int channel,
 				 snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	char *channel_buf;
 
 	snd_assert(pos + count <= HDSP_CHANNEL_BUFFER_BYTES / 4, return -EINVAL);
@@ -3866,7 +3860,7 @@
 static int snd_hdsp_hw_silence(snd_pcm_substream_t *substream, int channel,
 				  snd_pcm_uframes_t pos, snd_pcm_uframes_t count)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	char *channel_buf;
 
 	channel_buf = hdsp_channel_buffer_location (hdsp, substream->pstr->stream, channel);
@@ -3878,7 +3872,7 @@
 static int snd_hdsp_reset(snd_pcm_substream_t *substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	snd_pcm_substream_t *other;
 	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
 		other = hdsp->capture_substream;
@@ -3906,7 +3900,7 @@
 static int snd_hdsp_hw_params(snd_pcm_substream_t *substream,
 				 snd_pcm_hw_params_t *params)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	int err;
 	pid_t this_pid;
 	pid_t other_pid;
@@ -3989,7 +3983,7 @@
 static int snd_hdsp_channel_info(snd_pcm_substream_t *substream,
 				    snd_pcm_channel_info_t *info)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	int mapped_channel;
 
 	snd_assert(info->channel < hdsp->max_channels, return -EINVAL);
@@ -4026,7 +4020,7 @@
 
 static int snd_hdsp_trigger(snd_pcm_substream_t *substream, int cmd)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	snd_pcm_substream_t *other;
 	int running;
 	
@@ -4105,7 +4099,7 @@
 
 static int snd_hdsp_prepare(snd_pcm_substream_t *substream)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	int result = 0;
 
 	if (hdsp_check_for_iobox (hdsp)) {
@@ -4364,7 +4358,7 @@
 
 static int snd_hdsp_playback_open(snd_pcm_substream_t *substream)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
@@ -4430,7 +4424,7 @@
 
 static int snd_hdsp_playback_release(snd_pcm_substream_t *substream)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 
 	spin_lock_irqsave(&hdsp->lock, flags);
@@ -4449,7 +4443,7 @@
 
 static int snd_hdsp_capture_open(snd_pcm_substream_t *substream)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
@@ -4509,7 +4503,7 @@
 
 static int snd_hdsp_capture_release(snd_pcm_substream_t *substream)
 {
-	hdsp_t *hdsp = _snd_pcm_substream_chip(substream);
+	hdsp_t *hdsp = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 
 	spin_lock_irqsave(&hdsp->lock, flags);
diff -Nru a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c
--- a/sound/pci/rme9652/rme9652.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/rme9652/rme9652.c	2004-07-27 18:28:33 -07:00
@@ -46,21 +46,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for RME Digi9652 (Hammerfall) soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for RME Digi9652 (Hammerfall) soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable/disable specific RME96{52,36} soundcards.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(precise_ptr, bool, boot_devs, 0444);
 MODULE_PARM_DESC(precise_ptr, "Enable precise pointer (doesn't work reliably).");
-MODULE_PARM_SYNTAX(precise_ptr, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 MODULE_AUTHOR("Paul Davis <pbd@op.net>, Winfried Ritsch");
 MODULE_DESCRIPTION("RME Digi9652/Digi9636");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{RME,Hammerfall},"
+MODULE_SUPPORTED_DEVICE("{{RME,Hammerfall},"
 		"{RME,Hammerfall-Light}}");
 
 /* The Hammerfall has two sets of 24 ADAT + 2 S/PDIF channels, one for
@@ -858,7 +853,7 @@
 
 static int snd_rme9652_control_spdif_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	
 	snd_rme9652_convert_to_aes(&ucontrol->value.iec958, rme9652->creg_spdif);
 	return 0;
@@ -866,7 +861,7 @@
 
 static int snd_rme9652_control_spdif_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	u32 val;
@@ -888,7 +883,7 @@
 
 static int snd_rme9652_control_spdif_stream_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	
 	snd_rme9652_convert_to_aes(&ucontrol->value.iec958, rme9652->creg_spdif_stream);
 	return 0;
@@ -896,7 +891,7 @@
 
 static int snd_rme9652_control_spdif_stream_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	u32 val;
@@ -977,7 +972,7 @@
 
 static int snd_rme9652_get_adat1_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme9652->lock, flags);
@@ -988,7 +983,7 @@
 
 static int snd_rme9652_put_adat1_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1050,7 +1045,7 @@
 
 static int snd_rme9652_get_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme9652->lock, flags);
@@ -1061,7 +1056,7 @@
 
 static int snd_rme9652_put_spdif_in(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1121,7 +1116,7 @@
 
 static int snd_rme9652_get_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme9652->lock, flags);
@@ -1132,7 +1127,7 @@
 
 static int snd_rme9652_put_spdif_out(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1210,7 +1205,7 @@
 
 static int snd_rme9652_get_sync_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme9652->lock, flags);
@@ -1221,7 +1216,7 @@
 
 static int snd_rme9652_put_sync_mode(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1291,7 +1286,7 @@
 static int snd_rme9652_info_sync_pref(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
 	static char *texts[4] = {"IEC958 In", "ADAT1 In", "ADAT2 In", "ADAT3 In"};
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
 	uinfo->count = 1;
@@ -1304,7 +1299,7 @@
 
 static int snd_rme9652_get_sync_pref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme9652->lock, flags);
@@ -1315,7 +1310,7 @@
 
 static int snd_rme9652_put_sync_pref(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change, max;
 	unsigned int val;
@@ -1333,7 +1328,7 @@
 
 static int snd_rme9652_info_thru(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
 	uinfo->count = rme9652->ss_channels;
 	uinfo->value.integer.min = 0;
@@ -1343,7 +1338,7 @@
 
 static int snd_rme9652_get_thru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned int k;
 	u32 thru_bits = rme9652->thru_bits;
 
@@ -1355,7 +1350,7 @@
 
 static int snd_rme9652_put_thru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int chn;
@@ -1399,7 +1394,7 @@
 
 static int snd_rme9652_get_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 
 	spin_lock_irqsave(&rme9652->lock, flags);
@@ -1410,7 +1405,7 @@
 
 static int snd_rme9652_put_passthru(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	int change;
 	unsigned int val;
@@ -1447,7 +1442,7 @@
 
 static int snd_rme9652_get_spdif_rate(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned long flags;
 	
 	spin_lock_irqsave(&rme9652->lock, flags);
@@ -1477,7 +1472,7 @@
 
 static int snd_rme9652_get_adat_sync(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	unsigned int mask1, mask2, val;
 	
 	switch (kcontrol->private_value) {
@@ -1509,7 +1504,7 @@
 
 static int snd_rme9652_get_tc_valid(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
 {
-	rme9652_t *rme9652 = _snd_kcontrol_chip(kcontrol);
+	rme9652_t *rme9652 = snd_kcontrol_chip(kcontrol);
 	
 	ucontrol->value.integer.value[0] = 
 		(rme9652_read(rme9652, RME9652_status_register) & RME9652_tc_valid) ? 1 : 0;
@@ -1984,7 +1979,7 @@
 
 static snd_pcm_uframes_t snd_rme9652_hw_pointer(snd_pcm_substream_t *substream)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	return rme9652_hw_pointer(rme9652);
 }
 
@@ -2013,7 +2008,7 @@
 static int snd_rme9652_playback_copy(snd_pcm_substream_t *substream, int channel,
 				     snd_pcm_uframes_t pos, void __user *src, snd_pcm_uframes_t count)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	char *channel_buf;
 
 	snd_assert(pos + count <= RME9652_CHANNEL_BUFFER_BYTES / 4, return -EINVAL);
@@ -2030,7 +2025,7 @@
 static int snd_rme9652_capture_copy(snd_pcm_substream_t *substream, int channel,
 				    snd_pcm_uframes_t pos, void __user *dst, snd_pcm_uframes_t count)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	char *channel_buf;
 
 	snd_assert(pos + count <= RME9652_CHANNEL_BUFFER_BYTES / 4, return -EINVAL);
@@ -2047,7 +2042,7 @@
 static int snd_rme9652_hw_silence(snd_pcm_substream_t *substream, int channel,
 				  snd_pcm_uframes_t pos, snd_pcm_uframes_t count)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	char *channel_buf;
 
 	channel_buf = rme9652_channel_buffer_location (rme9652,
@@ -2061,7 +2056,7 @@
 static int snd_rme9652_reset(snd_pcm_substream_t *substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	snd_pcm_substream_t *other;
 	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
 		other = rme9652->capture_substream;
@@ -2089,7 +2084,7 @@
 static int snd_rme9652_hw_params(snd_pcm_substream_t *substream,
 				 snd_pcm_hw_params_t *params)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	int err;
 	pid_t this_pid;
 	pid_t other_pid;
@@ -2154,7 +2149,7 @@
 static int snd_rme9652_channel_info(snd_pcm_substream_t *substream,
 				    snd_pcm_channel_info_t *info)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	int chn;
 
 	snd_assert(info->channel < RME9652_NCHANNELS, return -EINVAL);
@@ -2197,7 +2192,7 @@
 static int snd_rme9652_trigger(snd_pcm_substream_t *substream,
 			       int cmd)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	snd_pcm_substream_t *other;
 	int running;
 	spin_lock(&rme9652->lock);
@@ -2260,7 +2255,7 @@
 
 static int snd_rme9652_prepare(snd_pcm_substream_t *substream)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	int result = 0;
 
 	spin_lock(&rme9652->lock);
@@ -2386,7 +2381,7 @@
 
 static int snd_rme9652_playback_open(snd_pcm_substream_t *substream)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
@@ -2429,7 +2424,7 @@
 
 static int snd_rme9652_playback_release(snd_pcm_substream_t *substream)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 
 	spin_lock_irqsave(&rme9652->lock, flags);
@@ -2448,7 +2443,7 @@
 
 static int snd_rme9652_capture_open(snd_pcm_substream_t *substream)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 	snd_pcm_runtime_t *runtime = substream->runtime;
 
@@ -2486,7 +2481,7 @@
 
 static int snd_rme9652_capture_release(snd_pcm_substream_t *substream)
 {
-	rme9652_t *rme9652 = _snd_pcm_substream_chip(substream);
+	rme9652_t *rme9652 = snd_pcm_substream_chip(substream);
 	unsigned long flags;
 
 	spin_lock_irqsave(&rme9652->lock, flags);
diff -Nru a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c
--- a/sound/pci/sonicvibes.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/sonicvibes.c	2004-07-27 18:28:33 -07:00
@@ -44,8 +44,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("S3 SonicVibes PCI");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{S3,SonicVibes PCI}}");
+MODULE_SUPPORTED_DEVICE("{{S3,SonicVibes PCI}}");
 
 #ifndef PCI_VENDOR_ID_S3
 #define PCI_VENDOR_ID_S3             0x5333
@@ -64,22 +63,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for S3 SonicVibes soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for S3 SonicVibes soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable S3 SonicVibes soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(reverb, bool, boot_devs, 0444);
 MODULE_PARM_DESC(reverb, "Enable reverb (SRAM is present) for S3 SonicVibes soundcard.");
-MODULE_PARM_SYNTAX(reverb, SNDRV_ENABLED "," SNDRV_ENABLE_DESC);
 module_param_array(mge, bool, boot_devs, 0444);
 MODULE_PARM_DESC(mge, "MIC Gain Enable for S3 SonicVibes soundcard.");
-MODULE_PARM_SYNTAX(mge, SNDRV_ENABLED "," SNDRV_ENABLE_DESC);
 module_param(dmaio, uint, 0444);
 MODULE_PARM_DESC(dmaio, "DDMA i/o base address for S3 SonicVibes soundcard.");
-MODULE_PARM_SYNTAX(dmaio, "global," SNDRV_PORT_DESC);
 
 /*
  * Enhanced port direct registers
@@ -207,7 +200,6 @@
  */
 
 typedef struct _snd_sonicvibes sonicvibes_t;
-#define chip_t sonicvibes_t
 
 struct _snd_sonicvibes {
 	unsigned long dma1size;
@@ -599,7 +591,7 @@
 
 static irqreturn_t snd_sonicvibes_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	sonicvibes_t *sonic = snd_magic_cast(sonicvibes_t, dev_id, return IRQ_NONE);
+	sonicvibes_t *sonic = dev_id;
 	unsigned char status;
 
 	status = inb(SV_REG(sonic, STATUS));
@@ -864,7 +856,7 @@
 
 static void snd_sonicvibes_pcm_free(snd_pcm_t *pcm)
 {
-	sonicvibes_t *sonic = snd_magic_cast(sonicvibes_t, pcm->private_data, return);
+	sonicvibes_t *sonic = pcm->private_data;
 	sonic->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1113,7 +1105,7 @@
 
 static void snd_sonicvibes_master_free(snd_kcontrol_t *kcontrol)
 {
-	sonicvibes_t *sonic = snd_magic_cast(sonicvibes_t, _snd_kcontrol_chip(kcontrol), return);
+	sonicvibes_t *sonic = snd_kcontrol_chip(kcontrol);
 	sonic->master_mute = NULL;
 	sonic->master_volume = NULL;
 }
@@ -1147,7 +1139,7 @@
 static void snd_sonicvibes_proc_read(snd_info_entry_t *entry, 
 				     snd_info_buffer_t * buffer)
 {
-	sonicvibes_t *sonic = snd_magic_cast(sonicvibes_t, entry->private_data, return);
+	sonicvibes_t *sonic = entry->private_data;
 	unsigned char tmp;
 
 	tmp = sonic->srs_space & 0x0f;
@@ -1223,13 +1215,13 @@
 	}
 	if (sonic->irq >= 0)
 		free_irq(sonic->irq, (void *)sonic);
-	snd_magic_kfree(sonic);
+	kfree(sonic);
 	return 0;
 }
 
 static int snd_sonicvibes_dev_free(snd_device_t *device)
 {
-	sonicvibes_t *sonic = snd_magic_cast(sonicvibes_t, device->device_data, return -ENXIO);
+	sonicvibes_t *sonic = device->device_data;
 	return snd_sonicvibes_free(sonic);
 }
 
@@ -1257,7 +1249,7 @@
                 return -ENXIO;
         }
 
-	sonic = snd_magic_kcalloc(sonicvibes_t, 0, GFP_KERNEL);
+	sonic = kcalloc(1, sizeof(*sonic), GFP_KERNEL);
 	if (sonic == NULL)
 		return -ENOMEM;
 	spin_lock_init(&sonic->reg_lock);
@@ -1408,20 +1400,20 @@
 
 static int snd_sonicvibes_midi_input_open(mpu401_t * mpu)
 {
-	sonicvibes_t *sonic = snd_magic_cast(sonicvibes_t, mpu->private_data, return -EIO);
+	sonicvibes_t *sonic = mpu->private_data;
 	outb(sonic->irqmask &= ~SV_MIDI_MASK, SV_REG(sonic, IRQMASK));
 	return 0;
 }
 
 static void snd_sonicvibes_midi_input_close(mpu401_t * mpu)
 {
-	sonicvibes_t *sonic = snd_magic_cast(sonicvibes_t, mpu->private_data, return);
+	sonicvibes_t *sonic = mpu->private_data;
 	outb(sonic->irqmask |= SV_MIDI_MASK, SV_REG(sonic, IRQMASK));
 }
 
 static int __devinit snd_sonicvibes_midi(sonicvibes_t * sonic, snd_rawmidi_t * rmidi)
 {
-	mpu401_t * mpu = snd_magic_cast(mpu401_t, rmidi->private_data, return -ENXIO);
+	mpu401_t * mpu = rmidi->private_data;
 	snd_card_t *card = sonic->card;
 	snd_rawmidi_str_t *dir;
 	unsigned int idx;
diff -Nru a/sound/pci/trident/trident.c b/sound/pci/trident/trident.c
--- a/sound/pci/trident/trident.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/trident/trident.c	2004-07-27 18:28:32 -07:00
@@ -33,8 +33,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>, <audio@tridentmicro.com>");
 MODULE_DESCRIPTION("Trident 4D-WaveDX/NX & SiS SI7018");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Trident,4DWave DX},"
+MODULE_SUPPORTED_DEVICE("{{Trident,4DWave DX},"
 		"{Trident,4DWave NX},"
 		"{SiS,SI7018 PCI Audio},"
 		"{Best Union,Miss Melody 4DWave PCI},"
@@ -56,19 +55,14 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Trident 4DWave PCI soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Trident 4DWave PCI soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Trident 4DWave PCI soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(pcm_channels, int, boot_devs, 0444);
 MODULE_PARM_DESC(pcm_channels, "Number of hardware channels assigned for PCM.");
-MODULE_PARM_SYNTAX(pcm_channels, SNDRV_ENABLED ",default:32,allows:{{1,32}}");
 module_param_array(wavetable_size, int, boot_devs, 0444);
 MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth.");
-MODULE_PARM_SYNTAX(wavetable_size, SNDRV_ENABLED ",default:8192,skill:advanced");
 
 static struct pci_device_id snd_trident_ids[] = {
 	{ 0x1023, 0x2000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },	/* Trident 4DWave DX PCI Audio */
diff -Nru a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
--- a/sound/pci/trident/trident_main.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/trident/trident_main.c	2004-07-27 18:28:33 -07:00
@@ -44,8 +44,6 @@
 
 #include <asm/io.h>
 
-#define chip_t trident_t
-
 static int snd_trident_pcm_mixer_build(trident_t *trident, snd_trident_voice_t * voice, snd_pcm_substream_t *substream);
 static int snd_trident_pcm_mixer_free(trident_t *trident, snd_trident_voice_t * voice, snd_pcm_substream_t *substream);
 static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs);
@@ -119,7 +117,7 @@
 	unsigned int data = 0, treg;
 	unsigned short count = 0xffff;
 	unsigned long flags;
-	trident_t *trident = snd_magic_cast(trident_t, ac97->private_data, return -ENXIO);
+	trident_t *trident = ac97->private_data;
 
 	spin_lock_irqsave(&trident->reg_lock, flags);
 	if (trident->device == TRIDENT_DEVICE_ID_DX) {
@@ -178,7 +176,7 @@
 	unsigned int address, data;
 	unsigned short count = 0xffff;
 	unsigned long flags;
-	trident_t *trident = snd_magic_cast(trident_t, ac97->private_data, return);
+	trident_t *trident = ac97->private_data;
 
 	data = ((unsigned long) wdata) << 16;
 
@@ -1526,7 +1524,7 @@
 	val = inl(TRID_REG(trident, T4D_STIMER)) & 0x00ffffff;
 	snd_pcm_group_for_each(pos, substream) {
 		s = snd_pcm_group_substream_entry(pos);
-		if ((trident_t *) _snd_pcm_chip(s->pcm) == trident) {
+		if ((trident_t *) snd_pcm_substream_chip(s) == trident) {
 			voice = (snd_trident_voice_t *) s->runtime->private_data;
 			evoice = voice->extra;
 			what |= 1 << (voice->number & 0x1f);
@@ -2127,21 +2125,21 @@
   ---------------------------------------------------------------------------*/
 static void snd_trident_pcm_free(snd_pcm_t *pcm)
 {
-	trident_t *trident = snd_magic_cast(trident_t, pcm->private_data, return);
+	trident_t *trident = pcm->private_data;
 	trident->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
 
 static void snd_trident_foldback_pcm_free(snd_pcm_t *pcm)
 {
-	trident_t *trident = snd_magic_cast(trident_t, pcm->private_data, return);
+	trident_t *trident = pcm->private_data;
 	trident->foldback = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
 
 static void snd_trident_spdif_pcm_free(snd_pcm_t *pcm)
 {
-	trident_t *trident = snd_magic_cast(trident_t, pcm->private_data, return);
+	trident_t *trident = pcm->private_data;
 	trident->spdif = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -2968,7 +2966,7 @@
 	snd_ctl_elem_value_t *uctl;
 	int idx, err, retries = 2;
 
-	uctl = (snd_ctl_elem_value_t *)snd_kcalloc(sizeof(*uctl), GFP_KERNEL);
+	uctl = kcalloc(1, sizeof(*uctl), GFP_KERNEL);
 	if (!uctl)
 		return -ENOMEM;
 
@@ -3132,7 +3130,7 @@
 	trident_gameport_t *gp = (trident_gameport_t *)gameport;
 	trident_t *chip;
 	snd_assert(gp, return 0);
-	chip = snd_magic_cast(trident_t, gp->chip, return 0);
+	chip = gp->chip;
 	return inb(TRID_REG(chip, GAMEPORT_LEGACY));
 }
 
@@ -3141,7 +3139,7 @@
 	trident_gameport_t *gp = (trident_gameport_t *)gameport;
 	trident_t *chip;
 	snd_assert(gp, return);
-	chip = snd_magic_cast(trident_t, gp->chip, return);
+	chip = gp->chip;
 	outb(0xff, TRID_REG(chip, GAMEPORT_LEGACY));
 }
 
@@ -3152,7 +3150,7 @@
 	int i;
 
 	snd_assert(gp, return 0);
-	chip = snd_magic_cast(trident_t, gp->chip, return 0);
+	chip = gp->chip;
 
 	*buttons = (~inb(TRID_REG(chip, GAMEPORT_LEGACY)) >> 4) & 0xf;
 
@@ -3169,7 +3167,7 @@
 	trident_gameport_t *gp = (trident_gameport_t *)gameport;
 	trident_t *chip;
 	snd_assert(gp, return -1);
-	chip = snd_magic_cast(trident_t, gp->chip, return -1);
+	chip = gp->chip;
 
 	switch (mode) {
 		case GAMEPORT_MODE_COOKED:
@@ -3280,7 +3278,7 @@
 static void snd_trident_proc_read(snd_info_entry_t *entry, 
 				  snd_info_buffer_t * buffer)
 {
-	trident_t *trident = snd_magic_cast(trident_t, entry->private_data, return);
+	trident_t *trident = entry->private_data;
 	char *s;
 
 	switch (trident->device) {
@@ -3331,7 +3329,7 @@
 
 static int snd_trident_dev_free(snd_device_t *device)
 {
-	trident_t *trident = snd_magic_cast(trident_t, device->device_data, return -ENXIO);
+	trident_t *trident = device->device_data;
 	return snd_trident_free(trident);
 }
 
@@ -3553,7 +3551,7 @@
 		return -ENXIO;
 	}
 	
-	trident = snd_magic_kcalloc(trident_t, 0, GFP_KERNEL);
+	trident = kcalloc(1, sizeof(*trident), GFP_KERNEL);
 	if (trident == NULL)
 		return -ENOMEM;
 	trident->device = (pci->vendor << 16) | pci->device;
@@ -3703,7 +3701,7 @@
 		release_resource(trident->res_port);
 		kfree_nocheck(trident->res_port);
 	}
-	snd_magic_kfree(trident);
+	kfree(trident);
 	return 0;
 }
 
@@ -3727,7 +3725,7 @@
 
 static irqreturn_t snd_trident_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	trident_t *trident = snd_magic_cast(trident_t, dev_id, return IRQ_NONE);
+	trident_t *trident = dev_id;
 	unsigned int audio_int, chn_int, stimer, channel, mask, tmp;
 	int delta;
 	snd_trident_voice_t *voice;
@@ -3950,7 +3948,7 @@
 #ifdef CONFIG_PM
 static int snd_trident_suspend(snd_card_t *card, unsigned int state)
 {
-	trident_t *trident = snd_magic_cast(trident_t, card->pm_private_data, return -EINVAL);
+	trident_t *trident = card->pm_private_data;
 
 	trident->in_suspend = 1;
 	snd_pcm_suspend_all(trident->pcm);
@@ -3976,7 +3974,7 @@
 
 static int snd_trident_resume(snd_card_t *card, unsigned int state)
 {
-	trident_t *trident = snd_magic_cast(trident_t, card->pm_private_data, return -EINVAL);
+	trident_t *trident = card->pm_private_data;
 
 	pci_enable_device(trident->pci);
 	if (pci_set_dma_mask(trident->pci, 0x3fffffff) < 0 ||
diff -Nru a/sound/pci/trident/trident_memory.c b/sound/pci/trident/trident_memory.c
--- a/sound/pci/trident/trident_memory.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/trident/trident_memory.c	2004-07-27 18:28:33 -07:00
@@ -189,7 +189,7 @@
 	snd_util_memblk_t *blk;
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	int idx, page;
-	struct snd_sg_buf *sgbuf = runtime->dma_private;
+	struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream);
 
 	snd_assert(runtime->dma_bytes > 0 && runtime->dma_bytes <= SNDRV_TRIDENT_MAX_PAGES * SNDRV_TRIDENT_PAGE_SIZE, return NULL);
 	hdr = trident->tlb.memhdr;
diff -Nru a/sound/pci/trident/trident_synth.c b/sound/pci/trident/trident_synth.c
--- a/sound/pci/trident/trident_synth.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/trident/trident_synth.c	2004-07-27 18:28:33 -07:00
@@ -506,7 +506,7 @@
 static int snd_trident_simple_put_sample(void *private_data, simple_instrument_t * instr,
 					 char __user *data, long len, int atomic)
 {
-	trident_t *trident = snd_magic_cast(trident_t, private_data, return -ENXIO);
+	trident_t *trident = private_data;
 	int size = instr->size;
 	int shift = 0;
 
@@ -559,7 +559,7 @@
 static int snd_trident_simple_get_sample(void *private_data, simple_instrument_t * instr,
 					 char __user *data, long len, int atomic)
 {
-	//trident_t *trident = snd_magic_cast(trident_t, private_data, return -ENXIO);
+	//trident_t *trident = private_data;
 	int size = instr->size;
 	int shift = 0;
 
@@ -580,7 +580,7 @@
 static int snd_trident_simple_remove_sample(void *private_data, simple_instrument_t * instr,
 					    int atomic)
 {
-	trident_t *trident = snd_magic_cast(trident_t, private_data, return -ENXIO);
+	trident_t *trident = private_data;
 	int size = instr->size;
 
 	if (trident->tlb.entries) {
@@ -838,7 +838,7 @@
 					   int what)
 {
 	int idx;
-	trident_t *trident = snd_magic_cast(trident_t, private_data, return);
+	trident_t *trident = private_data;
 	snd_trident_voice_t *pvoice;
 	unsigned long flags;
 
diff -Nru a/sound/pci/via82xx.c b/sound/pci/via82xx.c
--- a/sound/pci/via82xx.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/via82xx.c	2004-07-27 18:28:33 -07:00
@@ -67,8 +67,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("VIA VT82xx audio");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{VIA,VT82C686A/B/C,pci},{VIA,VT8233A/C,8235}}");
+MODULE_SUPPORTED_DEVICE("{{VIA,VT82C686A/B/C,pci},{VIA,VT8233A/C,8235}}");
 
 #if defined(CONFIG_GAMEPORT) || (defined(MODULE) && defined(CONFIG_GAMEPORT_MODULE))
 #define SUPPORT_JOYSTICK 1
@@ -88,30 +87,22 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for VIA 82xx bridge.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for VIA 82xx bridge.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable audio part of VIA 82xx bridge.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 port. (VT82C686x only)");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_PORT_DESC);
 #ifdef SUPPORT_JOYSTICK
 module_param_array(joystick, bool, boot_devs, 0444);
 MODULE_PARM_DESC(joystick, "Enable joystick. (VT82C686x only)");
-MODULE_PARM_SYNTAX(joystick, SNDRV_ENABLE_DESC "," SNDRV_BOOLEAN_FALSE_DESC);
 #endif
 module_param_array(ac97_clock, int, boot_devs, 0444);
 MODULE_PARM_DESC(ac97_clock, "AC'97 codec clock (default 48000Hz).");
-MODULE_PARM_SYNTAX(ac97_clock, SNDRV_ENABLED ",default:48000");
 module_param_array(ac97_quirk, int, boot_devs, 0444);
 MODULE_PARM_DESC(ac97_quirk, "AC'97 workaround for strange hardware.");
-MODULE_PARM_SYNTAX(ac97_quirk, SNDRV_ENABLED ",allows:{{-1,4}},dialog:list,default:-1");
 module_param_array(dxs_support, int, boot_devs, 0444);
 MODULE_PARM_DESC(dxs_support, "Support for DXS channels (0 = auto, 1 = enable, 2 = disable, 3 = 48k only, 4 = no VRA)");
-MODULE_PARM_SYNTAX(dxs_support, SNDRV_ENABLED ",allows:{{0,4}},dialog:list");
 
 
 /* pci ids */
@@ -318,7 +309,6 @@
 
 typedef struct _snd_via82xx via82xx_t;
 typedef struct via_dev viadev_t;
-#define chip_t via82xx_t
 
 /*
  * pcm stream
@@ -556,7 +546,7 @@
  
 static void snd_via82xx_codec_wait(ac97_t *ac97)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, ac97->private_data, return);
+	via82xx_t *chip = ac97->private_data;
 	int err;
 	err = snd_via82xx_codec_ready(chip, ac97->num);
 	/* here we need to wait fairly for long time.. */
@@ -568,7 +558,7 @@
 				    unsigned short reg,
 				    unsigned short val)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, ac97->private_data, return);
+	via82xx_t *chip = ac97->private_data;
 	unsigned int xval;
 	
 	xval = !ac97->num ? VIA_REG_AC97_CODEC_ID_PRIMARY : VIA_REG_AC97_CODEC_ID_SECONDARY;
@@ -583,7 +573,7 @@
 
 static unsigned short snd_via82xx_codec_read(ac97_t *ac97, unsigned short reg)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, ac97->private_data, return ~0);
+	via82xx_t *chip = ac97->private_data;
 	unsigned int xval, val = 0xffff;
 	int again = 0;
 
@@ -632,7 +622,7 @@
 
 static irqreturn_t snd_via82xx_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, dev_id, return IRQ_NONE);
+	via82xx_t *chip = dev_id;
 	unsigned int status;
 	unsigned int i;
 
@@ -725,7 +715,11 @@
 	unsigned int size, res;
 
 	size = viadev->idx_table[idx].size;
-	res = viadev->idx_table[idx].offset + size - count;
+	/* FIXME: is this always true? */
+	if (count)
+		res = viadev->idx_table[idx].offset + size - count;
+	else
+		res = viadev->idx_table[idx].offset;
 
 	/* check the validity of the calculated position */
 	if (size < count || (res < viadev->lastpos && (res >= viadev->bufsize2 || viadev->lastpos < viadev->bufsize2))) {
@@ -1035,6 +1029,7 @@
 	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID |
+				 SNDRV_PCM_INFO_RESUME |
 				 SNDRV_PCM_INFO_PAUSE),
 	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
 	.rates =		SNDRV_PCM_RATE_48000,
@@ -1060,19 +1055,6 @@
 	int err;
 	unsigned long flags;
 	struct via_rate_lock *ratep;
-	struct ratetbl {
-		int rate;
-		unsigned int bit;
-	} ratebits[] = {
-		{8000, SNDRV_PCM_RATE_8000},
-		{11025, SNDRV_PCM_RATE_11025},
-		{16000, SNDRV_PCM_RATE_16000},
-		{22050, SNDRV_PCM_RATE_22050},
-		{32000, SNDRV_PCM_RATE_32000},
-		{44100, SNDRV_PCM_RATE_44100},
-		{48000, SNDRV_PCM_RATE_48000},
-	};
-	int i;
 
 	runtime->hw = snd_via82xx_hw;
 	
@@ -1080,10 +1062,10 @@
 	ratep = &chip->rates[viadev->direction];
 	spin_lock_irqsave(&ratep->lock, flags);
 	ratep->used++;
-	if (chip->spdif_on) {
-		runtime->hw.rates = SNDRV_PCM_RATE_32000|SNDRV_PCM_RATE_44100|SNDRV_PCM_RATE_48000;
-		runtime->hw.rate_min = 32000;
-		runtime->hw.rate_max = 48000;
+	if (chip->spdif_on && viadev->reg_offset == 0x30) {
+		/* DXS#3 and spdif is on */
+		runtime->hw.rates = chip->ac97->rates[AC97_RATES_SPDIF];
+		snd_pcm_limit_hw_rates(runtime);
 	} else if (chip->dxs_fixed && viadev->reg_offset < 0x40) {
 		/* fixed DXS playback rate */
 		runtime->hw.rates = SNDRV_PCM_RATE_48000;
@@ -1091,27 +1073,10 @@
 	} else if (! ratep->rate) {
 		int idx = viadev->direction ? AC97_RATES_ADC : AC97_RATES_FRONT_DAC;
 		runtime->hw.rates = chip->ac97->rates[idx];
-		for (i = 0; i < (int)ARRAY_SIZE(ratebits); i++) {
-			if (runtime->hw.rates & ratebits[i].bit) {
-				runtime->hw.rate_min = ratebits[i].rate;
-				break;
-			}
-		}
-		for (i = ARRAY_SIZE(ratebits) - 1; i >= 0; i--) {
-			if (runtime->hw.rates & ratebits[i].bit) {
-				runtime->hw.rate_max = ratebits[i].rate;
-				break;
-			}
-		}
+		snd_pcm_limit_hw_rates(runtime);
 	} else {
 		/* a fixed rate */
 		runtime->hw.rates = SNDRV_PCM_RATE_KNOT;
-		for (i = 0; i < (int)ARRAY_SIZE(ratebits); i++) {
-			if (ratep->rate == ratebits[i].rate) {
-				runtime->hw.rates = ratebits[i].bit;
-				break;
-			}
-		}
 		runtime->hw.rate_max = runtime->hw.rate_min = ratep->rate;
 	}
 	spin_unlock_irqrestore(&ratep->lock, flags);
@@ -1363,6 +1328,10 @@
 							 snd_dma_pci_data(chip->pci), 64*1024, 128*1024)) < 0)
 		return err;
 
+	/* SPDIF supported? */
+	if (! ac97_can_spdif(chip->ac97))
+		return 0;
+
 	/* PCM #1:  DXS3 playback (for spdif) */
 	err = snd_pcm_new(chip->card, chip->card->shortname, 1, 1, 0, &pcm);
 	if (err < 0)
@@ -1567,13 +1536,13 @@
 
 static void snd_via82xx_mixer_free_ac97_bus(ac97_bus_t *bus)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, bus->private_data, return);
+	via82xx_t *chip = bus->private_data;
 	chip->ac97_bus = NULL;
 }
 
 static void snd_via82xx_mixer_free_ac97(ac97_t *ac97)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, ac97->private_data, return);
+	via82xx_t *chip = ac97->private_data;
 	chip->ac97 = NULL;
 }
 
@@ -1660,9 +1629,11 @@
 		if (err < 0)
 			return err;
 	}
-	err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_via8233_dxs3_spdif_control, chip));
-	if (err < 0)
-		return err;
+	if (ac97_can_spdif(chip->ac97)) {
+		err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_via8233_dxs3_spdif_control, chip));
+		if (err < 0)
+			return err;
+	}
 	if (chip->chip_type != TYPE_VIA8233A) {
 		err = snd_ctl_add(chip->card, snd_ctl_new1(&snd_via8233_dxs_volume_control, chip));
 		if (err < 0)
@@ -1672,6 +1643,7 @@
 	/* select spdif data slot 10/11 */
 	pci_read_config_byte(chip->pci, VIA8233_SPDIF_CTRL, &val);
 	val = (val & ~VIA8233_SPDIF_SLOT_MASK) | VIA8233_SPDIF_SLOT_1011;
+	val &= ~VIA8233_SPDIF_DX3; /* SPDIF off as default */
 	pci_write_config_byte(chip->pci, VIA8233_SPDIF_CTRL, val);
 
 	return 0;
@@ -1766,7 +1738,7 @@
  */
 static void snd_via82xx_proc_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, entry->private_data, return);
+	via82xx_t *chip = entry->private_data;
 	int i;
 	
 	snd_iprintf(buffer, "%s\n\n", chip->card->longname);
@@ -1903,7 +1875,7 @@
  */
 static int snd_via82xx_suspend(snd_card_t *card, unsigned int state)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, card->pm_private_data, return -EINVAL);
+	via82xx_t *chip = card->pm_private_data;
 	int i;
 
 	for (i = 0; i < 2; i++)
@@ -1930,7 +1902,7 @@
 
 static int snd_via82xx_resume(snd_card_t *card, unsigned int state)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, card->pm_private_data, return -EINVAL);
+	via82xx_t *chip = card->pm_private_data;
 	int idx, i;
 
 	pci_enable_device(chip->pci);
@@ -1997,13 +1969,13 @@
 		pci_write_config_byte(chip->pci, VIA_FUNC_ENABLE, chip->old_legacy);
 		pci_write_config_byte(chip->pci, VIA_PNP_CONTROL, chip->old_legacy_cfg);
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_via82xx_dev_free(snd_device_t *device)
 {
-	via82xx_t *chip = snd_magic_cast(via82xx_t, device->device_data, return -ENXIO);
+	via82xx_t *chip = device->device_data;
 	return snd_via82xx_free(chip);
 }
 
@@ -2023,7 +1995,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	if ((chip = snd_magic_kcalloc(via82xx_t, 0, GFP_KERNEL)) == NULL)
+	if ((chip = kcalloc(1, sizeof(*chip), GFP_KERNEL)) == NULL)
 		return -ENOMEM;
 
 	chip->chip_type = chip_type;
@@ -2114,6 +2086,7 @@
 		{ .vendor = 0x1043, .device = 0x8095, .action = VIA_DXS_NO_VRA }, /* ASUS A7V8X (FIXME: possibly VIA_DXS_ENABLE?)*/
 		{ .vendor = 0x1043, .device = 0x80a1, .action = VIA_DXS_NO_VRA }, /* ASUS A7V8-X */
 		{ .vendor = 0x1043, .device = 0x80b0, .action = VIA_DXS_NO_VRA }, /* ASUS A7V600 & K8V*/ 
+		{ .vendor = 0x1071, .device = 0x8375, .action = VIA_DXS_NO_VRA }, /* Vobis/Yakumo/Mitac notebook */
 		{ .vendor = 0x10cf, .device = 0x118e, .action = VIA_DXS_ENABLE }, /* FSC laptop */
 		{ .vendor = 0x1106, .device = 0x4161, .action = VIA_DXS_NO_VRA }, /* ASRock K7VT2 */
 		{ .vendor = 0x1106, .device = 0xaa01, .action = VIA_DXS_NO_VRA }, /* EPIA MII */
diff -Nru a/sound/pci/vx222/vx222.c b/sound/pci/vx222/vx222.c
--- a/sound/pci/vx222/vx222.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/vx222/vx222.c	2004-07-27 18:28:33 -07:00
@@ -28,15 +28,12 @@
 #include <sound/initval.h>
 #include "vx222.h"
 
-#define chip_t vx_core_t
-
 #define CARD_NAME "VX222"
 
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("Digigram VX222 V2/Mic");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Digigram," CARD_NAME "}}");
+MODULE_SUPPORTED_DEVICE("{{Digigram," CARD_NAME "}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -47,19 +44,14 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Digigram " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Digigram " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Digigram " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(mic, bool, boot_devs, 0444);
 MODULE_PARM_DESC(mic, "Enable Microphone.");
-MODULE_PARM_SYNTAX(mic, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 module_param_array(ibl, int, boot_devs, 0444);
 MODULE_PARM_DESC(ibl, "Capture IBL size.");
-MODULE_PARM_SYNTAX(ibl, SNDRV_ENABLED);
 
 /*
  */
@@ -130,13 +122,13 @@
 			kfree_nocheck(vx->port_res[i]);
 		}
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_vx222_dev_free(snd_device_t *device)
 {
-	vx_core_t *chip = snd_magic_cast(vx_core_t, device->device_data, return -ENXIO);
+	vx_core_t *chip = device->device_data;
 	return snd_vx222_free(chip);
 }
 
diff -Nru a/sound/pci/vx222/vx222_ops.c b/sound/pci/vx222/vx222_ops.c
--- a/sound/pci/vx222/vx222_ops.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pci/vx222/vx222_ops.c	2004-07-27 18:28:32 -07:00
@@ -27,8 +27,6 @@
 #include <asm/io.h>
 #include "vx222.h"
 
-#define chip_t vx_core_t
-
 
 static int vx2_reg_offset[VX_REG_MAX] = {
 	[VX_ICR]    = 0x00,
diff -Nru a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c
--- a/sound/pci/ymfpci/ymfpci.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ymfpci/ymfpci.c	2004-07-27 18:28:33 -07:00
@@ -33,8 +33,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Yamaha DS-XG PCI");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Yamaha,YMF724},"
+MODULE_SUPPORTED_DEVICE("{{Yamaha,YMF724},"
 		"{Yamaha,YMF724F},"
 		"{Yamaha,YMF740},"
 		"{Yamaha,YMF740C},"
@@ -54,27 +53,20 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for the Yamaha DS-XG PCI soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for the Yamaha DS-XG PCI soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Yamaha DS-XG soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(mpu_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(mpu_port, "MPU-401 Port.");
-MODULE_PARM_SYNTAX(mpu_port, SNDRV_ENABLED);
 module_param_array(fm_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(fm_port, "FM OPL-3 Port.");
-MODULE_PARM_SYNTAX(fm_port, SNDRV_ENABLED);
 #ifdef SUPPORT_JOYSTICK
 module_param_array(joystick_port, long, boot_devs, 0444);
 MODULE_PARM_DESC(joystick_port, "Joystick port address");
-MODULE_PARM_SYNTAX(joystick_port, SNDRV_ENABLED);
 #endif
 module_param_array(rear_switch, bool, boot_devs, 0444);
 MODULE_PARM_DESC(rear_switch, "Enable shared rear/line-in switch");
-MODULE_PARM_SYNTAX(rear_switch, SNDRV_ENABLED "," SNDRV_BOOLEAN_FALSE_DESC);
 
 static struct pci_device_id snd_ymfpci_ids[] = {
         { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },   /* YMF724 */
diff -Nru a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
--- a/sound/pci/ymfpci/ymfpci_main.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pci/ymfpci/ymfpci_main.c	2004-07-27 18:28:33 -07:00
@@ -42,8 +42,6 @@
 
 #include <asm/io.h>
 
-#define chip_t ymfpci_t
-
 /*
  *  constants
  */
@@ -102,7 +100,7 @@
 
 static void snd_ymfpci_codec_write(ac97_t *ac97, u16 reg, u16 val)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, ac97->private_data, return);
+	ymfpci_t *chip = ac97->private_data;
 	u32 cmd;
 	
 	snd_ymfpci_codec_ready(chip, 0);
@@ -112,7 +110,7 @@
 
 static u16 snd_ymfpci_codec_read(ac97_t *ac97, u16 reg)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, ac97->private_data, return -ENXIO);
+	ymfpci_t *chip = ac97->private_data;
 
 	if (snd_ymfpci_codec_ready(chip, 0))
 		return ~0;
@@ -330,7 +328,7 @@
 static void snd_ymfpci_pcm_capture_interrupt(snd_pcm_substream_t *substream)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return);
+	ymfpci_pcm_t *ypcm = runtime->private_data;
 	ymfpci_t *chip = ypcm->chip;
 	u32 pos, delta;
 	
@@ -358,7 +356,7 @@
 				       int cmd)
 {
 	ymfpci_t *chip = snd_pcm_substream_chip(substream);
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, substream->runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = substream->runtime->private_data;
 	int result = 0;
 
 	spin_lock(&chip->reg_lock);
@@ -395,7 +393,7 @@
 				      int cmd)
 {
 	ymfpci_t *chip = snd_pcm_substream_chip(substream);
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, substream->runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = substream->runtime->private_data;
 	int result = 0;
 	u32 tmp;
 
@@ -578,7 +576,7 @@
 					 snd_pcm_hw_params_t * hw_params)
 {
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = runtime->private_data;
 	int err;
 
 	if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0)
@@ -596,7 +594,7 @@
 	
 	if (runtime->private_data == NULL)
 		return 0;
-	ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return -ENXIO);
+	ypcm = runtime->private_data;
 
 	/* wait, until the PCI operations are not finished */
 	snd_ymfpci_irq_wait(chip);
@@ -616,7 +614,7 @@
 {
 	// ymfpci_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = runtime->private_data;
 	unsigned int nvoice;
 
 	ypcm->period_size = runtime->period_size;
@@ -654,7 +652,7 @@
 {
 	ymfpci_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = runtime->private_data;
 	snd_ymfpci_capture_bank_t * bank;
 	int nbank;
 	u32 rate, format;
@@ -698,7 +696,7 @@
 {
 	ymfpci_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = runtime->private_data;
 	ymfpci_voice_t *voice = ypcm->voices[0];
 
 	if (!(ypcm->running && voice))
@@ -710,7 +708,7 @@
 {
 	ymfpci_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = runtime->private_data;
 
 	if (!ypcm->running)
 		return 0;
@@ -736,7 +734,7 @@
 
 static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, dev_id, return IRQ_NONE);
+	ymfpci_t *chip = dev_id;
 	u32 status, nvoice, mode;
 	ymfpci_voice_t *voice;
 
@@ -830,10 +828,10 @@
 
 static void snd_ymfpci_pcm_free_substream(snd_pcm_runtime_t *runtime)
 {
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return);
+	ymfpci_pcm_t *ypcm = runtime->private_data;
 	
 	if (ypcm)
-		snd_magic_kfree(ypcm);
+		kfree(ypcm);
 }
 
 static int snd_ymfpci_playback_open_1(snd_pcm_substream_t * substream)
@@ -842,7 +840,7 @@
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	ymfpci_pcm_t *ypcm;
 
-	ypcm = snd_magic_kcalloc(ymfpci_pcm_t, 0, GFP_KERNEL);
+	ypcm = kcalloc(1, sizeof(*ypcm), GFP_KERNEL);
 	if (ypcm == NULL)
 		return -ENOMEM;
 	ypcm->chip = chip;
@@ -891,7 +889,7 @@
 	
 	if ((err = snd_ymfpci_playback_open_1(substream)) < 0)
 		return err;
-	ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return 0);
+	ypcm = runtime->private_data;
 	ypcm->output_front = 1;
 	ypcm->output_rear = chip->mode_dup4ch ? 1 : 0;
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -913,7 +911,7 @@
 	
 	if ((err = snd_ymfpci_playback_open_1(substream)) < 0)
 		return err;
-	ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return 0);
+	ypcm = runtime->private_data;
 	ypcm->output_front = 0;
 	ypcm->output_rear = 1;
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -941,7 +939,7 @@
 	
 	if ((err = snd_ymfpci_playback_open_1(substream)) < 0)
 		return err;
-	ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return 0);
+	ypcm = runtime->private_data;
 	ypcm->output_front = 0;
 	ypcm->output_rear = 1;
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -958,7 +956,7 @@
 	snd_pcm_runtime_t *runtime = substream->runtime;
 	ymfpci_pcm_t *ypcm;
 
-	ypcm = snd_magic_kcalloc(ymfpci_pcm_t, 0, GFP_KERNEL);
+	ypcm = kcalloc(1, sizeof(*ypcm), GFP_KERNEL);
 	if (ypcm == NULL)
 		return -ENOMEM;
 	ypcm->chip = chip;
@@ -993,7 +991,7 @@
 static int snd_ymfpci_playback_close(snd_pcm_substream_t * substream)
 {
 	ymfpci_t *chip = snd_pcm_substream_chip(substream);
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, substream->runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = substream->runtime->private_data;
 	unsigned long flags;
 
 	spin_lock_irqsave(&chip->reg_lock, flags);
@@ -1041,7 +1039,7 @@
 {
 	ymfpci_t *chip = snd_pcm_substream_chip(substream);
 	snd_pcm_runtime_t *runtime = substream->runtime;
-	ymfpci_pcm_t *ypcm = snd_magic_cast(ymfpci_pcm_t, runtime->private_data, return -ENXIO);
+	ymfpci_pcm_t *ypcm = runtime->private_data;
 
 	if (ypcm != NULL) {
 		chip->capture_substream[ypcm->capture_bank_number] = NULL;
@@ -1074,7 +1072,7 @@
 
 static void snd_ymfpci_pcm_free(snd_pcm_t *pcm)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, pcm->private_data, return);
+	ymfpci_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1120,7 +1118,7 @@
 
 static void snd_ymfpci_pcm2_free(snd_pcm_t *pcm)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, pcm->private_data, return);
+	ymfpci_t *chip = pcm->private_data;
 	chip->pcm2 = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1166,7 +1164,7 @@
 
 static void snd_ymfpci_pcm_spdif_free(snd_pcm_t *pcm)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, pcm->private_data, return);
+	ymfpci_t *chip = pcm->private_data;
 	chip->pcm_spdif = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1211,7 +1209,7 @@
 
 static void snd_ymfpci_pcm_4ch_free(snd_pcm_t *pcm)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, pcm->private_data, return);
+	ymfpci_t *chip = pcm->private_data;
 	chip->pcm_4ch = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1709,13 +1707,13 @@
 
 static void snd_ymfpci_mixer_free_ac97_bus(ac97_bus_t *bus)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, bus->private_data, return);
+	ymfpci_t *chip = bus->private_data;
 	chip->ac97_bus = NULL;
 }
 
 static void snd_ymfpci_mixer_free_ac97(ac97_t *ac97)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, ac97->private_data, return);
+	ymfpci_t *chip = ac97->private_data;
 	chip->ac97 = NULL;
 }
 
@@ -1854,7 +1852,7 @@
 static void snd_ymfpci_proc_read(snd_info_entry_t *entry, 
 				 snd_info_buffer_t * buffer)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, entry->private_data, return);
+	ymfpci_t *chip = entry->private_data;
 	int i;
 	
 	snd_iprintf(buffer, "YMFPCI\n\n");
@@ -2117,13 +2115,13 @@
 
 	pci_write_config_word(chip->pci, 0x40, chip->old_legacy_ctrl);
 	
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_ymfpci_dev_free(snd_device_t *device)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, device->device_data, return -ENXIO);
+	ymfpci_t *chip = device->device_data;
 	return snd_ymfpci_free(chip);
 }
 
@@ -2159,7 +2157,7 @@
 
 static int snd_ymfpci_suspend(snd_card_t *card, unsigned int state)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, card->pm_private_data, return -EINVAL);
+	ymfpci_t *chip = card->pm_private_data;
 	unsigned int i;
 	
 	snd_pcm_suspend_all(chip->pcm);
@@ -2178,7 +2176,7 @@
 
 static int snd_ymfpci_resume(snd_card_t *card, unsigned int state)
 {
-	ymfpci_t *chip = snd_magic_cast(ymfpci_t, card->pm_private_data, return -EINVAL);
+	ymfpci_t *chip = card->pm_private_data;
 	unsigned int i;
 
 	pci_enable_device(chip->pci);
@@ -2223,7 +2221,7 @@
 	if ((err = pci_enable_device(pci)) < 0)
 		return err;
 
-	chip = snd_magic_kcalloc(ymfpci_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	chip->old_legacy_ctrl = old_legacy_ctrl;
diff -Nru a/sound/pcmcia/pdaudiocf/pdaudiocf.c b/sound/pcmcia/pdaudiocf/pdaudiocf.c
--- a/sound/pcmcia/pdaudiocf/pdaudiocf.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf.c	2004-07-27 18:28:32 -07:00
@@ -37,8 +37,7 @@
 MODULE_AUTHOR("Jaroslav Kysela <perex@suse.cz>");
 MODULE_DESCRIPTION("Sound Core " CARD_NAME);
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Sound Core," CARD_NAME "}}");
+MODULE_SUPPORTED_DEVICE("{{Sound Core," CARD_NAME "}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -49,13 +48,10 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param(irq_mask, int, 0444);
 MODULE_PARM_DESC(irq_mask, "IRQ bitmask for " CARD_NAME " soundcard.");
 module_param_array(irq_list, int, boot_devs, 0444);
@@ -103,13 +99,13 @@
 	card_list[pdacf->index] = NULL;
 	pdacf->card = NULL;
 
-	snd_magic_kfree(pdacf);
+	kfree(pdacf);
 	return 0;
 }
 
 static int snd_pdacf_dev_free(snd_device_t *device)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, device->device_data, return -ENXIO);
+	pdacf_t *chip = device->device_data;
 	return snd_pdacf_free(chip);
 }
 
@@ -152,7 +148,7 @@
 		return NULL;
 
 	if (snd_device_new(card, SNDRV_DEV_LOWLEVEL, pdacf, &ops) < 0) {
-		snd_magic_kfree(pdacf);
+		kfree(pdacf);
 		snd_card_free(card);
 		return NULL;
 	}
@@ -258,7 +254,7 @@
  */
 static void snd_pdacf_detach(dev_link_t *link)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, link->priv, return);
+	pdacf_t *chip = link->priv;
 
 	snd_printdd(KERN_DEBUG "pdacf_detach called\n");
 	/* Remove the interface data from the linked list */
@@ -297,7 +293,7 @@
 static void pdacf_config(dev_link_t *link)
 {
 	client_handle_t handle = link->handle;
-	pdacf_t *pdacf = snd_magic_cast(pdacf_t, link->priv, return);
+	pdacf_t *pdacf = link->priv;
 	tuple_t tuple;
 	cisparse_t parse;
 	config_info_t conf;
diff -Nru a/sound/pcmcia/pdaudiocf/pdaudiocf_core.c b/sound/pcmcia/pdaudiocf/pdaudiocf_core.c
--- a/sound/pcmcia/pdaudiocf/pdaudiocf_core.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf_core.c	2004-07-27 18:28:32 -07:00
@@ -30,7 +30,7 @@
  */
 unsigned char pdacf_ak4117_read(void *private_data, unsigned char reg)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, private_data, return 0);
+	pdacf_t *chip = private_data;
 	unsigned long timeout;
 	unsigned long flags;
 	unsigned char res;
@@ -62,7 +62,7 @@
 
 void pdacf_ak4117_write(void *private_data, unsigned char reg, unsigned char val)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, private_data, return);
+	pdacf_t *chip = private_data;
 	unsigned long timeout;
 	unsigned long flags;
 
@@ -130,7 +130,7 @@
 static void pdacf_proc_read(snd_info_entry_t * entry,
                             snd_info_buffer_t * buffer)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, entry->private_data, return);
+	pdacf_t *chip = entry->private_data;
 	u16 tmp;
 
 	snd_iprintf(buffer, "PDAudioCF\n\n");
@@ -151,7 +151,7 @@
 {
 	pdacf_t *chip;
 
-	chip = snd_magic_kcalloc(pdacf_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return NULL;
 	chip->card = card;
@@ -257,7 +257,7 @@
 
 int snd_pdacf_suspend(snd_card_t *card, unsigned int state)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, card->pm_private_data, return -EINVAL);
+	pdacf_t *chip = card->pm_private_data;
 	u16 val;
 	
 	snd_pcm_suspend_all(chip->pcm);
@@ -278,7 +278,7 @@
 
 int snd_pdacf_resume(snd_card_t *card, unsigned int state)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, card->pm_private_data, return -EINVAL);
+	pdacf_t *chip = card->pm_private_data;
 	int timeout = 40;
 
 	pdacf_reinit(chip, 1);
diff -Nru a/sound/pcmcia/pdaudiocf/pdaudiocf_irq.c b/sound/pcmcia/pdaudiocf/pdaudiocf_irq.c
--- a/sound/pcmcia/pdaudiocf/pdaudiocf_irq.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf_irq.c	2004-07-27 18:28:33 -07:00
@@ -28,7 +28,7 @@
  */
 irqreturn_t pdacf_interrupt(int irq, void *dev, struct pt_regs *regs)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, dev, return IRQ_NONE);
+	pdacf_t *chip = dev;
 	unsigned short stat;
 
 	if ((chip->chip_status & (PDAUDIOCF_STAT_IS_STALE|
@@ -258,7 +258,7 @@
 
 void pdacf_tasklet(unsigned long private_data)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, (void *)private_data, return);
+	pdacf_t *chip = (pdacf_t *) private_data;
 	int size, off, cont, rdp, wdp;
 
 	if ((chip->chip_status & (PDAUDIOCF_STAT_IS_STALE|PDAUDIOCF_STAT_IS_CONFIGURED)) != PDAUDIOCF_STAT_IS_CONFIGURED)
diff -Nru a/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c b/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c
--- a/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c	2004-07-27 18:28:33 -07:00
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf_pcm.c	2004-07-27 18:28:33 -07:00
@@ -28,8 +28,6 @@
 #include <sound/asoundef.h>
 #include "pdaudiocf.h"
 
-#define chip_t	pdacf_t
-
 
 /*
  * we use a vmalloc'ed (sg-)buffer
@@ -331,7 +329,7 @@
  */
 static void snd_pdacf_pcm_free(snd_pcm_t *pcm)
 {
-	pdacf_t *chip = snd_magic_cast(pdacf_t, pcm->private_data, return);
+	pdacf_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 }
 
diff -Nru a/sound/pcmcia/vx/vx_entry.c b/sound/pcmcia/vx/vx_entry.c
--- a/sound/pcmcia/vx/vx_entry.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pcmcia/vx/vx_entry.c	2004-07-27 18:28:32 -07:00
@@ -69,13 +69,13 @@
 		hw->card_list[vxp->index] = NULL;
 	chip->card = NULL;
 
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_vxpocket_dev_free(snd_device_t *device)
 {
-	vx_core_t *chip = snd_magic_cast(vx_core_t, device->device_data, return -ENXIO);
+	vx_core_t *chip = device->device_data;
 	return snd_vxpocket_free(chip);
 }
 
@@ -121,7 +121,7 @@
 		return NULL;
 
 	if (snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops) < 0) {
-		snd_magic_kfree(chip);
+		kfree(chip);
 		snd_card_free(card);
 		return NULL;
 	}
@@ -226,7 +226,7 @@
  */
 void snd_vxpocket_detach(struct snd_vxp_entry *hw, dev_link_t *link)
 {
-	vx_core_t *chip = snd_magic_cast(vx_core_t, link->priv, return);
+	vx_core_t *chip = link->priv;
 
 	snd_printdd(KERN_DEBUG "vxpocket_detach called\n");
 	/* Remove the interface data from the linked list */
@@ -263,7 +263,7 @@
 static void vxpocket_config(dev_link_t *link)
 {
 	client_handle_t handle = link->handle;
-	vx_core_t *chip = snd_magic_cast(vx_core_t, link->priv, return);
+	vx_core_t *chip = link->priv;
 	struct snd_vxpocket *vxp = (struct snd_vxpocket *)chip;
 	tuple_t tuple;
 	cisparse_t parse;
diff -Nru a/sound/pcmcia/vx/vxp_mixer.c b/sound/pcmcia/vx/vxp_mixer.c
--- a/sound/pcmcia/vx/vxp_mixer.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pcmcia/vx/vxp_mixer.c	2004-07-27 18:28:32 -07:00
@@ -25,8 +25,6 @@
 #include <sound/control.h>
 #include "vxpocket.h"
 
-#define chip_t vx_core_t
-
 #define MIC_LEVEL_MIN	0
 #define MIC_LEVEL_MAX	8
 
diff -Nru a/sound/pcmcia/vx/vxp_ops.c b/sound/pcmcia/vx/vxp_ops.c
--- a/sound/pcmcia/vx/vxp_ops.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pcmcia/vx/vxp_ops.c	2004-07-27 18:28:32 -07:00
@@ -26,8 +26,6 @@
 #include <asm/io.h>
 #include "vxpocket.h"
 
-#define chip_t vx_core_t
-
 
 static int vxp_reg_offset[VX_REG_MAX] = {
 	[VX_ICR]	= 0x00,		// ICR
diff -Nru a/sound/pcmcia/vx/vxpocket.c b/sound/pcmcia/vx/vxpocket.c
--- a/sound/pcmcia/vx/vxpocket.c	2004-07-27 18:28:32 -07:00
+++ b/sound/pcmcia/vx/vxpocket.c	2004-07-27 18:28:32 -07:00
@@ -50,8 +50,7 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("Digigram " CARD_NAME);
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Digigram," CARD_NAME "}}");
+MODULE_SUPPORTED_DEVICE("{{Digigram," CARD_NAME "}}");
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
 static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;	/* ID for this card */
@@ -63,20 +62,16 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param(irq_mask, int, 0444);
 MODULE_PARM_DESC(irq_mask, "IRQ bitmask for " CARD_NAME " soundcard.");
 module_param_array(irq_list, int, boot_devs, 0444);
 MODULE_PARM_DESC(irq_list, "List of Available interrupts for " CARD_NAME " soundcard.");
 module_param_array(ibl, int, boot_devs, 0444);
 MODULE_PARM_DESC(ibl, "Capture IBL size for " CARD_NAME " soundcard.");
-MODULE_PARM_SYNTAX(ibl, SNDRV_ENABLED);
  
 
 /*
diff -Nru a/sound/ppc/awacs.c b/sound/ppc/awacs.c
--- a/sound/ppc/awacs.c	2004-07-27 18:28:33 -07:00
+++ b/sound/ppc/awacs.c	2004-07-27 18:28:33 -07:00
@@ -29,8 +29,6 @@
 #include <sound/core.h>
 #include "pmac.h"
 
-#define chip_t pmac_t
-
 
 #ifdef CONFIG_ADB_CUDA
 #define PMAC_AMP_AVAIL
diff -Nru a/sound/ppc/burgundy.c b/sound/ppc/burgundy.c
--- a/sound/ppc/burgundy.c	2004-07-27 18:28:32 -07:00
+++ b/sound/ppc/burgundy.c	2004-07-27 18:28:32 -07:00
@@ -28,8 +28,6 @@
 #include "pmac.h"
 #include "burgundy.h"
 
-#define chip_t pmac_t
-
 
 /* Waits for busy flag to clear */
 inline static void
diff -Nru a/sound/ppc/daca.c b/sound/ppc/daca.c
--- a/sound/ppc/daca.c	2004-07-27 18:28:32 -07:00
+++ b/sound/ppc/daca.c	2004-07-27 18:28:32 -07:00
@@ -28,8 +28,6 @@
 #include <sound/core.h>
 #include "pmac.h"
 
-#define chip_t pmac_t
-
 /* i2c address */
 #define DACA_I2C_ADDR	0x4d
 
diff -Nru a/sound/ppc/pmac.c b/sound/ppc/pmac.c
--- a/sound/ppc/pmac.c	2004-07-27 18:28:33 -07:00
+++ b/sound/ppc/pmac.c	2004-07-27 18:28:33 -07:00
@@ -36,8 +36,6 @@
 #include <asm/feature.h>
 #endif
 
-#define chip_t pmac_t
-
 
 #if defined(CONFIG_PM) && defined(CONFIG_PMAC_PBOOK)
 static int snd_pmac_register_sleep_notifier(pmac_t *chip);
@@ -688,7 +686,7 @@
 static irqreturn_t
 snd_pmac_tx_intr(int irq, void *devid, struct pt_regs *regs)
 {
-	pmac_t *chip = snd_magic_cast(pmac_t, devid, return IRQ_NONE);
+	pmac_t *chip = devid;
 	snd_pmac_pcm_update(chip, &chip->playback);
 	return IRQ_HANDLED;
 }
@@ -697,7 +695,7 @@
 static irqreturn_t
 snd_pmac_rx_intr(int irq, void *devid, struct pt_regs *regs)
 {
-	pmac_t *chip = snd_magic_cast(pmac_t, devid, return IRQ_NONE);
+	pmac_t *chip = devid;
 	snd_pmac_pcm_update(chip, &chip->capture);
 	return IRQ_HANDLED;
 }
@@ -706,7 +704,7 @@
 static irqreturn_t
 snd_pmac_ctrl_intr(int irq, void *devid, struct pt_regs *regs)
 {
-	pmac_t *chip = snd_magic_cast(pmac_t, devid, return IRQ_NONE);
+	pmac_t *chip = devid;
 	int ctrl = in_le32(&chip->awacs->control);
 
 	/*printk("pmac: control interrupt.. 0x%x\n", ctrl);*/
@@ -802,7 +800,7 @@
 				release_OF_resource(chip->node, i);
 		}
 	}
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
@@ -812,7 +810,7 @@
  */
 static int snd_pmac_dev_free(snd_device_t *device)
 {
-	pmac_t *chip = snd_magic_cast(pmac_t, device->device_data, return -ENXIO);
+	pmac_t *chip = device->device_data;
 	return snd_pmac_free(chip);
 }
 
@@ -1069,7 +1067,7 @@
 	snd_runtime_check(chip_return, return -EINVAL);
 	*chip_return = NULL;
 
-	chip = snd_magic_kcalloc(pmac_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 	chip->card = card;
@@ -1206,7 +1204,7 @@
 
 static int snd_pmac_suspend(snd_card_t *card, unsigned int state)
 {
-	pmac_t *chip = snd_magic_cast(pmac_t, card->pm_private_data, return -EINVAL);
+	pmac_t *chip = card->pm_private_data;
 	unsigned long flags;
 
 	if (chip->suspend)
@@ -1228,7 +1226,7 @@
 
 static int snd_pmac_resume(snd_card_t *card, unsigned int state)
 {
-	pmac_t *chip = snd_magic_cast(pmac_t, card->pm_private_data, return -EINVAL);
+	pmac_t *chip = card->pm_private_data;
 
 	snd_pmac_sound_feature(chip, 1);
 	if (chip->resume)
diff -Nru a/sound/ppc/powermac.c b/sound/ppc/powermac.c
--- a/sound/ppc/powermac.c	2004-07-27 18:28:33 -07:00
+++ b/sound/ppc/powermac.c	2004-07-27 18:28:33 -07:00
@@ -30,8 +30,7 @@
 #define CHIP_NAME "PMac"
 
 MODULE_DESCRIPTION("PowerMac");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Apple,PowerMac}}");
+MODULE_SUPPORTED_DEVICE("{{Apple,PowerMac}}");
 MODULE_LICENSE("GPL");
 
 static int index = SNDRV_DEFAULT_IDX1;		/* Index 0-MAX */
@@ -43,17 +42,13 @@
 
 module_param(index, int, 0444);
 MODULE_PARM_DESC(index, "Index value for " CHIP_NAME " soundchip.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param(id, charp, 0444);
 MODULE_PARM_DESC(id, "ID string for " CHIP_NAME " soundchip.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 /* module_param(enable, bool, 0444);
    MODULE_PARM_DESC(enable, "Enable this soundchip.");
-   MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC); */
 #ifdef PMAC_SUPPORT_PCM_BEEP
 module_param(enable_beep, bool, 0444);
 MODULE_PARM_DESC(enable_beep, "Enable beep using PCM.");
-MODULE_PARM_SYNTAX(enable_beep, SNDRV_ENABLED "," SNDRV_BOOLEAN_TRUE_DESC);
 #endif
 
 
diff -Nru a/sound/ppc/tumbler.c b/sound/ppc/tumbler.c
--- a/sound/ppc/tumbler.c	2004-07-27 18:28:32 -07:00
+++ b/sound/ppc/tumbler.c	2004-07-27 18:28:32 -07:00
@@ -36,8 +36,6 @@
 #include "pmac.h"
 #include "tumbler_volume.h"
 
-#define chip_t pmac_t
-
 /* i2c address for tumbler */
 #define TAS_I2C_ADDR	0x34
 
@@ -872,7 +870,7 @@
 /* interrupt - headphone plug changed */
 static irqreturn_t headphone_intr(int irq, void *devid, struct pt_regs *regs)
 {
-	pmac_t *chip = snd_magic_cast(pmac_t, devid, return IRQ_NONE);
+	pmac_t *chip = devid;
 	if (chip->update_automute && chip->initialized) {
 		chip->update_automute(chip, 1);
 		return IRQ_HANDLED;
diff -Nru a/sound/sparc/amd7930.c b/sound/sparc/amd7930.c
--- a/sound/sparc/amd7930.c	2004-07-27 18:28:32 -07:00
+++ b/sound/sparc/amd7930.c	2004-07-27 18:28:32 -07:00
@@ -54,18 +54,14 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Sun AMD7930 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Sun AMD7930 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Sun AMD7930 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 MODULE_AUTHOR("Thomas K. Dyas and David S. Miller");
 MODULE_DESCRIPTION("Sun AMD7930");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Sun,AMD7930}}");
+MODULE_SUPPORTED_DEVICE("{{Sun,AMD7930}}");
 
 /* Device register layout.  */
 
@@ -345,7 +341,6 @@
 	unsigned int		regs_size;
 	struct snd_amd7930	*next;
 } amd7930_t;
-#define chip_t amd7930_t
 
 static amd7930_t *amd7930_list;
 
@@ -764,7 +759,7 @@
 
 static void snd_amd7930_pcm_free(snd_pcm_t *pcm)
 {
-	amd7930_t *amd = snd_magic_cast(amd7930_t, pcm->private_data, return);
+	amd7930_t *amd = pcm->private_data;
 
 	amd->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
@@ -947,14 +942,14 @@
 	if (amd->regs)
 		sbus_iounmap(amd->regs, amd->regs_size);
 
-	snd_magic_kfree(amd);
+	kfree(amd);
 
 	return 0;
 }
 
 static int snd_amd7930_dev_free(snd_device_t *device)
 {
-	amd7930_t *amd = snd_magic_cast(amd7930_t, device->device_data, return -ENXIO);
+	amd7930_t *amd = device->device_data;
 
 	return snd_amd7930_free(amd);
 }
@@ -976,7 +971,7 @@
 	int err;
 
 	*ramd = NULL;
-	amd = snd_magic_kcalloc(amd7930_t, 0, GFP_KERNEL);
+	amd = kcalloc(1, sizeof(*amd), 0, GFP_KERNEL);
 	if (amd == NULL)
 		return -ENOMEM;
 
diff -Nru a/sound/sparc/cs4231.c b/sound/sparc/cs4231.c
--- a/sound/sparc/cs4231.c	2004-07-27 18:28:32 -07:00
+++ b/sound/sparc/cs4231.c	2004-07-27 18:28:32 -07:00
@@ -53,18 +53,14 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for Sun CS4231 soundcard.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for Sun CS4231 soundcard.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable Sun CS4231 soundcard.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 MODULE_AUTHOR("Jaroslav Kysela, Derrick J. Brashear and David S. Miller");
 MODULE_DESCRIPTION("Sun CS4231");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Sun,CS4231}}");
+MODULE_SUPPORTED_DEVICE("{{Sun,CS4231}}");
 
 typedef struct snd_cs4231 {
 	spinlock_t		lock;
@@ -112,7 +108,6 @@
 	unsigned int		regs_size;
 	struct snd_cs4231	*next;
 } cs4231_t;
-#define chip_t cs4231_t
 
 static cs4231_t *cs4231_list;
 
@@ -1232,7 +1227,7 @@
 #ifdef SBUS_SUPPORT
 static irqreturn_t snd_cs4231_sbus_interrupt(int irq, void *dev_id, struct pt_regs *regs)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, dev_id, return);
+	cs4231_t *chip = dev_id;
 	u32 csr;
 
 	csr = sbus_readl(chip->port + APCCSR);
@@ -1256,7 +1251,7 @@
 #ifdef EBUS_SUPPORT
 static void snd_cs4231_ebus_play_callback(struct ebus_dma_info *p, int event, void *cookie)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, cookie, return);
+	cs4231_t *chip = cookie;
 
 	if (chip->image[CS4231_IFACE_CTRL] & CS4231_PLAYBACK_ENABLE) {
 		snd_pcm_period_elapsed(chip->playback_substream);
@@ -1267,7 +1262,7 @@
 
 static void snd_cs4231_ebus_capture_callback(struct ebus_dma_info *p, int event, void *cookie)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, cookie, return);
+	cs4231_t *chip = cookie;
 
 	if (chip->image[CS4231_IFACE_CTRL] & CS4231_RECORD_ENABLE) {
 		snd_pcm_period_elapsed(chip->capture_substream);
@@ -1547,7 +1542,7 @@
 
 static void snd_cs4231_pcm_free(snd_pcm_t *pcm)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, pcm->private_data, return);
+	cs4231_t *chip = pcm->private_data;
 	chip->pcm = NULL;
 	snd_pcm_lib_preallocate_free_for_all(pcm);
 }
@@ -1592,7 +1587,7 @@
 
 static void snd_cs4231_timer_free(snd_timer_t *timer)
 {
-	cs4231_t *chip = snd_magic_cast(cs4231_t, timer->private_data, return);
+	cs4231_t *chip = timer->private_data;
 	chip->timer = NULL;
 }
 
@@ -1950,14 +1945,14 @@
 	if (chip->timer)
 		snd_device_free(chip->card, chip->timer);
 
-	snd_magic_kfree(chip);
+	kfree(chip);
 
 	return 0;
 }
 
 static int snd_cs4231_sbus_dev_free(snd_device_t *device)
 {
-	cs4231_t *cp = snd_magic_cast(cs4231_t, device->device_data, return -ENXIO);
+	cs4231_t *cp = device->device_data;
 
 	return snd_cs4231_sbus_free(cp);
 }
@@ -1975,7 +1970,7 @@
 	int err;
 
 	*rchip = NULL;
-	chip = snd_magic_kcalloc(cs4231_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 
@@ -2064,14 +2059,14 @@
 	if (chip->timer)
 		snd_device_free(chip->card, chip->timer);
 
-	snd_magic_kfree(chip);
+	kfree(chip);
 
 	return 0;
 }
 
 static int snd_cs4231_ebus_dev_free(snd_device_t *device)
 {
-	cs4231_t *cp = snd_magic_cast(cs4231_t, device->device_data, return -ENXIO);
+	cs4231_t *cp = device->device_data;
 
 	return snd_cs4231_ebus_free(cp);
 }
@@ -2089,7 +2084,7 @@
 	int err;
 
 	*rchip = NULL;
-	chip = snd_magic_kcalloc(cs4231_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (chip == NULL)
 		return -ENOMEM;
 
diff -Nru a/sound/synth/emux/emux.c b/sound/synth/emux/emux.c
--- a/sound/synth/emux/emux.c	2004-07-27 18:28:33 -07:00
+++ b/sound/synth/emux/emux.c	2004-07-27 18:28:33 -07:00
@@ -39,7 +39,7 @@
 	snd_emux_t *emu;
 
 	*remu = NULL;
-	emu = snd_magic_kcalloc(snd_emux_t, 0, GFP_KERNEL);
+	emu = kcalloc(1, sizeof(*emu), GFP_KERNEL);
 	if (emu == NULL)
 		return -ENOMEM;
 
@@ -77,7 +77,7 @@
 
 	emu->card = card;
 	emu->name = snd_kmalloc_strdup(name, GFP_KERNEL);
-	emu->voices = snd_kcalloc(sizeof(snd_emux_voice_t) * emu->max_voices, GFP_KERNEL);
+	emu->voices = kcalloc(emu->max_voices, sizeof(snd_emux_voice_t), GFP_KERNEL);
 	if (emu->voices == NULL)
 		return -ENOMEM;
 
@@ -143,7 +143,7 @@
 	if (emu->name)
 		kfree(emu->name);
 
-	snd_magic_kfree(emu);
+	kfree(emu);
 	return 0;
 }
 
diff -Nru a/sound/synth/emux/emux_effect.c b/sound/synth/emux/emux_effect.c
--- a/sound/synth/emux/emux_effect.c	2004-07-27 18:28:33 -07:00
+++ b/sound/synth/emux/emux_effect.c	2004-07-27 18:28:33 -07:00
@@ -278,7 +278,7 @@
 snd_emux_create_effect(snd_emux_port_t *p)
 {
 	int i;
-	p->effect = snd_kcalloc(sizeof(snd_emux_effect_table_t) * p->chset.max_channels, GFP_KERNEL);
+	p->effect = kcalloc(p->chset.max_channels, sizeof(snd_emux_effect_table_t), GFP_KERNEL);
 	if (p->effect) {
 		for (i = 0; i < p->chset.max_channels; i++)
 			p->chset.channels[i].private = p->effect + i;
diff -Nru a/sound/synth/emux/emux_hwdep.c b/sound/synth/emux/emux_hwdep.c
--- a/sound/synth/emux/emux_hwdep.c	2004-07-27 18:28:33 -07:00
+++ b/sound/synth/emux/emux_hwdep.c	2004-07-27 18:28:33 -07:00
@@ -104,7 +104,7 @@
 static int
 snd_emux_hwdep_ioctl(snd_hwdep_t * hw, struct file *file, unsigned int cmd, unsigned long arg)
 {
-	snd_emux_t *emu = snd_magic_cast(snd_emux_t, hw->private_data, return -ENXIO);
+	snd_emux_t *emu = hw->private_data;
 
 	switch (cmd) {
 	case SNDRV_EMUX_IOCTL_VERSION:
diff -Nru a/sound/synth/emux/emux_nrpn.c b/sound/synth/emux/emux_nrpn.c
--- a/sound/synth/emux/emux_nrpn.c	2004-07-27 18:28:32 -07:00
+++ b/sound/synth/emux/emux_nrpn.c	2004-07-27 18:28:32 -07:00
@@ -292,7 +292,7 @@
 {
 	snd_emux_port_t *port;
 
-	port = snd_magic_cast(snd_emux_port_t, p, return);
+	port = p;
 	snd_assert(port != NULL, return);
 	snd_assert(chan != NULL, return);
 
@@ -382,7 +382,7 @@
 	snd_emux_port_t *port;
 	snd_emux_t *emu;
 
-	port = snd_magic_cast(snd_emux_port_t, p, return);
+	port = p;
 	snd_assert(port != NULL, return);
 	snd_assert(chset != NULL, return);
 	emu = port->emu;
diff -Nru a/sound/synth/emux/emux_oss.c b/sound/synth/emux/emux_oss.c
--- a/sound/synth/emux/emux_oss.c	2004-07-27 18:28:33 -07:00
+++ b/sound/synth/emux/emux_oss.c	2004-07-27 18:28:33 -07:00
@@ -108,7 +108,7 @@
 	snd_seq_port_callback_t callback;
 	char tmpname[64];
 
-	emu = snd_magic_cast(snd_emux_t, closure, return -EINVAL);
+	emu = closure;
 	snd_assert(arg != NULL && emu != NULL, return -ENXIO);
 
 	down(&emu->register_mutex);
@@ -179,7 +179,7 @@
 	snd_emux_port_t *p;
 
 	snd_assert(arg != NULL, return -ENXIO);
-	p = snd_magic_cast(snd_emux_port_t, arg->private_data, return -EINVAL);
+	p = arg->private_data;
 	snd_assert(p != NULL, return -ENXIO);
 
 	emu = p->emu;
@@ -208,7 +208,7 @@
 	int rc;
 
 	snd_assert(arg != NULL, return -ENXIO);
-	p = snd_magic_cast(snd_emux_port_t, arg->private_data, return -EINVAL);
+	p = arg->private_data;
 	snd_assert(p != NULL, return -ENXIO);
 
 	emu = p->emu;
@@ -248,7 +248,7 @@
 	snd_emux_t *emu;
 
 	snd_assert(arg != NULL, return -ENXIO);
-	p = snd_magic_cast(snd_emux_port_t, arg->private_data, return -EINVAL);
+	p = arg->private_data;
 	snd_assert(p != NULL, return -ENXIO);
 
 	emu = p->emu;
@@ -278,7 +278,7 @@
 	snd_emux_port_t *p;
 
 	snd_assert(arg != NULL, return -ENXIO);
-	p = snd_magic_cast(snd_emux_port_t, arg->private_data, return -EINVAL);
+	p = arg->private_data;
 	snd_assert(p != NULL, return -ENXIO);
 	snd_emux_reset_port(p);
 	return 0;
@@ -296,7 +296,7 @@
 	snd_emux_port_t *p;
 	unsigned char cmd, *data;
 
-	p = snd_magic_cast(snd_emux_port_t, private_data, return -EINVAL);
+	p = private_data;
 	snd_assert(p != NULL, return -EINVAL);
 	emu = p->emu;
 	snd_assert(emu != NULL, return -EINVAL);
diff -Nru a/sound/synth/emux/emux_proc.c b/sound/synth/emux/emux_proc.c
--- a/sound/synth/emux/emux_proc.c	2004-07-27 18:28:33 -07:00
+++ b/sound/synth/emux/emux_proc.c	2004-07-27 18:28:33 -07:00
@@ -36,7 +36,7 @@
 	snd_emux_t *emu;
 	int i;
 
-	emu = snd_magic_cast(snd_emux_t, entry->private_data, return);
+	emu = entry->private_data;
 	down(&emu->register_mutex);
 	if (emu->name)
 		snd_iprintf(buf, "Device: %s\n", emu->name);
diff -Nru a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
--- a/sound/synth/emux/emux_seq.c	2004-07-27 18:28:33 -07:00
+++ b/sound/synth/emux/emux_seq.c	2004-07-27 18:28:33 -07:00
@@ -146,14 +146,14 @@
 	int i, type, cap;
 
 	/* Allocate structures for this channel */
-	if ((p = snd_magic_kcalloc(snd_emux_port_t, 0, GFP_KERNEL)) == NULL) {
+	if ((p = kcalloc(1, sizeof(*p), GFP_KERNEL)) == NULL) {
 		snd_printk("no memory\n");
 		return NULL;
 	}
-	p->chset.channels = snd_kcalloc(max_channels * sizeof(snd_midi_channel_t), GFP_KERNEL);
+	p->chset.channels = kcalloc(max_channels, sizeof(snd_midi_channel_t), GFP_KERNEL);
 	if (p->chset.channels == NULL) {
 		snd_printk("no memory\n");
-		snd_magic_kfree(p);
+		kfree(p);
 		return NULL;
 	}
 	for (i = 0; i < max_channels; i++)
@@ -192,14 +192,14 @@
 {
 	snd_emux_port_t *p;
 
-	p = snd_magic_cast(snd_emux_port_t, private_data, return);
+	p = private_data;
 	if (p) {
 #ifdef SNDRV_EMUX_USE_RAW_EFFECT
 		snd_emux_delete_effect(p);
 #endif
 		if (p->chset.channels)
 			kfree(p->chset.channels);
-		snd_magic_kfree(p);
+		kfree(p);
 	}
 }
 
@@ -257,7 +257,7 @@
 {
 	snd_emux_port_t *port;
 
-	port = snd_magic_cast(snd_emux_port_t, private_data, return -EINVAL);
+	port = private_data;
 	snd_assert(port != NULL && ev != NULL, return -EINVAL);
 
 	snd_midi_process_event(&emux_ops, ev, &port->chset);
@@ -308,7 +308,7 @@
 	snd_emux_port_t *p;
 	snd_emux_t *emu;
 
-	p = snd_magic_cast(snd_emux_port_t, private_data, return -EINVAL);
+	p = private_data;
 	snd_assert(p != NULL, return -EINVAL);
 	emu = p->emu;
 	snd_assert(emu != NULL, return -EINVAL);
@@ -329,7 +329,7 @@
 	snd_emux_port_t *p;
 	snd_emux_t *emu;
 
-	p = snd_magic_cast(snd_emux_port_t, private_data, return -EINVAL);
+	p = private_data;
 	snd_assert(p != NULL, return -EINVAL);
 	emu = p->emu;
 	snd_assert(emu != NULL, return -EINVAL);
@@ -383,7 +383,7 @@
 	if (emu->midi_ports <= 0)
 		return 0;
 
-	emu->vmidi = snd_kcalloc(sizeof(snd_rawmidi_t*) * emu->midi_ports, GFP_KERNEL);
+	emu->vmidi = kcalloc(emu->midi_ports, sizeof(snd_rawmidi_t*), GFP_KERNEL);
 	if (emu->vmidi == NULL)
 		return -ENOMEM;
 
@@ -392,7 +392,7 @@
 		snd_virmidi_dev_t *rdev;
 		if (snd_virmidi_new(card, emu->midi_devidx + i, &rmidi) < 0)
 			goto __error;
-		rdev = snd_magic_cast(snd_virmidi_dev_t, rmidi->private_data, continue);
+		rdev = rmidi->private_data;
 		sprintf(rmidi->name, "%s Synth MIDI", emu->name);
 		rdev->seq_mode = SNDRV_VIRMIDI_SEQ_ATTACH;
 		rdev->client = emu->client;
diff -Nru a/sound/synth/emux/emux_synth.c b/sound/synth/emux/emux_synth.c
--- a/sound/synth/emux/emux_synth.c	2004-07-27 18:28:33 -07:00
+++ b/sound/synth/emux/emux_synth.c	2004-07-27 18:28:33 -07:00
@@ -61,7 +61,7 @@
 	unsigned long flags;
 	snd_emux_port_t *port;
 
-	port = snd_magic_cast(snd_emux_port_t, p, return);
+	port = p;
 	snd_assert(port != NULL && chan != NULL, return);
 
 	emu = port->emu;
@@ -160,7 +160,7 @@
 	unsigned long flags;
 	snd_emux_port_t *port;
 
-	port = snd_magic_cast(snd_emux_port_t, p, return);
+	port = p;
 	snd_assert(port != NULL && chan != NULL, return);
 
 	emu = port->emu;
@@ -201,7 +201,7 @@
  */
 void snd_emux_timer_callback(unsigned long data)
 {
-	snd_emux_t *emu = snd_magic_cast(snd_emux_t, (void*)data, return);
+	snd_emux_t *emu = (snd_emux_t*) data;
 	snd_emux_voice_t *vp;
 	int ch, do_again = 0;
 
@@ -238,7 +238,7 @@
 	unsigned long flags;
 	snd_emux_port_t *port;
 
-	port = snd_magic_cast(snd_emux_port_t, p, return);
+	port = p;
 	snd_assert(port != NULL && chan != NULL, return);
 
 	emu = port->emu;
@@ -322,7 +322,7 @@
 {
 	snd_emux_port_t *port;
 
-	port = snd_magic_cast(snd_emux_port_t, p, return);
+	port = p;
 	snd_assert(port != NULL && chan != NULL, return);
 
 	switch (type) {
@@ -402,7 +402,7 @@
 	snd_emux_t *emu;
 	snd_emux_port_t *port;
 
-	port = snd_magic_cast(snd_emux_port_t, p, return);
+	port = p;
 	snd_assert(port != NULL && chan != NULL, return);
 
 	emu = port->emu;
diff -Nru a/sound/synth/emux/soundfont.c b/sound/synth/emux/soundfont.c
--- a/sound/synth/emux/soundfont.c	2004-07-27 18:28:33 -07:00
+++ b/sound/synth/emux/soundfont.c	2004-07-27 18:28:33 -07:00
@@ -261,7 +261,7 @@
 	}
 
 	/* not found -- create a new one */
-	sf = (snd_soundfont_t*)snd_kcalloc(sizeof(*sf), GFP_KERNEL);
+	sf = kcalloc(1, sizeof(*sf), GFP_KERNEL);
 	if (sf == NULL)
 		return NULL;
 	sf->id = sflist->fonts_size;
@@ -337,7 +337,7 @@
 {
 	snd_sf_zone_t *zp;
 
-	if ((zp = snd_kcalloc(sizeof(*zp), GFP_KERNEL)) == NULL)
+	if ((zp = kcalloc(1, sizeof(*zp), GFP_KERNEL)) == NULL)
 		return NULL;
 	zp->next = sf->zones;
 	sf->zones = zp;
@@ -368,7 +368,7 @@
 {
 	snd_sf_sample_t *sp;
 
-	if ((sp = snd_kcalloc(sizeof(*sp), GFP_KERNEL)) == NULL)
+	if ((sp = kcalloc(1, sizeof(*sp), GFP_KERNEL)) == NULL)
 		return NULL;
 
 	sp->next = sf->samples;
@@ -1347,7 +1347,7 @@
 {
 	snd_sf_list_t *sflist;
 
-	if ((sflist = snd_kcalloc(sizeof(snd_sf_list_t), GFP_KERNEL)) == NULL)
+	if ((sflist = kcalloc(1, sizeof(*sflist), GFP_KERNEL)) == NULL)
 		return NULL;
 
 	init_MUTEX(&sflist->presets_mutex);
diff -Nru a/sound/synth/util_mem.c b/sound/synth/util_mem.c
--- a/sound/synth/util_mem.c	2004-07-27 18:28:32 -07:00
+++ b/sound/synth/util_mem.c	2004-07-27 18:28:32 -07:00
@@ -38,7 +38,7 @@
 {
 	snd_util_memhdr_t *hdr;
 
-	hdr = snd_kcalloc(sizeof(*hdr), GFP_KERNEL);
+	hdr = kcalloc(1, sizeof(*hdr), GFP_KERNEL);
 	if (hdr == NULL)
 		return NULL;
 	hdr->size = memsize;
diff -Nru a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
--- a/sound/usb/usbaudio.c	2004-07-27 18:28:33 -07:00
+++ b/sound/usb/usbaudio.c	2004-07-27 18:28:33 -07:00
@@ -58,8 +58,7 @@
 MODULE_AUTHOR("Takashi Iwai <tiwai@suse.de>");
 MODULE_DESCRIPTION("USB Audio");
 MODULE_LICENSE("GPL");
-MODULE_CLASSES("{sound}");
-MODULE_DEVICES("{{Generic,USB Audio}}");
+MODULE_SUPPORTED_DEVICE("{{Generic,USB Audio}}");
 
 
 static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;	/* Index 0-MAX */
@@ -73,25 +72,18 @@
 
 module_param_array(index, int, boot_devs, 0444);
 MODULE_PARM_DESC(index, "Index value for the USB audio adapter.");
-MODULE_PARM_SYNTAX(index, SNDRV_INDEX_DESC);
 module_param_array(id, charp, boot_devs, 0444);
 MODULE_PARM_DESC(id, "ID string for the USB audio adapter.");
-MODULE_PARM_SYNTAX(id, SNDRV_ID_DESC);
 module_param_array(enable, bool, boot_devs, 0444);
 MODULE_PARM_DESC(enable, "Enable USB audio adapter.");
-MODULE_PARM_SYNTAX(enable, SNDRV_ENABLE_DESC);
 module_param_array(vid, int, boot_devs, 0444);
 MODULE_PARM_DESC(vid, "Vendor ID for the USB audio device.");
-MODULE_PARM_SYNTAX(vid, SNDRV_ENABLED ",allows:{{-1,0xffff}},base:16");
 module_param_array(pid, int, boot_devs, 0444);
 MODULE_PARM_DESC(pid, "Product ID for the USB audio device.");
-MODULE_PARM_SYNTAX(pid, SNDRV_ENABLED ",allows:{{-1,0xffff}},base:16");
 module_param(nrpacks, int, 0444);
 MODULE_PARM_DESC(nrpacks, "Max. number of packets per URB.");
-MODULE_PARM_SYNTAX(nrpacks, SNDRV_ENABLED ",allows:{{1,10}}");
 module_param(async_unlink, bool, 0444);
 MODULE_PARM_DESC(async_unlink, "Use async unlink mode.");
-MODULE_PARM_SYNTAX(async_unlink, SNDRV_BOOLEAN_TRUE_DESC);
 
 
 /*
@@ -207,8 +199,6 @@
 	struct list_head list;
 };
 
-#define chip_t snd_usb_stream_t
-
 
 /*
  * we keep the snd_usb_audio_t instances by ourselves for merging
@@ -1183,9 +1173,9 @@
 		if ((err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), GET_CUR,
 					   USB_TYPE_CLASS|USB_RECIP_ENDPOINT|USB_DIR_IN,
 					   SAMPLING_FREQ_CONTROL << 8, ep, data, 3, HZ)) < 0) {
-			snd_printk(KERN_ERR "%d:%d:%d: cannot get freq at ep 0x%x\n",
+			snd_printk(KERN_WARNING "%d:%d:%d: cannot get freq at ep 0x%x\n",
 				   dev->devnum, iface, fmt->altsetting, ep);
-			return err;
+			return 0; /* some devices don't support reading */
 		}
 		crate = data[0] | (data[1] << 8) | (data[2] << 16);
 		if (crate != rate) {
@@ -2001,7 +1991,7 @@
 
 static void proc_pcm_format_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
 {
-	snd_usb_stream_t *stream = snd_magic_cast(snd_usb_stream_t, entry->private_data, return);
+	snd_usb_stream_t *stream = entry->private_data;
 	
 	snd_iprintf(buffer, "%s : %s\n", stream->chip->card->longname, stream->pcm->name);
 
@@ -2089,7 +2079,7 @@
 	free_substream(&stream->substream[0]);
 	free_substream(&stream->substream[1]);
 	list_del(&stream->list);
-	snd_magic_kfree(stream);
+	kfree(stream);
 }
 
 static void snd_usb_audio_pcm_free(snd_pcm_t *pcm)
@@ -2146,7 +2136,7 @@
 	}
 
 	/* create a new pcm */
-	as = snd_magic_kmalloc(snd_usb_stream_t, 0, GFP_KERNEL);
+	as = kmalloc(sizeof(*as), GFP_KERNEL);
 	if (! as)
 		return -ENOMEM;
 	memset(as, 0, sizeof(*as));
@@ -2158,7 +2148,7 @@
 			  stream == SNDRV_PCM_STREAM_PLAYBACK ? 0 : 1,
 			  &pcm);
 	if (err < 0) {
-		snd_magic_kfree(as);
+		kfree(as);
 		return err;
 	}
 	as->pcm = pcm;
@@ -2182,6 +2172,24 @@
 
 
 /*
+ * check if the device uses big-endian samples
+ */
+static int is_big_endian_format(struct usb_device *dev, struct audioformat *fp)
+{
+	/* M-Audio */
+	if (dev->descriptor.idVendor == 0x0763) {
+		/* Quattro: captured data only */
+		if (dev->descriptor.idProduct == 0x2001 &&
+		    fp->endpoint & USB_DIR_IN)
+			return 1;
+		/* Audiophile USB */
+		if (dev->descriptor.idProduct == 0x2003)
+			return 1;
+	}
+	return 0;
+}
+
+/*
  * parse the audio format type I descriptor
  * and returns the corresponding pcm format
  *
@@ -2217,17 +2225,13 @@
 			pcm_format = SNDRV_PCM_FORMAT_S8;
 			break;
 		case 2:
-			/* M-Audio audiophile USB workaround */
-			if (dev->descriptor.idVendor == 0x0763 &&
-			    dev->descriptor.idProduct == 0x2003)
+			if (is_big_endian_format(dev, fp))
 				pcm_format = SNDRV_PCM_FORMAT_S16_BE; /* grrr, big endian!! */
 			else
 				pcm_format = SNDRV_PCM_FORMAT_S16_LE;
 			break;
 		case 3:
-			/* M-Audio audiophile USB workaround */
-			if (dev->descriptor.idVendor == 0x0763 &&
-			    dev->descriptor.idProduct == 0x2003)
+			if (is_big_endian_format(dev, fp))
 				pcm_format = SNDRV_PCM_FORMAT_S24_3BE; /* grrr, big endian!! */
 			else
 				pcm_format = SNDRV_PCM_FORMAT_S24_3LE;
@@ -2920,14 +2924,14 @@
  */
 static void proc_audio_usbbus_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
 {
-	snd_usb_audio_t *chip = snd_magic_cast(snd_usb_audio_t, entry->private_data, return);
+	snd_usb_audio_t *chip = entry->private_data;
 	if (! chip->shutdown)
 		snd_iprintf(buffer, "%03d/%03d\n", chip->dev->bus->busnum, chip->dev->devnum);
 }
 
 static void proc_audio_usbid_read(snd_info_entry_t *entry, snd_info_buffer_t *buffer)
 {
-	snd_usb_audio_t *chip = snd_magic_cast(snd_usb_audio_t, entry->private_data, return);
+	snd_usb_audio_t *chip = entry->private_data;
 	if (! chip->shutdown)
 		snd_iprintf(buffer, "%04x:%04x\n", chip->dev->descriptor.idVendor, chip->dev->descriptor.idProduct);
 }
@@ -2950,13 +2954,13 @@
 
 static int snd_usb_audio_free(snd_usb_audio_t *chip)
 {
-	snd_magic_kfree(chip);
+	kfree(chip);
 	return 0;
 }
 
 static int snd_usb_audio_dev_free(snd_device_t *device)
 {
-	snd_usb_audio_t *chip = snd_magic_cast(snd_usb_audio_t, device->device_data, return -ENXIO);
+	snd_usb_audio_t *chip = device->device_data;
 	return snd_usb_audio_free(chip);
 }
 
@@ -2990,7 +2994,7 @@
 		return -ENOMEM;
 	}
 
-	chip = snd_magic_kcalloc(snd_usb_audio_t, 0, GFP_KERNEL);
+	chip = kcalloc(1, sizeof(*chip), GFP_KERNEL);
 	if (! chip) {
 		snd_card_free(card);
 		return -ENOMEM;
@@ -3182,7 +3186,7 @@
 	if (ptr == (void *)-1L)
 		return;
 
-	chip = snd_magic_cast(snd_usb_audio_t, ptr, return);
+	chip = ptr;
 	card = chip->card;
 	down(&register_mutex);
 	chip->shutdown = 1;
diff -Nru a/sound/usb/usbaudio.h b/sound/usb/usbaudio.h
--- a/sound/usb/usbaudio.h	2004-07-27 18:28:33 -07:00
+++ b/sound/usb/usbaudio.h	2004-07-27 18:28:33 -07:00
@@ -205,6 +205,8 @@
 int snd_usb_create_mixer(snd_usb_audio_t *chip, int ctrlif);
 
 int snd_usb_create_midi_interface(snd_usb_audio_t *chip, struct usb_interface *iface, const snd_usb_audio_quirk_t *quirk);
+void snd_usbmidi_input_stop(struct list_head* p);
+void snd_usbmidi_input_start(struct list_head* p);
 void snd_usbmidi_disconnect(struct list_head *p, struct usb_driver *driver);
 
 /*
diff -Nru a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c
--- a/sound/usb/usbmidi.c	2004-07-27 18:28:33 -07:00
+++ b/sound/usb/usbmidi.c	2004-07-27 18:28:33 -07:00
@@ -175,7 +175,7 @@
  */
 static void snd_usbmidi_in_urb_complete(struct urb* urb, struct pt_regs *regs)
 {
-	snd_usb_midi_in_endpoint_t* ep = snd_magic_cast(snd_usb_midi_in_endpoint_t, urb->context, return);
+	snd_usb_midi_in_endpoint_t* ep = urb->context;
 
 	if (urb->status == 0) {
 		uint8_t* buffer = (uint8_t*)ep->urb->transfer_buffer;
@@ -229,7 +229,7 @@
 
 static void snd_usbmidi_out_urb_complete(struct urb* urb, struct pt_regs *regs)
 {
-	snd_usb_midi_out_endpoint_t* ep = snd_magic_cast(snd_usb_midi_out_endpoint_t, urb->context, return);
+	snd_usb_midi_out_endpoint_t* ep = urb->context;
 
 	if (urb->status < 0) {
 		if (snd_usbmidi_urb_error(urb->status) < 0)
@@ -417,14 +417,14 @@
 
 static void snd_usbmidi_out_tasklet(unsigned long data)
 {
-	snd_usb_midi_out_endpoint_t* ep = snd_magic_cast(snd_usb_midi_out_endpoint_t, (void*)data, return);
+	snd_usb_midi_out_endpoint_t* ep = (snd_usb_midi_out_endpoint_t *) data;
 	
 	snd_usbmidi_do_output(ep);
 }
 
 static int snd_usbmidi_output_open(snd_rawmidi_substream_t* substream)
 {
-	snd_usb_midi_t* umidi = snd_magic_cast(snd_usb_midi_t, substream->rmidi->private_data, return -ENXIO);
+	snd_usb_midi_t* umidi = substream->rmidi->private_data;
 	usbmidi_out_port_t* port = NULL;
 	int i, j;
 
@@ -503,7 +503,7 @@
 			kfree(ep->urb->transfer_buffer);
 		usb_free_urb(ep->urb);
 	}
-	snd_magic_kfree(ep);
+	kfree(ep);
 }
 
 /*
@@ -571,7 +571,7 @@
 	int length;
 
 	rep->in = NULL;
-	ep = snd_magic_kcalloc(snd_usb_midi_in_endpoint_t, 0, GFP_KERNEL);
+	ep = kcalloc(1, sizeof(*ep), GFP_KERNEL);
 	if (!ep)
 		return -ENOMEM;
 	ep->umidi = umidi;
@@ -631,7 +631,7 @@
 			kfree(ep->urb->transfer_buffer);
 		usb_free_urb(ep->urb);
 	}
-	snd_magic_kfree(ep);
+	kfree(ep);
 }
 
 /*
@@ -647,7 +647,7 @@
 	void* buffer;
 
 	rep->out = NULL;
-	ep = snd_magic_kcalloc(snd_usb_midi_out_endpoint_t, 0, GFP_KERNEL);
+	ep = kcalloc(1, sizeof(*ep), GFP_KERNEL);
 	if (!ep)
 		return -ENOMEM;
 	ep->umidi = umidi;
@@ -695,7 +695,7 @@
 		if (ep->in)
 			snd_usbmidi_in_endpoint_delete(ep->in);
 	}
-	snd_magic_kfree(umidi);
+	kfree(umidi);
 }
 
 /*
@@ -718,7 +718,7 @@
 
 static void snd_usbmidi_rawmidi_free(snd_rawmidi_t* rmidi)
 {
-	snd_usb_midi_t* umidi = snd_magic_cast(snd_usb_midi_t, rmidi->private_data, return);
+	snd_usb_midi_t* umidi = rmidi->private_data;
 	snd_usbmidi_free(umidi);
 }
 
@@ -1145,6 +1145,44 @@
 }
 
 /*
+ * Temporarily stop input. 
+ */
+void snd_usbmidi_input_stop(struct list_head* p)
+{
+	snd_usb_midi_t* umidi;
+	int i;
+
+	umidi = list_entry(p, snd_usb_midi_t, list);
+	for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i) {
+		snd_usb_midi_endpoint_t* ep = &umidi->endpoints[i];
+		if (ep->in)
+			usb_unlink_urb(ep->in->urb);
+	}
+}
+
+static void snd_usbmidi_input_start_ep(snd_usb_midi_in_endpoint_t* ep)
+{
+	if (ep) {
+		struct urb* urb = ep->urb; 
+		urb->dev = ep->umidi->chip->dev;
+		snd_usbmidi_submit_urb(urb, GFP_KERNEL);
+	}
+}
+
+/*
+ * Resume input after a call to snd_usbmidi_input_stop().
+ */
+void snd_usbmidi_input_start(struct list_head* p)
+{
+	snd_usb_midi_t* umidi;
+	int i;
+
+	umidi = list_entry(p, snd_usb_midi_t, list);
+	for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i)
+		snd_usbmidi_input_start_ep(umidi->endpoints[i].in);
+}
+
+/*
  * Creates and registers everything needed for a MIDI streaming interface.
  */
 int snd_usb_create_midi_interface(snd_usb_audio_t* chip,
@@ -1156,7 +1194,7 @@
 	int out_ports, in_ports;
 	int i, err;
 
-	umidi = snd_magic_kcalloc(snd_usb_midi_t, 0, GFP_KERNEL);
+	umidi = kcalloc(1, sizeof(*umidi), GFP_KERNEL);
 	if (!umidi)
 		return -ENOMEM;
 	umidi->chip = chip;
@@ -1189,7 +1227,7 @@
 		}
 	}
 	if (err < 0) {
-		snd_magic_kfree(umidi);
+		kfree(umidi);
 		return err;
 	}
 
@@ -1202,7 +1240,7 @@
 	}
 	err = snd_usbmidi_create_rawmidi(umidi, out_ports, in_ports);
 	if (err < 0) {
-		snd_magic_kfree(umidi);
+		kfree(umidi);
 		return err;
 	}
 
@@ -1219,8 +1257,6 @@
 	list_add(&umidi->list, &umidi->chip->midi_list);
 
 	for (i = 0; i < MIDI_MAX_ENDPOINTS; ++i)
-		if (umidi->endpoints[i].in)
-			snd_usbmidi_submit_urb(umidi->endpoints[i].in->urb,
-					       GFP_KERNEL);
+		snd_usbmidi_input_start_ep(umidi->endpoints[i].in);
 	return 0;
 }
diff -Nru a/sound/usb/usbmixer.c b/sound/usb/usbmixer.c
--- a/sound/usb/usbmixer.c	2004-07-27 18:28:32 -07:00
+++ b/sound/usb/usbmixer.c	2004-07-27 18:28:32 -07:00
@@ -573,7 +573,7 @@
 static void usb_mixer_elem_free(snd_kcontrol_t *kctl)
 {
 	if (kctl->private_data) {
-		snd_magic_kfree((void *)kctl->private_data);
+		kfree((void *)kctl->private_data);
 		kctl->private_data = NULL;
 	}
 }
@@ -635,7 +635,7 @@
 /* get a feature/mixer unit info */
 static int mixer_ctl_feature_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
 {	
-	usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kcontrol->private_data, return -EINVAL);
+	usb_mixer_elem_info_t *cval = kcontrol->private_data;
 
 	if (cval->val_type == USB_MIXER_BOOLEAN ||
 	    cval->val_type == USB_MIXER_INV_BOOLEAN)
@@ -659,7 +659,7 @@
 /* get the current value from feature/mixer unit */
 static int mixer_ctl_feature_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kcontrol->private_data, return -EINVAL);
+	usb_mixer_elem_info_t *cval = kcontrol->private_data;
 	int c, cnt, val, err;
 
 	if (cval->cmask) {
@@ -700,7 +700,7 @@
 /* put the current value to feature/mixer unit */
 static int mixer_ctl_feature_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kcontrol->private_data, return -EINVAL);
+	usb_mixer_elem_info_t *cval = kcontrol->private_data;
 	int c, cnt, val, oval, err;
 	int changed = 0;
 
@@ -774,7 +774,7 @@
 	if (check_ignored_ctl(state, unitid, control))
 		return;
 
-	cval = snd_magic_kcalloc(usb_mixer_elem_info_t, 0, GFP_KERNEL);
+	cval = kcalloc(1, sizeof(*cval), GFP_KERNEL);
 	if (! cval) {
 		snd_printk(KERN_ERR "cannot malloc kcontrol\n");
 		return;
@@ -801,7 +801,7 @@
 	kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval);
 	if (! kctl) {
 		snd_printk(KERN_ERR "cannot malloc kcontrol\n");
-		snd_magic_kfree(cval);
+		kfree(cval);
 		return;
 	}
 	kctl->private_free = usb_mixer_elem_free;
@@ -943,7 +943,7 @@
 	if (check_ignored_ctl(state, unitid, 0))
 		return;
 
-	cval = snd_magic_kcalloc(usb_mixer_elem_info_t, 0, GFP_KERNEL);
+	cval = kcalloc(1, sizeof(*cval), GFP_KERNEL);
 	if (! cval)
 		return;
 
@@ -968,7 +968,7 @@
 	kctl = snd_ctl_new1(&usb_feature_unit_ctl, cval);
 	if (! kctl) {
 		snd_printk(KERN_ERR "cannot malloc kcontrol\n");
-		snd_magic_kfree(cval);
+		kfree(cval);
 		return;
 	}
 	kctl->private_free = usb_mixer_elem_free;
@@ -1014,7 +1014,7 @@
 /* get callback for processing/extension unit */
 static int mixer_ctl_procunit_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kcontrol->private_data, return -EINVAL);
+	usb_mixer_elem_info_t *cval = kcontrol->private_data;
 	int err, val;
 
 	err = get_cur_ctl_value(cval, cval->control << 8, &val);
@@ -1032,7 +1032,7 @@
 /* put callback for processing/extension unit */
 static int mixer_ctl_procunit_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kcontrol->private_data, return -EINVAL);
+	usb_mixer_elem_info_t *cval = kcontrol->private_data;
 	int val, oval, err;
 
 	err = get_cur_ctl_value(cval, cval->control << 8, &oval);
@@ -1170,7 +1170,7 @@
 			continue;
 		if (check_ignored_ctl(state, unitid, valinfo->control))
 			continue;
-		cval = snd_magic_kcalloc(usb_mixer_elem_info_t, 0, GFP_KERNEL);
+		cval = kcalloc(1, sizeof(*cval), GFP_KERNEL);
 		if (! cval) {
 			snd_printk(KERN_ERR "cannot malloc kcontrol\n");
 			return -ENOMEM;
@@ -1195,7 +1195,7 @@
 		kctl = snd_ctl_new1(&mixer_procunit_ctl, cval);
 		if (! kctl) {
 			snd_printk(KERN_ERR "cannot malloc kcontrol\n");
-			snd_magic_kfree(cval);
+			kfree(cval);
 			return -ENOMEM;
 		}
 		kctl->private_free = usb_mixer_elem_free;
@@ -1244,7 +1244,7 @@
  */
 static int mixer_ctl_selector_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
 {	
-	usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kcontrol->private_data, return -EINVAL);
+	usb_mixer_elem_info_t *cval = kcontrol->private_data;
 	char **itemlist = (char **)kcontrol->private_value;
 
 	snd_assert(itemlist, return -EINVAL);
@@ -1260,7 +1260,7 @@
 /* get callback for selector unit */
 static int mixer_ctl_selector_get(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kcontrol->private_data, return -EINVAL);
+	usb_mixer_elem_info_t *cval = kcontrol->private_data;
 	int val, err;
 
 	err = get_cur_ctl_value(cval, 0, &val);
@@ -1279,7 +1279,7 @@
 /* put callback for selector unit */
 static int mixer_ctl_selector_put(snd_kcontrol_t *kcontrol, snd_ctl_elem_value_t *ucontrol)
 {
-	usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kcontrol->private_data, return -EINVAL);
+	usb_mixer_elem_info_t *cval = kcontrol->private_data;
 	int val, oval, err;
 
 	err = get_cur_ctl_value(cval, 0, &oval);
@@ -1315,9 +1315,9 @@
 	int i, num_ins = 0;
 
 	if (kctl->private_data) {
-		usb_mixer_elem_info_t *cval = snd_magic_cast(usb_mixer_elem_info_t, kctl->private_data,);
+		usb_mixer_elem_info_t *cval = kctl->private_data;
 		num_ins = cval->max;
-		snd_magic_kfree(cval);
+		kfree(cval);
 		kctl->private_data = NULL;
 	}
 	if (kctl->private_value) {
@@ -1357,7 +1357,7 @@
 	if (check_ignored_ctl(state, unitid, 0))
 		return 0;
 
-	cval = snd_magic_kcalloc(usb_mixer_elem_info_t, 0, GFP_KERNEL);
+	cval = kcalloc(1, sizeof(*cval), GFP_KERNEL);
 	if (! cval) {
 		snd_printk(KERN_ERR "cannot malloc kcontrol\n");
 		return -ENOMEM;
@@ -1375,7 +1375,7 @@
 	namelist = kmalloc(sizeof(char *) * num_ins, GFP_KERNEL);
 	if (! namelist) {
 		snd_printk(KERN_ERR "cannot malloc\n");
-		snd_magic_kfree(cval);
+		kfree(cval);
 		return -ENOMEM;
 	}
 #define MAX_ITEM_NAME_LEN	64
@@ -1388,7 +1388,7 @@
 			while (--i > 0)
 				kfree(namelist[i]);
 			kfree(namelist);
-			snd_magic_kfree(cval);
+			kfree(cval);
 			return -ENOMEM;
 		}
 		if (check_input_term(state, desc[5 + i], &iterm) >= 0)
@@ -1400,7 +1400,7 @@
 	kctl = snd_ctl_new1(&mixer_selectunit_ctl, cval);
 	if (! kctl) {
 		snd_printk(KERN_ERR "cannot malloc kcontrol\n");
-		snd_magic_kfree(cval);
+		kfree(cval);
 		return -ENOMEM;
 	}
 	kctl->private_value = (unsigned long)namelist;
diff -Nru a/sound/usb/usbquirks.h b/sound/usb/usbquirks.h
--- a/sound/usb/usbquirks.h	2004-07-27 18:28:33 -07:00
+++ b/sound/usb/usbquirks.h	2004-07-27 18:28:33 -07:00
@@ -830,11 +830,42 @@
 	.driver_info = (unsigned long) & (const snd_usb_audio_quirk_t) {
 		.vendor_name = "M-Audio",
 		.product_name = "Quattro",
-		.ifnum = 9,
-		.type = QUIRK_MIDI_MIDIMAN,
-		.data = & (const snd_usb_midi_endpoint_info_t) {
-			.out_cables = 0x0001,
-			.in_cables  = 0x0001
+		.ifnum = QUIRK_ANY_INTERFACE,
+		.type = QUIRK_COMPOSITE,
+		.data = & (const snd_usb_audio_quirk_t[]) {
+			/*
+			 * Interfaces 0-2 are "Windows-compatible", 16-bit only,
+			 * and share endpoints with the other interfaces.
+			 * Ignore them.  The other interfaces can do 24 bits,
+			 * but captured samples are big-endian (see usbaudio.c).
+			 */
+			{
+				.ifnum = 4,
+				.type = QUIRK_AUDIO_STANDARD_INTERFACE
+			},
+			{
+				.ifnum = 5,
+				.type = QUIRK_AUDIO_STANDARD_INTERFACE
+			},
+			{
+				.ifnum = 7,
+				.type = QUIRK_AUDIO_STANDARD_INTERFACE
+			},
+			{
+				.ifnum = 8,
+				.type = QUIRK_AUDIO_STANDARD_INTERFACE
+			},
+			{
+				.ifnum = 9,
+				.type = QUIRK_MIDI_MIDIMAN,
+				.data = & (const snd_usb_midi_endpoint_info_t) {
+					.out_cables = 0x0001,
+					.in_cables  = 0x0001
+				}
+			},
+			{
+				.ifnum = -1
+			}
 		}
 	}
 },