You can import this changeset into BK by piping this whole message to:
'| bk receive [path to repository]' or apply the patch as usual.

===================================================================


ChangeSet@1.646, 2002-10-01 09:03:23+02:00, perex@suse.cz
  ALSA update 2002/08/13 :
    - C99-like structure initializers - first bunch of changes
    - CS46xx
      - fixed the compile with the older image
    - AC'97 codec
      - added the ids for ITE chips
      - check the validity of registers always in the limited register mode
    - intel8x0
      - allow ICH4 to proceed without probing PCR / SCR bits
    - VIA686
      - AC97 cold reset only when AC-link is down


 include/sound/ad1848.h               |   16 -
 include/sound/cs4231.h               |   16 -
 include/sound/cs46xx.h               |    2 
 include/sound/version.h              |    2 
 sound/core/control.c                 |   18 -
 sound/core/hwdep.c                   |   28 +-
 sound/core/info.c                    |   24 +-
 sound/core/oss/pcm_oss.c             |   24 +-
 sound/core/pcm.c                     |    6 
 sound/core/pcm_native.c              |   60 ++---
 sound/core/pcm_timer.c               |   12 -
 sound/core/rawmidi.c                 |   24 +-
 sound/core/rtctimer.c                |   12 -
 sound/core/seq/oss/seq_oss.c         |   18 -
 sound/core/seq/seq_clientmgr.c       |   18 -
 sound/core/seq/seq_device.c          |    6 
 sound/core/seq/seq_virmidi.c         |   16 -
 sound/core/sound.c                   |    6 
 sound/core/timer.c                   |   32 +--
 sound/drivers/dummy.c                |   92 ++++----
 sound/drivers/mpu401/mpu401_uart.c   |   12 -
 sound/drivers/mtpav.c                |   12 -
 sound/drivers/opl3/opl3_lib.c        |   22 +-
 sound/drivers/opl3/opl3_oss.c        |   12 -
 sound/drivers/opl3/opl3_seq.c        |   14 -
 sound/drivers/serial-u16550.c        |   14 -
 sound/i2c/cs8427.c                   |   60 ++---
 sound/i2c/i2c.c                      |   10 
 sound/i2c/l3/uda1341.c               |   30 +-
 sound/i2c/tea6330t.c                 |   24 +-
 sound/isa/ad1816a/ad1816a_lib.c      |  125 ++++++------
 sound/isa/ad1848/ad1848_lib.c        |  102 ++++-----
 sound/isa/cs423x/cs4231_lib.c        |  120 +++++------
 sound/isa/cs423x/cs4236_lib.c        |   62 +++---
 sound/isa/dt019x.c                   |    2 
 sound/isa/es1688/es1688_lib.c        |  128 ++++++------
 sound/isa/es18xx.c                   |  178 ++++++++---------
 sound/isa/gus/gus_main.c             |   12 -
 sound/isa/gus/gus_mem_proc.c         |    4 
 sound/isa/gus/gus_mixer.c            |   12 -
 sound/isa/gus/gus_pcm.c              |  108 +++++-----
 sound/isa/gus/gus_timer.c            |   20 -
 sound/isa/gus/gus_uart.c             |   12 -
 sound/isa/gus/interwave.c            |    6 
 sound/isa/opl3sa2.c                  |   18 -
 sound/isa/opti9xx/opti92x-ad1848.c   |  120 +++++------
 sound/isa/sb/emu8000.c               |   74 +++----
 sound/isa/sb/emu8000_callback.c      |   28 +-
 sound/isa/sb/emu8000_pcm.c           |   48 ++--
 sound/isa/sb/es968.c                 |    2 
 sound/isa/sb/sb16_csp.c              |   20 -
 sound/isa/sb/sb16_main.c             |   94 ++++-----
 sound/isa/sb/sb8_main.c              |  112 +++++-----
 sound/isa/sb/sb8_midi.c              |   12 -
 sound/isa/sb/sb_common.c             |    2 
 sound/isa/sb/sb_mixer.c              |   34 +--
 sound/isa/wavefront/wavefront.c      |    4 
 sound/isa/wavefront/wavefront_midi.c |   12 -
 sound/pci/ac97/ac97_codec.c          |   76 +++----
 sound/pci/als4000.c                  |   92 ++++----
 sound/pci/cmipci.c                   |  358 +++++++++++++++++------------------
 sound/pci/cs4281.c                   |  138 ++++++-------
 sound/pci/cs46xx/cs46xx_lib.c        |    6 
 sound/pci/ens1370.c                  |  236 +++++++++++------------
 sound/pci/es1938.c                   |  166 ++++++++--------
 sound/pci/intel8x0.c                 |   62 +++---
 sound/pci/via686.c                   |   22 +-
 sound/sound_core.c                   |    4 
 sound/synth/emux/emux_oss.c          |   12 -
 69 files changed, 1651 insertions(+), 1634 deletions(-)


diff -Nru a/include/sound/ad1848.h b/include/sound/ad1848.h
--- a/include/sound/ad1848.h	Tue Oct  1 17:06:28 2002
+++ b/include/sound/ad1848.h	Tue Oct  1 17:06:28 2002
@@ -166,20 +166,20 @@
 void snd_ad1848_interrupt(int irq, void *dev_id, struct pt_regs *regs);
 
 #define AD1848_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_ad1848_info_single, \
-  get: snd_ad1848_get_single, put: snd_ad1848_put_single, \
-  private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_ad1848_info_single, \
+  .get = snd_ad1848_get_single, .put = snd_ad1848_put_single, \
+  .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 int snd_ad1848_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo);
 int snd_ad1848_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
 int snd_ad1848_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
 
 #define AD1848_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_ad1848_info_double, \
-  get: snd_ad1848_get_double, put: snd_ad1848_put_double, \
-  private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_ad1848_info_double, \
+  .get = snd_ad1848_get_double, .put = snd_ad1848_put_double, \
+  .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 int snd_ad1848_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo);
 int snd_ad1848_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
diff -Nru a/include/sound/cs4231.h b/include/sound/cs4231.h
--- a/include/sound/cs4231.h	Tue Oct  1 17:06:28 2002
+++ b/include/sound/cs4231.h	Tue Oct  1 17:06:28 2002
@@ -298,20 +298,20 @@
  */
 
 #define CS4231_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4231_info_single, \
-  get: snd_cs4231_get_single, put: snd_cs4231_put_single, \
-  private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_cs4231_info_single, \
+  .get = snd_cs4231_get_single, .put = snd_cs4231_put_single, \
+  .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 int snd_cs4231_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo);
 int snd_cs4231_get_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
 int snd_cs4231_put_single(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
 
 #define CS4231_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4231_info_double, \
-  get: snd_cs4231_get_double, put: snd_cs4231_put_double, \
-  private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_cs4231_info_double, \
+  .get = snd_cs4231_get_double, .put = snd_cs4231_put_double, \
+  .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 int snd_cs4231_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo);
 int snd_cs4231_get_double(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol);
diff -Nru a/include/sound/cs46xx.h b/include/sound/cs46xx.h
--- a/include/sound/cs46xx.h	Tue Oct  1 17:06:28 2002
+++ b/include/sound/cs46xx.h	Tue Oct  1 17:06:28 2002
@@ -1802,6 +1802,7 @@
 	int amplifier;
 	void (*amplifier_ctrl)(cs46xx_t *, int);
 	void (*active_ctrl)(cs46xx_t *, int);
+  	void (*mixer_init)(cs46xx_t *);
 	struct pci_dev *acpi_dev;
 	int acpi_port;
 	snd_kcontrol_t *eapd_switch; /* for amplifier hack */
@@ -1816,7 +1817,6 @@
   int current_gpio;
 #endif
 #ifdef CONFIG_SND_CS46XX_NEW_DSP
-  	void (*mixer_init)(cs46xx_t *);
 	dsp_spos_instance_t * dsp_spos_instance;
 #else /* for compatibility */
 	cs46xx_pcm_t *playback_pcm;
diff -Nru a/include/sound/version.h b/include/sound/version.h
--- a/include/sound/version.h	Tue Oct  1 17:06:28 2002
+++ b/include/sound/version.h	Tue Oct  1 17:06:28 2002
@@ -1,3 +1,3 @@
 /* include/version.h.  Generated automatically by configure.  */
 #define CONFIG_SND_VERSION "0.9.0rc2"
-#define CONFIG_SND_DATE " (Mon Aug 12 16:33:34 2002 UTC)"
+#define CONFIG_SND_DATE " (Tue Aug 13 16:29:18 2002 UTC)"
diff -Nru a/sound/core/control.c b/sound/core/control.c
--- a/sound/core/control.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/control.c	Tue Oct  1 17:06:28 2002
@@ -766,20 +766,20 @@
 static struct file_operations snd_ctl_f_ops =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	read:		snd_ctl_read,
-	open:		snd_ctl_open,
-	release:	snd_ctl_release,
-	poll:		snd_ctl_poll,
-	ioctl:		snd_ctl_ioctl,
-	fasync:		snd_ctl_fasync,
+	.read =		snd_ctl_read,
+	.open =		snd_ctl_open,
+	.release =	snd_ctl_release,
+	.poll =		snd_ctl_poll,
+	.ioctl =	snd_ctl_ioctl,
+	.fasync =	snd_ctl_fasync,
 };
 
 static snd_minor_t snd_ctl_reg =
 {
-	comment:	"ctl",
-	f_ops:		&snd_ctl_f_ops,
+	.comment =	"ctl",
+	.f_ops =	&snd_ctl_f_ops,
 };
 
 int snd_ctl_register(snd_card_t *card)
diff -Nru a/sound/core/hwdep.c b/sound/core/hwdep.c
--- a/sound/core/hwdep.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/hwdep.c	Tue Oct  1 17:06:28 2002
@@ -238,22 +238,22 @@
 static struct file_operations snd_hwdep_f_ops =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner = 	THIS_MODULE,
 #endif
-	llseek:		snd_hwdep_llseek,
-	read:		snd_hwdep_read,
-	write:		snd_hwdep_write,
-	open:		snd_hwdep_open,
-	release:	snd_hwdep_release,
-	poll:		snd_hwdep_poll,
-	ioctl:		snd_hwdep_ioctl,
-	mmap:		snd_hwdep_mmap,
+	.llseek =	snd_hwdep_llseek,
+	.read = 	snd_hwdep_read,
+	.write =	snd_hwdep_write,
+	.open =		snd_hwdep_open,
+	.release =	snd_hwdep_release,
+	.poll =		snd_hwdep_poll,
+	.ioctl =	snd_hwdep_ioctl,
+	.mmap =		snd_hwdep_mmap,
 };
 
 static snd_minor_t snd_hwdep_reg =
 {
-	comment:	"hardware dependent",
-	f_ops:		&snd_hwdep_f_ops,
+	.comment =	"hardware dependent",
+	.f_ops =	&snd_hwdep_f_ops,
 };
 
 int snd_hwdep_new(snd_card_t * card, char *id, int device, snd_hwdep_t ** rhwdep)
@@ -261,9 +261,9 @@
 	snd_hwdep_t *hwdep;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_hwdep_dev_free,
-		dev_register:	snd_hwdep_dev_register,
-		dev_unregister:	snd_hwdep_dev_unregister
+		.dev_free = snd_hwdep_dev_free,
+		.dev_register = snd_hwdep_dev_register,
+		.dev_unregister = snd_hwdep_dev_unregister
 	};
 
 	snd_assert(rhwdep != NULL, return -EINVAL);
diff -Nru a/sound/core/info.c b/sound/core/info.c
--- a/sound/core/info.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/info.c	Tue Oct  1 17:06:28 2002
@@ -531,16 +531,16 @@
 static struct file_operations snd_info_entry_operations =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	llseek:		snd_info_entry_llseek,
-	read:		snd_info_entry_read,
-	write:		snd_info_entry_write,
-	poll:		snd_info_entry_poll,
-	ioctl:		snd_info_entry_ioctl,
-	mmap:		snd_info_entry_mmap,
-	open:		snd_info_entry_open,
-	release:	snd_info_entry_release,
+	.llseek =	snd_info_entry_llseek,
+	.read =		snd_info_entry_read,
+	.write =	snd_info_entry_write,
+	.poll =		snd_info_entry_poll,
+	.ioctl =	snd_info_entry_ioctl,
+	.mmap =		snd_info_entry_mmap,
+	.open =		snd_info_entry_open,
+	.release =	snd_info_entry_release,
 };
 
 #ifdef LINUX_2_2
@@ -602,10 +602,10 @@
 struct inode_operations snd_info_card_link_inode_operations =
 {
 #ifdef LINUX_2_2
-	default_file_ops:	&snd_info_card_link_operations,
+	.default_file_ops =	&snd_info_card_link_operations,
 #endif
-	readlink:		snd_info_card_readlink,
-	follow_link:		snd_info_card_followlink,
+	.readlink =		snd_info_card_readlink,
+	.follow_link =		snd_info_card_followlink,
 };
 
 struct proc_dir_entry *snd_create_proc_entry(const char *name, mode_t mode,
diff -Nru a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
--- a/sound/core/oss/pcm_oss.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/oss/pcm_oss.c	Tue Oct  1 17:06:28 2002
@@ -2083,21 +2083,21 @@
 static struct file_operations snd_pcm_oss_f_reg =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	read:		snd_pcm_oss_read,
-	write:		snd_pcm_oss_write,
-	open:		snd_pcm_oss_open,
-	release:	snd_pcm_oss_release,
-	poll:		snd_pcm_oss_poll,
-	ioctl:		snd_pcm_oss_ioctl,
-	mmap:		snd_pcm_oss_mmap,
+	.read =		snd_pcm_oss_read,
+	.write =	snd_pcm_oss_write,
+	.open =		snd_pcm_oss_open,
+	.release =	snd_pcm_oss_release,
+	.poll =		snd_pcm_oss_poll,
+	.ioctl =	snd_pcm_oss_ioctl,
+	.mmap =		snd_pcm_oss_mmap,
 };
 
 static snd_minor_t snd_pcm_oss_reg =
 {
-	comment:	"digital audio",
-	f_ops:		&snd_pcm_oss_f_reg,
+	.comment =	"digital audio",
+	.f_ops =	&snd_pcm_oss_f_reg,
 };
 
 static void register_oss_dsp(unsigned short native_minor, snd_pcm_t *pcm, int index)
@@ -2159,8 +2159,8 @@
 
 static snd_pcm_notify_t snd_pcm_oss_notify =
 {
-	n_register:	snd_pcm_oss_register_minor,
-	n_unregister:	snd_pcm_oss_unregister_minor,
+	.n_register =	snd_pcm_oss_register_minor,
+	.n_unregister =	snd_pcm_oss_unregister_minor,
 };
 
 static int __init alsa_pcm_oss_init(void)
diff -Nru a/sound/core/pcm.c b/sound/core/pcm.c
--- a/sound/core/pcm.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/pcm.c	Tue Oct  1 17:06:28 2002
@@ -598,9 +598,9 @@
 	snd_pcm_t *pcm;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_pcm_dev_free,
-		dev_register:	snd_pcm_dev_register,
-		dev_unregister:	snd_pcm_dev_unregister
+		.dev_free = snd_pcm_dev_free,
+		.dev_register =	snd_pcm_dev_register,
+		.dev_unregister = snd_pcm_dev_unregister
 	};
 
 	snd_assert(rpcm != NULL, return -EINVAL);
diff -Nru a/sound/core/pcm_native.c b/sound/core/pcm_native.c
--- a/sound/core/pcm_native.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/pcm_native.c	Tue Oct  1 17:06:28 2002
@@ -2523,9 +2523,9 @@
 
 static struct vm_operations_struct snd_pcm_vm_ops_status =
 {
-	nopage:		snd_pcm_mmap_status_nopage,
+	.nopage =	snd_pcm_mmap_status_nopage,
 #ifndef VM_RESERVED
-	swapout:	snd_pcm_mmap_swapout,
+	.swapout =	snd_pcm_mmap_swapout,
 #endif
 };
 
@@ -2577,9 +2577,9 @@
 
 static struct vm_operations_struct snd_pcm_vm_ops_control =
 {
-	nopage:		snd_pcm_mmap_control_nopage,
+	.nopage =	snd_pcm_mmap_control_nopage,
 #ifndef VM_RESERVED
-	swapout:	snd_pcm_mmap_swapout,
+	.swapout =	snd_pcm_mmap_swapout,
 #endif
 };
 
@@ -2662,11 +2662,11 @@
 
 static struct vm_operations_struct snd_pcm_vm_ops_data =
 {
-	open:		snd_pcm_mmap_data_open,
-	close:		snd_pcm_mmap_data_close,
-	nopage:		snd_pcm_mmap_data_nopage,
+	.open =		snd_pcm_mmap_data_open,
+	.close =	snd_pcm_mmap_data_close,
+	.nopage =	snd_pcm_mmap_data_nopage,
 #ifndef VM_RESERVED
-	swapout:	snd_pcm_mmap_swapout,
+	.swapout =	snd_pcm_mmap_swapout,
 #endif
 };
 
@@ -2842,44 +2842,44 @@
 
 static struct file_operations snd_pcm_f_ops_playback = {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	write:		snd_pcm_write,
+	.write =	snd_pcm_write,
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 3, 44)
-	writev:		snd_pcm_writev,
+	.writev =	snd_pcm_writev,
 #endif
-	open:		snd_pcm_open,
-	release:	snd_pcm_release,
-	poll:		snd_pcm_playback_poll,
-	ioctl:		snd_pcm_playback_ioctl,
-	mmap:		snd_pcm_mmap,
-	fasync:		snd_pcm_fasync,
+	.open =		snd_pcm_open,
+	.release =	snd_pcm_release,
+	.poll =		snd_pcm_playback_poll,
+	.ioctl =	snd_pcm_playback_ioctl,
+	.mmap =		snd_pcm_mmap,
+	.fasync =	snd_pcm_fasync,
 };
 
 static struct file_operations snd_pcm_f_ops_capture = {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	read:		snd_pcm_read,
+	.read =		snd_pcm_read,
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 3, 44)
-	readv:		snd_pcm_readv,
+	.readv =	snd_pcm_readv,
 #endif
-	open:		snd_pcm_open,
-	release:	snd_pcm_release,
-	poll:		snd_pcm_capture_poll,
-	ioctl:		snd_pcm_capture_ioctl,
-	mmap:		snd_pcm_mmap,
-	fasync:		snd_pcm_fasync,
+	.open =		snd_pcm_open,
+	.release =	snd_pcm_release,
+	.poll =		snd_pcm_capture_poll,
+	.ioctl =	snd_pcm_capture_ioctl,
+	.mmap =		snd_pcm_mmap,
+	.fasync =	snd_pcm_fasync,
 };
 
 snd_minor_t snd_pcm_reg[2] =
 {
 	{
-		comment:	"digital audio playback",
-		f_ops:		&snd_pcm_f_ops_playback,
+		.comment =	"digital audio playback",
+		.f_ops =	&snd_pcm_f_ops_playback,
 	},
 	{
-		comment:	"digital audio capture",
-		f_ops:		&snd_pcm_f_ops_capture,
+		.comment =	"digital audio capture",
+		.f_ops =	&snd_pcm_f_ops_capture,
 	}
 };
diff -Nru a/sound/core/pcm_timer.c b/sound/core/pcm_timer.c
--- a/sound/core/pcm_timer.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/pcm_timer.c	Tue Oct  1 17:06:28 2002
@@ -105,12 +105,12 @@
 
 static struct _snd_timer_hardware snd_pcm_timer =
 {
-	flags:		SNDRV_TIMER_HW_AUTO | SNDRV_TIMER_HW_SLAVE,
-	resolution:	0,
-	ticks:		1,
-	c_resolution:	snd_pcm_timer_resolution,
-	start:		snd_pcm_timer_start,
-	stop:		snd_pcm_timer_stop,
+	.flags =	SNDRV_TIMER_HW_AUTO | SNDRV_TIMER_HW_SLAVE,
+	.resolution =	0,
+	.ticks =	1,
+	.c_resolution =	snd_pcm_timer_resolution,
+	.start =	snd_pcm_timer_start,
+	.stop =		snd_pcm_timer_stop,
 };
 
 /*
diff -Nru a/sound/core/rawmidi.c b/sound/core/rawmidi.c
--- a/sound/core/rawmidi.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/rawmidi.c	Tue Oct  1 17:06:28 2002
@@ -1280,20 +1280,20 @@
 static struct file_operations snd_rawmidi_f_ops =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	read:		snd_rawmidi_read,
-	write:		snd_rawmidi_write,
-	open:		snd_rawmidi_open,
-	release:	snd_rawmidi_release,
-	poll:		snd_rawmidi_poll,
-	ioctl:		snd_rawmidi_ioctl,
+	.read =		snd_rawmidi_read,
+	.write =	snd_rawmidi_write,
+	.open =		snd_rawmidi_open,
+	.release =	snd_rawmidi_release,
+	.poll =		snd_rawmidi_poll,
+	.ioctl =	snd_rawmidi_ioctl,
 };
 
 static snd_minor_t snd_rawmidi_reg =
 {
-	comment:	"raw midi",
-	f_ops:		&snd_rawmidi_f_ops,
+	.comment =	"raw midi",
+	.f_ops =	&snd_rawmidi_f_ops,
 };
 
 static int snd_rawmidi_alloc_substreams(snd_rawmidi_t *rmidi,
@@ -1326,9 +1326,9 @@
 	snd_rawmidi_t *rmidi;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_rawmidi_dev_free,
-		dev_register:	snd_rawmidi_dev_register,
-		dev_unregister:	snd_rawmidi_dev_unregister
+		.dev_free = snd_rawmidi_dev_free,
+		.dev_register = snd_rawmidi_dev_register,
+		.dev_unregister = snd_rawmidi_dev_unregister
 	};
 
 	snd_assert(rrawmidi != NULL, return -EINVAL);
diff -Nru a/sound/core/rtctimer.c b/sound/core/rtctimer.c
--- a/sound/core/rtctimer.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/rtctimer.c	Tue Oct  1 17:06:28 2002
@@ -56,12 +56,12 @@
  * The hardware dependent description for this timer.
  */
 static struct _snd_timer_hardware rtc_hw = {
-	flags:		SNDRV_TIMER_HW_FIRST|SNDRV_TIMER_HW_AUTO,
-	ticks:		100000000L,		/* FIXME: XXX */
-	open:		rtctimer_open,
-	close:		rtctimer_close,
-	start:		rtctimer_start,
-	stop:		rtctimer_stop,
+	.flags =	SNDRV_TIMER_HW_FIRST|SNDRV_TIMER_HW_AUTO,
+	.ticks =	100000000L,		/* FIXME: XXX */
+	.open =		rtctimer_open,
+	.close =	rtctimer_close,
+	.start =	rtctimer_start,
+	.stop =		rtctimer_stop,
 };
 
 int rtctimer_freq = RTC_FREQ;		/* frequency */
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	Tue Oct  1 17:06:28 2002
+++ b/sound/core/seq/oss/seq_oss.c	Tue Oct  1 17:06:28 2002
@@ -195,19 +195,19 @@
 static struct file_operations seq_oss_f_ops =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	read:		odev_read,
-	write:		odev_write,
-	open:		odev_open,
-	release:	odev_release,
-	poll:		odev_poll,
-	ioctl:		odev_ioctl,
+	.read =		odev_read,
+	.write =	odev_write,
+	.open =		odev_open,
+	.release =	odev_release,
+	.poll =		odev_poll,
+	.ioctl =	odev_ioctl,
 };
 
 static snd_minor_t seq_oss_reg = {
-	comment:	"sequencer",
-	f_ops:		&seq_oss_f_ops,
+	.comment =	"sequencer",
+	.f_ops =	&seq_oss_f_ops,
 };
 
 static int __init
diff -Nru a/sound/core/seq/seq_clientmgr.c b/sound/core/seq/seq_clientmgr.c
--- a/sound/core/seq/seq_clientmgr.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/seq/seq_clientmgr.c	Tue Oct  1 17:06:28 2002
@@ -2466,20 +2466,20 @@
 static struct file_operations snd_seq_f_ops =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	read:		snd_seq_read,
