--- a/kernel/drv/oss_hdaudio/.devices Fri Feb 06 00:36:29 2009 +0200 +++ b/kernel/drv/oss_hdaudio/.devices Fri Feb 06 17:00:26 2009 +0200 @@ -13,6 +13,7 @@ oss_hdaudio pci10de,44a Nvidia High Defi oss_hdaudio pci10de,44a Nvidia High Definition Audio (MCP65) oss_hdaudio pci10de,55c Nvidia High Definition Audio (MCP67) oss_hdaudio pci10de,774 Nvidia High Definition Audio (MCP78S) +oss_hdaudio pci10de,ac0 Nvidia High Definition Audio (MCP79) oss_hdaudio pci1002,437b ATI High Definition Audio (SB450) oss_hdaudio pci1002,4383 ATI High Definition Audio (SB600) oss_hdaudio pci1106,3288 VIA High Definition Audio --- a/kernel/drv/oss_hdaudio/oss_hdaudio.c Fri Feb 06 00:36:29 2009 +0200 +++ b/kernel/drv/oss_hdaudio/oss_hdaudio.c Fri Feb 06 17:00:26 2009 +0200 @@ -30,6 +30,7 @@ #define NVIDIA_DEVICE_MCP65 0x044a #define NVIDIA_DEVICE_MCP67 0x055c #define NVIDIA_DEVICE_MCP78S 0x0774 +#define NVIDIA_DEVICE_MCP79 0x0ac0 #define ATI_VENDOR_ID 0x1002 #define ATI_DEVICE_SB450 0x437b @@ -1720,7 +1721,7 @@ oss_hdaudio_attach (oss_device_t * osdev device != NVIDIA_DEVICE_MCP51 && device != NVIDIA_DEVICE_MCP55 && device != NVIDIA_DEVICE_MCP61 && device != NVIDIA_DEVICE_MCP61A && device != NVIDIA_DEVICE_MCP65 && device != NVIDIA_DEVICE_MCP67 && - device != NVIDIA_DEVICE_MCP78S && + device != NVIDIA_DEVICE_MCP78S && device != NVIDIA_DEVICE_MCP79 && device != VIA_DEVICE_HDA && device != SIS_DEVICE_HDA && device != ULI_DEVICE_HDA && @@ -1776,6 +1777,7 @@ oss_hdaudio_attach (oss_device_t * osdev case NVIDIA_DEVICE_MCP65: case NVIDIA_DEVICE_MCP67: case NVIDIA_DEVICE_MCP78S: + case NVIDIA_DEVICE_MCP79: devc->chip_name = "nVidia HD Audio"; pci_read_config_byte (osdev, 0x4e, &btmp); pci_write_config_byte (osdev, 0x4e, (btmp & 0xf0) | 0x0f); --- a/kernel/drv/oss_hdaudio/.devices Fri Feb 06 17:05:21 2009 +0200 +++ b/kernel/drv/oss_hdaudio/.devices Sat Feb 07 11:10:36 2009 +0200 @@ -12,6 +12,7 @@ oss_hdaudio pci10de,3f0 Nvidia High Defi oss_hdaudio pci10de,3f0 Nvidia High Definition Audio (MCP61) oss_hdaudio pci10de,44a Nvidia High Definition Audio (MCP65) oss_hdaudio pci10de,55c Nvidia High Definition Audio (MCP67) +oss_hdaudio pci10de,7fc Nvidia High Definition Audio (MCP73) oss_hdaudio pci10de,774 Nvidia High Definition Audio (MCP78S) oss_hdaudio pci10de,ac0 Nvidia High Definition Audio (MCP79) oss_hdaudio pci1002,437b ATI High Definition Audio (SB450) --- a/kernel/drv/oss_hdaudio/oss_hdaudio.c Fri Feb 06 17:05:21 2009 +0200 +++ b/kernel/drv/oss_hdaudio/oss_hdaudio.c Sat Feb 07 11:10:36 2009 +0200 @@ -29,6 +29,7 @@ #define NVIDIA_DEVICE_MCP61A 0x03f0 #define NVIDIA_DEVICE_MCP65 0x044a #define NVIDIA_DEVICE_MCP67 0x055c +#define NVIDIA_DEVICE_MCP73 0x07fc #define NVIDIA_DEVICE_MCP78S 0x0774 #define NVIDIA_DEVICE_MCP79 0x0ac0 @@ -1721,7 +1722,8 @@ oss_hdaudio_attach (oss_device_t * osdev device != NVIDIA_DEVICE_MCP51 && device != NVIDIA_DEVICE_MCP55 && device != NVIDIA_DEVICE_MCP61 && device != NVIDIA_DEVICE_MCP61A && device != NVIDIA_DEVICE_MCP65 && device != NVIDIA_DEVICE_MCP67 && - device != NVIDIA_DEVICE_MCP78S && device != NVIDIA_DEVICE_MCP79 && + device != NVIDIA_DEVICE_MCP73 && device != NVIDIA_DEVICE_MCP78S && + device != NVIDIA_DEVICE_MCP79 && device != VIA_DEVICE_HDA && device != SIS_DEVICE_HDA && device != ULI_DEVICE_HDA && @@ -1776,6 +1778,7 @@ oss_hdaudio_attach (oss_device_t * osdev case NVIDIA_DEVICE_MCP61A: case NVIDIA_DEVICE_MCP65: case NVIDIA_DEVICE_MCP67: + case NVIDIA_DEVICE_MCP73: case NVIDIA_DEVICE_MCP78S: case NVIDIA_DEVICE_MCP79: devc->chip_name = "nVidia HD Audio"; --- a/kernel/framework/vmix_core/vmix_core.c Mon Feb 09 21:21:39 2009 +0200 +++ b/kernel/framework/vmix_core/vmix_core.c Mon Feb 09 19:52:22 2009 -0200 @@ -1590,7 +1590,7 @@ create_vmix_engine (vmix_mixer_t * mixer adev_t *adev, *master_adev; int opts = ADEV_VIRTUAL | ADEV_DEFAULT | ADEV_VMIX; - n = mixer->num_clientdevs++; + n = mixer->num_clientdevs; /* * ADEV_HIDDEN is used for the VMIX devices because they should not be @@ -1611,7 +1611,7 @@ create_vmix_engine (vmix_mixer_t * mixer if (mixer->masterdev == -1) return OSS_ENXIO; - if (mixer->num_clientdevs >= MAX_CLIENTS) /* Cannot create more client engines */ + if (n + 1 >= MAX_CLIENTS) /* Cannot create more client engines */ return OSS_EBUSY; /* @@ -1628,6 +1628,8 @@ create_vmix_engine (vmix_mixer_t * mixer } memset (portc, 0, sizeof (*portc)); portc->open_pending = 1; /* Reserve this engine to the client it was created for */ + + mixer->num_clientdevs++; portc->num = n;