diff options
| author | Paul Mackerras <paulus@samba.org> | 2002-12-20 09:47:54 +1100 |
|---|---|---|
| committer | Paul Mackerras <paulus@samba.org> | 2002-12-20 09:47:54 +1100 |
| commit | bba32258181346cb476419033bb0243aa20360d2 (patch) | |
| tree | 45dbe6adaa7b9af62681504daa658f6969fed33b /include | |
| parent | 8ca34b9e54cb7a20a4d2f3bbd7e160f071f30230 (diff) | |
| parent | 75fb58eebfbaca27864b925e49370ccbf1bc33ba (diff) | |
Merge samba.org:/home/paulus/kernel/linux-2.5
into samba.org:/home/paulus/kernel/for-linus-ppc
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-alpha/dma.h | 4 | ||||
| -rw-r--r-- | include/asm-alpha/uaccess.h | 48 | ||||
| -rw-r--r-- | include/asm-i386/elf.h | 11 | ||||
| -rw-r--r-- | include/asm-i386/fixmap.h | 2 | ||||
| -rw-r--r-- | include/asm-i386/irq.h | 1 | ||||
| -rw-r--r-- | include/asm-i386/segment.h | 4 | ||||
| -rw-r--r-- | include/scsi/scsi.h | 4 | ||||
| -rw-r--r-- | include/sound/ac97_codec.h | 4 | ||||
| -rw-r--r-- | include/sound/control.h | 2 | ||||
| -rw-r--r-- | include/sound/core.h | 39 | ||||
| -rw-r--r-- | include/sound/cs46xx.h | 2 | ||||
| -rw-r--r-- | include/sound/cs46xx_dsp_spos.h | 6 | ||||
| -rw-r--r-- | include/sound/initval.h | 13 | ||||
| -rw-r--r-- | include/sound/mixer_oss.h | 1 | ||||
| -rw-r--r-- | include/sound/mpu401.h | 6 | ||||
| -rw-r--r-- | include/sound/opl3.h | 1 | ||||
| -rw-r--r-- | include/sound/pcm.h | 5 | ||||
| -rw-r--r-- | include/sound/pcm_oss.h | 1 | ||||
| -rw-r--r-- | include/sound/sb.h | 9 | ||||
| -rw-r--r-- | include/sound/trident.h | 18 | ||||
| -rw-r--r-- | include/sound/version.h | 4 |
21 files changed, 133 insertions, 52 deletions
diff --git a/include/asm-alpha/dma.h b/include/asm-alpha/dma.h index dc46ba5b4f1c..683afaa3deed 100644 --- a/include/asm-alpha/dma.h +++ b/include/asm-alpha/dma.h @@ -112,9 +112,9 @@ # elif defined(CONFIG_ALPHA_RUFFIAN) # define MAX_ISA_DMA_ADDRESS ALPHA_RUFFIAN_MAX_ISA_DMA_ADDRESS # elif defined(CONFIG_ALPHA_SABLE) -# define MAX_ISA_DMA_ADDRESS ALPHA_SABLE_MAX_DMA_ISA_ADDRESS +# define MAX_ISA_DMA_ADDRESS ALPHA_SABLE_MAX_ISA_DMA_ADDRESS # elif defined(CONFIG_ALPHA_ALCOR) -# define MAX_ISA_DMA_ADDRESS ALPHA_ALCOR_MAX_DMA_ISA_ADDRESS +# define MAX_ISA_DMA_ADDRESS ALPHA_ALCOR_MAX_ISA_DMA_ADDRESS # else # define MAX_ISA_DMA_ADDRESS ALPHA_MAX_ISA_DMA_ADDRESS # endif diff --git a/include/asm-alpha/uaccess.h b/include/asm-alpha/uaccess.h index f215aa90809b..5a3b8681f6af 100644 --- a/include/asm-alpha/uaccess.h +++ b/include/asm-alpha/uaccess.h @@ -126,7 +126,7 @@ struct __large_struct { unsigned long buf[100]; }; __asm__("1: ldq %0,%2\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda %0, 2b-1b(%1)\n" \ ".previous" \ : "=r"(__gu_val), "=r"(__gu_err) \ @@ -136,7 +136,7 @@ struct __large_struct { unsigned long buf[100]; }; __asm__("1: ldl %0,%2\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda %0, 2b-1b(%1)\n" \ ".previous" \ : "=r"(__gu_val), "=r"(__gu_err) \ @@ -149,7 +149,7 @@ struct __large_struct { unsigned long buf[100]; }; __asm__("1: ldwu %0,%2\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda %0, 2b-1b(%1)\n" \ ".previous" \ : "=r"(__gu_val), "=r"(__gu_err) \ @@ -159,7 +159,7 @@ struct __large_struct { unsigned long buf[100]; }; __asm__("1: ldbu %0,%2\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda %0, 2b-1b(%1)\n" \ ".previous" \ : "=r"(__gu_val), "=r"(__gu_err) \ @@ -178,10 +178,10 @@ struct __large_struct { unsigned long buf[100]; }; " or %0,%1,%0\n" \ "3:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda %0, 3b-1b(%2)\n" \ - " .gprel32 2b\n" \ - " lda %0, 2b-1b(%2)\n" \ + " .long 2b - .\n" \ + " lda %0, 3b-2b(%2)\n" \ ".previous" \ : "=&r"(__gu_val), "=&r"(__gu_tmp), "=r"(__gu_err) \ : "r"(addr), "2"(__gu_err)); \ @@ -192,7 +192,7 @@ struct __large_struct { unsigned long buf[100]; }; " extbl %0,%2,%0\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda %0, 2b-1b(%1)\n" \ ".previous" \ : "=&r"(__gu_val), "=r"(__gu_err) \ @@ -240,7 +240,7 @@ extern void __put_user_unknown(void); __asm__ __volatile__("1: stq %r2,%1\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda $31,2b-1b(%0)\n" \ ".previous" \ : "=r"(__pu_err) \ @@ -250,7 +250,7 @@ __asm__ __volatile__("1: stq %r2,%1\n" \ __asm__ __volatile__("1: stl %r2,%1\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda $31,2b-1b(%0)\n" \ ".previous" \ : "=r"(__pu_err) \ @@ -263,7 +263,7 @@ __asm__ __volatile__("1: stl %r2,%1\n" \ __asm__ __volatile__("1: stw %r2,%1\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda $31,2b-1b(%0)\n" \ ".previous" \ : "=r"(__pu_err) \ @@ -273,7 +273,7 @@ __asm__ __volatile__("1: stw %r2,%1\n" \ __asm__ __volatile__("1: stb %r2,%1\n" \ "2:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda $31,2b-1b(%0)\n" \ ".previous" \ : "=r"(__pu_err) \ @@ -298,13 +298,13 @@ __asm__ __volatile__("1: stb %r2,%1\n" \ "4: stq_u %1,0(%5)\n" \ "5:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda $31, 5b-1b(%0)\n" \ - " .gprel32 2b\n" \ + " .long 2b - .\n" \ " lda $31, 5b-2b(%0)\n" \ - " .gprel32 3b\n" \ + " .long 3b - .\n" \ " lda $31, 5b-3b(%0)\n" \ - " .gprel32 4b\n" \ + " .long 4b - .\n" \ " lda $31, 5b-4b(%0)\n" \ ".previous" \ : "=r"(__pu_err), "=&r"(__pu_tmp1), \ @@ -324,9 +324,9 @@ __asm__ __volatile__("1: stb %r2,%1\n" \ "2: stq_u %1,0(%4)\n" \ "3:\n" \ ".section __ex_table,\"a\"\n" \ - " .gprel32 1b\n" \ + " .long 1b - .\n" \ " lda $31, 3b-1b(%0)\n" \ - " .gprel32 2b\n" \ + " .long 2b - .\n" \ " lda $31, 3b-2b(%0)\n" \ ".previous" \ : "=r"(__pu_err), \ @@ -356,7 +356,7 @@ __copy_tofrom_user_nocheck(void *to, const void *from, long len) register long __cu_len __asm__("$0") = len; __asm__ __volatile__( - "jsr $28,(%3),__copy_user\n\tldgp $29,0($28)" + "jsr $28,(%3),__copy_user" : "=r" (__cu_len), "=r" (__cu_from), "=r" (__cu_to), "=r"(pv) : "0" (__cu_len), "1" (__cu_from), "2" (__cu_to), "3"(pv) : "$1","$2","$3","$4","$5","$28","memory"); @@ -373,7 +373,7 @@ __copy_tofrom_user(void *to, const void *from, long len, const void *validate) register const void * __cu_from __asm__("$7") = from; register long __cu_len __asm__("$0") = len; __asm__ __volatile__( - "jsr $28,(%3),__copy_user\n\tldgp $29,0($28)" + "jsr $28,(%3),__copy_user" : "=r"(__cu_len), "=r"(__cu_from), "=r"(__cu_to), "=r" (pv) : "0" (__cu_len), "1" (__cu_from), "2" (__cu_to), @@ -413,7 +413,7 @@ __clear_user(void *to, long len) register void * __cl_to __asm__("$6") = to; register long __cl_len __asm__("$0") = len; __asm__ __volatile__( - "jsr $28,(%2),__do_clear_user\n\tldgp $29,0($28)" + "jsr $28,(%2),__do_clear_user" : "=r"(__cl_len), "=r"(__cl_to), "=r"(pv) : "0"(__cl_len), "1"(__cl_to), "2"(pv) : "$1","$2","$3","$4","$5","$28","memory"); @@ -428,7 +428,7 @@ clear_user(void *to, long len) register void * __cl_to __asm__("$6") = to; register long __cl_len __asm__("$0") = len; __asm__ __volatile__( - "jsr $28,(%2),__do_clear_user\n\tldgp $29,0($28)" + "jsr $28,(%2),__do_clear_user" : "=r"(__cl_len), "=r"(__cl_to), "=r"(pv) : "0"(__cl_len), "1"(__cl_to), "2"(pv) : "$1","$2","$3","$4","$5","$28","memory"); @@ -471,7 +471,7 @@ extern inline long strnlen_user(const char *str, long n) /* * About the exception table: * - * - insn is a 32-bit offset off of the kernel's or module's gp. + * - insn is a 32-bit pc-relative offset from the faulting insn. * - nextinsn is a 16-bit offset off of the faulting instruction * (not off of the *next* instruction as branches are). * - errreg is the register in which to place -EFAULT. @@ -502,7 +502,7 @@ struct exception_table_entry }; /* Returns 0 if exception not found and fixup.unit otherwise. */ -extern unsigned search_exception_table(unsigned long, unsigned long); +extern unsigned search_exception_table(unsigned long); /* Returns the new pc */ #define fixup_exception(map_reg, fixup_unit, pc) \ diff --git a/include/asm-i386/elf.h b/include/asm-i386/elf.h index 69b242234d8a..f7ad699487b4 100644 --- a/include/asm-i386/elf.h +++ b/include/asm-i386/elf.h @@ -100,6 +100,12 @@ typedef struct user_fxsr_struct elf_fpxregset_t; #define ELF_PLATFORM (system_utsname.machine) +/* + * Architecture-neutral AT_ values in 0-17, leave some room + * for more of them, start the x86-specific ones at 32. + */ +#define AT_SYSINFO 32 + #ifdef __KERNEL__ #define SET_PERSONALITY(ex, ibcs2) set_personality((ibcs2)?PER_SVR4:PER_LINUX) @@ -116,6 +122,11 @@ extern void dump_smp_unlazy_fpu(void); #define ELF_CORE_SYNC dump_smp_unlazy_fpu #endif +#define ARCH_DLINFO \ +do { \ + NEW_AUX_ENT(AT_SYSINFO, 0xffffe000); \ +} while (0) + #endif #endif diff --git a/include/asm-i386/fixmap.h b/include/asm-i386/fixmap.h index 0972df25f4c9..a5ccad80c262 100644 --- a/include/asm-i386/fixmap.h +++ b/include/asm-i386/fixmap.h @@ -42,8 +42,8 @@ * task switches. */ enum fixed_addresses { - FIX_VSYSCALL, FIX_HOLE, + FIX_VSYSCALL, #ifdef CONFIG_X86_LOCAL_APIC FIX_APIC_BASE, /* local (CPU) APIC) -- required for SMP or not */ #endif diff --git a/include/asm-i386/irq.h b/include/asm-i386/irq.h index 0a5e1dd66212..3cb90417556b 100644 --- a/include/asm-i386/irq.h +++ b/include/asm-i386/irq.h @@ -23,6 +23,7 @@ static __inline__ int irq_cannonicalize(int irq) extern void disable_irq(unsigned int); extern void disable_irq_nosync(unsigned int); extern void enable_irq(unsigned int); +extern void release_x86_irqs(struct task_struct *); #ifdef CONFIG_X86_LOCAL_APIC #define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */ diff --git a/include/asm-i386/segment.h b/include/asm-i386/segment.h index 2abdb7c5bea7..f6949fb109d9 100644 --- a/include/asm-i386/segment.h +++ b/include/asm-i386/segment.h @@ -65,9 +65,9 @@ #define GDT_ENTRY_APMBIOS_BASE (GDT_ENTRY_KERNEL_BASE + 11) /* - * The GDT has 23 entries but we pad it to cacheline boundary: + * The GDT has 25 entries but we pad it to cacheline boundary: */ -#define GDT_ENTRIES 24 +#define GDT_ENTRIES 28 #define GDT_SIZE (GDT_ENTRIES * 8) diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h index c7562734f0ac..8b014e109f20 100644 --- a/include/scsi/scsi.h +++ b/include/scsi/scsi.h @@ -96,6 +96,10 @@ extern const unsigned char scsi_command_size[8]; #define READ_ELEMENT_STATUS 0xb8 #define SEND_VOLUME_TAG 0xb6 #define WRITE_LONG_2 0xea +#define READ_16 0x88 +#define WRITE_16 0x8a +#define SERVICE_ACTION_IN 0x9e + /* * Status codes diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index fd550b424a7c..fd6c403d0828 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h @@ -199,6 +199,10 @@ #define AC97_ALC650_MULTICH 0x6a #define AC97_ALC650_CLOCK 0x7a +/* specific - Yamaha YMF753 */ +#define AC97_YMF753_DIT_CTRL2 0x66 /* DIT Control 2 */ +#define AC97_YMF753_3D_MODE_SEL 0x68 /* 3D Mode Select */ + /* ac97->scaps */ #define AC97_SCAP_AUDIO (1<<0) /* audio AC'97 codec */ #define AC97_SCAP_MODEM (1<<1) /* modem AC'97 codec */ diff --git a/include/sound/control.h b/include/sound/control.h index ec0f2f6ccf65..139028a72a65 100644 --- a/include/sound/control.h +++ b/include/sound/control.h @@ -111,6 +111,8 @@ snd_kcontrol_t *snd_ctl_find_numid(snd_card_t * card, unsigned int numid); snd_kcontrol_t *snd_ctl_find_id(snd_card_t * card, snd_ctl_elem_id_t *id); int snd_ctl_register(snd_card_t *card); +int snd_ctl_disconnect(snd_card_t *card); +int snd_ctl_can_unregister(snd_card_t *card); int snd_ctl_unregister(snd_card_t *card); int snd_ctl_register_ioctl(snd_kctl_ioctl_func_t fcn); int snd_ctl_unregister_ioctl(snd_kctl_ioctl_func_t fcn); diff --git a/include/sound/core.h b/include/sound/core.h index 4ea5f5ff8849..9d705453eca1 100644 --- a/include/sound/core.h +++ b/include/sound/core.h @@ -24,6 +24,7 @@ #include <linux/sched.h> /* wake_up() */ #include <asm/semaphore.h> /* struct semaphore */ +#include <linux/rwsem.h> /* struct rw_semaphore */ /* Typedef's */ typedef struct timeval snd_timestamp_t; @@ -58,8 +59,9 @@ typedef enum { } snd_device_type_t; typedef enum { - SNDRV_DEV_BUILD = 0, - SNDRV_DEV_REGISTERED = 1 + SNDRV_DEV_BUILD, + SNDRV_DEV_REGISTERED, + SNDRV_DEV_DISCONNECTED } snd_device_state_t; typedef enum { @@ -73,11 +75,13 @@ typedef struct _snd_device snd_device_t; typedef int (snd_dev_free_t)(snd_device_t *device); typedef int (snd_dev_register_t)(snd_device_t *device); +typedef int (snd_dev_disconnect_t)(snd_device_t *device); typedef int (snd_dev_unregister_t)(snd_device_t *device); typedef struct { snd_dev_free_t *dev_free; snd_dev_register_t *dev_register; + snd_dev_disconnect_t *dev_disconnect; snd_dev_unregister_t *dev_unregister; } snd_device_ops_t; @@ -109,6 +113,15 @@ typedef struct _snd_hwdep snd_hwdep_t; typedef struct _snd_oss_mixer snd_mixer_oss_t; #endif +/* monitor files for graceful shutdown (hotplug) */ + +struct snd_monitor_file { + struct file *file; + struct snd_monitor_file *next; +}; + +struct snd_shutdown_f_ops; /* define it later */ + /* main structure for soundcard */ struct _snd_card { @@ -129,8 +142,8 @@ struct _snd_card { struct list_head devices; /* devices */ unsigned int last_numid; /* last used numeric ID */ - rwlock_t control_rwlock; /* control list lock */ - rwlock_t control_owner_lock; /* control list lock */ + struct rw_semaphore controls_rwsem; /* controls list lock */ + rwlock_t ctl_files_rwlock; /* ctl_files list lock */ int controls_count; /* count of all controls */ struct list_head controls; /* all controls for this card */ struct list_head ctl_files; /* active control files */ @@ -139,6 +152,12 @@ struct _snd_card { snd_info_entry_t *proc_id; /* the card id */ struct proc_dir_entry *proc_root_link; /* number link to real id */ + struct snd_monitor_file *files; /* all files associated to this card */ + struct snd_shutdown_f_ops *s_f_ops; /* file operations in the shutdown state */ + spinlock_t files_lock; /* lock the files for this card */ + int shutdown; /* this card is going down */ + wait_queue_head_t shutdown_sleep; + #ifdef CONFIG_PM int (*set_power_state) (snd_card_t *card, unsigned int state); void *power_state_private_data; @@ -285,19 +304,27 @@ int copy_from_user_toio(unsigned long dst, const void *src, size_t count); /* init.c */ extern int snd_cards_count; +extern unsigned int snd_cards_lock; extern snd_card_t *snd_cards[SNDRV_CARDS]; extern rwlock_t snd_card_rwlock; #if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE) -extern int (*snd_mixer_oss_notify_callback)(snd_card_t *card, int free_flag); +#define SND_MIXER_OSS_NOTIFY_REGISTER 0 +#define SND_MIXER_OSS_NOTIFY_DISCONNECT 1 +#define SND_MIXER_OSS_NOTIFY_FREE 2 +extern int (*snd_mixer_oss_notify_callback)(snd_card_t *card, int cmd); #endif snd_card_t *snd_card_new(int idx, const char *id, struct module *module, int extra_size); +int snd_card_disconnect(snd_card_t *card); int snd_card_free(snd_card_t *card); +int snd_card_free_in_thread(snd_card_t *card); int snd_card_register(snd_card_t *card); int snd_card_info_init(void); int snd_card_info_done(void); int snd_component_add(snd_card_t *card, const char *component); +int snd_card_file_add(snd_card_t *card, struct file *file); +int snd_card_file_remove(snd_card_t *card, struct file *file); /* device.c */ @@ -305,6 +332,8 @@ int snd_device_new(snd_card_t *card, snd_device_type_t type, void *device_data, snd_device_ops_t *ops); int snd_device_register(snd_card_t *card, void *device_data); int snd_device_register_all(snd_card_t *card); +int snd_device_disconnect(snd_card_t *card, void *device_data); +int snd_device_disconnect_all(snd_card_t *card); int snd_device_free(snd_card_t *card, void *device_data); int snd_device_free_all(snd_card_t *card, snd_device_cmd_t cmd); diff --git a/include/sound/cs46xx.h b/include/sound/cs46xx.h index 09ae6c772aa0..dc849a634aec 100644 --- a/include/sound/cs46xx.h +++ b/include/sound/cs46xx.h @@ -1663,6 +1663,8 @@ typedef struct _snd_cs46xx_pcm_t { snd_pcm_substream_t *substream; pcm_channel_descriptor_t * pcm_channel; + + int pcm_channel_id; /* Fron Rear, Center Lfe ... */ } cs46xx_pcm_t; typedef struct { diff --git a/include/sound/cs46xx_dsp_spos.h b/include/sound/cs46xx_dsp_spos.h index 8366aefaff6b..1522a61ba85c 100644 --- a/include/sound/cs46xx_dsp_spos.h +++ b/include/sound/cs46xx_dsp_spos.h @@ -63,7 +63,6 @@ #define DSP_SPDIF_STATUS_OUTPUT_ENABLED 1 #define DSP_SPDIF_STATUS_PLAYBACK_OPEN 2 #define DSP_SPDIF_STATUS_HW_ENABLED 4 -#define DSP_SPDIF_STATUS_AC3_MODE 8 struct _dsp_module_desc_t; @@ -141,7 +140,6 @@ typedef struct _pcm_channel_descriptor_t { dsp_scb_descriptor_t * pcm_reader_scb; dsp_scb_descriptor_t * src_scb; dsp_scb_descriptor_t * mixer_scb; - int pcm_channel_id; void * private_data; } pcm_channel_descriptor_t; @@ -196,6 +194,10 @@ typedef struct _dsp_spos_instance_t { int spdif_status_in; u16 spdif_input_volume_right; u16 spdif_input_volume_left; + /* spdif channel status, + left right and user validity bits */ + int spdif_csuv_default; + int spdif_csuv_stream; /* SPDIF input sample rate converter */ dsp_scb_descriptor_t * spdif_in_src; diff --git a/include/sound/initval.h b/include/sound/initval.h index 7f47b8c74f92..2cced5c7eb06 100644 --- a/include/sound/initval.h +++ b/include/sound/initval.h @@ -155,12 +155,15 @@ static int __init get_id(char **str, char **dst) return 0; for (s = *str; isalpha(*s) || isdigit(*s) || *s == '_'; s++); if (s != *str) { - *dst = (char *)kmalloc(s - *str, GFP_KERNEL); - if ((d = *dst) != NULL) { - s = *str; - while (isalpha(*s) || isdigit(*s) || *s == '_') - *d++ = *s++; + *dst = (char *)kmalloc((s - *str) + 1, GFP_KERNEL); + s = *str; d = *dst; + while (isalpha(*s) || isdigit(*s) || *s == '_') { + if (d != NULL) + *d++ = *s; + s++; } + if (d != NULL) + *d = '\0'; } *str = s; if (*s == ',') { diff --git a/include/sound/mixer_oss.h b/include/sound/mixer_oss.h index 458d53cbd583..d88e1621097d 100644 --- a/include/sound/mixer_oss.h +++ b/include/sound/mixer_oss.h @@ -61,6 +61,7 @@ struct _snd_oss_mixer { void (*private_free_recsrc)(snd_mixer_oss_t *mixer); struct semaphore reg_mutex; snd_info_entry_t *proc_entry; + int oss_dev_alloc; /* --- */ int oss_recsrc; }; diff --git a/include/sound/mpu401.h b/include/sound/mpu401.h index 41502e177c0e..5ebec02cccd5 100644 --- a/include/sound/mpu401.h +++ b/include/sound/mpu401.h @@ -41,6 +41,7 @@ #define MPU401_HW_CMIPCI 15 /* CMIPCI MPU-401 UART */ #define MPU401_HW_ALS4000 16 /* Avance Logic ALS4000 */ #define MPU401_HW_INTEL8X0 17 /* Intel8x0 driver */ +#define MPU401_HW_PC98II 18 /* Roland PC98II */ #define MPU401_MODE_BIT_INPUT 0 #define MPU401_MODE_BIT_OUTPUT 1 @@ -64,6 +65,7 @@ struct _snd_mpu401 { unsigned short hardware; /* MPU401_HW_XXXX */ unsigned long port; /* base port of MPU-401 chip */ + unsigned long cport; /* port + 1 (usually) */ struct resource *res; /* port resource */ int irq; /* IRQ number of MPU-401 chip (-1 = poll) */ int irq_flags; @@ -89,8 +91,8 @@ struct _snd_mpu401 { /* I/O ports */ -#define MPU401C(mpu) ((mpu)->port + 1) -#define MPU401D(mpu) ((mpu)->port + 0) +#define MPU401C(mpu) (mpu)->cport +#define MPU401D(mpu) (mpu)->port /* diff --git a/include/sound/opl3.h b/include/sound/opl3.h index a447f92a6957..f516550dc9a1 100644 --- a/include/sound/opl3.h +++ b/include/sound/opl3.h @@ -229,6 +229,7 @@ #define OPL3_HW_OPL3_CS 0x0302 /* CS4232/CS4236+ */ #define OPL3_HW_OPL3_FM801 0x0303 /* FM801 */ #define OPL3_HW_OPL3_CS4281 0x0304 /* CS4281 */ +#define OPL3_HW_OPL3_PC98 0x0305 /* PC9800 */ #define OPL3_HW_OPL4 0x0400 #define OPL3_HW_MASK 0xff00 diff --git a/include/sound/pcm.h b/include/sound/pcm.h index c7f41630c253..d97f7e751d9a 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h @@ -443,8 +443,9 @@ struct _snd_pcm { }; typedef struct _snd_pcm_notify { - int (*n_register) (unsigned short minor, snd_pcm_t * pcm); - int (*n_unregister) (unsigned short minor, snd_pcm_t * pcm); + int (*n_register) (snd_pcm_t * pcm); + int (*n_disconnect) (snd_pcm_t * pcm); + int (*n_unregister) (snd_pcm_t * pcm); struct list_head list; } snd_pcm_notify_t; diff --git a/include/sound/pcm_oss.h b/include/sound/pcm_oss.h index 1c3d8d138518..d6274a5a1c76 100644 --- a/include/sound/pcm_oss.h +++ b/include/sound/pcm_oss.h @@ -77,6 +77,7 @@ typedef struct _snd_pcm_oss_stream { typedef struct _snd_pcm_oss { int reg; + unsigned int reg_mask; } snd_pcm_oss_t; #endif /* __SOUND_PCM_OSS_H */ diff --git a/include/sound/sb.h b/include/sound/sb.h index ec4f93c1b350..53f243b7bf64 100644 --- a/include/sound/sb.h +++ b/include/sound/sb.h @@ -225,7 +225,6 @@ typedef struct _snd_sb sb_t; #define SB_DT019X_MIC_DEV 0x6a #define SB_DT019X_SPKR_DEV 0x6a #define SB_DT019X_LINE_DEV 0x6e -#define SB_DT019X_OUTPUT_SW1 0x3c #define SB_DT019X_OUTPUT_SW2 0x4c #define SB_DT019X_CAPTURE_SW 0x6c @@ -235,6 +234,14 @@ typedef struct _snd_sb sb_t; #define SB_DT019X_CAP_SYNTH 0x07 #define SB_DT019X_CAP_MAIN 0x07 +#define SB_ALS4000_MONO_IO_CTRL 0x4b +#define SB_ALS4000_MIC_IN_GAIN 0x4d +#define SB_ALS4000_FMDAC 0x4f +#define SB_ALS4000_3D_SND_FX 0x50 +#define SB_ALS4000_3D_TIME_DELAY 0x51 +#define SB_ALS4000_3D_AUTO_MUTE 0x52 +#define SB_ALS4000_QSOUND 0xdb + /* IRQ setting bitmap */ #define SB_IRQSETUP_IRQ9 0x01 #define SB_IRQSETUP_IRQ5 0x02 diff --git a/include/sound/trident.h b/include/sound/trident.h index 56bf20a14a03..bf4ed45f1a63 100644 --- a/include/sound/trident.h +++ b/include/sound/trident.h @@ -101,10 +101,18 @@ /* Global registers */ enum global_control_bits { - CHANNEL_IDX = 0x0000003f, OVERRUN_IE = 0x00000400, - UNDERRUN_IE = 0x00000800, ENDLP_IE = 0x00001000, - MIDLP_IE = 0x00002000, ETOG_IE = 0x00004000, - EDROP_IE = 0x00008000, BANK_B_EN = 0x00010000 + CHANNEL_IDX = 0x0000003f, + OVERRUN_IE = 0x00000400, /* interrupt enable: capture overrun */ + UNDERRUN_IE = 0x00000800, /* interrupt enable: playback underrun */ + ENDLP_IE = 0x00001000, /* interrupt enable: end of buffer */ + MIDLP_IE = 0x00002000, /* interrupt enable: middle buffer */ + ETOG_IE = 0x00004000, /* interrupt enable: envelope toggling */ + EDROP_IE = 0x00008000, /* interrupt enable: envelope drop */ + BANK_B_EN = 0x00010000, /* SiS: enable bank B (64 channels) */ + PCMIN_B_MIX = 0x00020000, /* SiS: PCM IN B mixing enable */ + I2S_OUT_ASSIGN = 0x00040000, /* SiS: I2S Out contains surround PCM */ + SPDIF_OUT_ASSIGN= 0x00080000, /* SiS: 0=S/PDIF L/R | 1=PCM Out FIFO */ + MAIN_OUT_ASSIGN = 0x00100000, /* SiS: 0=PCM Out FIFO | 1=MMC Out buffer */ }; enum miscint_bits { @@ -423,6 +431,8 @@ struct _snd_trident { int ChanPCM; /* max number of PCM channels */ int ChanPCMcnt; /* actual number of PCM channels */ + int ac97_detect; /* 1 = AC97 in detection phase */ + struct _snd_4dwave synth; /* synth specific variables */ spinlock_t event_lock; diff --git a/include/sound/version.h b/include/sound/version.h index acaac7181bbe..a0166739358d 100644 --- a/include/sound/version.h +++ b/include/sound/version.h @@ -1,3 +1,3 @@ /* include/version.h. Generated automatically by configure. */ -#define CONFIG_SND_VERSION "0.9.0rc5" -#define CONFIG_SND_DATE " (Sun Nov 10 19:48:18 2002 UTC)" +#define CONFIG_SND_VERSION "0.9.0rc6" +#define CONFIG_SND_DATE " (Tue Dec 17 19:01:13 2002 UTC)" |