-	write:		snd_seq_write,
-	open:		snd_seq_open,
-	release:	snd_seq_release,
-	poll:		snd_seq_poll,
-	ioctl:		snd_seq_ioctl,
+	.read =		snd_seq_read,
+	.write =	snd_seq_write,
+	.open =		snd_seq_open,
+	.release =	snd_seq_release,
+	.poll =		snd_seq_poll,
+	.ioctl =	snd_seq_ioctl,
 };
 
 static snd_minor_t snd_seq_reg =
 {
-	comment:	"sequencer",
-	f_ops:		&snd_seq_f_ops,
+	.comment =	"sequencer",
+	.f_ops =	&snd_seq_f_ops,
 };
 
 
diff -Nru a/sound/core/seq/seq_device.c b/sound/core/seq/seq_device.c
--- a/sound/core/seq/seq_device.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/seq/seq_device.c	Tue Oct  1 17:06:28 2002
@@ -164,9 +164,9 @@
 	ops_list_t *ops;
 	int err;
 	static snd_device_ops_t dops = {
-		dev_free:	snd_seq_device_dev_free,
-		dev_register:	snd_seq_device_dev_register,
-		dev_unregister:	snd_seq_device_dev_unregister
+		.dev_free = snd_seq_device_dev_free,
+		.dev_register = snd_seq_device_dev_register,
+		.dev_unregister = snd_seq_device_dev_unregister
 	};
 
 	if (result)
diff -Nru a/sound/core/seq/seq_virmidi.c b/sound/core/seq/seq_virmidi.c
--- a/sound/core/seq/seq_virmidi.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/seq/seq_virmidi.c	Tue Oct  1 17:06:28 2002
@@ -341,15 +341,15 @@
  */
 
 static snd_rawmidi_ops_t snd_virmidi_input_ops = {
-	open: snd_virmidi_input_open,
-	close: snd_virmidi_input_close,
-	trigger: snd_virmidi_input_trigger,
+	.open = snd_virmidi_input_open,
+	.close = snd_virmidi_input_close,
+	.trigger = snd_virmidi_input_trigger,
 };
 
 static snd_rawmidi_ops_t snd_virmidi_output_ops = {
-	open: snd_virmidi_output_open,
-	close: snd_virmidi_output_close,
-	trigger: snd_virmidi_output_trigger,
+	.open = snd_virmidi_output_open,
+	.close = snd_virmidi_output_close,
+	.trigger = snd_virmidi_output_trigger,
 };
 
 /*
@@ -468,8 +468,8 @@
  *
  */
 static snd_rawmidi_global_ops_t snd_virmidi_global_ops = {
-	dev_register: snd_virmidi_dev_register,
-	dev_unregister: snd_virmidi_dev_unregister,
+	.dev_register = snd_virmidi_dev_register,
+	.dev_unregister = snd_virmidi_dev_unregister,
 };
 
 /*
diff -Nru a/sound/core/sound.c b/sound/core/sound.c
--- a/sound/core/sound.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/sound.c	Tue Oct  1 17:06:28 2002
@@ -123,7 +123,7 @@
 	struct file_operations *old_fops;
 	int err = 0;
 
-	if (dev != SNDRV_MINOR_SEQUENCER) {
+	if (dev != SNDRV_MINOR_SEQUENCER && dev != SNDRV_MINOR_TIMER) {
 		if (snd_cards[card] == NULL) {
 #ifdef CONFIG_KMOD
 			snd_request_card(card);
@@ -154,9 +154,9 @@
 struct file_operations snd_fops =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	open:		snd_open
+	.open =		snd_open
 };
 
 static int snd_kernel_minor(int type, snd_card_t * card, int dev)
diff -Nru a/sound/core/timer.c b/sound/core/timer.c
--- a/sound/core/timer.c	Tue Oct  1 17:06:28 2002
+++ b/sound/core/timer.c	Tue Oct  1 17:06:28 2002
@@ -637,9 +637,9 @@
 	snd_timer_t *timer;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_timer_dev_free,
-		dev_register:	snd_timer_dev_register,
-		dev_unregister:	snd_timer_dev_unregister
+		.dev_free = snd_timer_dev_free,
+		.dev_register = snd_timer_dev_register,
+		.dev_unregister = snd_timer_dev_unregister
 	};
 
 	snd_assert(tid != NULL, return -EINVAL);
@@ -821,11 +821,11 @@
 
 static struct _snd_timer_hardware snd_timer_system =
 {
-	flags:		SNDRV_TIMER_HW_FIRST,
-	resolution:	1000000000L / HZ,
-	ticks:		10000000L,
-	start:		snd_timer_s_start,
-	stop:		snd_timer_s_stop
+	.flags =	SNDRV_TIMER_HW_FIRST,
+	.resolution =	1000000000L / HZ,
+	.ticks =	10000000L,
+	.start =	snd_timer_s_start,
+	.stop =		snd_timer_s_stop
 };
 
 static void snd_timer_free_system(snd_timer_t *timer)
@@ -1330,19 +1330,19 @@
 static struct file_operations snd_timer_f_ops =
 {
 #ifndef LINUX_2_2
-	owner:		THIS_MODULE,
+	.owner =	THIS_MODULE,
 #endif
-	read:		snd_timer_user_read,
-	open:		snd_timer_user_open,
-	release:	snd_timer_user_release,
-	poll:		snd_timer_user_poll,
-	ioctl:		snd_timer_user_ioctl,
+	.read =		snd_timer_user_read,
+	.open =		snd_timer_user_open,
+	.release =	snd_timer_user_release,
+	.poll =		snd_timer_user_poll,
+	.ioctl =	snd_timer_user_ioctl,
 };
 
 static snd_minor_t snd_timer_reg =
 {
-	comment:	"timer",
-	f_ops:		&snd_timer_f_ops,
+	.comment =	"timer",
+	.f_ops =	&snd_timer_f_ops,
 };
 
 /*
diff -Nru a/sound/drivers/dummy.c b/sound/drivers/dummy.c
--- a/sound/drivers/dummy.c	Tue Oct  1 17:06:28 2002
+++ b/sound/drivers/dummy.c	Tue Oct  1 17:06:28 2002
@@ -262,38 +262,38 @@
 
 static snd_pcm_hardware_t snd_card_dummy_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		USE_FORMATS,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5500,
-	rate_max:		48000,
-	channels_min:		USE_CHANNELS_MIN,
-	channels_max:		USE_CHANNELS_MAX,
-	buffer_bytes_max:	MAX_BUFFER_SIZE,
-	period_bytes_min:	64,
-	period_bytes_max:	MAX_BUFFER_SIZE,
-	periods_min:		USE_PERIODS_MIN,
-	periods_max:		USE_PERIODS_MAX,
-	fifo_size:		0,
+	.formats =		USE_FORMATS,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5500,
+	.rate_max =		48000,
+	.channels_min =		USE_CHANNELS_MIN,
+	.channels_max =		USE_CHANNELS_MAX,
+	.buffer_bytes_max =	MAX_BUFFER_SIZE,
+	.period_bytes_min =	64,
+	.period_bytes_max =	MAX_BUFFER_SIZE,
+	.periods_min =		USE_PERIODS_MIN,
+	.periods_max =		USE_PERIODS_MAX,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_card_dummy_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		USE_FORMATS,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5500,
-	rate_max:		48000,
-	channels_min:		USE_CHANNELS_MIN,
-	channels_max:		USE_CHANNELS_MAX,
-	buffer_bytes_max:	MAX_BUFFER_SIZE,
-	period_bytes_min:	64,
-	period_bytes_max:	MAX_BUFFER_SIZE,
-	periods_min:		USE_PERIODS_MIN,
-	periods_max:		USE_PERIODS_MAX,
-	fifo_size:		0,
+	.formats =		USE_FORMATS,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5500,
+	.rate_max =		48000,
+	.channels_min =		USE_CHANNELS_MIN,
+	.channels_max =		USE_CHANNELS_MAX,
+	.buffer_bytes_max =	MAX_BUFFER_SIZE,
+	.period_bytes_min =	64,
+	.period_bytes_max =	MAX_BUFFER_SIZE,
+	.periods_min =		USE_PERIODS_MIN,
+	.periods_max =		USE_PERIODS_MAX,
+	.fifo_size =		0,
 };
 
 static void snd_card_dummy_runtime_free(snd_pcm_runtime_t *runtime)
@@ -376,21 +376,21 @@
 }
 
 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,
-	prepare:		snd_card_dummy_playback_prepare,
-	trigger:		snd_card_dummy_playback_trigger,
-	pointer:		snd_card_dummy_playback_pointer,
+	.open =			snd_card_dummy_playback_open,
+	.close =		snd_card_dummy_playback_close,
+	.ioctl =		snd_card_dummy_playback_ioctl,
+	.prepare =		snd_card_dummy_playback_prepare,
+	.trigger =		snd_card_dummy_playback_trigger,
+	.pointer =		snd_card_dummy_playback_pointer,
 };
 
 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,
-	prepare:		snd_card_dummy_capture_prepare,
-	trigger:		snd_card_dummy_capture_trigger,
-	pointer:		snd_card_dummy_capture_pointer,
+	.open =			snd_card_dummy_capture_open,
+	.close =		snd_card_dummy_capture_close,
+	.ioctl =		snd_card_dummy_capture_ioctl,
+	.prepare =		snd_card_dummy_capture_prepare,
+	.trigger =		snd_card_dummy_capture_trigger,
+	.pointer =		snd_card_dummy_capture_pointer,
 };
 
 static int __init snd_card_dummy_pcm(snd_card_dummy_t *dummy, int device, int substreams)
@@ -409,10 +409,10 @@
 }
 
 #define DUMMY_VOLUME(xname, xindex, addr) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_dummy_volume_info, \
-  get: snd_dummy_volume_get, put: snd_dummy_volume_put, \
-  private_value: addr }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_dummy_volume_info, \
+  .get = snd_dummy_volume_get, .put = snd_dummy_volume_put, \
+  .private_value = addr }
 
 static int snd_dummy_volume_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -455,10 +455,10 @@
 }                                                                                                                                                                                                                                                                                                            
 
 #define DUMMY_CAPSRC(xname, xindex, addr) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_dummy_capsrc_info, \
-  get: snd_dummy_capsrc_get, put: snd_dummy_capsrc_put, \
-  private_value: addr }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_dummy_capsrc_info, \
+  .get = snd_dummy_capsrc_get, .put = snd_dummy_capsrc_put, \
+  .private_value = addr }
 
 static int snd_dummy_capsrc_info(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo)
 {
diff -Nru a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c
--- a/sound/drivers/mpu401/mpu401_uart.c	Tue Oct  1 17:06:28 2002
+++ b/sound/drivers/mpu401/mpu401_uart.c	Tue Oct  1 17:06:28 2002
@@ -350,16 +350,16 @@
 
 static snd_rawmidi_ops_t snd_mpu401_uart_output =
 {
-	open:		snd_mpu401_uart_output_open,
-	close:		snd_mpu401_uart_output_close,
-	trigger:	snd_mpu401_uart_output_trigger,
+	.open =		snd_mpu401_uart_output_open,
+	.close =	snd_mpu401_uart_output_close,
+	.trigger =	snd_mpu401_uart_output_trigger,
 };
 
 static snd_rawmidi_ops_t snd_mpu401_uart_input =
 {
-	open:		snd_mpu401_uart_input_open,
-	close:		snd_mpu401_uart_input_close,
-	trigger:	snd_mpu401_uart_input_trigger,
+	.open =		snd_mpu401_uart_input_open,
+	.close =	snd_mpu401_uart_input_close,
+	.trigger =	snd_mpu401_uart_input_trigger,
 };
 
 static void snd_mpu401_uart_free(snd_rawmidi_t *rmidi)
diff -Nru a/sound/drivers/mtpav.c b/sound/drivers/mtpav.c
--- a/sound/drivers/mtpav.c	Tue Oct  1 17:06:28 2002
+++ b/sound/drivers/mtpav.c	Tue Oct  1 17:06:28 2002
@@ -606,15 +606,15 @@
  */
 
 static snd_rawmidi_ops_t snd_mtpav_output = {
-	open:		snd_mtpav_output_open,
-	close:		snd_mtpav_output_close,
-	trigger:	snd_mtpav_output_trigger,
+	.open =		snd_mtpav_output_open,
+	.close =	snd_mtpav_output_close,
+	.trigger =	snd_mtpav_output_trigger,
 };
 
 static snd_rawmidi_ops_t snd_mtpav_input = {
-	open:		snd_mtpav_input_open,
-	close:		snd_mtpav_input_close,
-	trigger:	snd_mtpav_input_trigger,
+	.open =		snd_mtpav_input_open,
+	.close =	snd_mtpav_input_close,
+	.trigger =	snd_mtpav_input_trigger,
 };
 
 
diff -Nru a/sound/drivers/opl3/opl3_lib.c b/sound/drivers/opl3/opl3_lib.c
--- a/sound/drivers/opl3/opl3_lib.c	Tue Oct  1 17:06:28 2002
+++ b/sound/drivers/opl3/opl3_lib.c	Tue Oct  1 17:06:28 2002
@@ -259,20 +259,20 @@
 
 static struct _snd_timer_hardware snd_opl3_timer1 =
 {
-	flags:		SNDRV_TIMER_HW_STOP,
-	resolution:	80000,
-	ticks:		256,
-	start:		snd_opl3_timer1_start,
-	stop:		snd_opl3_timer1_stop,
+	.flags =	SNDRV_TIMER_HW_STOP,
+	.resolution =	80000,
+	.ticks =	256,
+	.start =	snd_opl3_timer1_start,
+	.stop =		snd_opl3_timer1_stop,
 };
 
 static struct _snd_timer_hardware snd_opl3_timer2 =
 {
-	flags:		SNDRV_TIMER_HW_STOP,
-	resolution:	320000,
-	ticks:		256,
-	start:		snd_opl3_timer2_start,
-	stop:		snd_opl3_timer2_stop,
+	.flags =	SNDRV_TIMER_HW_STOP,
+	.resolution =	320000,
+	.ticks =	256,
+	.start =	snd_opl3_timer2_start,
+	.stop =		snd_opl3_timer2_stop,
 };
 
 static int snd_opl3_timer1_init(opl3_t * opl3, int timer_no)
@@ -380,7 +380,7 @@
 	opl3_t *opl3;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free: snd_opl3_dev_free,
+		.dev_free = snd_opl3_dev_free,
 	};
 
 	*ropl3 = NULL;
diff -Nru a/sound/drivers/opl3/opl3_oss.c b/sound/drivers/opl3/opl3_oss.c
--- a/sound/drivers/opl3/opl3_oss.c	Tue Oct  1 17:06:28 2002
+++ b/sound/drivers/opl3/opl3_oss.c	Tue Oct  1 17:06:28 2002
@@ -46,12 +46,12 @@
 extern snd_midi_op_t opl3_ops;
 
 static snd_seq_oss_callback_t oss_callback = {
-	owner: THIS_MODULE,
-	open: snd_opl3_open_seq_oss,
-	close: snd_opl3_close_seq_oss,
-	ioctl: snd_opl3_ioctl_seq_oss,
-	load_patch: snd_opl3_load_patch_seq_oss,
-	reset: snd_opl3_reset_seq_oss,
+	.owner = 	THIS_MODULE,
+	.open =		snd_opl3_open_seq_oss,
+	.close =	snd_opl3_close_seq_oss,
+	.ioctl =	snd_opl3_ioctl_seq_oss,
+	.load_patch =	snd_opl3_load_patch_seq_oss,
+	.reset =	snd_opl3_reset_seq_oss,
 };
 
 static int snd_opl3_oss_event_input(snd_seq_event_t *ev, int direct,
diff -Nru a/sound/drivers/opl3/opl3_seq.c b/sound/drivers/opl3/opl3_seq.c
--- a/sound/drivers/opl3/opl3_seq.c	Tue Oct  1 17:06:28 2002
+++ b/sound/drivers/opl3/opl3_seq.c	Tue Oct  1 17:06:28 2002
@@ -146,13 +146,13 @@
  * MIDI emulation operators
  */
 snd_midi_op_t opl3_ops = {
-	snd_opl3_note_on,
-	snd_opl3_note_off,
-	snd_opl3_key_press,
-	snd_opl3_terminate_note,
-	snd_opl3_control,
-	snd_opl3_nrpn,
-	snd_opl3_sysex,
+	.note_on =		snd_opl3_note_on,
+	.note_off =		snd_opl3_note_off,
+	.key_press =		snd_opl3_key_press,
+	.note_terminate =	snd_opl3_terminate_note,
+	.control =		snd_opl3_control,
+	.nrpn =			snd_opl3_nrpn,
+	.sysex =		snd_opl3_sysex,
 };
 
 static int snd_opl3_synth_event_input(snd_seq_event_t * ev, int direct,
diff -Nru a/sound/drivers/serial-u16550.c b/sound/drivers/serial-u16550.c
--- a/sound/drivers/serial-u16550.c	Tue Oct  1 17:06:28 2002
+++ b/sound/drivers/serial-u16550.c	Tue Oct  1 17:06:28 2002
@@ -713,16 +713,16 @@
 
 static snd_rawmidi_ops_t snd_uart16550_output =
 {
-	open:		snd_uart16550_output_open,
-	close:		snd_uart16550_output_close,
-	trigger:	snd_uart16550_output_trigger,
+	.open =		snd_uart16550_output_open,
+	.close =	snd_uart16550_output_close,
+	.trigger =	snd_uart16550_output_trigger,
 };
 
 static snd_rawmidi_ops_t snd_uart16550_input =
 {
-	open:		snd_uart16550_input_open,
-	close:		snd_uart16550_input_close,
-	trigger:	snd_uart16550_input_trigger,
+	.open =		snd_uart16550_input_open,
+	.close =	snd_uart16550_input_close,
+	.trigger =	snd_uart16550_input_trigger,
 };
 
 static int snd_uart16550_free(snd_uart16550_t *uart)
@@ -752,7 +752,7 @@
 				       snd_uart16550_t **ruart)
 {
 	static snd_device_ops_t ops = {
-		dev_free:       snd_uart16550_dev_free,
+		.dev_free =	snd_uart16550_dev_free,
 	};
 	snd_uart16550_t *uart;
 	int err;
diff -Nru a/sound/i2c/cs8427.c b/sound/i2c/cs8427.c
--- a/sound/i2c/cs8427.c	Tue Oct  1 17:06:28 2002
+++ b/sound/i2c/cs8427.c	Tue Oct  1 17:06:28 2002
@@ -82,7 +82,7 @@
 	buf[1] = val;
 	if ((err = snd_i2c_sendbytes(device, buf, 2)) != 2) {
 		snd_printk("unable to send bytes 0x%02x:0x%02x to CS8427 (%i)\n", buf[0], buf[1], err);
-		return err < 0 ? err : -EREMOTE;
+		return err < 0 ? err : -EIO;
 	}
 	return 0;
 }
@@ -94,11 +94,11 @@
 
 	if ((err = snd_i2c_sendbytes(device, &reg, 1)) != 1) {
 		snd_printk("unable to send register 0x%x byte to CS8427\n", reg);
-		return err < 0 ? err : -EREMOTE;
+		return err < 0 ? err : -EIO;
 	}
 	if ((err = snd_i2c_readbytes(device, &buf, 1)) != 1) {
 		snd_printk("unable to read register 0x%x byte from CS8427\n", reg);
-		return err < 0 ? err : -EREMOTE;
+		return err < 0 ? err : -EIO;
 	}
 	return buf;
 }
@@ -148,7 +148,7 @@
 	for (idx = 0; idx < count; idx++)
 		data[idx + 1] = swapbits(ndata[idx]);
 	if (snd_i2c_sendbytes(device, data, count) != count)
-		return -EREMOTE;
+		return -EIO;
 	return 1;
 }
 
@@ -226,7 +226,7 @@
 	/* send initial values */
 	memcpy(chip->regmap + (initvals1[0] & 0x7f), initvals1 + 1, 6);
 	if ((err = snd_i2c_sendbytes(device, initvals1, 7)) != 7) {
-		err = err < 0 ? err : -EREMOTE;
+		err = err < 0 ? err : -EIO;
 		goto __fail;
 	}
 	/* Turn off CS8427 interrupt stuff that is not used in hardware */
@@ -238,7 +238,7 @@
 	/* send transfer initialization sequence */
 	memcpy(chip->regmap + (initvals2[0] & 0x7f), initvals2 + 1, 3);
 	if ((err = snd_i2c_sendbytes(device, initvals2, 4)) != 4) {
-		err = err < 0 ? err : -EREMOTE;
+		err = err < 0 ? err : -EIO;
 		goto __fail;
 	}
 	/* write default channel status bytes */
@@ -274,7 +274,7 @@
       __fail:
       	snd_i2c_unlock(bus);
       	snd_i2c_device_free(device);
-      	return err < 0 ? err : -EREMOTE;
+      	return err < 0 ? err : -EIO;
 }
 
 static int snd_cs8427_in_status_info(snd_kcontrol_t *kcontrol,
@@ -359,35 +359,35 @@
 
 static snd_kcontrol_new_t snd_cs8427_iec958_controls[] = {
 {
-	iface: SNDRV_CTL_ELEM_IFACE_PCM,
-	info: snd_cs8427_in_status_info,
-	name: "IEC958 CS8427 Input Status",
-	access: SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE,
-	get: snd_cs8427_in_status_get,
+	.iface =	SNDRV_CTL_ELEM_IFACE_PCM,
+	.info =		snd_cs8427_in_status_info,
+	.name =		"IEC958 CS8427 Input Status",
+	.access =	SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE,
+	.get =		snd_cs8427_in_status_get,
 },
 {
-	access:		SNDRV_CTL_ELEM_ACCESS_READ,
-	iface:		SNDRV_CTL_ELEM_IFACE_PCM,
-	name:           SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
-	info:		snd_cs8427_spdif_mask_info,
-	get:		snd_cs8427_spdif_mask_get,
+	.access =	SNDRV_CTL_ELEM_ACCESS_READ,
+	.iface =	SNDRV_CTL_ELEM_IFACE_PCM,
+	.name =		SNDRV_CTL_NAME_IEC958("",PLAYBACK,MASK),
+	.info =		snd_cs8427_spdif_mask_info,
+	.get =		snd_cs8427_spdif_mask_get,
 },
 {
-	iface:		SNDRV_CTL_ELEM_IFACE_PCM,
-	name:           SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
-	info:		snd_cs8427_spdif_info,
-	get:		snd_cs8427_spdif_get,
-	put:		snd_cs8427_spdif_put,
-	private_value:	0
+	.iface =	SNDRV_CTL_ELEM_IFACE_PCM,
+	.name =		SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
+	.info =		snd_cs8427_spdif_info,
+	.get =		snd_cs8427_spdif_get,
+	.put =		snd_cs8427_spdif_put,
+	.private_value = 0
 },
 {
-	access:		SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
-	iface:		SNDRV_CTL_ELEM_IFACE_PCM,
-	name:           SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
-	info:		snd_cs8427_spdif_info,
-	get:		snd_cs8427_spdif_get,
-	put:		snd_cs8427_spdif_put,
-	private_value:	1
+	.access =	SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
+	.iface =	SNDRV_CTL_ELEM_IFACE_PCM,
+	.name =		SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
+	.info =		snd_cs8427_spdif_info,
+	.get =		snd_cs8427_spdif_get,
+	.put =		snd_cs8427_spdif_put,
+	.private_value = 1
 }};
 
 int snd_cs8427_iec958_build(snd_i2c_device_t *cs8427,
diff -Nru a/sound/i2c/i2c.c b/sound/i2c/i2c.c
--- a/sound/i2c/i2c.c	Tue Oct  1 17:06:28 2002
+++ b/sound/i2c/i2c.c	Tue Oct  1 17:06:28 2002
@@ -37,9 +37,9 @@
 static int snd_i2c_bit_probeaddr(snd_i2c_bus_t *bus, unsigned short addr);
 
 static snd_i2c_ops_t snd_i2c_bit_ops = {
-	sendbytes: snd_i2c_bit_sendbytes,
-	readbytes: snd_i2c_bit_readbytes,
-	probeaddr: snd_i2c_bit_probeaddr,
+	.sendbytes = snd_i2c_bit_sendbytes,
+	.readbytes = snd_i2c_bit_readbytes,
+	.probeaddr = snd_i2c_bit_probeaddr,
 };
 
 static int snd_i2c_bus_free(snd_i2c_bus_t *bus)
@@ -77,7 +77,7 @@
 	snd_i2c_bus_t *bus;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:       snd_i2c_bus_dev_free,
+		.dev_free =	snd_i2c_bus_dev_free,
 	};
 
 	*ri2c = NULL;
@@ -220,7 +220,7 @@
 	ack = snd_i2c_bit_data(bus, 1);
 	snd_i2c_bit_direction(bus, 1, 1);	/* SCL - wr, SDA - wr */
 	snd_i2c_bit_set(bus, 0, 1);
-	return ack ? -EREMOTEIO : 0;
+	return ack ? -EIO : 0;
 }
 
 static int snd_i2c_bit_sendbyte(snd_i2c_bus_t *bus, unsigned char data)
diff -Nru a/sound/i2c/l3/uda1341.c b/sound/i2c/l3/uda1341.c
--- a/sound/i2c/l3/uda1341.c	Tue Oct  1 17:06:28 2002
+++ b/sound/i2c/l3/uda1341.c	Tue Oct  1 17:06:28 2002
@@ -16,7 +16,7 @@
  * 2002-04-12	Tomas Kasparek	Proc interface update, code cleanup
  */
 
-/* $Id: uda1341.c,v 1.2 2002/04/18 07:47:59 perex Exp $ */
+/* $Id: uda1341.c,v 1.3 2002/08/13 16:13:36 perex Exp $ */
 
 #include <sound/driver.h>
 #include <linux/module.h>
@@ -459,8 +459,8 @@
 /* {{{ UDA1341 single functions */
 
 #define UDA1341_SINGLE(xname, where, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_uda1341_info_single, \
-  get: snd_uda1341_get_single, put: snd_uda1341_put_single, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_uda1341_info_single, \
+  .get = snd_uda1341_get_single, put: snd_uda1341_put_single, \
   private_value: where | reg << 5 | (shift << 9) | (mask << 12) | (invert << 18) \
 }
 
@@ -521,8 +521,8 @@
 /* {{{ UDA1341 enum functions */
 
 #define UDA1341_ENUM(xname, where, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_uda1341_info_enum, \
-  get: snd_uda1341_get_enum, put: snd_uda1341_put_enum, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_uda1341_info_enum, \
+  .get = snd_uda1341_get_enum, put: snd_uda1341_put_enum, \
   private_value: where | reg << 5 | (shift << 9) | (mask << 12) | (invert << 18) \
 }
 
@@ -583,8 +583,8 @@
 /* {{{ UDA1341 2regs functions */
 
 #define UDA1341_2REGS(xname, where, reg_1, reg_2, shift_1, shift_2, mask_1, mask_2, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: (xname), info: snd_uda1341_info_2regs, \
-  get: snd_uda1341_get_2regs, put: snd_uda1341_put_2regs, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: (xname), info: snd_uda1341_info_2regs, \
+  .get = snd_uda1341_get_2regs, put: snd_uda1341_put_2regs, \
   private_value: where | (reg_1 << 5) | (reg_2 << 9) | (shift_1 << 13) | (shift_2 << 16) | \
                          (mask_1 << 19) | (mask_2 << 25) | (invert << 31) \
 }
@@ -839,17 +839,17 @@
 /* {{{ Module and L3 initialization */
 
 static struct l3_ops uda1341_ops = {
-	open:		uda1341_open,
-	command:	uda1341_command,
-	close:		uda1341_close,
+	.open =		uda1341_open,
+	.command =	uda1341_command,
+	.close =	uda1341_close,
 };
 
 static struct l3_driver uda1341_driver = {
-	name:		UDA1341_ALSA_NAME,
-	attach_client:	uda1341_attach,
-	detach_client:	uda1341_detach,
-	ops:		&uda1341_ops,
-	owner:		THIS_MODULE,
+	.name =		UDA1341_ALSA_NAME,
+	.attach_client = uda1341_attach,
+	.detach_client = uda1341_detach,
+	.ops =		&uda1341_ops,
+	.owner =	THIS_MODULE,
 };
 
 static int __init uda1341_init(void)
diff -Nru a/sound/i2c/tea6330t.c b/sound/i2c/tea6330t.c
--- a/sound/i2c/tea6330t.c	Tue Oct  1 17:06:28 2002
+++ b/sound/i2c/tea6330t.c	Tue Oct  1 17:06:28 2002
@@ -67,9 +67,9 @@
 #endif
 
 #define TEA6330T_MASTER_VOLUME(xname, xindex) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_tea6330t_info_master_volume, \
-  get: snd_tea6330t_get_master_volume, put: snd_tea6330t_put_master_volume }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_tea6330t_info_master_volume, \
+  .get = snd_tea6330t_get_master_volume, put: snd_tea6330t_put_master_volume }
 
 static int snd_tea6330t_info_master_volume(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -123,9 +123,9 @@
 }
 
 #define TEA6330T_MASTER_SWITCH(xname, xindex) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_tea6330t_info_master_switch, \
-  get: snd_tea6330t_get_master_switch, put: snd_tea6330t_put_master_switch }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_tea6330t_info_master_switch, \
+  .get = snd_tea6330t_get_master_switch, put: snd_tea6330t_put_master_switch }
 
 static int snd_tea6330t_info_master_switch(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -172,9 +172,9 @@
 }
 
 #define TEA6330T_BASS(xname, xindex) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_tea6330t_info_bass, \
-  get: snd_tea6330t_get_bass, put: snd_tea6330t_put_bass }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_tea6330t_info_bass, \
+  .get = snd_tea6330t_get_bass, put: snd_tea6330t_put_bass }
 
 static int snd_tea6330t_info_bass(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -216,9 +216,9 @@
 }
 
 #define TEA6330T_TREBLE(xname, xindex) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_tea6330t_info_treble, \
-  get: snd_tea6330t_get_treble, put: snd_tea6330t_put_treble }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_tea6330t_info_treble, \
+  .get = snd_tea6330t_get_treble, put: snd_tea6330t_put_treble }
 
 static int snd_tea6330t_info_treble(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
diff -Nru a/sound/isa/ad1816a/ad1816a_lib.c b/sound/isa/ad1816a/ad1816a_lib.c
--- a/sound/isa/ad1816a/ad1816a_lib.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/ad1816a/ad1816a_lib.c	Tue Oct  1 17:06:28 2002
@@ -334,41 +334,41 @@
 
 
 static snd_pcm_hardware_t snd_ad1816a_playback = {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
+	.formats =		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
 				 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE |
 				 SNDRV_PCM_FMTBIT_S16_BE),
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		55200,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		55200,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_ad1816a_capture = {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
+	.formats =		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
 				 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE |
 				 SNDRV_PCM_FMTBIT_S16_BE),
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		55200,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		55200,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static int snd_ad1816a_timer_close(snd_timer_t *timer)
@@ -425,14 +425,14 @@
 }
 
 static struct _snd_timer_hardware snd_ad1816a_timer_table = {
-	flags:		SNDRV_TIMER_HW_AUTO,
-	resolution:	10000,
-	ticks:		65535,
-	open:		snd_ad1816a_timer_open,
-	close:		snd_ad1816a_timer_close,
-	c_resolution:	snd_ad1816a_timer_resolution,
-	start:		snd_ad1816a_timer_start,
-	stop:		snd_ad1816a_timer_stop,
+	.flags =	SNDRV_TIMER_HW_AUTO,
+	.resolution =	10000,
+	.ticks =	65535,
+	.open =		snd_ad1816a_timer_open,
+	.close =	snd_ad1816a_timer_close,
+	.c_resolution =	snd_ad1816a_timer_resolution,
+	.start =	snd_ad1816a_timer_start,
+	.stop =		snd_ad1816a_timer_stop,
 };
 
 
@@ -575,7 +575,7 @@
 		       ad1816a_t **rchip)
 {
         static snd_device_ops_t ops = {
-		dev_free:       snd_ad1816a_dev_free,
+		.dev_free =	snd_ad1816a_dev_free,
 	};
 	int error;
 	ad1816a_t *chip;
@@ -631,25 +631,25 @@
 }
 
 static snd_pcm_ops_t snd_ad1816a_playback_ops = {
-	open:		snd_ad1816a_playback_open,
-	close:		snd_ad1816a_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_ad1816a_hw_params,
-	hw_free:	snd_ad1816a_hw_free,
-	prepare:	snd_ad1816a_playback_prepare,
-	trigger:	snd_ad1816a_playback_trigger,
-	pointer:	snd_ad1816a_playback_pointer,
+	.open =		snd_ad1816a_playback_open,
+	.close =	snd_ad1816a_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_ad1816a_hw_params,
+	.hw_free =	snd_ad1816a_hw_free,
+	.prepare =	snd_ad1816a_playback_prepare,
+	.trigger =	snd_ad1816a_playback_trigger,
+	.pointer =	snd_ad1816a_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_ad1816a_capture_ops = {
-	open:		snd_ad1816a_capture_open,
-	close:		snd_ad1816a_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_ad1816a_hw_params,
-	hw_free:	snd_ad1816a_hw_free,
-	prepare:	snd_ad1816a_capture_prepare,
-	trigger:	snd_ad1816a_capture_trigger,
-	pointer:	snd_ad1816a_capture_pointer,
+	.open =		snd_ad1816a_capture_open,
+	.close =	snd_ad1816a_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_ad1816a_hw_params,
+	.hw_free =	snd_ad1816a_hw_free,
+	.prepare =	snd_ad1816a_capture_prepare,
+	.trigger =	snd_ad1816a_capture_trigger,
+	.pointer =	snd_ad1816a_capture_pointer,
 };
 
 static void snd_ad1816a_pcm_free(snd_pcm_t *pcm)
@@ -768,9 +768,9 @@
 }
 
 #define AD1816A_SINGLE(xname, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_ad1816a_info_single, \
-  get: snd_ad1816a_get_single, put: snd_ad1816a_put_single, \
-  private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_ad1816a_info_single, \
+  .get = snd_ad1816a_get_single, .put = snd_ad1816a_put_single, \
+  .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_ad1816a_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -825,9 +825,9 @@
 }
 
 #define AD1816A_DOUBLE(xname, reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_ad1816a_info_double, \
-  get: snd_ad1816a_get_double, put: snd_ad1816a_put_double, \
-  private_value: reg | (shift_left << 8) | (shift_right << 12) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_ad1816a_info_double, \
+  .get = snd_ad1816a_get_double, .put = snd_ad1816a_put_double, \
+  .private_value = reg | (shift_left << 8) | (shift_right << 12) | (mask << 16) | (invert << 24) }
 
 static int snd_ad1816a_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -917,11 +917,11 @@
 AD1816A_SINGLE("Phone Playback Switch", AD1816A_PHONE_OUT_ATT, 7, 1, 1),
 AD1816A_SINGLE("Phone Playback Volume", AD1816A_PHONE_OUT_ATT, 0, 31, 1),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Capture Source",
-	info: snd_ad1816a_info_mux,
-	get: snd_ad1816a_get_mux,
-	put: snd_ad1816a_put_mux,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Capture Source",
+	.info = snd_ad1816a_info_mux,
+	.get = snd_ad1816a_get_mux,
+	.put = snd_ad1816a_put_mux,
 },
 AD1816A_DOUBLE("Capture Switch", AD1816A_ADC_PGA, 15, 7, 1, 1),
 AD1816A_DOUBLE("Capture Volume", AD1816A_ADC_PGA, 8, 0, 15, 0),
@@ -962,4 +962,3 @@
 
 module_init(alsa_ad1816a_init)
 module_exit(alsa_ad1816a_exit)
-
diff -Nru a/sound/isa/ad1848/ad1848_lib.c b/sound/isa/ad1848/ad1848_lib.c
--- a/sound/isa/ad1848/ad1848_lib.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/ad1848/ad1848_lib.c	Tue Oct  1 17:06:28 2002
@@ -69,9 +69,9 @@
 };
 
 static snd_pcm_hw_constraint_list_t hw_constraints_rates = {
-	count: 14,
-	list: rates,
-	mask: 0,
+	.count = 14,
+	.list = rates,
+	.mask = 0,
 };
 
 static unsigned char snd_ad1848_original_image[16] =
@@ -702,40 +702,40 @@
 
 static snd_pcm_hardware_t snd_ad1848_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
+	.formats =		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
 				 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE),
-	rates:			SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5510,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5510,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_ad1848_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
+	.formats =		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW |
 				 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE),
-	rates:			SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5510,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5510,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /*
@@ -834,7 +834,7 @@
 		      ad1848_t ** rchip)
 {
 	static snd_device_ops_t ops = {
-		dev_free:       snd_ad1848_dev_free,
+		.dev_free =	snd_ad1848_dev_free,
 	};
 	ad1848_t *chip;
 	int err;
@@ -883,25 +883,25 @@
 }
 
 static snd_pcm_ops_t snd_ad1848_playback_ops = {
-	open:		snd_ad1848_playback_open,
-	close:		snd_ad1848_playback_close,
-	ioctl:		snd_ad1848_ioctl,
-	hw_params:	snd_ad1848_playback_hw_params,
-	hw_free:	snd_ad1848_playback_hw_free,
-	prepare:	snd_ad1848_playback_prepare,
-	trigger:	snd_ad1848_playback_trigger,
-	pointer:	snd_ad1848_playback_pointer,
+	.open =		snd_ad1848_playback_open,
+	.close =	snd_ad1848_playback_close,
+	.ioctl =	snd_ad1848_ioctl,
+	.hw_params =	snd_ad1848_playback_hw_params,
+	.hw_free =	snd_ad1848_playback_hw_free,
+	.prepare =	snd_ad1848_playback_prepare,
+	.trigger =	snd_ad1848_playback_trigger,
+	.pointer =	snd_ad1848_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_ad1848_capture_ops = {
-	open:		snd_ad1848_capture_open,
-	close:		snd_ad1848_capture_close,
-	ioctl:		snd_ad1848_ioctl,
-	hw_params:	snd_ad1848_capture_hw_params,
-	hw_free:	snd_ad1848_capture_hw_free,
-	prepare:	snd_ad1848_capture_prepare,
-	trigger:	snd_ad1848_capture_trigger,
-	pointer:	snd_ad1848_capture_pointer,
+	.open =		snd_ad1848_capture_open,
+	.close =	snd_ad1848_capture_close,
+	.ioctl =	snd_ad1848_ioctl,
+	.hw_params =	snd_ad1848_capture_hw_params,
+	.hw_free =	snd_ad1848_capture_hw_free,
+	.prepare =	snd_ad1848_capture_prepare,
+	.trigger =	snd_ad1848_capture_trigger,
+	.pointer =	snd_ad1848_capture_pointer,
 };
 
 static void snd_ad1848_pcm_free(snd_pcm_t *pcm)
@@ -1121,11 +1121,11 @@
 AD1848_DOUBLE("Aux Playback Volume", 1, AD1848_AUX2_LEFT_INPUT, AD1848_AUX2_RIGHT_INPUT, 0, 0, 31, 1),
 AD1848_DOUBLE("Capture Volume", 0, AD1848_LEFT_INPUT, AD1848_RIGHT_INPUT, 0, 0, 15, 0),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Capture Source",
-	info: snd_ad1848_info_mux,
-	get: snd_ad1848_get_mux,
-	put: snd_ad1848_put_mux,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Capture Source",
+	.info = snd_ad1848_info_mux,
+	.get = snd_ad1848_get_mux,
+	.put = snd_ad1848_put_mux,
 },
 AD1848_SINGLE("Loopback Capture Switch", 0, AD1848_LOOPBACK, 0, 1, 0),
 AD1848_SINGLE("Loopback Capture Volume", 0, AD1848_LOOPBACK, 1, 63, 0)
diff -Nru a/sound/isa/cs423x/cs4231_lib.c b/sound/isa/cs423x/cs4231_lib.c
--- a/sound/isa/cs423x/cs4231_lib.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/cs423x/cs4231_lib.c	Tue Oct  1 17:06:28 2002
@@ -74,9 +74,9 @@
 };
 
 static snd_pcm_hw_constraint_list_t hw_constraints_rates = {
-	count: 14,
-	list: rates,
-	mask: 0,
+	.count = 14,
+	.list = rates,
+	.mask = 0,
 };
 
 static int snd_cs4231_xrate(snd_pcm_runtime_t *runtime)
@@ -795,14 +795,14 @@
 
 static struct _snd_timer_hardware snd_cs4231_timer_table =
 {
-	flags:		SNDRV_TIMER_HW_AUTO,
-	resolution:	9945,
-	ticks:		65535,
-	open:		snd_cs4231_timer_open,
-	close:		snd_cs4231_timer_close,
-	c_resolution:	snd_cs4231_timer_resolution,
-	start:		snd_cs4231_timer_start,
-	stop:		snd_cs4231_timer_stop,
+	.flags =	SNDRV_TIMER_HW_AUTO,
+	.resolution =	9945,
+	.ticks =	65535,
+	.open =		snd_cs4231_timer_open,
+	.close =	snd_cs4231_timer_close,
+	.c_resolution = snd_cs4231_timer_resolution,
+	.start =	snd_cs4231_timer_start,
+	.stop =		snd_cs4231_timer_stop,
 };
 
 /*
@@ -1127,40 +1127,40 @@
 
 static snd_pcm_hardware_t snd_cs4231_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START),
-	formats:		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
+	.formats =		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
 				 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE),
-	rates:			SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5510,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5510,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_cs4231_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START),
-	formats:		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
+	.formats =		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
 				 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE),
-	rates:			SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5510,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5510,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /*
@@ -1395,8 +1395,8 @@
 		      cs4231_t ** rchip)
 {
 	static snd_device_ops_t ops = {
-		dev_free:       snd_cs4231_dev_free,
-	};                                
+		.dev_free =	snd_cs4231_dev_free,
+	};
 	cs4231_t *chip;
 	int err;
 
@@ -1481,25 +1481,25 @@
 }
 
 static snd_pcm_ops_t snd_cs4231_playback_ops = {
-	open:		snd_cs4231_playback_open,
-	close:		snd_cs4231_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cs4231_playback_hw_params,
-	hw_free:	snd_cs4231_playback_hw_free,
-	prepare:	snd_cs4231_playback_prepare,
-	trigger:	snd_cs4231_trigger,
-	pointer:	snd_cs4231_playback_pointer,
+	.open =		snd_cs4231_playback_open,
+	.close =	snd_cs4231_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cs4231_playback_hw_params,
+	.hw_free =	snd_cs4231_playback_hw_free,
+	.prepare =	snd_cs4231_playback_prepare,
+	.trigger =	snd_cs4231_trigger,
+	.pointer =	snd_cs4231_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_cs4231_capture_ops = {
-	open:		snd_cs4231_capture_open,
-	close:		snd_cs4231_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cs4231_capture_hw_params,
-	hw_free:	snd_cs4231_capture_hw_free,
-	prepare:	snd_cs4231_capture_prepare,
-	trigger:	snd_cs4231_trigger,
-	pointer:	snd_cs4231_capture_pointer,
+	.open =		snd_cs4231_capture_open,
+	.close =	snd_cs4231_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cs4231_capture_hw_params,
+	.hw_free =	snd_cs4231_capture_hw_free,
+	.prepare =	snd_cs4231_capture_prepare,
+	.trigger =	snd_cs4231_trigger,
+	.pointer =	snd_cs4231_capture_pointer,
 };
 
 static void snd_cs4231_pcm_free(snd_pcm_t *pcm)
@@ -1773,11 +1773,11 @@
 CS4231_SINGLE("Mono Output Playback Bypass", 0, CS4231_MONO_CTRL, 5, 1, 0),
 CS4231_DOUBLE("Capture Volume", 0, CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 0, 0, 15, 0),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Capture Source",
-	info: snd_cs4231_info_mux,
-	get: snd_cs4231_get_mux,
-	put: snd_cs4231_put_mux,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Capture Source",
+	.info = snd_cs4231_info_mux,
+	.get = snd_cs4231_get_mux,
+	.put = snd_cs4231_put_mux,
 },
 CS4231_DOUBLE("Mic Boost", 0, CS4231_LEFT_INPUT, CS4231_RIGHT_INPUT, 5, 5, 1, 0),
 CS4231_SINGLE("Loopback Capture Switch", 0, CS4231_LOOPBACK, 0, 1, 0),
diff -Nru a/sound/isa/cs423x/cs4236_lib.c b/sound/isa/cs423x/cs4236_lib.c
--- a/sound/isa/cs423x/cs4236_lib.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/cs423x/cs4236_lib.c	Tue Oct  1 17:06:28 2002
@@ -143,19 +143,19 @@
 #define CLOCKS 8
 
 static ratnum_t clocks[CLOCKS] = {
-	{ num: 16934400, den_min: 353, den_max: 353, den_step: 1 },
-	{ num: 16934400, den_min: 529, den_max: 529, den_step: 1 },
-	{ num: 16934400, den_min: 617, den_max: 617, den_step: 1 },
-	{ num: 16934400, den_min: 1058, den_max: 1058, den_step: 1 },
-	{ num: 16934400, den_min: 1764, den_max: 1764, den_step: 1 },
-	{ num: 16934400, den_min: 2117, den_max: 2117, den_step: 1 },
-	{ num: 16934400, den_min: 2558, den_max: 2558, den_step: 1 },
-	{ num: 16934400/16, den_min: 21, den_max: 192, den_step: 1 }
+	{ .num = 16934400, .den_min = 353, .den_max = 353, .den_step = 1 },
+	{ .num = 16934400, .den_min = 529, .den_max = 529, .den_step = 1 },
+	{ .num = 16934400, .den_min = 617, .den_max = 617, .den_step = 1 },
+	{ .num = 16934400, .den_min = 1058, .den_max = 1058, .den_step = 1 },
+	{ .num = 16934400, .den_min = 1764, .den_max = 1764, .den_step = 1 },
+	{ .num = 16934400, .den_min = 2117, .den_max = 2117, .den_step = 1 },
+	{ .num = 16934400, .den_min = 2558, .den_max = 2558, .den_step = 1 },
+	{ .num = 16934400/16, .den_min = 21, .den_max = 192, .den_step = 1 }
 };
 
 static snd_pcm_hw_constraint_ratnums_t hw_constraints_clocks = {
-	nrats: CLOCKS,
-	rats: clocks,
+	.nrats = CLOCKS,
+	.rats = clocks,
 };
 
 static int snd_cs4236_xrate(snd_pcm_runtime_t *runtime)
@@ -366,9 +366,9 @@
  */
 
 #define CS4236_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4236_info_single, \
-  get: snd_cs4236_get_single, put: snd_cs4236_put_single, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_cs4236_info_single, \
+  .get = snd_cs4236_get_single, put: snd_cs4236_put_single, \
   private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_cs4236_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -423,9 +423,9 @@
 }
 
 #define CS4236_SINGLEC(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4236_info_single, \
-  get: snd_cs4236_get_singlec, put: snd_cs4236_put_singlec, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_cs4236_info_single, \
+  .get = snd_cs4236_get_singlec, put: snd_cs4236_put_singlec, \
   private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_cs4236_get_singlec(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
@@ -469,9 +469,9 @@
 }
 
 #define CS4236_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4236_info_double, \
-  get: snd_cs4236_get_double, put: snd_cs4236_put_double, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_cs4236_info_double, \
+  .get = snd_cs4236_get_double, put: snd_cs4236_put_double, \
   private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 static int snd_cs4236_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -545,9 +545,9 @@
 }
 
 #define CS4236_DOUBLE1(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4236_info_double, \
-  get: snd_cs4236_get_double1, put: snd_cs4236_put_double1, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_cs4236_info_double, \
+  .get = snd_cs4236_get_double1, put: snd_cs4236_put_double1, \
   private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 static int snd_cs4236_get_double1(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
@@ -604,9 +604,9 @@
 }
 
 #define CS4236_MASTER_DIGITAL(xname, xindex) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4236_info_double, \
-  get: snd_cs4236_get_master_digital, put: snd_cs4236_put_master_digital, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_cs4236_info_double, \
+  .get = snd_cs4236_get_master_digital, put: snd_cs4236_put_master_digital, \
   private_value: 71 << 24 }
 
 static inline int snd_cs4236_mixer_master_digital_invert_volume(int vol)
@@ -646,9 +646,9 @@
 }
 
 #define CS4235_OUTPUT_ACCU(xname, xindex) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4236_info_double, \
-  get: snd_cs4235_get_output_accu, put: snd_cs4235_put_output_accu, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_cs4236_info_double, \
+  .get = snd_cs4235_get_output_accu, put: snd_cs4235_put_output_accu, \
   private_value: 3 << 24 }
 
 static inline int snd_cs4235_mixer_output_accu_get_volume(int vol)
@@ -807,9 +807,9 @@
 };
 
 #define CS4236_IEC958_ENABLE(xname, xindex) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_cs4236_info_single, \
-  get: snd_cs4236_get_iec958_switch, put: snd_cs4236_put_iec958_switch, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_cs4236_info_single, \
+  .get = snd_cs4236_get_iec958_switch, put: snd_cs4236_put_iec958_switch, \
   private_value: 1 << 16 }
 
 static int snd_cs4236_get_iec958_switch(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol)
diff -Nru a/sound/isa/dt019x.c b/sound/isa/dt019x.c
--- a/sound/isa/dt019x.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/dt019x.c	Tue Oct  1 17:06:28 2002
@@ -104,7 +104,7 @@
 	/* DT197A30 */
 	{
 		ISAPNP_CARD_ID('R','W','B',0x1688),
-		devs: { ISAPNP_DEVICE_ID('@','@','@',0x0001),
+		.devs = { ISAPNP_DEVICE_ID('@','@','@',0x0001),
 			ISAPNP_DEVICE_ID('@','X','@',0x0001),
 			ISAPNP_DEVICE_ID('@','H','@',0x0001) }
 	},
diff -Nru a/sound/isa/es1688/es1688_lib.c b/sound/isa/es1688/es1688_lib.c
--- a/sound/isa/es1688/es1688_lib.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/es1688/es1688_lib.c	Tue Oct  1 17:06:28 2002
@@ -286,22 +286,22 @@
 
 static ratnum_t clocks[2] = {
 	{
-		num: 795444,
-		den_min: 1,
-		den_max: 128,
-		den_step: 1,
+		.num = 795444,
+		.den_min = 1,
+		.den_max = 128,
+		.den_step = 1,
 	},
 	{
-		num: 397722,
-		den_min: 1,
-		den_max: 128,
-		den_step: 1,
+		.num = 397722,
+		.den_min = 1,
+		.den_max = 128,
+		.den_step = 1,
 	}
 };
 
 static snd_pcm_hw_constraint_ratnums_t hw_constraints_clocks  = {
-	nrats: 2,
-	rats: clocks,
+	.nrats = 2,
+	.rats = clocks,
 };
 
 static void snd_es1688_set_rate(es1688_t *chip, snd_pcm_substream_t *substream)
@@ -520,38 +520,38 @@
 
 static snd_pcm_hardware_t snd_es1688_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_es1688_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /*
@@ -642,7 +642,7 @@
 		      es1688_t **rchip)
 {
 	static snd_device_ops_t ops = {
-		dev_free:	snd_es1688_dev_free,
+		.dev_free =	snd_es1688_dev_free,
 	};
                                 
 	es1688_t *chip;
@@ -701,25 +701,25 @@
 }
 
 static snd_pcm_ops_t snd_es1688_playback_ops = {
-	open:			snd_es1688_playback_open,
-	close:			snd_es1688_playback_close,
-	ioctl:			snd_es1688_ioctl,
-	hw_params:		snd_es1688_hw_params,
-	hw_free:		snd_es1688_hw_free,
-	prepare:		snd_es1688_playback_prepare,
-	trigger:		snd_es1688_playback_trigger,
-	pointer:		snd_es1688_playback_pointer,
+	.open =			snd_es1688_playback_open,
+	.close =		snd_es1688_playback_close,
+	.ioctl =		snd_es1688_ioctl,
+	.hw_params =		snd_es1688_hw_params,
+	.hw_free =		snd_es1688_hw_free,
+	.prepare =		snd_es1688_playback_prepare,
+	.trigger =		snd_es1688_playback_trigger,
+	.pointer =		snd_es1688_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_es1688_capture_ops = {
-	open:			snd_es1688_capture_open,
-	close:			snd_es1688_capture_close,
-	ioctl:			snd_es1688_ioctl,
-	hw_params:		snd_es1688_hw_params,
-	hw_free:		snd_es1688_hw_free,
-	prepare:		snd_es1688_capture_prepare,
-	trigger:		snd_es1688_capture_trigger,
-	pointer:		snd_es1688_capture_pointer,
+	.open =			snd_es1688_capture_open,
+	.close =		snd_es1688_capture_close,
+	.ioctl =		snd_es1688_ioctl,
+	.hw_params =		snd_es1688_hw_params,
+	.hw_free =		snd_es1688_hw_free,
+	.prepare =		snd_es1688_capture_prepare,
+	.trigger =		snd_es1688_capture_trigger,
+	.pointer =		snd_es1688_capture_pointer,
 };
 
 static void snd_es1688_pcm_free(snd_pcm_t *pcm)
@@ -800,9 +800,9 @@
 }
 
 #define ES1688_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_es1688_info_single, \
-  get: snd_es1688_get_single, put: snd_es1688_put_single, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_es1688_info_single, \
+  .get = snd_es1688_get_single, put: snd_es1688_put_single, \
   private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_es1688_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -859,9 +859,9 @@
 }
 
 #define ES1688_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_es1688_info_double, \
-  get: snd_es1688_get_double, put: snd_es1688_put_double, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_es1688_info_double, \
+  .get = snd_es1688_get_double, put: snd_es1688_put_double, \
   private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 static int snd_es1688_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -986,11 +986,11 @@
 ES1688_DOUBLE("Capture Volume", 0, ES1688_RECLEV_DEV, ES1688_RECLEV_DEV, 4, 0, 15, 0),
 ES1688_SINGLE("Capture Switch", 0, ES1688_REC_DEV, 4, 1, 1),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Capture Source",
-	info: snd_es1688_info_mux,
-	get: snd_es1688_get_mux,
-	put: snd_es1688_put_mux,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Capture Source",
+	.info = snd_es1688_info_mux,
+	.get = snd_es1688_get_mux,
+	.put = snd_es1688_put_mux,
 },
 };
 
diff -Nru a/sound/isa/es18xx.c b/sound/isa/es18xx.c
--- a/sound/isa/es18xx.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/es18xx.c	Tue Oct  1 17:06:28 2002
@@ -363,42 +363,42 @@
 
 static ratnum_t new_clocks[2] = {
 	{
-		num: 793800,
-		den_min: 1,
-		den_max: 128,
-		den_step: 1,
+		.num = 793800,
+		.den_min = 1,
+		.den_max = 128,
+		.den_step = 1,
 	},
 	{
-		num: 768000,
-		den_min: 1,
-		den_max: 128,
-		den_step: 1,
+		.num = 768000,
+		.den_min = 1,
+		.den_max = 128,
+		.den_step = 1,
 	}
 };
 
 static snd_pcm_hw_constraint_ratnums_t new_hw_constraints_clocks = {
-	nrats: 2,
-	rats: new_clocks,
+	.nrats = 2,
+	.rats = new_clocks,
 };
 
 static ratnum_t old_clocks[2] = {
 	{
-		num: 795444,
-		den_min: 1,
-		den_max: 128,
-		den_step: 1,
+		.num = 795444,
+		.den_min = 1,
+		.den_max = 128,
+		.den_step = 1,
 	},
 	{
-		num: 397722,
-		den_min: 1,
-		den_max: 128,
-		den_step: 1,
+		.num = 397722,
+		.den_min = 1,
+		.den_max = 128,
+		.den_step = 1,
 	}
 };
 
 static snd_pcm_hw_constraint_ratnums_t old_hw_constraints_clocks  = {
-	nrats: 2,
-	rats: old_clocks,
+	.nrats = 2,
+	.rats = old_clocks,
 };
 
 
@@ -826,40 +826,40 @@
 
 static snd_pcm_hardware_t snd_es18xx_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		(SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 | 
+	.formats =		(SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 | 
 				 SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE),
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_es18xx_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		(SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 | 
+	.formats =		(SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 | 
 				 SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE),
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static int snd_es18xx_playback_open(snd_pcm_substream_t * substream)
@@ -1067,10 +1067,10 @@
 }
 
 #define ES18XX_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_es18xx_info_single, \
-  get: snd_es18xx_get_single, put: snd_es18xx_put_single, \
-  private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_es18xx_info_single, \
+  .get = snd_es18xx_get_single, .put = snd_es18xx_put_single, \
+  .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_es18xx_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -1117,10 +1117,10 @@
 }
 
 #define ES18XX_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_es18xx_info_double, \
-  get: snd_es18xx_get_double, put: snd_es18xx_put_double, \
-  private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_es18xx_info_double, \
+  .get = snd_es18xx_get_double, .put = snd_es18xx_put_double, \
+  .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 static int snd_es18xx_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -1207,11 +1207,11 @@
 ES18XX_DOUBLE("Capture Volume", 0, 0xb4, 0xb4, 4, 0, 15, 0),
 ES18XX_SINGLE("Capture Switch", 0, 0x1c, 4, 1, 1),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Capture Source",
-	info: snd_es18xx_info_mux,
-	get: snd_es18xx_get_mux,
-	put: snd_es18xx_put_mux,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Capture Source",
+	.info = snd_es18xx_info_mux,
+	.get = snd_es18xx_get_mux,
+	.put = snd_es18xx_put_mux,
 }
 };
 
@@ -1240,11 +1240,11 @@
 static snd_kcontrol_new_t snd_es18xx_spatializer_controls[] = {
 ES18XX_SINGLE("3D Control - Level", 0, 0x52, 0, 63, 0),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "3D Control - Switch",
-	info: snd_es18xx_info_spatializer_enable,
-	get: snd_es18xx_get_spatializer_enable,
-	put: snd_es18xx_put_spatializer_enable,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "3D Control - Switch",
+	.info = snd_es18xx_info_spatializer_enable,
+	.get = snd_es18xx_get_spatializer_enable,
+	.put = snd_es18xx_put_spatializer_enable,
 }
 };
 
@@ -1256,18 +1256,18 @@
 
 static snd_kcontrol_new_t snd_es18xx_hw_volume_controls[] = {
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Hardware Master Playback Volume",
-	access: SNDRV_CTL_ELEM_ACCESS_READ,
-	info: snd_es18xx_info_hw_volume,
-	get: snd_es18xx_get_hw_volume,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Hardware Master Playback Volume",
+	.access = SNDRV_CTL_ELEM_ACCESS_READ,
+	.info = snd_es18xx_info_hw_volume,
+	.get = snd_es18xx_get_hw_volume,
 },
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Hardware Master Playback Switch",
-	access: SNDRV_CTL_ELEM_ACCESS_READ,
-	info: snd_es18xx_info_hw_switch,
-	get: snd_es18xx_get_hw_switch,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Hardware Master Playback Switch",
+	.access = SNDRV_CTL_ELEM_ACCESS_READ,
+	.info = snd_es18xx_info_hw_switch,
+	.get = snd_es18xx_get_hw_switch,
 },
 ES18XX_SINGLE("Hardware Master Volume Split", 0, 0x64, 7, 1, 0),
 };
@@ -1548,23 +1548,23 @@
 }
 
 static snd_pcm_ops_t snd_es18xx_playback_ops = {
-	open:		snd_es18xx_playback_open,
-	close:		snd_es18xx_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_es18xx_playback_hw_params,
-	prepare:	snd_es18xx_playback_prepare,
-	trigger:	snd_es18xx_playback_trigger,
-	pointer:	snd_es18xx_playback_pointer,
+	.open =		snd_es18xx_playback_open,
+	.close =	snd_es18xx_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_es18xx_playback_hw_params,
+	.prepare =	snd_es18xx_playback_prepare,
+	.trigger =	snd_es18xx_playback_trigger,
+	.pointer =	snd_es18xx_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_es18xx_capture_ops = {
-	open:		snd_es18xx_capture_open,
-	close:		snd_es18xx_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_es18xx_capture_hw_params,
-	prepare:	snd_es18xx_capture_prepare,
-	trigger:	snd_es18xx_capture_trigger,
-	pointer:	snd_es18xx_capture_pointer,
+	.open =		snd_es18xx_capture_open,
+	.close =	snd_es18xx_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_es18xx_capture_hw_params,
+	.prepare =	snd_es18xx_capture_prepare,
+	.trigger =	snd_es18xx_capture_trigger,
+	.pointer =	snd_es18xx_capture_pointer,
 };
 
 static void snd_es18xx_pcm_free(snd_pcm_t *pcm)
@@ -1732,7 +1732,7 @@
 {
         es18xx_t *chip;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_es18xx_dev_free,
+		.dev_free =	snd_es18xx_dev_free,
         };
 	int err;
 
diff -Nru a/sound/isa/gus/gus_main.c b/sound/isa/gus/gus_main.c
--- a/sound/isa/gus/gus_main.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/gus/gus_main.c	Tue Oct  1 17:06:28 2002
@@ -93,11 +93,11 @@
 }
 
 static snd_kcontrol_new_t snd_gus_joystick_control = {
-	iface: SNDRV_CTL_ELEM_IFACE_CARD,
-	name: "Joystick Speed",
-	info: snd_gus_joystick_info,
-	get: snd_gus_joystick_get,
-	put: snd_gus_joystick_put
+	.iface = SNDRV_CTL_ELEM_IFACE_CARD,
+	.name = "Joystick Speed",
+	.info = snd_gus_joystick_info,
+	.get = snd_gus_joystick_get,
+	.put = snd_gus_joystick_put
 };
 
 static void snd_gus_init_control(snd_gus_card_t *gus)
@@ -163,7 +163,7 @@
 	snd_gus_card_t *gus;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_gus_dev_free,
+		.dev_free =	snd_gus_dev_free,
 	};
 
 	*rgus = NULL;
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	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/gus/gus_mem_proc.c	Tue Oct  1 17:06:28 2002
@@ -85,8 +85,8 @@
 }
 
 static struct snd_info_entry_ops snd_gf1_mem_proc_ops = {
-	read: snd_gf1_mem_proc_dump,
-	llseek: snd_gf1_mem_proc_llseek,
+	.read = snd_gf1_mem_proc_dump,
+	.llseek = snd_gf1_mem_proc_llseek,
 };
 
 int snd_gf1_mem_proc_init(snd_gus_card_t * gus)
diff -Nru a/sound/isa/gus/gus_mixer.c b/sound/isa/gus/gus_mixer.c
--- a/sound/isa/gus/gus_mixer.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/gus/gus_mixer.c	Tue Oct  1 17:06:28 2002
@@ -33,9 +33,9 @@
  */
 
 #define GF1_SINGLE(xname, xindex, shift, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_gf1_info_single, \
-  get: snd_gf1_get_single, put: snd_gf1_put_single, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_gf1_info_single, \
+  .get = snd_gf1_get_single, put: snd_gf1_put_single, \
   private_value: shift | (invert << 8) }
 
 static int snd_gf1_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -83,9 +83,9 @@
 }
 
 #define ICS_DOUBLE(xname, xindex, addr) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_ics_info_double, \
-  get: snd_ics_get_double, put: snd_ics_put_double, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
+  .info = snd_ics_info_double, \
+  .get = snd_ics_get_double, put: snd_ics_put_double, \
   private_value: addr }
 
 static int snd_ics_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
diff -Nru a/sound/isa/gus/gus_pcm.c b/sound/isa/gus/gus_pcm.c
--- a/sound/isa/gus/gus_pcm.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/gus/gus_pcm.c	Tue Oct  1 17:06:28 2002
@@ -530,15 +530,15 @@
 }
 
 static ratnum_t clock = {
-	num: 9878400/16,
-	den_min: 2,
-	den_max: 257,
-	den_step: 1,
+	.num = 9878400/16,
+	.den_min = 2,
+	.den_max = 257,
+	.den_step = 1,
 };
 
 static snd_pcm_hw_constraint_ratnums_t hw_constraints_clocks  = {
-	nrats: 1,
-	rats: &clock,
+	.nrats = 1,
+	.rats = &clock,
 };
 
 static int snd_gf1_pcm_capture_hw_params(snd_pcm_substream_t * substream,
@@ -619,38 +619,38 @@
 
 static snd_pcm_hardware_t snd_gf1_pcm_playback =
 {
-	info:			SNDRV_PCM_INFO_NONINTERLEAVED,
+	.info =			SNDRV_PCM_INFO_NONINTERLEAVED,
 	formats:		(SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 |
 				 SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE),
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5510,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5510,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_gf1_pcm_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_44100,
-	rate_min:		5510,
-	rate_max:		44100,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_44100,
+	.rate_min =		5510,
+	.rate_max =		44100,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static void snd_gf1_pcm_playback_free(snd_pcm_runtime_t *runtime)
@@ -805,35 +805,35 @@
 
 static snd_kcontrol_new_t snd_gf1_pcm_volume_control =
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "PCM Playback Volume",
-	info: snd_gf1_pcm_volume_info,
-	get: snd_gf1_pcm_volume_get,
-	put: snd_gf1_pcm_volume_put
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "PCM Playback Volume",
+	.info = snd_gf1_pcm_volume_info,
+	.get = snd_gf1_pcm_volume_get,
+	.put = snd_gf1_pcm_volume_put
 };
 
 static snd_pcm_ops_t snd_gf1_pcm_playback_ops = {
-	open:		snd_gf1_pcm_playback_open,
-	close:		snd_gf1_pcm_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_gf1_pcm_playback_hw_params,
-	hw_free:	snd_gf1_pcm_playback_hw_free,
-	prepare:	snd_gf1_pcm_playback_prepare,
-	trigger:	snd_gf1_pcm_playback_trigger,
-	pointer:	snd_gf1_pcm_playback_pointer,
-	copy:		snd_gf1_pcm_playback_copy,
-	silence:	snd_gf1_pcm_playback_silence,
+	.open =		snd_gf1_pcm_playback_open,
+	.close =	snd_gf1_pcm_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_gf1_pcm_playback_hw_params,
+	.hw_free =	snd_gf1_pcm_playback_hw_free,
+	.prepare =	snd_gf1_pcm_playback_prepare,
+	.trigger =	snd_gf1_pcm_playback_trigger,
+	.pointer =	snd_gf1_pcm_playback_pointer,
+	.copy =		snd_gf1_pcm_playback_copy,
+	.silence =	snd_gf1_pcm_playback_silence,
 };
 
 static snd_pcm_ops_t snd_gf1_pcm_capture_ops = {
-	open:		snd_gf1_pcm_capture_open,
-	close:		snd_gf1_pcm_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_gf1_pcm_capture_hw_params,
-	hw_free:	snd_gf1_pcm_capture_hw_free,
-	prepare:	snd_gf1_pcm_capture_prepare,
-	trigger:	snd_gf1_pcm_capture_trigger,
-	pointer:	snd_gf1_pcm_capture_pointer,
+	.open =		snd_gf1_pcm_capture_open,
+	.close =	snd_gf1_pcm_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_gf1_pcm_capture_hw_params,
+	.hw_free =	snd_gf1_pcm_capture_hw_free,
+	.prepare =	snd_gf1_pcm_capture_prepare,
+	.trigger =	snd_gf1_pcm_capture_trigger,
+	.pointer =	snd_gf1_pcm_capture_pointer,
 };
 
 int snd_gf1_pcm_new(snd_gus_card_t * gus, int pcm_dev, int control_index, snd_pcm_t ** rpcm)
diff -Nru a/sound/isa/gus/gus_timer.c b/sound/isa/gus/gus_timer.c
--- a/sound/isa/gus/gus_timer.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/gus/gus_timer.c	Tue Oct  1 17:06:28 2002
@@ -128,20 +128,20 @@
 
 static struct _snd_timer_hardware snd_gf1_timer1 =
 {
-	flags:          SNDRV_TIMER_HW_STOP,
-	resolution:     80000,
-	ticks:          256,
-	start:          snd_gf1_timer1_start,
-	stop:           snd_gf1_timer1_stop,
+	.flags =	SNDRV_TIMER_HW_STOP,
+	.resolution =	80000,
+	.ticks =	256,
+	.start =	snd_gf1_timer1_start,
+	.stop =		snd_gf1_timer1_stop,
 };
 
 static struct _snd_timer_hardware snd_gf1_timer2 =
 {
-	flags:          SNDRV_TIMER_HW_STOP,
-	resolution:     320000,
-	ticks:          256,
-	start:          snd_gf1_timer2_start,
-	stop:           snd_gf1_timer2_stop,
+	.flags =	SNDRV_TIMER_HW_STOP,
+	.resolution =	320000,
+	.ticks =	256,
+	.start =	snd_gf1_timer2_start,
+	.stop =		snd_gf1_timer2_stop,
 };
 
 static void snd_gf1_timer1_free(snd_timer_t *timer)
diff -Nru a/sound/isa/gus/gus_uart.c b/sound/isa/gus/gus_uart.c
--- a/sound/isa/gus/gus_uart.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/gus/gus_uart.c	Tue Oct  1 17:06:28 2002
@@ -226,16 +226,16 @@
 
 static snd_rawmidi_ops_t snd_gf1_uart_output =
 {
-	open:		snd_gf1_uart_output_open,
-	close:		snd_gf1_uart_output_close,
-	trigger:	snd_gf1_uart_output_trigger,
+	.open =		snd_gf1_uart_output_open,
+	.close =	snd_gf1_uart_output_close,
+	.trigger =	snd_gf1_uart_output_trigger,
 };
 
 static snd_rawmidi_ops_t snd_gf1_uart_input =
 {
-	open:           snd_gf1_uart_input_open,
-	close:          snd_gf1_uart_input_close,
-	trigger:        snd_gf1_uart_input_trigger,
+	.open =		snd_gf1_uart_input_open,
+	.close =	snd_gf1_uart_input_close,
+	.trigger =	snd_gf1_uart_input_trigger,
 };
 
 int snd_gf1_rawmidi_new(snd_gus_card_t * gus, int device, snd_rawmidi_t ** rrawmidi)
diff -Nru a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c
--- a/sound/isa/gus/interwave.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/gus/interwave.c	Tue Oct  1 17:06:28 2002
@@ -221,9 +221,9 @@
 }
 
 static snd_i2c_bit_ops_t snd_interwave_i2c_bit_ops = {
-	setlines: snd_interwave_i2c_setlines,
-	getclock: snd_interwave_i2c_getclockline,
-	getdata:  snd_interwave_i2c_getdataline,
+	.setlines = snd_interwave_i2c_setlines,
+	.getclock = snd_interwave_i2c_getclockline,
+	.getdata  = snd_interwave_i2c_getdataline,
 };
 
 static int __init snd_interwave_detect_stb(struct snd_interwave *iwcard,
diff -Nru a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c
--- a/sound/isa/opl3sa2.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/opl3sa2.c	Tue Oct  1 17:06:28 2002
@@ -339,10 +339,10 @@
 }
 
 #define OPL3SA2_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_opl3sa2_info_single, \
-  get: snd_opl3sa2_get_single, put: snd_opl3sa2_put_single, \
-  private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_opl3sa2_info_single, \
+  .get = snd_opl3sa2_get_single, .put = snd_opl3sa2_put_single, \
+  .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_opl3sa2_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -397,10 +397,10 @@
 }
 
 #define OPL3SA2_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_opl3sa2_info_double, \
-  get: snd_opl3sa2_get_double, put: snd_opl3sa2_put_double, \
-  private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_opl3sa2_info_double, \
+  .get = snd_opl3sa2_get_double, .put = snd_opl3sa2_put_double, \
+  .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 int snd_opl3sa2_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -725,7 +725,7 @@
 	cs4231_t *cs4231;
 	opl3_t *opl3;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_opl3sa2_dev_free,
+		.dev_free =	snd_opl3sa2_dev_free,
 	};
 	int err;
 
diff -Nru a/sound/isa/opti9xx/opti92x-ad1848.c b/sound/isa/opti9xx/opti92x-ad1848.c
--- a/sound/isa/opti9xx/opti92x-ad1848.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/opti9xx/opti92x-ad1848.c	Tue Oct  1 17:06:28 2002
@@ -289,7 +289,7 @@
 #define ISAPNP_OPTI9XX(_va, _vb, _vc, _device, _fa, _fb, _fc, _audio, _mpu401) \
 	{ \
 		ISAPNP_CARD_ID(_va, _vb, _vc, _device), \
-		devs: { ISAPNP_DEVICE_ID(_fa, _fb, _fc, _audio), \
+		.devs = { ISAPNP_DEVICE_ID(_fa, _fb, _fc, _audio), \
 			ISAPNP_DEVICE_ID(_fa, _fb, _fc, _mpu401), } \
 	}
 
@@ -821,9 +821,9 @@
 #define RATES sizeof(rates) / sizeof(rates[0])
 
 static snd_pcm_hw_constraint_list_t hw_constraints_rates = {
-	count: RATES,
-	list: rates,
-	mask: 0,
+	.count = RATES,
+	.list = rates,
+	.mask = 0,
 };
 
 unsigned char bits[] = {  0x01,  0x0f,  0x00,  0x0e,  0x03,  0x02,  0x05,
@@ -1135,39 +1135,39 @@
 
 
 static snd_pcm_hardware_t snd_opti93x_playback = {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START),
-	formats:		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
+	.formats =		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
 				 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE),
-	rates:			SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5512,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_KNOT | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5512,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_opti93x_capture = {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START),
-	formats:		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
+	.formats =		(SNDRV_PCM_FMTBIT_MU_LAW | SNDRV_PCM_FMTBIT_A_LAW | SNDRV_PCM_FMTBIT_IMA_ADPCM |
 				 SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S16_BE),
-	rates:			SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5512,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rates =		SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5512,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static int snd_opti93x_playback_open(snd_pcm_substream_t *substream)
@@ -1289,7 +1289,7 @@
 		       opti93x_t **rcodec)
 {
 	static snd_device_ops_t ops = {
-		dev_free:	snd_opti93x_dev_free,
+		.dev_free =	snd_opti93x_dev_free,
 	};
 	int error;
 	opti93x_t *codec;
@@ -1348,25 +1348,25 @@
 }
 
 static snd_pcm_ops_t snd_opti93x_playback_ops = {
-	open:		snd_opti93x_playback_open,
-	close:		snd_opti93x_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_opti93x_hw_params,
-	hw_free:	snd_opti93x_hw_free,
-	prepare:	snd_opti93x_playback_prepare,
-	trigger:	snd_opti93x_playback_trigger,
-	pointer:	snd_opti93x_playback_pointer,
+	.open =		snd_opti93x_playback_open,
+	.close =	snd_opti93x_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_opti93x_hw_params,
+	.hw_free =	snd_opti93x_hw_free,
+	.prepare =	snd_opti93x_playback_prepare,
+	.trigger =	snd_opti93x_playback_trigger,
+	.pointer =	snd_opti93x_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_opti93x_capture_ops = {
-	open:		snd_opti93x_capture_open,
-	close:		snd_opti93x_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_opti93x_hw_params,
-	hw_free:	snd_opti93x_hw_free,
-	prepare:	snd_opti93x_capture_prepare,
-	trigger:	snd_opti93x_capture_trigger,
-	pointer:	snd_opti93x_capture_pointer,
+	.open =		snd_opti93x_capture_open,
+	.close =	snd_opti93x_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_opti93x_hw_params,
+	.hw_free =	snd_opti93x_hw_free,
+	.prepare =	snd_opti93x_capture_prepare,
+	.trigger =	snd_opti93x_capture_trigger,
+	.pointer =	snd_opti93x_capture_pointer,
 };
 
 static void snd_opti93x_pcm_free(snd_pcm_t *pcm)
@@ -1458,10 +1458,10 @@
 #if 0
 
 #define OPTi93X_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_opti93x_info_single, \
-  get: snd_opti93x_get_single, put: snd_opti93x_put_single, \
-  private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_opti93x_info_single, \
+  .get = snd_opti93x_get_single, .put = snd_opti93x_put_single, \
+  .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_opti93x_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -1517,10 +1517,10 @@
 #endif /* single */
 
 #define OPTi93X_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_opti93x_info_double, \
-  get: snd_opti93x_get_double, put: snd_opti93x_put_double, \
-  private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_opti93x_info_double, \
+  .get = snd_opti93x_get_double, .put = snd_opti93x_put_double, \
+  .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 #define OPTi93X_DOUBLE_INVERT_INVERT(xctl) \
 	do { xctl.private_value ^= 22; } while (0)
@@ -1612,11 +1612,11 @@
 OPTi93X_DOUBLE("Aux Playback Volume", 0, OPTi931_AUX_LEFT_INPUT, OPTi931_AUX_RIGHT_INPUT, 1, 1, 15, 1), 
 OPTi93X_DOUBLE("Capture Volume", 0, OPTi93X_MIXOUT_LEFT, OPTi93X_MIXOUT_RIGHT, 0, 0, 15, 0),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Capture Source",
-	info: snd_opti93x_info_mux,
-	get: snd_opti93x_get_mux,
-	put: snd_opti93x_put_mux,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Capture Source",
+	.info = snd_opti93x_info_mux,
+	.get = snd_opti93x_get_mux,
+	.put = snd_opti93x_put_mux,
 }
 };
                                         
diff -Nru a/sound/isa/sb/emu8000.c b/sound/isa/sb/emu8000.c
--- a/sound/isa/sb/emu8000.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/emu8000.c	Tue Oct  1 17:06:28 2002
@@ -866,22 +866,22 @@
 
 static snd_kcontrol_new_t mixer_bass_control =
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Synth Tone Control - Bass",
-	info: mixer_bass_treble_info,
-	get: mixer_bass_treble_get,
-	put: mixer_bass_treble_put,
-	private_value: 0,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Synth Tone Control - Bass",
+	.info = mixer_bass_treble_info,
+	.get = mixer_bass_treble_get,
+	.put = mixer_bass_treble_put,
+	.private_value = 0,
 };
 
 static snd_kcontrol_new_t mixer_treble_control =
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Synth Tone Control - Treble",
-	info: mixer_bass_treble_info,
-	get: mixer_bass_treble_get,
-	put: mixer_bass_treble_put,
-	private_value: 1,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Synth Tone Control - Treble",
+	.info = mixer_bass_treble_info,
+	.get = mixer_bass_treble_get,
+	.put = mixer_bass_treble_put,
+	.private_value = 1,
 };
 
 /*
@@ -933,22 +933,22 @@
 
 static snd_kcontrol_new_t mixer_chorus_mode_control =
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Chorus Mode",
-	info: mixer_chorus_reverb_info,
-	get: mixer_chorus_reverb_get,
-	put: mixer_chorus_reverb_put,
-	private_value: 1,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Chorus Mode",
+	.info = mixer_chorus_reverb_info,
+	.get = mixer_chorus_reverb_get,
+	.put = mixer_chorus_reverb_put,
+	.private_value = 1,
 };
 
 static snd_kcontrol_new_t mixer_reverb_mode_control =
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Reverb Mode",
-	info: mixer_chorus_reverb_info,
-	get: mixer_chorus_reverb_get,
-	put: mixer_chorus_reverb_put,
-	private_value: 0,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Reverb Mode",
+	.info = mixer_chorus_reverb_info,
+	.get = mixer_chorus_reverb_get,
+	.put = mixer_chorus_reverb_put,
+	.private_value = 0,
 };
 
 /*
@@ -995,22 +995,22 @@
 
 static snd_kcontrol_new_t mixer_fm_chorus_depth_control =
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "FM Chorus Depth",
-	info: mixer_fm_depth_info,
-	get: mixer_fm_depth_get,
-	put: mixer_fm_depth_put,
-	private_value: 1,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "FM Chorus Depth",
+	.info = mixer_fm_depth_info,
+	.get = mixer_fm_depth_get,
+	.put = mixer_fm_depth_put,
+	.private_value = 1,
 };
 
 static snd_kcontrol_new_t mixer_fm_reverb_depth_control =
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "FM Reverb Depth",
-	info: mixer_fm_depth_info,
-	get: mixer_fm_depth_get,
-	put: mixer_fm_depth_put,
-	private_value: 0,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "FM Reverb Depth",
+	.info = mixer_fm_depth_info,
+	.get = mixer_fm_depth_get,
+	.put = mixer_fm_depth_put,
+	.private_value = 0,
 };
 
 
@@ -1090,7 +1090,7 @@
 	emu8000_t *hw;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free: snd_emu8000_dev_free,
+		.dev_free = snd_emu8000_dev_free,
 	};
 
 	if (awe_ret)
diff -Nru a/sound/isa/sb/emu8000_callback.c b/sound/isa/sb/emu8000_callback.c
--- a/sound/isa/sb/emu8000_callback.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/emu8000_callback.c	Tue Oct  1 17:06:28 2002
@@ -59,21 +59,21 @@
  * set up operators
  */
 static snd_emux_operators_t emu8000_ops = {
-	owner:		THIS_MODULE,
-	get_voice:	get_voice,
-	prepare:	start_voice,
-	trigger:	trigger_voice,
-	release:	release_voice,
-	update:		update_voice,
-	terminate:	terminate_voice,
-	reset:		reset_voice,
-	sample_new:	snd_emu8000_sample_new,
-	sample_free:	snd_emu8000_sample_free,
-	sample_reset:	snd_emu8000_sample_reset,
-	load_fx:	load_fx,
-	sysex:		sysex,
+	.owner =	THIS_MODULE,
+	.get_voice =	get_voice,
+	.prepare =	start_voice,
+	.trigger =	trigger_voice,
+	.release =	release_voice,
+	.update =	update_voice,
+	.terminate =	terminate_voice,
+	.reset =	reset_voice,
+	.sample_new =	snd_emu8000_sample_new,
+	.sample_free =	snd_emu8000_sample_free,
+	.sample_reset = snd_emu8000_sample_reset,
+	.load_fx =	load_fx,
+	.sysex =	sysex,
 #ifdef CONFIG_SND_SEQUENCER_OSS
-	oss_ioctl:	oss_ioctl,
+	.oss_ioctl =	oss_ioctl,
 #endif
 };
 
diff -Nru a/sound/isa/sb/emu8000_pcm.c b/sound/isa/sb/emu8000_pcm.c
--- a/sound/isa/sb/emu8000_pcm.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/emu8000_pcm.c	Tue Oct  1 17:06:28 2002
@@ -159,22 +159,22 @@
 
 static snd_pcm_hardware_t emu8k_pcm_hw = {
 #ifdef USE_NONINTERLEAVE
-	info:			SNDRV_PCM_INFO_NONINTERLEAVED,
+	.info =			SNDRV_PCM_INFO_NONINTERLEAVED,
 #else
-	info:			SNDRV_PCM_INFO_INTERLEAVED,
+	.info =			SNDRV_PCM_INFO_INTERLEAVED,
 #endif
-	formats:		SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	1024,
-	period_bytes_max:	(128*1024),
-	periods_min:		2,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	1024,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		2,
+	.periods_max =		1024,
+	.fifo_size =		0,
 
 };
 
@@ -672,16 +672,16 @@
 
 
 static snd_pcm_ops_t emu8k_pcm_ops = {
-	open:		emu8k_pcm_open,
-	close:		emu8k_pcm_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	emu8k_pcm_hw_params,
-	hw_free:	emu8k_pcm_hw_free,
-	prepare:	emu8k_pcm_prepare,
-	trigger:	emu8k_pcm_trigger,
-	pointer:	emu8k_pcm_pointer,
-	copy:		emu8k_pcm_copy,
-	silence:	emu8k_pcm_silence,
+	.open =		emu8k_pcm_open,
+	.close =	emu8k_pcm_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	emu8k_pcm_hw_params,
+	.hw_free =	emu8k_pcm_hw_free,
+	.prepare =	emu8k_pcm_prepare,
+	.trigger =	emu8k_pcm_trigger,
+	.pointer =	emu8k_pcm_pointer,
+	.copy =		emu8k_pcm_copy,
+	.silence =	emu8k_pcm_silence,
 };
 
 
diff -Nru a/sound/isa/sb/es968.c b/sound/isa/sb/es968.c
--- a/sound/isa/sb/es968.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/es968.c	Tue Oct  1 17:06:28 2002
@@ -82,7 +82,7 @@
 static struct isapnp_card_id snd_es968_pnpids[] __devinitdata = {
         {
                 ISAPNP_CARD_ID('E','S','S',0x0968),
-                devs: { ISAPNP_DEVICE_ID('E','S','S',0x0968), }
+                .devs = { ISAPNP_DEVICE_ID('E','S','S',0x0968), }
         },
         { ISAPNP_CARD_END, }
 };
diff -Nru a/sound/isa/sb/sb16_csp.c b/sound/isa/sb/sb16_csp.c
--- a/sound/isa/sb/sb16_csp.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/sb16_csp.c	Tue Oct  1 17:06:28 2002
@@ -1010,19 +1010,19 @@
 }
 
 static snd_kcontrol_new_t snd_sb_qsound_switch = {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "3D Control - Switch",
-	info: snd_sb_qsound_switch_info,
-	get: snd_sb_qsound_switch_get,
-	put: snd_sb_qsound_switch_put
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "3D Control - Switch",
+	.info = snd_sb_qsound_switch_info,
+	.get = snd_sb_qsound_switch_get,
+	.put = snd_sb_qsound_switch_put
 };
 
 static snd_kcontrol_new_t snd_sb_qsound_space = {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "3D Control - Space",
-	info: snd_sb_qsound_space_info,
-	get: snd_sb_qsound_space_get,
-	put: snd_sb_qsound_space_put
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "3D Control - Space",
+	.info = snd_sb_qsound_space_info,
+	.get = snd_sb_qsound_space_get,
+	.put = snd_sb_qsound_space_put
 };
 
 static int snd_sb_qsound_build(snd_sb_csp_t * p)
diff -Nru a/sound/isa/sb/sb16_main.c b/sound/isa/sb/sb16_main.c
--- a/sound/isa/sb/sb16_main.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/sb16_main.c	Tue Oct  1 17:06:28 2002
@@ -466,38 +466,38 @@
 
 static snd_pcm_hardware_t snd_sb16_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		0,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_44100,
-	rate_min:		4000,
-	rate_max:		44100,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		0,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_44100,
+	.rate_min =		4000,
+	.rate_max =		44100,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_sb16_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		0,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_44100,
-	rate_min:		4000,
-	rate_max:		44100,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		0,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_44100,
+	.rate_min =		4000,
+	.rate_max =		44100,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /*
@@ -724,11 +724,11 @@
 }
 
 snd_kcontrol_new_t snd_sb16_dma_control = {
-	iface: SNDRV_CTL_ELEM_IFACE_PCM,
-	name: "16-bit DMA Allocation",
-	info: snd_sb16_dma_control_info,
-	get: snd_sb16_dma_control_get,
-	put: snd_sb16_dma_control_put
+	.iface = SNDRV_CTL_ELEM_IFACE_PCM,
+	.name = "16-bit DMA Allocation",
+	.info = snd_sb16_dma_control_info,
+	.get = snd_sb16_dma_control_get,
+	.put = snd_sb16_dma_control_put
 };
 
 /*
@@ -825,25 +825,25 @@
 }
 
 static snd_pcm_ops_t snd_sb16_playback_ops = {
-	open:			snd_sb16_playback_open,
-	close:			snd_sb16_playback_close,
-	ioctl:			snd_pcm_lib_ioctl,
-	hw_params:		snd_sb16_hw_params,
-	hw_free:		snd_sb16_hw_free,
-	prepare:		snd_sb16_playback_prepare,
-	trigger:		snd_sb16_playback_trigger,
-	pointer:		snd_sb16_playback_pointer,
+	.open =		snd_sb16_playback_open,
+	.close =	snd_sb16_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_sb16_hw_params,
+	.hw_free =	snd_sb16_hw_free,
+	.prepare =	snd_sb16_playback_prepare,
+	.trigger =	snd_sb16_playback_trigger,
+	.pointer =	snd_sb16_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_sb16_capture_ops = {
-	open:			snd_sb16_capture_open,
-	close:			snd_sb16_capture_close,
-	ioctl:			snd_pcm_lib_ioctl,
-	hw_params:		snd_sb16_hw_params,
-	hw_free:		snd_sb16_hw_free,
-	prepare:		snd_sb16_capture_prepare,
-	trigger:		snd_sb16_capture_trigger,
-	pointer:		snd_sb16_capture_pointer,
+	.open =		snd_sb16_capture_open,
+	.close =	snd_sb16_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_sb16_hw_params,
+	.hw_free =	snd_sb16_hw_free,
+	.prepare =	snd_sb16_capture_prepare,
+	.trigger =	snd_sb16_capture_trigger,
+	.pointer =	snd_sb16_capture_pointer,
 };
 
 static void snd_sb16dsp_pcm_free(snd_pcm_t *pcm)
diff -Nru a/sound/isa/sb/sb8_main.c b/sound/isa/sb/sb8_main.c
--- a/sound/isa/sb/sb8_main.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/sb8_main.c	Tue Oct  1 17:06:28 2002
@@ -49,29 +49,29 @@
 #define SB8_RATE(v)	(SB8_CLOCK / SB8_DEN(v))
 
 static ratnum_t clock = {
-	num: SB8_CLOCK,
-	den_min: 1,
-	den_max: 256,
-	den_step: 1,
+	.num = SB8_CLOCK,
+	.den_min = 1,
+	.den_max = 256,
+	.den_step = 1,
 };
 
 static snd_pcm_hw_constraint_ratnums_t hw_constraints_clock = {
-	nrats: 1,
-	rats: &clock,
+	.nrats = 1,
+	.rats = &clock,
 };
 
 static ratnum_t stereo_clocks[] = {
 	{
-		num: SB8_CLOCK,
-		den_min: SB8_DEN(22050),
-		den_max: SB8_DEN(22050),
-		den_step: 1,
+		.num = SB8_CLOCK,
+		.den_min = SB8_DEN(22050),
+		.den_max = SB8_DEN(22050),
+		.den_step = 1,
 	},
 	{
-		num: SB8_CLOCK,
-		den_min: SB8_DEN(11025),
-		den_max: SB8_DEN(11025),
-		den_step: 1,
+		.num = SB8_CLOCK,
+		.den_min = SB8_DEN(11025),
+		.den_max = SB8_DEN(11025),
+		.den_step = 1,
 	}
 };
 
@@ -386,40 +386,40 @@
 
 static snd_pcm_hardware_t snd_sb8_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_U8,
-	rates:			(SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000 |
+	.formats =		 SNDRV_PCM_FMTBIT_U8,
+	.rates =		(SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000 |
 				 SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_22050),
-	rate_min:		4000,
-	rate_max:		23000,
-	channels_min:		1,
-	channels_max:		1,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rate_min =		4000,
+	.rate_max =		23000,
+	.channels_min =		1,
+	.channels_max =		1,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_sb8_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_U8,
-	rates:			(SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000 |
+	.formats =		SNDRV_PCM_FMTBIT_U8,
+	.rates =		(SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000 |
 				 SNDRV_PCM_RATE_11025),
-	rate_min:		4000,
-	rate_max:		13000,
-	channels_min:		1,
-	channels_max:		1,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rate_min =		4000,
+	.rate_max =		13000,
+	.channels_min =		1,
+	.channels_max =		1,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /*
@@ -490,25 +490,25 @@
  */
  
 static snd_pcm_ops_t snd_sb8_playback_ops = {
-	open:			snd_sb8_open,
-	close:			snd_sb8_close,
-	ioctl:			snd_pcm_lib_ioctl,
-	hw_params:		snd_sb8_hw_params,
-	hw_free:		snd_sb8_hw_free,
-	prepare:		snd_sb8_playback_prepare,
-	trigger:		snd_sb8_playback_trigger,
-	pointer:		snd_sb8_playback_pointer,
+	.open =			snd_sb8_open,
+	.close =		snd_sb8_close,
+	.ioctl =		snd_pcm_lib_ioctl,
+	.hw_params =		snd_sb8_hw_params,
+	.hw_free =		snd_sb8_hw_free,
+	.prepare =		snd_sb8_playback_prepare,
+	.trigger =		snd_sb8_playback_trigger,
+	.pointer =		snd_sb8_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_sb8_capture_ops = {
-	open:			snd_sb8_open,
-	close:			snd_sb8_close,
-	ioctl:			snd_pcm_lib_ioctl,
-	hw_params:		snd_sb8_hw_params,
-	hw_free:		snd_sb8_hw_free,
-	prepare:		snd_sb8_capture_prepare,
-	trigger:		snd_sb8_capture_trigger,
-	pointer:		snd_sb8_capture_pointer,
+	.open =			snd_sb8_open,
+	.close =		snd_sb8_close,
+	.ioctl =		snd_pcm_lib_ioctl,
+	.hw_params =		snd_sb8_hw_params,
+	.hw_free =		snd_sb8_hw_free,
+	.prepare =		snd_sb8_capture_prepare,
+	.trigger =		snd_sb8_capture_trigger,
+	.pointer =		snd_sb8_capture_pointer,
 };
 
 static void snd_sb8dsp_pcm_free(snd_pcm_t *pcm)
diff -Nru a/sound/isa/sb/sb8_midi.c b/sound/isa/sb/sb8_midi.c
--- a/sound/isa/sb/sb8_midi.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/sb8_midi.c	Tue Oct  1 17:06:28 2002
@@ -228,16 +228,16 @@
 
 static snd_rawmidi_ops_t snd_sb8dsp_midi_output =
 {
-	open:           snd_sb8dsp_midi_output_open,
-	close:          snd_sb8dsp_midi_output_close,
-	trigger:	snd_sb8dsp_midi_output_trigger,
+	.open =		snd_sb8dsp_midi_output_open,
+	.close =	snd_sb8dsp_midi_output_close,
+	.trigger =	snd_sb8dsp_midi_output_trigger,
 };
 
 static snd_rawmidi_ops_t snd_sb8dsp_midi_input =
 {
-	open:           snd_sb8dsp_midi_input_open,
-	close:          snd_sb8dsp_midi_input_close,
-	trigger:        snd_sb8dsp_midi_input_trigger,
+	.open =		snd_sb8dsp_midi_input_open,
+	.close =	snd_sb8dsp_midi_input_close,
+	.trigger =	snd_sb8dsp_midi_input_trigger,
 };
 
 int snd_sb8dsp_midi(sb_t *chip, int device, snd_rawmidi_t ** rrawmidi)
diff -Nru a/sound/isa/sb/sb_common.c b/sound/isa/sb/sb_common.c
--- a/sound/isa/sb/sb_common.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/sb_common.c	Tue Oct  1 17:06:28 2002
@@ -221,7 +221,7 @@
 	sb_t *chip;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:       snd_sbdsp_dev_free,
+		.dev_free =	snd_sbdsp_dev_free,
 	};
 
 	snd_assert(r_chip != NULL, return -EINVAL);
diff -Nru a/sound/isa/sb/sb_mixer.c b/sound/isa/sb/sb_mixer.c
--- a/sound/isa/sb/sb_mixer.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/sb/sb_mixer.c	Tue Oct  1 17:06:28 2002
@@ -61,10 +61,10 @@
  */
 
 #define SB_SINGLE(xname, reg, shift, mask) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, \
-  name: xname, \
-  info: snd_sbmixer_info_single, \
-  get: snd_sbmixer_get_single, put: snd_sbmixer_put_single, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
+  .name = xname, \
+  .info = snd_sbmixer_info_single, \
+  .get = snd_sbmixer_get_single, put: snd_sbmixer_put_single, \
   private_value: reg | (shift << 16) | (mask << 24) }
 
 static int snd_sbmixer_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -120,10 +120,10 @@
  */
 
 #define SB_DOUBLE(xname, left_reg, right_reg, left_shift, right_shift, mask) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, \
-  name: xname, \
-  info: snd_sbmixer_info_double, \
-  get: snd_sbmixer_get_double, put: snd_sbmixer_put_double, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
+  .name = xname, \
+  .info = snd_sbmixer_info_double, \
+  .get = snd_sbmixer_get_double, put: snd_sbmixer_put_double, \
   private_value: left_reg | (right_reg << 8) | (left_shift << 16) | (right_shift << 19) | (mask << 24) }
 
 static int snd_sbmixer_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -363,10 +363,10 @@
  */
 
 #define SB16_INPUT_SW(xname, reg1, reg2, left_shift, right_shift) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, \
-  name: xname, \
-  info: snd_sb16mixer_info_input_sw, \
-  get: snd_sb16mixer_get_input_sw, put: snd_sb16mixer_put_input_sw, \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, \
+  .name = xname, \
+  .info = snd_sb16mixer_info_input_sw, \
+  .get = snd_sb16mixer_get_input_sw, put: snd_sb16mixer_put_input_sw, \
   private_value: reg1 | (reg2 << 8) | (left_shift << 16) | (right_shift << 24) }
 
 static int snd_sb16mixer_info_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -455,11 +455,11 @@
 SB_DOUBLE("Line Playback Volume", SB_DSP_LINE_DEV, SB_DSP_LINE_DEV, 5, 1, 7),
 SB_SINGLE("Mic Playback Volume", SB_DSP_MIC_DEV, 1, 3),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Capture Source",
-	info: snd_sb8mixer_info_mux,
-	get: snd_sb8mixer_get_mux,
-	put: snd_sb8mixer_put_mux,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Capture Source",
+	.info = snd_sb8mixer_info_mux,
+	.get = snd_sb8mixer_get_mux,
+	.put = snd_sb8mixer_put_mux,
 },
 SB_SINGLE("Capture Filter", SB_DSP_CAPTURE_FILT, 5, 1),
 SB_SINGLE("Capture Low-Pass Filter", SB_DSP_CAPTURE_FILT, 3, 1)
diff -Nru a/sound/isa/wavefront/wavefront.c b/sound/isa/wavefront/wavefront.c
--- a/sound/isa/wavefront/wavefront.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/wavefront/wavefront.c	Tue Oct  1 17:06:28 2002
@@ -111,14 +111,14 @@
 static struct isapnp_card_id snd_wavefront_pnpids[] __devinitdata = {
 	{
 		ISAPNP_CARD_ID('C','S','C',0x7532),	/* Tropez */
-		devs: { ISAPNP_DEVICE_ID('C','S','C',0x0000),	/* WSS */
+		.devs = { ISAPNP_DEVICE_ID('C','S','C',0x0000),	/* WSS */
 			ISAPNP_DEVICE_ID('C','S','C',0x0010),	/* CTRL */
 			ISAPNP_DEVICE_ID('P','n','P',0xb006),	/* MPU */
 			ISAPNP_DEVICE_ID('C','S','C',000004), }, /* SYNTH */
 	},
 	{
 		ISAPNP_CARD_ID('C','S','C',0x7632),	/* Tropez+ */
-		devs: { ISAPNP_DEVICE_ID('C','S','C',0x0000),	/* WSS */
+		.devs = { ISAPNP_DEVICE_ID('C','S','C',0x0000),	/* WSS */
 			ISAPNP_DEVICE_ID('C','S','C',0x0010),	/* CTRL */
 			ISAPNP_DEVICE_ID('P','n','P',0xb006),	/* MPU */
 			ISAPNP_DEVICE_ID('C','S','C',000004), }, /* SYNTH */
diff -Nru a/sound/isa/wavefront/wavefront_midi.c b/sound/isa/wavefront/wavefront_midi.c
--- a/sound/isa/wavefront/wavefront_midi.c	Tue Oct  1 17:06:28 2002
+++ b/sound/isa/wavefront/wavefront_midi.c	Tue Oct  1 17:06:28 2002
@@ -559,15 +559,15 @@
 
 snd_rawmidi_ops_t snd_wavefront_midi_output =
 {
-	open:		snd_wavefront_midi_output_open,
-	close:		snd_wavefront_midi_output_close,
-	trigger:	snd_wavefront_midi_output_trigger,
+	.open =		snd_wavefront_midi_output_open,
+	.close =	snd_wavefront_midi_output_close,
+	.trigger =	snd_wavefront_midi_output_trigger,
 };
 
 snd_rawmidi_ops_t snd_wavefront_midi_input =
 {
-	open:		snd_wavefront_midi_input_open,
-	close:		snd_wavefront_midi_input_close,
-	trigger:	snd_wavefront_midi_input_trigger,
+	.open =		snd_wavefront_midi_input_open,
+	.close =	snd_wavefront_midi_input_close,
+	.trigger =	snd_wavefront_midi_input_trigger,
 };
 
diff -Nru a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
--- a/sound/pci/ac97/ac97_codec.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/ac97/ac97_codec.c	Tue Oct  1 17:06:28 2002
@@ -70,6 +70,7 @@
 { 0x45838300, 0xffffff00, "ESS Technology",	NULL },
 { 0x48525300, 0xffffff00, "Intersil",		NULL },
 { 0x49434500, 0xffffff00, "ICEnsemble",		NULL },
+{ 0x49544500, 0xffffff00, "ITE Tech.Inc",	NULL },
 { 0x4e534300, 0xffffff00, "National Semiconductor", NULL },
 { 0x53494c00, 0xffffff00, "Silicon Laboratory",	NULL },
 { 0x54524100, 0xffffff00, "TriTech",		NULL },
@@ -116,6 +117,7 @@
 { 0x48525300, 0xffffff00, "HMP9701",		NULL },
 { 0x49434501, 0xffffffff, "ICE1230",		NULL },
 { 0x49434511, 0xffffffff, "ICE1232",		NULL }, // alias VIA VT1611A?
+{ 0x49544520, 0xffffffff, "IT2226E",		NULL },
 { 0x4e534300, 0xffffffff, "LM4540/43/45/46/48",	NULL }, // only guess --jk
 { 0x4e534331, 0xffffffff, "LM4549",		NULL },
 { 0x53494c22, 0xffffffff, "Si3036",		NULL },
@@ -181,6 +183,9 @@
 
 static int snd_ac97_valid_reg(ac97_t *ac97, unsigned short reg)
 {
+	if (ac97->limited_regs && ! test_bit(reg, ac97->reg_accessed))
+  		return 0;
+
 	/* filter some registers for buggy codecs */
 	switch (ac97->id) {
 	case AC97_ID_AK4540:
@@ -242,8 +247,6 @@
 
 static void snd_ac97_write_cache_test(ac97_t *ac97, unsigned short reg, unsigned short value)
 {
-	if (ac97->limited_regs && ! test_bit(reg, ac97->reg_accessed))
-  		return;
 #if 0
 	if (!snd_ac97_valid_reg(ac97, reg))
 		return;
@@ -361,9 +364,9 @@
 }
 
 #define AC97_ENUM_DOUBLE(xname, reg, shift, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_ac97_info_enum_double, \
-  get: snd_ac97_get_enum_double, put: snd_ac97_put_enum_double, \
-  private_value: reg | (shift << 8) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_ac97_info_enum_double, \
+  .get = snd_ac97_get_enum_double, .put = snd_ac97_put_enum_double, \
+  .private_value = reg | (shift << 8) | (invert << 24) }
 
 static int snd_ac97_info_enum_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -423,9 +426,9 @@
 }
 
 #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: reg | (shift << 8) | (mask << 16) | (invert << 24) }
+{ .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 = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_ac97_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -468,9 +471,9 @@
 }
 
 #define AC97_DOUBLE(xname, reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: (xname), info: snd_ac97_info_double, \
-  get: snd_ac97_get_double, put: snd_ac97_put_double, \
-  private_value: reg | (shift_left << 8) | (shift_right << 12) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = (xname), .info = snd_ac97_info_double, \
+  .get = snd_ac97_get_double, .put = snd_ac97_put_double, \
+  .private_value = reg | (shift_left << 8) | (shift_right << 12) | (mask << 16) | (invert << 24) }
 
 static int snd_ac97_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -757,25 +760,25 @@
 
 static const snd_kcontrol_new_t snd_ac97_controls_spdif[5] = {
 	{
-		access: SNDRV_CTL_ELEM_ACCESS_READ,
-		iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-		name: SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
-		info: snd_ac97_spdif_mask_info,
-		get: snd_ac97_spdif_cmask_get,
+		.access = SNDRV_CTL_ELEM_ACCESS_READ,
+		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+		.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
+		.info = snd_ac97_spdif_mask_info,
+		.get = snd_ac97_spdif_cmask_get,
 	},
 	{
-		access: SNDRV_CTL_ELEM_ACCESS_READ,
-		iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-		name: SNDRV_CTL_NAME_IEC958("",PLAYBACK,PRO_MASK),
-		info: snd_ac97_spdif_mask_info,
-		get: snd_ac97_spdif_pmask_get,
+		.access = SNDRV_CTL_ELEM_ACCESS_READ,
+		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+		.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PRO_MASK),
+		.info = snd_ac97_spdif_mask_info,
+		.get = snd_ac97_spdif_pmask_get,
 	},
 	{
-		iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-		name: SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
-		info: snd_ac97_spdif_mask_info,
-		get: snd_ac97_spdif_default_get,
-		put: snd_ac97_spdif_default_put,
+		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+		.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
+		.info = snd_ac97_spdif_mask_info,
+		.get = snd_ac97_spdif_default_get,
+		.put = snd_ac97_spdif_default_put,
 	},
 
 	AC97_SINGLE(SNDRV_CTL_NAME_IEC958("",PLAYBACK,SWITCH),AC97_EXTENDED_STATUS, 2, 1, 0),
@@ -792,9 +795,9 @@
 };
 
 #define AD18XX_PCM_BITS(xname, codec, shift, mask) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_ac97_ad18xx_pcm_info_bits, \
-  get: snd_ac97_ad18xx_pcm_get_bits, put: snd_ac97_ad18xx_pcm_put_bits, \
-  private_value: codec | (shift << 8) | (mask << 16) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_ac97_ad18xx_pcm_info_bits, \
+  .get = snd_ac97_ad18xx_pcm_get_bits, .put = snd_ac97_ad18xx_pcm_put_bits, \
+  .private_value = codec | (shift << 8) | (mask << 16) }
 
 static int snd_ac97_ad18xx_pcm_info_bits(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -831,9 +834,9 @@
 }
 
 #define AD18XX_PCM_VOLUME(xname, codec) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_ac97_ad18xx_pcm_info_volume, \
-  get: snd_ac97_ad18xx_pcm_get_volume, put: snd_ac97_ad18xx_pcm_put_volume, \
-  private_value: codec }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_ac97_ad18xx_pcm_info_volume, \
+  .get = snd_ac97_ad18xx_pcm_get_volume, .put = snd_ac97_ad18xx_pcm_put_volume, \
+  .private_value = codec }
 
 static int snd_ac97_ad18xx_pcm_info_volume(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -911,7 +914,7 @@
 {
 	unsigned short val, mask = 0x8000;
 
-	if (ac97->limited_regs && ! test_bit(reg, ac97->reg_accessed))
+	if (! snd_ac97_valid_reg(ac97, reg))
 		return 0;
 
 	switch (reg) {
@@ -1452,7 +1455,7 @@
 	char name[64];
 	signed long end_time;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_ac97_dev_free,
+		.dev_free =	snd_ac97_dev_free,
 	};
 
 	snd_assert(rac97 != NULL, return -EINVAL);
@@ -1752,10 +1755,7 @@
 	int reg, val;
 
 	for (reg = 0; reg < 0x80; reg += 2) {
-		if (ac97->limited_regs && ! test_bit(reg, ac97->reg_accessed))
-			val = 0xffff;
-		else
-			val = snd_ac97_read(ac97, reg);
+		val = snd_ac97_read(ac97, reg);
 		snd_iprintf(buffer, "%i:%02x = %04x\n", subidx, reg, val);
 	}
 }
diff -Nru a/sound/pci/als4000.c b/sound/pci/als4000.c
--- a/sound/pci/als4000.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/als4000.c	Tue Oct  1 17:06:28 2002
@@ -372,40 +372,40 @@
 
 static snd_pcm_hardware_t snd_als4000_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 |
+	.formats =		SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 |
 				SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE,	/* formats */
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0
 };
 
 static snd_pcm_hardware_t snd_als4000_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 |
+	.formats =		SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U8 |
 				SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_U16_LE,	/* formats */
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0
 };
 
 /*****************************************************************/
@@ -451,25 +451,25 @@
 /******************************************************************/
 
 static snd_pcm_ops_t snd_als4000_playback_ops = {
-	open:		snd_als4000_playback_open,
-	close:		snd_als4000_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_als4000_hw_params,
-	hw_free:	snd_als4000_hw_free,
-	prepare:	snd_als4000_playback_prepare,
-	trigger:	snd_als4000_playback_trigger,
-	pointer:	snd_als4000_playback_pointer
+	.open =		snd_als4000_playback_open,
+	.close =	snd_als4000_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_als4000_hw_params,
+	.hw_free =	snd_als4000_hw_free,
+	.prepare =	snd_als4000_playback_prepare,
+	.trigger =	snd_als4000_playback_trigger,
+	.pointer =	snd_als4000_playback_pointer
 };
 
 static snd_pcm_ops_t snd_als4000_capture_ops = {
-	open:		snd_als4000_capture_open,
-	close:		snd_als4000_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_als4000_hw_params,
-	hw_free:	snd_als4000_hw_free,
-	prepare:	snd_als4000_capture_prepare,
-	trigger:	snd_als4000_capture_trigger,
-	pointer:	snd_als4000_capture_pointer
+	.open =		snd_als4000_capture_open,
+	.close =	snd_als4000_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_als4000_hw_params,
+	.hw_free =	snd_als4000_hw_free,
+	.prepare =	snd_als4000_capture_prepare,
+	.trigger =	snd_als4000_capture_trigger,
+	.pointer =	snd_als4000_capture_pointer
 };
 
 static void snd_als4000_pcm_free(snd_pcm_t *pcm)
@@ -679,10 +679,10 @@
 }
 
 static struct pci_driver driver = {
-	name: "ALS4000",
-	id_table: snd_als4000_ids,
-	probe: snd_card_als4k_probe,
-	remove: __devexit_p(snd_card_als4k_remove),
+	.name = "ALS4000",
+	.id_table = snd_als4000_ids,
+	.probe = snd_card_als4k_probe,
+	.remove = __devexit_p(snd_card_als4k_remove),
 };
 
 static int __init alsa_card_als4k_init(void)
diff -Nru a/sound/pci/cmipci.c b/sound/pci/cmipci.c
--- a/sound/pci/cmipci.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/cmipci.c	Tue Oct  1 17:06:28 2002
@@ -531,14 +531,14 @@
 
 static unsigned int hw_channels[] = {1, 2, 4, 5, 6};
 static snd_pcm_hw_constraint_list_t hw_constraints_channels_4 = {
-	count: 3,
-	list: hw_channels,
-	mask: 0,
+	.count = 3,
+	.list = hw_channels,
+	.mask = 0,
 };
 static snd_pcm_hw_constraint_list_t hw_constraints_channels_6 = {
-	count: 5,
-	list: hw_channels,
-	mask: 0,
+	.count = 5,
+	.list = hw_channels,
+	.mask = 0,
 };
 
 static int set_dac_channels(cmipci_t *cm, cmipci_pcm_t *rec, int channels)
@@ -943,11 +943,11 @@
 
 static snd_kcontrol_new_t snd_cmipci_spdif_default __devinitdata =
 {
-	iface:		SNDRV_CTL_ELEM_IFACE_PCM,
-	name:           SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
-	info:		snd_cmipci_spdif_default_info,
-	get:		snd_cmipci_spdif_default_get,
-	put:		snd_cmipci_spdif_default_put
+	.iface =	SNDRV_CTL_ELEM_IFACE_PCM,
+	.name =		SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
+	.info =		snd_cmipci_spdif_default_info,
+	.get =		snd_cmipci_spdif_default_get,
+	.put =		snd_cmipci_spdif_default_put
 };
 
 static int snd_cmipci_spdif_mask_info(snd_kcontrol_t *kcontrol,
@@ -970,11 +970,11 @@
 
 static snd_kcontrol_new_t snd_cmipci_spdif_mask __devinitdata =
 {
-	access:		SNDRV_CTL_ELEM_ACCESS_READ,
-	iface:		SNDRV_CTL_ELEM_IFACE_MIXER,
-	name:           SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
-	info:		snd_cmipci_spdif_mask_info,
-	get:		snd_cmipci_spdif_mask_get,
+	.access =	SNDRV_CTL_ELEM_ACCESS_READ,
+	.iface =	SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name =		SNDRV_CTL_NAME_IEC958("",PLAYBACK,CON_MASK),
+	.info =		snd_cmipci_spdif_mask_info,
+	.get =		snd_cmipci_spdif_mask_get,
 };
 
 static int snd_cmipci_spdif_stream_info(snd_kcontrol_t *kcontrol,
@@ -1019,12 +1019,12 @@
 
 static snd_kcontrol_new_t snd_cmipci_spdif_stream __devinitdata =
 {
-	access:		SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
-	iface:		SNDRV_CTL_ELEM_IFACE_PCM,
-	name:           SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
-	info:		snd_cmipci_spdif_stream_info,
-	get:		snd_cmipci_spdif_stream_get,
-	put:		snd_cmipci_spdif_stream_put
+	.access =	SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
+	.iface =	SNDRV_CTL_ELEM_IFACE_PCM,
+	.name =		SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
+	.info =		snd_cmipci_spdif_stream_info,
+	.get =		snd_cmipci_spdif_stream_get,
+	.put =		snd_cmipci_spdif_stream_put
 };
 
 /*
@@ -1284,100 +1284,100 @@
 /* playback on channel A */
 static snd_pcm_hardware_t snd_cmipci_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5512,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		2,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5512,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		2,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /* capture on channel B */
 static snd_pcm_hardware_t snd_cmipci_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5512,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		2,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5512,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		2,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /* playback on channel B - stereo 16bit only? */
 static snd_pcm_hardware_t snd_cmipci_playback2 =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		5512,
-	rate_max:		48000,
-	channels_min:		2,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		2,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_5512 | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		5512,
+	.rate_max =		48000,
+	.channels_min =		2,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		2,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /* spdif playback on channel A */
 static snd_pcm_hardware_t snd_cmipci_playback_spdif =
 {
-	info:			(SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER),
-	formats:		SNDRV_PCM_FMTBIT_S16_LE /*| SNDRV_PCM_FMTBIT_S32_LE*/,
-	rates:			SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
-	rate_min:		44100,
-	rate_max:		48000,
-	channels_min:		2,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		2,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_S16_LE /*| SNDRV_PCM_FMTBIT_S32_LE*/,
+	.rates =		SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
+	.rate_min =		44100,
+	.rate_max =		48000,
+	.channels_min =		2,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		2,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /* spdif capture on channel B */
 static snd_pcm_hardware_t snd_cmipci_capture_spdif =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:	        SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
-	rate_min:		44100,
-	rate_max:		48000,
-	channels_min:		2,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		2,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =	        SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000,
+	.rate_min =		44100,
+	.rate_max =		48000,
+	.channels_min =		2,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		2,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 /*
@@ -1556,62 +1556,62 @@
  */
 
 static snd_pcm_ops_t snd_cmipci_playback_ops = {
-	open:		snd_cmipci_playback_open,
-	close:		snd_cmipci_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cmipci_hw_params,
-	hw_free:	snd_cmipci_playback_hw_free,
-	prepare:	snd_cmipci_playback_prepare,
-	trigger:	snd_cmipci_playback_trigger,
-	pointer:	snd_cmipci_playback_pointer,
+	.open =		snd_cmipci_playback_open,
+	.close =	snd_cmipci_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cmipci_hw_params,
+	.hw_free =	snd_cmipci_playback_hw_free,
+	.prepare =	snd_cmipci_playback_prepare,
+	.trigger =	snd_cmipci_playback_trigger,
+	.pointer =	snd_cmipci_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_cmipci_capture_ops = {
-	open:		snd_cmipci_capture_open,
-	close:		snd_cmipci_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cmipci_hw_params,
-	hw_free:	snd_cmipci_hw_free,
-	prepare:	snd_cmipci_capture_prepare,
-	trigger:	snd_cmipci_capture_trigger,
-	pointer:	snd_cmipci_capture_pointer,
+	.open =		snd_cmipci_capture_open,
+	.close =	snd_cmipci_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cmipci_hw_params,
+	.hw_free =	snd_cmipci_hw_free,
+	.prepare =	snd_cmipci_capture_prepare,
+	.trigger =	snd_cmipci_capture_trigger,
+	.pointer =	snd_cmipci_capture_pointer,
 };
 
 static snd_pcm_ops_t snd_cmipci_playback2_ops = {
-	open:		snd_cmipci_playback2_open,
-	close:		snd_cmipci_playback2_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cmipci_hw_params,
-	hw_free:	snd_cmipci_hw_free,
-	prepare:	snd_cmipci_capture_prepare,	/* channel B */
-	trigger:	snd_cmipci_capture_trigger,	/* channel B */
-	pointer:	snd_cmipci_capture_pointer,	/* channel B */
+	.open =		snd_cmipci_playback2_open,
+	.close =	snd_cmipci_playback2_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cmipci_hw_params,
+	.hw_free =	snd_cmipci_hw_free,
+	.prepare =	snd_cmipci_capture_prepare,	/* channel B */
+	.trigger =	snd_cmipci_capture_trigger,	/* channel B */
+	.pointer =	snd_cmipci_capture_pointer,	/* channel B */
 };
 
 static snd_pcm_ops_t snd_cmipci_playback_spdif_ops = {
-	open:		snd_cmipci_playback_spdif_open,
-	close:		snd_cmipci_playback_spdif_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cmipci_hw_params,
-	hw_free:	snd_cmipci_playback_hw_free,
-	prepare:	snd_cmipci_playback_spdif_prepare,	/* set up rate */
-	trigger:	snd_cmipci_playback_trigger,
-	pointer:	snd_cmipci_playback_pointer,
+	.open =		snd_cmipci_playback_spdif_open,
+	.close =	snd_cmipci_playback_spdif_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cmipci_hw_params,
+	.hw_free =	snd_cmipci_playback_hw_free,
+	.prepare =	snd_cmipci_playback_spdif_prepare,	/* set up rate */
+	.trigger =	snd_cmipci_playback_trigger,
+	.pointer =	snd_cmipci_playback_pointer,
 #ifdef DO_SOFT_AC3
-	copy:		snd_cmipci_ac3_copy,
-	silence:	snd_cmipci_ac3_silence,
+	.copy =		snd_cmipci_ac3_copy,
+	.silence =	snd_cmipci_ac3_silence,
 #endif
 };
 
 static snd_pcm_ops_t snd_cmipci_capture_spdif_ops = {
-	open:		snd_cmipci_capture_spdif_open,
-	close:		snd_cmipci_capture_spdif_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cmipci_hw_params,
-	hw_free:	snd_cmipci_capture_spdif_hw_free,
-	prepare:	snd_cmipci_capture_spdif_prepare,
-	trigger:	snd_cmipci_capture_trigger,
-	pointer:	snd_cmipci_capture_pointer,
+	.open =		snd_cmipci_capture_spdif_open,
+	.close =	snd_cmipci_capture_spdif_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cmipci_hw_params,
+	.hw_free =	snd_cmipci_capture_spdif_hw_free,
+	.prepare =	snd_cmipci_capture_spdif_prepare,
+	.trigger =	snd_cmipci_capture_trigger,
+	.pointer =	snd_cmipci_capture_pointer,
 };
 
 
@@ -1730,10 +1730,10 @@
  ((lreg) | ((rreg) << 8) | (lshift << 16) | (rshift << 19) | (mask << 24) | (invert << 22) | (stereo << 23))
 
 #define CMIPCI_DOUBLE(xname, left_reg, right_reg, left_shift, right_shift, mask, invert, stereo) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, \
-  info: snd_cmipci_info_volume, \
-  get: snd_cmipci_get_volume, put: snd_cmipci_put_volume, \
-  private_value: COMPOSE_SB_REG(left_reg, right_reg, left_shift, right_shift, mask, invert, stereo), \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
+  .info = snd_cmipci_info_volume, \
+  .get = snd_cmipci_get_volume, .put = snd_cmipci_put_volume, \
+  .private_value = COMPOSE_SB_REG(left_reg, right_reg, left_shift, right_shift, mask, invert, stereo), \
 }
 
 #define CMIPCI_SB_VOL_STEREO(xname,reg,shift,mask) CMIPCI_DOUBLE(xname, reg, reg+1, shift, shift, mask, 0, 1)
@@ -1830,10 +1830,10 @@
  * input route (left,right) -> (left,right)
  */
 #define CMIPCI_SB_INPUT_SW(xname, left_shift, right_shift) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, \
-  info: snd_cmipci_info_input_sw, \
-  get: snd_cmipci_get_input_sw, put: snd_cmipci_put_input_sw, \
-  private_value: COMPOSE_SB_REG(SB_DSP4_INPUT_LEFT, SB_DSP4_INPUT_RIGHT, left_shift, right_shift, 1, 0, 1), \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
+  .info = snd_cmipci_info_input_sw, \
+  .get = snd_cmipci_get_input_sw, .put = snd_cmipci_put_input_sw, \
+  .private_value = COMPOSE_SB_REG(SB_DSP4_INPUT_LEFT, SB_DSP4_INPUT_RIGHT, left_shift, right_shift, 1, 0, 1), \
 }
 
 static int snd_cmipci_info_input_sw(snd_kcontrol_t * kcontrol, snd_ctl_elem_info_t * uinfo)
@@ -1894,31 +1894,31 @@
  */
 
 #define CMIPCI_MIXER_SW_STEREO(xname, reg, lshift, rshift, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, \
-  info: snd_cmipci_info_native_mixer, \
-  get: snd_cmipci_get_native_mixer, put: snd_cmipci_put_native_mixer, \
-  private_value: COMPOSE_SB_REG(reg, reg, lshift, rshift, 1, invert, 1), \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
+  .info = snd_cmipci_info_native_mixer, \
+  .get = snd_cmipci_get_native_mixer, .put = snd_cmipci_put_native_mixer, \
+  .private_value = COMPOSE_SB_REG(reg, reg, lshift, rshift, 1, invert, 1), \
 }
 
 #define CMIPCI_MIXER_SW_MONO(xname, reg, shift, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, \
-  info: snd_cmipci_info_native_mixer, \
-  get: snd_cmipci_get_native_mixer, put: snd_cmipci_put_native_mixer, \
-  private_value: COMPOSE_SB_REG(reg, reg, shift, shift, 1, invert, 0), \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
+  .info = snd_cmipci_info_native_mixer, \
+  .get = snd_cmipci_get_native_mixer, .put = snd_cmipci_put_native_mixer, \
+  .private_value = COMPOSE_SB_REG(reg, reg, shift, shift, 1, invert, 0), \
 }
 
 #define CMIPCI_MIXER_VOL_STEREO(xname, reg, lshift, rshift, mask) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, \
-  info: snd_cmipci_info_native_mixer, \
-  get: snd_cmipci_get_native_mixer, put: snd_cmipci_put_native_mixer, \
-  private_value: COMPOSE_SB_REG(reg, reg, lshift, rshift, mask, 0, 1), \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
+  .info = snd_cmipci_info_native_mixer, \
+  .get = snd_cmipci_get_native_mixer, .put = snd_cmipci_put_native_mixer, \
+  .private_value = COMPOSE_SB_REG(reg, reg, lshift, rshift, mask, 0, 1), \
 }
 
 #define CMIPCI_MIXER_VOL_MONO(xname, reg, shift, mask) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, \
-  info: snd_cmipci_info_native_mixer, \
-  get: snd_cmipci_get_native_mixer, put: snd_cmipci_put_native_mixer, \
-  private_value: COMPOSE_SB_REG(reg, reg, shift, shift, mask, 0, 0), \
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, \
+  .info = snd_cmipci_info_native_mixer, \
+  .get = snd_cmipci_get_native_mixer, .put = snd_cmipci_put_native_mixer, \
+  .private_value = COMPOSE_SB_REG(reg, reg, shift, shift, mask, 0, 0), \
 }
 
 static int snd_cmipci_info_native_mixer(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
@@ -2013,12 +2013,12 @@
 	CMIPCI_SB_VOL_STEREO("PCM Playback Volume", SB_DSP4_PCM_DEV, 3, 31),
 	//CMIPCI_MIXER_SW_MONO("PCM Playback Switch", CM_REG_MIXER1, CM_WSMUTE_SHIFT, 1),
 	{ /* switch with sensitivity */
-		iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-		name: "PCM Playback Switch",
-		info: snd_cmipci_info_native_mixer,
-		get: snd_cmipci_get_native_mixer_sensitive,
-		put: snd_cmipci_put_native_mixer_sensitive,
-		private_value: COMPOSE_SB_REG(CM_REG_MIXER1, CM_REG_MIXER1, CM_WSMUTE_SHIFT, CM_WSMUTE_SHIFT, 1, 1, 0),
+		.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+		.name = "PCM Playback Switch",
+		.info = snd_cmipci_info_native_mixer,
+		.get = snd_cmipci_get_native_mixer_sensitive,
+		.put = snd_cmipci_put_native_mixer_sensitive,
+		.private_value = COMPOSE_SB_REG(CM_REG_MIXER1, CM_REG_MIXER1, CM_WSMUTE_SHIFT, CM_WSMUTE_SHIFT, 1, 1, 0),
 	},
 	CMIPCI_MIXER_SW_STEREO("PCM Capture Switch", CM_REG_MIXER1, CM_WAVEINL_SHIFT, CM_WAVEINR_SHIFT, 0),
 	CMIPCI_SB_VOL_STEREO("Synth Playback Volume", SB_DSP4_SYNTH_DEV, 3, 31),
@@ -2132,11 +2132,11 @@
 
 #define DEFINE_SWITCH_ARG(sname, xreg, xmask, xmask_on, xis_byte, xac3) \
 static snd_cmipci_switch_args_t cmipci_switch_arg_##sname = { \
-  reg: xreg, \
-  mask: xmask, \
-  mask_on: xmask_on, \
-  is_byte: xis_byte, \
-  ac3_sensitive: xac3, \
+  .reg = xreg, \
+  .mask = xmask, \
+  .mask_on = xmask_on, \
+  .is_byte = xis_byte, \
+  .ac3_sensitive = xac3, \
 }
 	
 #define DEFINE_BIT_SWITCH_ARG(sname, xreg, xmask, xis_byte, xac3) \
@@ -2172,12 +2172,12 @@
 DEFINE_SWITCH_ARG(modem, CM_REG_MISC_CTRL, CM_FLINKON|CM_FLINKOFF, CM_FLINKON, 0, 0);
 
 #define DEFINE_SWITCH(sname, stype, sarg) \
-{ name: sname, \
-  iface: stype, \
-  info: snd_cmipci_uswitch_info, \
-  get: snd_cmipci_uswitch_get, \
-  put: snd_cmipci_uswitch_put, \
-  private_value: (unsigned long)&cmipci_switch_arg_##sarg,\
+{ .name = sname, \
+  .iface = stype, \
+  .info = snd_cmipci_uswitch_info, \
+  .get = snd_cmipci_uswitch_get, \
+  .put = snd_cmipci_uswitch_put, \
+  .private_value = (unsigned long)&cmipci_switch_arg_##sarg,\
 }
 
 #define DEFINE_CARD_SWITCH(sname, sarg) DEFINE_SWITCH(sname, SNDRV_CTL_ELEM_IFACE_CARD, sarg)
@@ -2232,11 +2232,11 @@
 	DEFINE_MIXER_SWITCH("IEC958 Out To DAC", spdo2dac),
 #endif
 	// DEFINE_MIXER_SWITCH("IEC958 Output Switch", spdif_enable),
-	{ name: "IEC958 Output Switch",
-	  iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	  info: snd_cmipci_uswitch_info,
-	  get: snd_cmipci_spdout_enable_get,
-	  put: snd_cmipci_spdout_enable_put,
+	{ .name = "IEC958 Output Switch",
+	  .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	  .info = snd_cmipci_uswitch_info,
+	  .get = snd_cmipci_spdout_enable_get,
+	  .put = snd_cmipci_spdout_enable_put,
 	},
 	DEFINE_MIXER_SWITCH("IEC958 In Valid", spdi_valid),
 	DEFINE_MIXER_SWITCH("IEC958 Copyright", spdif_copyright),
@@ -2743,10 +2743,10 @@
 
 
 static struct pci_driver driver = {
-	name: "C-Media PCI",
-	id_table: snd_cmipci_ids,
-	probe: snd_cmipci_probe,
-	remove: __devexit_p(snd_cmipci_remove),
+	.name = "C-Media PCI",
+	.id_table = snd_cmipci_ids,
+	.probe = snd_cmipci_probe,
+	.remove = __devexit_p(snd_cmipci_remove),
 };
 	
 static int __init alsa_card_cmipci_init(void)
diff -Nru a/sound/pci/cs4281.c b/sound/pci/cs4281.c
--- a/sound/pci/cs4281.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/cs4281.c	Tue Oct  1 17:06:28 2002
@@ -890,52 +890,52 @@
 
 static snd_pcm_hardware_t snd_cs4281_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP |
+	.info =			(SNDRV_PCM_INFO_MMAP |
 				 SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID |
 				 SNDRV_PCM_INFO_PAUSE |
 				 SNDRV_PCM_INFO_SYNC_START),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 |
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 |
 				SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_S16_LE |
 				SNDRV_PCM_FMTBIT_U16_BE | SNDRV_PCM_FMTBIT_S16_BE |
 				SNDRV_PCM_FMTBIT_U32_LE | SNDRV_PCM_FMTBIT_S32_LE |
 				SNDRV_PCM_FMTBIT_U32_BE | SNDRV_PCM_FMTBIT_S32_BE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(512*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(512*1024),
-	periods_min:		1,
-	periods_max:		2,
-	fifo_size:		CS4281_FIFO_SIZE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(512*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(512*1024),
+	.periods_min =		1,
+	.periods_max =		2,
+	.fifo_size =		CS4281_FIFO_SIZE,
 };
 
 static snd_pcm_hardware_t snd_cs4281_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP |
+	.info =			(SNDRV_PCM_INFO_MMAP |
 				 SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_MMAP_VALID |
 				 SNDRV_PCM_INFO_PAUSE |
 				 SNDRV_PCM_INFO_SYNC_START),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 |
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S8 |
 				SNDRV_PCM_FMTBIT_U16_LE | SNDRV_PCM_FMTBIT_S16_LE |
 				SNDRV_PCM_FMTBIT_U16_BE | SNDRV_PCM_FMTBIT_S16_BE |
 				SNDRV_PCM_FMTBIT_U32_LE | SNDRV_PCM_FMTBIT_S32_LE |
 				SNDRV_PCM_FMTBIT_U32_BE | SNDRV_PCM_FMTBIT_S32_BE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(512*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(512*1024),
-	periods_min:		1,
-	periods_max:		2,
-	fifo_size:		CS4281_FIFO_SIZE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(512*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(512*1024),
+	.periods_min =		1,
+	.periods_max =		2,
+	.fifo_size =		CS4281_FIFO_SIZE,
 };
 
 static int snd_cs4281_playback_open(snd_pcm_substream_t * substream)
@@ -995,25 +995,25 @@
 }
 
 static snd_pcm_ops_t snd_cs4281_playback_ops = {
-	open:		snd_cs4281_playback_open,
-	close:		snd_cs4281_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cs4281_hw_params,
-	hw_free:	snd_cs4281_hw_free,
-	prepare:	snd_cs4281_playback_prepare,
-	trigger:	snd_cs4281_trigger,
-	pointer:	snd_cs4281_pointer,
+	.open =		snd_cs4281_playback_open,
+	.close =	snd_cs4281_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cs4281_hw_params,
+	.hw_free =	snd_cs4281_hw_free,
+	.prepare =	snd_cs4281_playback_prepare,
+	.trigger =	snd_cs4281_trigger,
+	.pointer =	snd_cs4281_pointer,
 };
 
 static snd_pcm_ops_t snd_cs4281_capture_ops = {
-	open:		snd_cs4281_capture_open,
-	close:		snd_cs4281_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_cs4281_hw_params,
-	hw_free:	snd_cs4281_hw_free,
-	prepare:	snd_cs4281_capture_prepare,
-	trigger:	snd_cs4281_trigger,
-	pointer:	snd_cs4281_pointer,
+	.open =		snd_cs4281_capture_open,
+	.close =	snd_cs4281_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_cs4281_hw_params,
+	.hw_free =	snd_cs4281_hw_free,
+	.prepare =	snd_cs4281_capture_prepare,
+	.trigger =	snd_cs4281_trigger,
+	.pointer =	snd_cs4281_pointer,
 };
 
 static void snd_cs4281_pcm_free(snd_pcm_t *pcm)
@@ -1106,22 +1106,22 @@
 
 static snd_kcontrol_new_t snd_cs4281_fm_vol = 
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Synth Playback Volume",
-	info: snd_cs4281_info_volume, 
-	get: snd_cs4281_get_volume,
-	put: snd_cs4281_put_volume, 
-	private_value: ((BA0_FMLVC << 16) | BA0_FMRVC),
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Synth Playback Volume",
+	.info = snd_cs4281_info_volume, 
+	.get = snd_cs4281_get_volume,
+	.put = snd_cs4281_put_volume, 
+	.private_value = ((BA0_FMLVC << 16) | BA0_FMRVC),
 };
 
 static snd_kcontrol_new_t snd_cs4281_pcm_vol = 
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "PCM Stream Playback Volume",
-	info: snd_cs4281_info_volume, 
-	get: snd_cs4281_get_volume,
-	put: snd_cs4281_put_volume, 
-	private_value: ((BA0_PPLVC << 16) | BA0_PPRVC),
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "PCM Stream Playback Volume",
+	.info = snd_cs4281_info_volume, 
+	.get = snd_cs4281_get_volume,
+	.put = snd_cs4281_put_volume, 
+	.private_value = ((BA0_PPLVC << 16) | BA0_PPRVC),
 };
 
 static void snd_cs4281_mixer_free_ac97(ac97_t *ac97)
@@ -1232,11 +1232,11 @@
 }
 
 static struct snd_info_entry_ops snd_cs4281_proc_ops_BA0 = {
-	read: snd_cs4281_BA0_read,
+	.read = snd_cs4281_BA0_read,
 };
 
 static struct snd_info_entry_ops snd_cs4281_proc_ops_BA1 = {
-	read: snd_cs4281_BA1_read,
+	.read = snd_cs4281_BA1_read,
 };
 
 static void __devinit snd_cs4281_proc_init(cs4281_t * chip)
@@ -1456,7 +1456,7 @@
 	unsigned int tmp;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_cs4281_dev_free,
+		.dev_free =	snd_cs4281_dev_free,
 	};
 
 	*rchip = NULL;
@@ -1878,16 +1878,16 @@
 
 static snd_rawmidi_ops_t snd_cs4281_midi_output =
 {
-	open:           snd_cs4281_midi_output_open,
-	close:          snd_cs4281_midi_output_close,
-	trigger:        snd_cs4281_midi_output_trigger,
+	.open =		snd_cs4281_midi_output_open,
+	.close =	snd_cs4281_midi_output_close,
+	.trigger =	snd_cs4281_midi_output_trigger,
 };
 
 static snd_rawmidi_ops_t snd_cs4281_midi_input =
 {
-	open:           snd_cs4281_midi_input_open,
-	close:          snd_cs4281_midi_input_close,
-	trigger:        snd_cs4281_midi_input_trigger,
+	.open = 	snd_cs4281_midi_input_open,
+	.close =	snd_cs4281_midi_input_close,
+	.trigger =	snd_cs4281_midi_input_trigger,
 };
 
 static int __devinit snd_cs4281_midi(cs4281_t * chip, int device, snd_rawmidi_t **rrawmidi)
@@ -2212,13 +2212,13 @@
 #endif /* CONFIG_PM */
 
 static struct pci_driver driver = {
-	name: "CS4281",
-	id_table: snd_cs4281_ids,
-	probe: snd_cs4281_probe,
-	remove: __devexit_p(snd_cs4281_remove),
+	.name = "CS4281",
+	.id_table = snd_cs4281_ids,
+	.probe = snd_cs4281_probe,
+	.remove = __devexit_p(snd_cs4281_remove),
 #ifdef CONFIG_PM
-	suspend: snd_cs4281_suspend,
-	resume: snd_cs4281_resume,
+	.suspend = snd_cs4281_suspend,
+	.resume = snd_cs4281_resume,
 #endif
 };
 	
diff -Nru a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
--- a/sound/pci/cs46xx/cs46xx_lib.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/cs46xx/cs46xx_lib.c	Tue Oct  1 17:06:28 2002
@@ -1869,6 +1869,7 @@
 #endif
 };
 
+#ifdef CONFIG_SND_CS46XX_NEW_DSP
 /* Only available on the Hercules Game Theater XP soundcard */
 static snd_kcontrol_new_t snd_hercules_controls[] __devinitdata = {
 {
@@ -1879,6 +1880,7 @@
 	put: snd_herc_spdif_select_put,
 },
 };
+#endif
 
 int __devinit snd_cs46xx_mixer(cs46xx_t *chip)
 {
@@ -2930,14 +2932,17 @@
 
 static void hercules_mixer_init (cs46xx_t *chip)
 {
+#ifdef CONFIG_SND_CS46XX_NEW_DSP
 	int idx,err;
 	snd_card_t *card = chip->card;
+#endif
 
 	/* set EGPIO to default */
 	hercules_init(chip);
 
 	snd_printdd ("initializing Hercules mixer\n");
 
+#ifdef CONFIG_SND_CS46XX_NEW_DSP
 	for (idx = 0 ; idx < sizeof(snd_hercules_controls) / 
 		     sizeof(snd_hercules_controls[0]) ; idx++) {
 		snd_kcontrol_t *kctl;
@@ -2948,6 +2953,7 @@
 			break;
 		}
 	}
+#endif
 }
 
 #if 0
diff -Nru a/sound/pci/ens1370.c b/sound/pci/ens1370.c
--- a/sound/pci/ens1370.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/ens1370.c	Tue Oct  1 17:06:28 2002
@@ -414,40 +414,40 @@
 static unsigned int snd_es1370_fixed_rates[] =
 	{5512, 11025, 22050, 44100};
 static snd_pcm_hw_constraint_list_t snd_es1370_hw_constraints_rates = {
-	count: 4, 
-	list: snd_es1370_fixed_rates,
-	mask: 0,
+	.count = 4, 
+	.list = snd_es1370_fixed_rates,
+	.mask = 0,
 };
 static ratnum_t es1370_clock = {
-	num: ES_1370_SRCLOCK,
-	den_min: 29, 
-	den_max: 353,
-	den_step: 1,
+	.num = ES_1370_SRCLOCK,
+	.den_min = 29, 
+	.den_max = 353,
+	.den_step = 1,
 };
 static snd_pcm_hw_constraint_ratnums_t snd_es1370_hw_constraints_clock = {
-	nrats: 1,
-	rats: &es1370_clock,
+	.nrats = 1,
+	.rats = &es1370_clock,
 };
 #else
 static ratden_t es1371_dac_clock = {
-	num_min: 3000 * (1 << 15),
-	num_max: 48000 * (1 << 15),
-	num_step: 3000,
-	den: 1 << 15,
+	.num_min = 3000 * (1 << 15),
+	.num_max = 48000 * (1 << 15),
+	.num_step = 3000,
+	.den = 1 << 15,
 };
 static snd_pcm_hw_constraint_ratdens_t snd_es1371_hw_constraints_dac_clock = {
-	nrats: 1,
-	rats: &es1371_dac_clock,
+	.nrats = 1,
+	.rats = &es1371_dac_clock,
 };
 static ratnum_t es1371_adc_clock = {
-	num: 48000 << 15,
-	den_min: 32768, 
-	den_max: 393216,
-	den_step: 1,
+	.num = 48000 << 15,
+	.den_min = 32768, 
+	.den_max = 393216,
+	.den_step = 1,
 };
 static snd_pcm_hw_constraint_ratnums_t snd_es1371_hw_constraints_adc_clock = {
-	nrats: 1,
-	rats: &es1371_adc_clock,
+	.nrats = 1,
+	.rats = &es1371_adc_clock,
 };
 #endif
 static const unsigned int snd_ensoniq_sample_shift[] =
@@ -953,12 +953,12 @@
 
 static snd_pcm_hardware_t snd_ensoniq_playback1 =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID |
 				 SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_SYNC_START),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
-	rates:
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =
 #ifndef CHIP1370
 				SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
 #else
@@ -966,55 +966,55 @@
 				 SNDRV_PCM_RATE_11025 | SNDRV_PCM_RATE_22050 | 
 				 SNDRV_PCM_RATE_44100),
 #endif
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_ensoniq_playback2 =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_PAUSE | 
 				 SNDRV_PCM_INFO_SYNC_START),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static snd_pcm_hardware_t snd_ensoniq_capture =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID | SNDRV_PCM_INFO_SYNC_START),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		4000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	(128*1024),
-	period_bytes_min:	64,
-	period_bytes_max:	(128*1024),
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		0,
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		4000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	(128*1024),
+	.period_bytes_min =	64,
+	.period_bytes_max =	(128*1024),
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		0,
 };
 
 static int snd_ensoniq_playback1_open(snd_pcm_substream_t * substream)
@@ -1114,36 +1114,36 @@
 }
 
 static snd_pcm_ops_t snd_ensoniq_playback1_ops = {
-	open:		snd_ensoniq_playback1_open,
-	close:		snd_ensoniq_playback1_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_ensoniq_hw_params,
-	hw_free:	snd_ensoniq_hw_free,
-	prepare:	snd_ensoniq_playback1_prepare,
-	trigger:	snd_ensoniq_trigger,
-	pointer:	snd_ensoniq_playback1_pointer,
+	.open =		snd_ensoniq_playback1_open,
+	.close =	snd_ensoniq_playback1_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_ensoniq_hw_params,
+	.hw_free =	snd_ensoniq_hw_free,
+	.prepare =	snd_ensoniq_playback1_prepare,
+	.trigger =	snd_ensoniq_trigger,
+	.pointer =	snd_ensoniq_playback1_pointer,
 };
 
 static snd_pcm_ops_t snd_ensoniq_playback2_ops = {
-	open:		snd_ensoniq_playback2_open,
-	close:		snd_ensoniq_playback2_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_ensoniq_hw_params,
-	hw_free:	snd_ensoniq_hw_free,
-	prepare:	snd_ensoniq_playback2_prepare,
-	trigger:	snd_ensoniq_trigger,
-	pointer:	snd_ensoniq_playback2_pointer,
+	.open =		snd_ensoniq_playback2_open,
+	.close =	snd_ensoniq_playback2_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_ensoniq_hw_params,
+	.hw_free =	snd_ensoniq_hw_free,
+	.prepare =	snd_ensoniq_playback2_prepare,
+	.trigger =	snd_ensoniq_trigger,
+	.pointer =	snd_ensoniq_playback2_pointer,
 };
 
 static snd_pcm_ops_t snd_ensoniq_capture_ops = {
-	open:		snd_ensoniq_capture_open,
-	close:		snd_ensoniq_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	hw_params:	snd_ensoniq_hw_params,
-	hw_free:	snd_ensoniq_hw_free,
-	prepare:	snd_ensoniq_capture_prepare,
-	trigger:	snd_ensoniq_trigger,
-	pointer:	snd_ensoniq_capture_pointer,
+	.open =		snd_ensoniq_capture_open,
+	.close =	snd_ensoniq_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.hw_params =	snd_ensoniq_hw_params,
+	.hw_free =	snd_ensoniq_hw_free,
+	.prepare =	snd_ensoniq_capture_prepare,
+	.trigger =	snd_ensoniq_trigger,
+	.pointer =	snd_ensoniq_capture_pointer,
 };
 
 static void snd_ensoniq_pcm_free(snd_pcm_t *pcm)
@@ -1236,8 +1236,8 @@
 #ifdef CHIP1371
 
 #define ES1371_SPDIF(xname) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, info: snd_es1371_spdif_info, \
-  get: snd_es1371_spdif_get, put: snd_es1371_spdif_put }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .info = snd_es1371_spdif_info, \
+  .get = snd_es1371_spdif_get, .put = snd_es1371_spdif_put }
 
 static int snd_es1371_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
 {
@@ -1294,11 +1294,11 @@
 	unsigned short did;		/* device ID */
 	unsigned char rev;		/* revision */
 } es1371_spdif_present[] = {
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_CT5880, rev: CT5880REV_CT5880_C },
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_CT5880, rev: CT5880REV_CT5880_D },
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_CT5880, rev: CT5880REV_CT5880_E },
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_ES1371, rev: ES1371REV_CT5880_A },
-	{ vid: PCI_ANY_ID, did: PCI_ANY_ID, rev: 0 }
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_CT5880, .rev = CT5880REV_CT5880_C },
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_CT5880, .rev = CT5880REV_CT5880_D },
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_CT5880, .rev = CT5880REV_CT5880_E },
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_ES1371, .rev = ES1371REV_CT5880_A },
+	{ .vid = PCI_ANY_ID, .did = PCI_ANY_ID }
 };
 
 static int snd_ensoniq_1371_mixer(ensoniq_t * ensoniq)
@@ -1327,9 +1327,9 @@
 #endif /* CHIP1371 */
 
 #define ENSONIQ_CONTROL(xname, mask) \
-{ iface: SNDRV_CTL_ELEM_IFACE_CARD, name: xname, info: snd_ensoniq_control_info, \
-  get: snd_ensoniq_control_get, put: snd_ensoniq_control_put, \
-  private_value: mask }
+{ .iface = SNDRV_CTL_ELEM_IFACE_CARD, .name = xname, .info = snd_ensoniq_control_info, \
+  .get = snd_ensoniq_control_get, .put = snd_ensoniq_control_put, \
+  .private_value = mask }
 
 static int snd_ensoniq_control_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
 {
@@ -1420,8 +1420,8 @@
 #ifdef CHIP1371
 
 #define ES1371_JOYSTICK_ADDR(xname) \
-{ iface: SNDRV_CTL_ELEM_IFACE_CARD, name: xname, info: snd_es1371_joystick_addr_info, \
-  get: snd_es1371_joystick_addr_get, put: snd_es1371_joystick_addr_put }
+{ .iface = SNDRV_CTL_ELEM_IFACE_CARD, .name = xname, .info = snd_es1371_joystick_addr_info, \
+  .get = snd_es1371_joystick_addr_get, .put = snd_es1371_joystick_addr_put }
 
 static int snd_es1371_joystick_addr_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *uinfo)
 {
@@ -1560,23 +1560,23 @@
 	unsigned short svid;		/* subsystem vendor ID */
 	unsigned short sdid;		/* subsystem device ID */
 } es1371_amplifier_hack[] = {
-	{ svid: 0x107b, sdid: 0x2150 },	/* Gateway Solo 2150 */
-	{ svid: 0x13bd, sdid: 0x100c },	/* EV1938 on Mebius PC-MJ100V */
-	{ svid: 0x1102, sdid: 0x5938 },	/* Targa Xtender300 */
-	{ svid: 0x1102, sdid: 0x8938 }, /* IPC Topnote G notebook */
-	{ svid: PCI_ANY_ID, sdid: PCI_ANY_ID }
+	{ .svid = 0x107b, .sdid = 0x2150 },	/* Gateway Solo 2150 */
+	{ .svid = 0x13bd, .sdid = 0x100c },	/* EV1938 on Mebius PC-MJ100V */
+	{ .svid = 0x1102, .sdid = 0x5938 },	/* Targa Xtender300 */
+	{ .svid = 0x1102, .sdid = 0x8938 },	/* IPC Topnote G notebook */
+	{ .svid = PCI_ANY_ID, .sdid = PCI_ANY_ID }
 };
 static struct {
 	unsigned short vid;		/* vendor ID */
 	unsigned short did;		/* device ID */
 	unsigned char rev;		/* revision */
 } es1371_ac97_reset_hack[] = {
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_CT5880, rev: CT5880REV_CT5880_C },
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_CT5880, rev: CT5880REV_CT5880_D },
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_CT5880, rev: CT5880REV_CT5880_E },
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_ES1371, rev: ES1371REV_CT5880_A },
-	{ vid: PCI_VENDOR_ID_ENSONIQ, did: PCI_DEVICE_ID_ENSONIQ_ES1371, rev: ES1371REV_ES1373_8 },
-	{ vid: PCI_ANY_ID, did: PCI_ANY_ID, rev: 0 }
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_CT5880, .rev = CT5880REV_CT5880_C },
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_CT5880, .rev = CT5880REV_CT5880_D },
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_CT5880, .rev = CT5880REV_CT5880_E },
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_ES1371, .rev = ES1371REV_CT5880_A },
+	{ .vid = PCI_VENDOR_ID_ENSONIQ, .did = PCI_DEVICE_ID_ENSONIQ_ES1371, .rev = ES1371REV_ES1373_8 },
+	{ .vid = PCI_ANY_ID, .did = PCI_ANY_ID }
 };
 #endif
 
@@ -1592,7 +1592,7 @@
 #endif
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_ensoniq_dev_free,
+		.dev_free =	snd_ensoniq_dev_free,
 	};
 
 	*rensoniq = NULL;
@@ -1900,16 +1900,16 @@
 
 static snd_rawmidi_ops_t snd_ensoniq_midi_output =
 {
-	open:           snd_ensoniq_midi_output_open,
-	close:          snd_ensoniq_midi_output_close,
-	trigger:        snd_ensoniq_midi_output_trigger,
+	.open =		snd_ensoniq_midi_output_open,
+	.close =	snd_ensoniq_midi_output_close,
+	.trigger =	snd_ensoniq_midi_output_trigger,
 };
 
 static snd_rawmidi_ops_t snd_ensoniq_midi_input =
 {
-	open:           snd_ensoniq_midi_input_open,
-	close:          snd_ensoniq_midi_input_close,
-	trigger:        snd_ensoniq_midi_input_trigger,
+	.open =		snd_ensoniq_midi_input_open,
+	.close =	snd_ensoniq_midi_input_close,
+	.trigger =	snd_ensoniq_midi_input_trigger,
 };
 
 static int __devinit snd_ensoniq_midi(ensoniq_t * ensoniq, int device, snd_rawmidi_t **rrawmidi)
@@ -2053,10 +2053,10 @@
 }
 
 static struct pci_driver driver = {
-	name: "Ensoniq AudioPCI",
-	id_table: snd_audiopci_ids,
-	probe: snd_audiopci_probe,
-	remove: __devexit_p(snd_audiopci_remove),
+	.name = "Ensoniq AudioPCI",
+	.id_table = snd_audiopci_ids,
+	.probe = snd_audiopci_probe,
+	.remove = __devexit_p(snd_audiopci_remove),
 };
 	
 static int __init alsa_card_ens137x_init(void)
diff -Nru a/sound/pci/es1938.c b/sound/pci/es1938.c
--- a/sound/pci/es1938.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/es1938.c	Tue Oct  1 17:06:28 2002
@@ -454,22 +454,22 @@
 
 static ratnum_t clocks[2] = {
 	{
-		num: 793800,
-		den_min: 1,
-		den_max: 128,
-		den_step: 1,
+		.num = 793800,
+		.den_min = 1,
+		.den_max = 128,
+		.den_step = 1,
 	},
 	{
-		num: 768000,
-		den_min: 1,
-		den_max: 128,
-		den_step: 1,
+		.num = 768000,
+		.den_min = 1,
+		.den_max = 128,
+		.den_step = 1,
 	}
 };
 
 static snd_pcm_hw_constraint_ratnums_t hw_constraints_clocks = {
-	nrats: 2,
-	rats: clocks,
+	.nrats = 2,
+	.rats = clocks,
 };
 
 
@@ -843,20 +843,20 @@
  * ----------------------------------------------------------------------*/
 static snd_pcm_hardware_t snd_es1938_capture =
 {
-	info:			(SNDRV_PCM_INFO_INTERLEAVED |
-				 SNDRV_PCM_INFO_BLOCK_TRANSFER),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U16_LE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		6000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		256,
+	.info =			(SNDRV_PCM_INFO_INTERLEAVED |
+				SNDRV_PCM_INFO_BLOCK_TRANSFER),
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U16_LE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		6000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		256,
 };
 
 /* -----------------------------------------------------------------------
@@ -864,21 +864,21 @@
  * -----------------------------------------------------------------------*/
 static snd_pcm_hardware_t snd_es1938_playback =
 {
-	info:			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
+	.info =			(SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
 				 SNDRV_PCM_INFO_BLOCK_TRANSFER |
 				 SNDRV_PCM_INFO_MMAP_VALID),
-	formats:		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U16_LE,
-	rates:			SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
-	rate_min:		6000,
-	rate_max:		48000,
-	channels_min:		1,
-	channels_max:		2,
-	buffer_bytes_max:	65536,
-	period_bytes_min:	64,
-	period_bytes_max:	65536,
-	periods_min:		1,
-	periods_max:		1024,
-	fifo_size:		256,
+	.formats =		SNDRV_PCM_FMTBIT_U8 | SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S8 | SNDRV_PCM_FMTBIT_U16_LE,
+	.rates =		SNDRV_PCM_RATE_CONTINUOUS | SNDRV_PCM_RATE_8000_48000,
+	.rate_min =		6000,
+	.rate_max =		48000,
+	.channels_min =		1,
+	.channels_max =		2,
+	.buffer_bytes_max =	65536,
+	.period_bytes_min =	64,
+	.period_bytes_max =	65536,
+	.periods_min =		1,
+	.periods_max =		1024,
+	.fifo_size =		256,
 };
 
 static int snd_es1938_capture_open(snd_pcm_substream_t * substream)
@@ -958,22 +958,22 @@
 }
 
 static snd_pcm_ops_t snd_es1938_playback_ops = {
-	open:		snd_es1938_playback_open,
-	close:		snd_es1938_playback_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	prepare:	snd_es1938_playback_prepare,
-	trigger:	snd_es1938_playback_trigger,
-	pointer:	snd_es1938_playback_pointer,
+	.open =		snd_es1938_playback_open,
+	.close =	snd_es1938_playback_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.prepare =	snd_es1938_playback_prepare,
+	.trigger =	snd_es1938_playback_trigger,
+	.pointer =	snd_es1938_playback_pointer,
 };
 
 static snd_pcm_ops_t snd_es1938_capture_ops = {
-	open:		snd_es1938_capture_open,
-	close:		snd_es1938_capture_close,
-	ioctl:		snd_pcm_lib_ioctl,
-	prepare:	snd_es1938_capture_prepare,
-	trigger:	snd_es1938_capture_trigger,
-	pointer:	snd_es1938_capture_pointer,
-	copy:		snd_es1938_capture_copy,
+	.open =		snd_es1938_capture_open,
+	.close =	snd_es1938_capture_close,
+	.ioctl =	snd_pcm_lib_ioctl,
+	.prepare =	snd_es1938_capture_prepare,
+	.trigger =	snd_es1938_capture_trigger,
+	.pointer =	snd_es1938_capture_pointer,
+	.copy =		snd_es1938_capture_copy,
 };
 
 static void snd_es1938_free_pcm(snd_pcm_t *pcm)
@@ -1136,10 +1136,10 @@
 }
 
 #define ES1938_SINGLE(xname, xindex, reg, shift, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_es1938_info_single, \
-  get: snd_es1938_get_single, put: snd_es1938_put_single, \
-  private_value: reg | (shift << 8) | (mask << 16) | (invert << 24) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_es1938_info_single, \
+  .get = snd_es1938_get_single, .put = snd_es1938_put_single, \
+  .private_value = reg | (shift << 8) | (mask << 16) | (invert << 24) }
 
 static int snd_es1938_info_single(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -1186,10 +1186,10 @@
 }
 
 #define ES1938_DOUBLE(xname, xindex, left_reg, right_reg, shift_left, shift_right, mask, invert) \
-{ iface: SNDRV_CTL_ELEM_IFACE_MIXER, name: xname, index: xindex, \
-  info: snd_es1938_info_double, \
-  get: snd_es1938_get_double, put: snd_es1938_put_double, \
-  private_value: left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
+{ .iface = SNDRV_CTL_ELEM_IFACE_MIXER, .name = xname, .index = xindex, \
+  .info = snd_es1938_info_double, \
+  .get = snd_es1938_get_double, .put = snd_es1938_put_double, \
+  .private_value = left_reg | (right_reg << 8) | (shift_left << 16) | (shift_right << 19) | (mask << 24) | (invert << 22) }
 
 static int snd_es1938_info_double(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo)
 {
@@ -1266,18 +1266,18 @@
 ES1938_DOUBLE("Master Playback Volume", 0, 0x60, 0x62, 0, 0, 63, 0),
 ES1938_DOUBLE("Master Playback Switch", 0, 0x60, 0x62, 6, 6, 1, 1),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Hardware Master Playback Volume",
-	access: SNDRV_CTL_ELEM_ACCESS_READ,
-	info: snd_es1938_info_hw_volume,
-	get: snd_es1938_get_hw_volume,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Hardware Master Playback Volume",
+	.access = SNDRV_CTL_ELEM_ACCESS_READ,
+	.info = snd_es1938_info_hw_volume,
+	.get = snd_es1938_get_hw_volume,
 },
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Hardware Master Playback Switch",
-	access: SNDRV_CTL_ELEM_ACCESS_READ,
-	info: snd_es1938_info_hw_switch,
-	get: snd_es1938_get_hw_switch,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Hardware Master Playback Switch",
+	.access = SNDRV_CTL_ELEM_ACCESS_READ,
+	.info = snd_es1938_info_hw_switch,
+	.get = snd_es1938_get_hw_switch,
 },
 ES1938_SINGLE("Hardware Volume Split", 0, 0x64, 7, 1, 0),
 ES1938_DOUBLE("Line Playback Volume", 0, 0x3e, 0x3e, 4, 0, 15, 0),
@@ -1291,11 +1291,11 @@
 ES1938_SINGLE("Record Monitor", 0, 0xa8, 3, 1, 0),
 ES1938_SINGLE("Capture Switch", 0, 0x1c, 4, 1, 1),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "Capture Source",
-	info: snd_es1938_info_mux,
-	get: snd_es1938_get_mux,
-	put: snd_es1938_put_mux,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "Capture Source",
+	.info = snd_es1938_info_mux,
+	.get = snd_es1938_get_mux,
+	.put = snd_es1938_put_mux,
 },
 ES1938_DOUBLE("Mono Input Playback Volume", 0, 0x6d, 0x6d, 4, 0, 15, 0),
 ES1938_DOUBLE("PCM Capture Volume", 0, 0x69, 0x69, 4, 0, 15, 0),
@@ -1309,11 +1309,11 @@
 ES1938_DOUBLE("PCM Playback Volume", 1, 0x14, 0x14, 4, 0, 15, 0),
 ES1938_SINGLE("3D Control - Level", 0, 0x52, 0, 63, 0),
 {
-	iface: SNDRV_CTL_ELEM_IFACE_MIXER,
-	name: "3D Control - Switch",
-	info: snd_es1938_info_spatializer_enable,
-	get: snd_es1938_get_spatializer_enable,
-	put: snd_es1938_put_spatializer_enable,
+	.iface = SNDRV_CTL_ELEM_IFACE_MIXER,
+	.name = "3D Control - Switch",
+	.info = snd_es1938_info_spatializer_enable,
+	.get = snd_es1938_get_spatializer_enable,
+	.put = snd_es1938_put_spatializer_enable,
 },
 ES1938_SINGLE("Mic Boost (+26dB)", 0, 0x7d, 3, 1, 0)
 };
@@ -1369,7 +1369,7 @@
 	es1938_t *chip;
 	int err;
 	static snd_device_ops_t ops = {
-		dev_free:	snd_es1938_dev_free,
+		.dev_free =	snd_es1938_dev_free,
 	};
 
 	*rchip = NULL;
@@ -1670,10 +1670,10 @@
 }
 
 static struct pci_driver driver = {
-	name: "ESS ES1938 (Solo-1)",
-	id_table: snd_es1938_ids,
-	probe: snd_es1938_probe,
-	remove: __devexit_p(snd_es1938_remove),
+	.name = "ESS ES1938 (Solo-1)",
+	.id_table = snd_es1938_ids,
+	.probe = snd_es1938_probe,
+	.remove = __devexit_p(snd_es1938_remove),
 };
 
 static int __init alsa_card_es1938_init(void)
diff -Nru a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
--- a/sound/pci/intel8x0.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/intel8x0.c	Tue Oct  1 17:06:28 2002
@@ -259,6 +259,7 @@
 	int multi4: 1,
 	    multi6: 1;
 	int in_ac97_init: 1;
+	int no_codec_check: 1;
 
 	ac97_t *ac97;
 	ac97_t *ac97sec;
@@ -308,8 +309,10 @@
 	int time;
 
 	/* codec ready ? */
-	if ((inl(ICHREG(chip, GLOB_STA)) & (codec ? ICH_SCR : ICH_PCR)) == 0)
-		return -EIO;
+	if (! chip->no_codec_check) {
+		if ((inl(ICHREG(chip, GLOB_STA)) & (codec ? ICH_SCR : ICH_PCR)) == 0)
+			return -EIO;
+	}
 
 	/* Anyone holding a semaphore for 1 msec should be shot... */
 	time = 100;
@@ -1005,6 +1008,18 @@
  *
  */
 
+static void do_delay(intel8x0_t *chip)
+{
+#ifdef CONFIG_PM
+	if (chip->in_suspend) {
+		mdelay((1000 + HZ - 1) / HZ);
+		return;
+	}
+#endif
+	set_current_state(TASK_UNINTERRUPTIBLE);
+	schedule_timeout(1);
+}
+
 static int snd_intel8x0_chip_init(intel8x0_t *chip)
 {
 	signed long end_time;
@@ -1025,14 +1040,7 @@
 	do {
 		if ((inl(ICHREG(chip, GLOB_CNT)) & ICH_AC97WARM) == 0)
 			goto __ok;
-#ifdef CONFIG_PM
-		if (chip->in_suspend) {
-			mdelay(10);
-			continue;
-		}
-#endif
-		set_current_state(TASK_UNINTERRUPTIBLE);
-		schedule_timeout(1);
+		do_delay(chip);
 	} while (end_time - (signed long)jiffies >= 0);
 	snd_printk("AC'97 warm reset still in progress? [0x%x]\n", inl(ICHREG(chip, GLOB_CNT)));
 	return -EIO;
@@ -1042,20 +1050,26 @@
 	 * Once it becomes ready it should remain ready
 	 * as long as we do not disable the ac97 link.
  	 */
+	end_time = jiffies + HZ / 10;
+	do {
+		if (inl(ICHREG(chip, GLOB_STA)) & ICH_PCR)
+			goto __ok1;
+		do_delay(chip);
+	} while (end_time - (signed long)jiffies >= 0);
+	if (chip->pci->device == PCI_DEVICE_ID_INTEL_ICH4) {
+		/* FIXME: ICH4 may have no PCR and SCR bits...  */
+		snd_printd(KERN_INFO "intel8x0: no codec is probed, perhaps PCR and SCR bits are deactivated.\n");
+		chip->no_codec_check = 1;
+		goto __ok2;
+	}
+	/* check a bit longer... */
 	end_time = jiffies + HZ;
 	do {
 		if (inl(ICHREG(chip, GLOB_STA)) & ICH_PCR)
 			goto __ok1;
-#ifdef CONFIG_PM
-		if (chip->in_suspend) {
-			mdelay(10);
-			continue;
-		}
-#endif
-		set_current_state(TASK_UNINTERRUPTIBLE);
-		schedule_timeout(1);
+		do_delay(chip);
 	} while (end_time - (signed long)jiffies >= 0);
-	snd_printk("codec_ready: primary codec is not ready [0x%x]\n", inl(ICHREG(chip, GLOB_STA)));
+	snd_printk(KERN_ERR "codec_ready: primary codec is not ready [0x%x]\n", inl(ICHREG(chip, GLOB_STA)));
 	return -EIO;
 
       __ok1:
@@ -1064,16 +1078,10 @@
 	do {
 		if (inl(ICHREG(chip, GLOB_STA)) & ICH_SCR)
 			break;
-#ifdef CONFIG_PM
-		if (chip->in_suspend) {
-			mdelay(10);
-			continue;
-		}
-#endif
-		set_current_state(TASK_UNINTERRUPTIBLE);
-		schedule_timeout(1);
+		do_delay(chip);
 	} while (end_time - (signed long)jiffies >= 0);
 
+      __ok2:
 	inw(chip->port);	/* clear semaphore flag */
 
 	/* disable interrupts */
diff -Nru a/sound/pci/via686.c b/sound/pci/via686.c
--- a/sound/pci/via686.c	Tue Oct  1 17:06:28 2002
+++ b/sound/pci/via686.c	Tue Oct  1 17:06:28 2002
@@ -864,15 +864,19 @@
 	pci_write_config_byte(chip->pci, 0x42, 0);
 #endif
 
-	/* deassert ACLink reset, force SYNC */
-	pci_write_config_byte(chip->pci, 0x41, 0xe0);
-	udelay(100);
-	pci_write_config_byte(chip->pci, 0x41, 0x00);
-	udelay(100);
-	/* ACLink on, deassert ACLink reset, VSR, SGD data out */
-	/* note - FM data out has trouble with non VRA codecs !! */
-	pci_write_config_byte(chip->pci, 0x41, 0xcc);
-	udelay(100);
+	/* cold reset only when link is down */
+	pci_read_config_byte(chip->pci, 0x40, &pval);
+	if ((pval & 0x01) == 0) {
+		/* deassert ACLink reset, force SYNC */
+		pci_write_config_byte(chip->pci, 0x41, 0xe0);
+		udelay(100);
+		pci_write_config_byte(chip->pci, 0x41, 0x00);
+		udelay(100);
+		/* ACLink on, deassert ACLink reset, VSR, SGD data out */
+		/* note - FM data out has trouble with non VRA codecs !! */
+		pci_write_config_byte(chip->pci, 0x41, 0xcc);
+		udelay(100);
+	}
 
 	/* wait until codec ready */
 	max_count = ((3 * HZ) / 4) + 1;
diff -Nru a/sound/sound_core.c b/sound/sound_core.c
--- a/sound/sound_core.c	Tue Oct  1 17:06:28 2002
+++ b/sound/sound_core.c	Tue Oct  1 17:06:28 2002
@@ -460,8 +460,8 @@
 static struct file_operations soundcore_fops=
 {
 	/* We must have an owner or the module locking fails */
-	owner:	THIS_MODULE,
-	open:	soundcore_open,
+	.owner	= THIS_MODULE,
+	.open	= soundcore_open,
 };
 
 static struct sound_unit *__look_for_unit(int chain, int unit)
diff -Nru a/sound/synth/emux/emux_oss.c b/sound/synth/emux/emux_oss.c
--- a/sound/synth/emux/emux_oss.c	Tue Oct  1 17:06:28 2002
+++ b/sound/synth/emux/emux_oss.c	Tue Oct  1 17:06:28 2002
@@ -44,12 +44,12 @@
 
 /* operators */
 static snd_seq_oss_callback_t oss_callback = {
-	owner: THIS_MODULE,
-	open: snd_emux_open_seq_oss,
-	close: snd_emux_close_seq_oss,
-	ioctl: snd_emux_ioctl_seq_oss,
-	load_patch: snd_emux_load_patch_seq_oss,
-	reset: snd_emux_reset_seq_oss,
+	.owner = THIS_MODULE,
+	.open = snd_emux_open_seq_oss,
+	.close = snd_emux_close_seq_oss,
+	.ioctl = snd_emux_ioctl_seq_oss,
+	.load_patch = snd_emux_load_patch_seq_oss,
+	.reset = snd_emux_reset_seq_oss,
 };
 
 

===================================================================


This BitKeeper patch contains the following changesets:
1.646
## Wrapped with gzip_uu ##


begin 664 bkpatch22872
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
HYF91YRH;/R.\U]C5\NNK9_*&*#!Y^CP^:-5AA;(B_P;B"H%I\KP!````
`
end
