diff options
Diffstat (limited to 'include/sound')
-rw-r--r-- | include/sound/ac97_codec.h | 8 | ||||
-rw-r--r-- | include/sound/asound.h | 16 | ||||
-rw-r--r-- | include/sound/control.h | 2 | ||||
-rw-r--r-- | include/sound/core.h | 40 | ||||
-rw-r--r-- | include/sound/driver.h | 2 | ||||
-rw-r--r-- | include/sound/emu10k1.h | 43 | ||||
-rw-r--r-- | include/sound/gus.h | 23 | ||||
-rw-r--r-- | include/sound/hdspm.h | 131 | ||||
-rw-r--r-- | include/sound/pcm.h | 32 | ||||
-rw-r--r-- | include/sound/seq_midi_event.h | 2 | ||||
-rw-r--r-- | include/sound/seq_virmidi.h | 1 | ||||
-rw-r--r-- | include/sound/timer.h | 2 | ||||
-rw-r--r-- | include/sound/version.h | 4 | ||||
-rw-r--r-- | include/sound/vx_core.h | 16 |
14 files changed, 227 insertions, 95 deletions
diff --git a/include/sound/ac97_codec.h b/include/sound/ac97_codec.h index 2433e279e071..1309c12b8f71 100644 --- a/include/sound/ac97_codec.h +++ b/include/sound/ac97_codec.h | |||
@@ -437,6 +437,7 @@ struct snd_ac97_build_ops { | |||
437 | void (*suspend) (ac97_t *ac97); | 437 | void (*suspend) (ac97_t *ac97); |
438 | void (*resume) (ac97_t *ac97); | 438 | void (*resume) (ac97_t *ac97); |
439 | #endif | 439 | #endif |
440 | void (*update_jacks) (ac97_t *ac97); /* for jack-sharing */ | ||
440 | }; | 441 | }; |
441 | 442 | ||
442 | struct _snd_ac97_bus_ops { | 443 | struct _snd_ac97_bus_ops { |
@@ -516,6 +517,9 @@ struct _snd_ac97 { | |||
516 | } ad18xx; | 517 | } ad18xx; |
517 | unsigned int dev_flags; /* device specific */ | 518 | unsigned int dev_flags; /* device specific */ |
518 | } spec; | 519 | } spec; |
520 | /* jack-sharing info */ | ||
521 | unsigned char indep_surround; | ||
522 | unsigned char channel_mode; | ||
519 | }; | 523 | }; |
520 | 524 | ||
521 | /* conditions */ | 525 | /* conditions */ |
@@ -569,8 +573,8 @@ enum { | |||
569 | }; | 573 | }; |
570 | 574 | ||
571 | struct ac97_quirk { | 575 | struct ac97_quirk { |
572 | unsigned short vendor; /* PCI vendor id */ | 576 | unsigned short subvendor; /* PCI subsystem vendor id */ |
573 | unsigned short device; /* PCI device id */ | 577 | unsigned short subdevice; /* PCI sybsystem device id */ |
574 | unsigned short mask; /* device id bit mask, 0 = accept all */ | 578 | unsigned short mask; /* device id bit mask, 0 = accept all */ |
575 | unsigned int codec_id; /* codec id (if any), 0 = accept all */ | 579 | unsigned int codec_id; /* codec id (if any), 0 = accept all */ |
576 | const char *name; /* name shown as info */ | 580 | const char *name; /* name shown as info */ |
diff --git a/include/sound/asound.h b/include/sound/asound.h index a4d149f34541..9974f83cca44 100644 --- a/include/sound/asound.h +++ b/include/sound/asound.h | |||
@@ -113,9 +113,10 @@ enum sndrv_hwdep_iface { | |||
113 | SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */ | 113 | SNDRV_HWDEP_IFACE_BLUETOOTH, /* Bluetooth audio */ |
114 | SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */ | 114 | SNDRV_HWDEP_IFACE_USX2Y_PCM, /* Tascam US122, US224 & US428 rawusb pcm */ |
115 | SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */ | 115 | SNDRV_HWDEP_IFACE_PCXHR, /* Digigram PCXHR */ |
116 | SNDRV_HWDEP_IFACE_SB_RC, /* SB Extigy/Audigy2NX remote control */ | ||
116 | 117 | ||
117 | /* Don't forget to change the following: */ | 118 | /* Don't forget to change the following: */ |
118 | SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_PCXHR | 119 | SNDRV_HWDEP_IFACE_LAST = SNDRV_HWDEP_IFACE_SB_RC |
119 | }; | 120 | }; |
120 | 121 | ||
121 | struct sndrv_hwdep_info { | 122 | struct sndrv_hwdep_info { |
@@ -344,7 +345,7 @@ enum sndrv_pcm_hw_param { | |||
344 | SNDRV_PCM_HW_PARAM_LAST_INTERVAL = SNDRV_PCM_HW_PARAM_TICK_TIME | 345 | SNDRV_PCM_HW_PARAM_LAST_INTERVAL = SNDRV_PCM_HW_PARAM_TICK_TIME |
345 | }; | 346 | }; |
346 | 347 | ||
347 | #define SNDRV_PCM_HW_PARAMS_RUNTIME (1<<0) | 348 | #define SNDRV_PCM_HW_PARAMS_NORESAMPLE (1<<0) /* avoid rate resampling */ |
348 | 349 | ||
349 | struct sndrv_interval { | 350 | struct sndrv_interval { |
350 | unsigned int min, max; | 351 | unsigned int min, max; |
@@ -559,7 +560,7 @@ enum { | |||
559 | * Timer section - /dev/snd/timer | 560 | * Timer section - /dev/snd/timer |
560 | */ | 561 | */ |
561 | 562 | ||
562 | #define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2) | 563 | #define SNDRV_TIMER_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 4) |
563 | 564 | ||
564 | enum sndrv_timer_class { | 565 | enum sndrv_timer_class { |
565 | SNDRV_TIMER_CLASS_NONE = -1, | 566 | SNDRV_TIMER_CLASS_NONE = -1, |
@@ -672,10 +673,11 @@ enum { | |||
672 | SNDRV_TIMER_IOCTL_INFO = _IOR('T', 0x11, struct sndrv_timer_info), | 673 | SNDRV_TIMER_IOCTL_INFO = _IOR('T', 0x11, struct sndrv_timer_info), |
673 | SNDRV_TIMER_IOCTL_PARAMS = _IOW('T', 0x12, struct sndrv_timer_params), | 674 | SNDRV_TIMER_IOCTL_PARAMS = _IOW('T', 0x12, struct sndrv_timer_params), |
674 | SNDRV_TIMER_IOCTL_STATUS = _IOR('T', 0x14, struct sndrv_timer_status), | 675 | SNDRV_TIMER_IOCTL_STATUS = _IOR('T', 0x14, struct sndrv_timer_status), |
675 | SNDRV_TIMER_IOCTL_START = _IO('T', 0x20), | 676 | /* The following four ioctls are changed since 1.0.9 due to confliction */ |
676 | SNDRV_TIMER_IOCTL_STOP = _IO('T', 0x21), | 677 | SNDRV_TIMER_IOCTL_START = _IO('T', 0xa0), |
677 | SNDRV_TIMER_IOCTL_CONTINUE = _IO('T', 0x22), | 678 | SNDRV_TIMER_IOCTL_STOP = _IO('T', 0xa1), |
678 | SNDRV_TIMER_IOCTL_PAUSE = _IO('T', 0x23), | 679 | SNDRV_TIMER_IOCTL_CONTINUE = _IO('T', 0xa2), |
680 | SNDRV_TIMER_IOCTL_PAUSE = _IO('T', 0xa3), | ||
679 | }; | 681 | }; |
680 | 682 | ||
681 | struct sndrv_timer_read { | 683 | struct sndrv_timer_read { |
diff --git a/include/sound/control.h b/include/sound/control.h index 7b9444cd02f4..ef7903c7a327 100644 --- a/include/sound/control.h +++ b/include/sound/control.h | |||
@@ -106,7 +106,7 @@ typedef int (*snd_kctl_ioctl_func_t) (snd_card_t * card, | |||
106 | void snd_ctl_notify(snd_card_t * card, unsigned int mask, snd_ctl_elem_id_t * id); | 106 | void snd_ctl_notify(snd_card_t * card, unsigned int mask, snd_ctl_elem_id_t * id); |
107 | 107 | ||
108 | snd_kcontrol_t *snd_ctl_new(snd_kcontrol_t * kcontrol, unsigned int access); | 108 | snd_kcontrol_t *snd_ctl_new(snd_kcontrol_t * kcontrol, unsigned int access); |
109 | snd_kcontrol_t *snd_ctl_new1(snd_kcontrol_new_t * kcontrolnew, void * private_data); | 109 | snd_kcontrol_t *snd_ctl_new1(const snd_kcontrol_new_t * kcontrolnew, void * private_data); |
110 | void snd_ctl_free_one(snd_kcontrol_t * kcontrol); | 110 | void snd_ctl_free_one(snd_kcontrol_t * kcontrol); |
111 | int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol); | 111 | int snd_ctl_add(snd_card_t * card, snd_kcontrol_t * kcontrol); |
112 | int snd_ctl_remove(snd_card_t * card, snd_kcontrol_t * kcontrol); | 112 | int snd_ctl_remove(snd_card_t * card, snd_kcontrol_t * kcontrol); |
diff --git a/include/sound/core.h b/include/sound/core.h index 9117c23e3a01..f72b3ef515e2 100644 --- a/include/sound/core.h +++ b/include/sound/core.h | |||
@@ -126,25 +126,26 @@ struct snd_monitor_file { | |||
126 | struct snd_monitor_file *next; | 126 | struct snd_monitor_file *next; |
127 | }; | 127 | }; |
128 | 128 | ||
129 | struct snd_shutdown_f_ops; /* define it later */ | 129 | struct snd_shutdown_f_ops; /* define it later in init.c */ |
130 | 130 | ||
131 | /* main structure for soundcard */ | 131 | /* main structure for soundcard */ |
132 | 132 | ||
133 | struct _snd_card { | 133 | struct _snd_card { |
134 | int number; /* number of soundcard (index to snd_cards) */ | 134 | int number; /* number of soundcard (index to |
135 | snd_cards) */ | ||
135 | 136 | ||
136 | char id[16]; /* id string of this card */ | 137 | char id[16]; /* id string of this card */ |
137 | char driver[16]; /* driver name */ | 138 | char driver[16]; /* driver name */ |
138 | char shortname[32]; /* short name of this soundcard */ | 139 | char shortname[32]; /* short name of this soundcard */ |
139 | char longname[80]; /* name of this soundcard */ | 140 | char longname[80]; /* name of this soundcard */ |
140 | char mixername[80]; /* mixer name */ | 141 | char mixername[80]; /* mixer name */ |
141 | char components[80]; /* card components delimited with space */ | 142 | char components[80]; /* card components delimited with |
142 | 143 | space */ | |
143 | struct module *module; /* top-level module */ | 144 | struct module *module; /* top-level module */ |
144 | 145 | ||
145 | void *private_data; /* private data for soundcard */ | 146 | void *private_data; /* private data for soundcard */ |
146 | void (*private_free) (snd_card_t *card); /* callback for freeing of private data */ | 147 | void (*private_free) (snd_card_t *card); /* callback for freeing of |
147 | 148 | private data */ | |
148 | struct list_head devices; /* devices */ | 149 | struct list_head devices; /* devices */ |
149 | 150 | ||
150 | unsigned int last_numid; /* last used numeric ID */ | 151 | unsigned int last_numid; /* last used numeric ID */ |
@@ -160,7 +161,8 @@ struct _snd_card { | |||
160 | struct proc_dir_entry *proc_root_link; /* number link to real id */ | 161 | struct proc_dir_entry *proc_root_link; /* number link to real id */ |
161 | 162 | ||
162 | struct snd_monitor_file *files; /* all files associated to this card */ | 163 | struct snd_monitor_file *files; /* all files associated to this card */ |
163 | struct snd_shutdown_f_ops *s_f_ops; /* file operations in the shutdown state */ | 164 | struct snd_shutdown_f_ops *s_f_ops; /* file operations in the shutdown |
165 | state */ | ||
164 | spinlock_t files_lock; /* lock the files for this card */ | 166 | spinlock_t files_lock; /* lock the files for this card */ |
165 | int shutdown; /* this card is going down */ | 167 | int shutdown; /* this card is going down */ |
166 | wait_queue_head_t shutdown_sleep; | 168 | wait_queue_head_t shutdown_sleep; |
@@ -196,8 +198,6 @@ static inline void snd_power_unlock(snd_card_t *card) | |||
196 | up(&card->power_lock); | 198 | up(&card->power_lock); |
197 | } | 199 | } |
198 | 200 | ||
199 | int snd_power_wait(snd_card_t *card, unsigned int power_state, struct file *file); | ||
200 | |||
201 | static inline unsigned int snd_power_get_state(snd_card_t *card) | 201 | static inline unsigned int snd_power_get_state(snd_card_t *card) |
202 | { | 202 | { |
203 | return card->power_state; | 203 | return card->power_state; |
@@ -208,6 +208,10 @@ static inline void snd_power_change_state(snd_card_t *card, unsigned int state) | |||
208 | card->power_state = state; | 208 | card->power_state = state; |
209 | wake_up(&card->power_sleep); | 209 | wake_up(&card->power_sleep); |
210 | } | 210 | } |
211 | |||
212 | /* init.c */ | ||
213 | int snd_power_wait(snd_card_t *card, unsigned int power_state, struct file *file); | ||
214 | |||
211 | int snd_card_set_pm_callback(snd_card_t *card, | 215 | int snd_card_set_pm_callback(snd_card_t *card, |
212 | int (*suspend)(snd_card_t *, pm_message_t), | 216 | int (*suspend)(snd_card_t *, pm_message_t), |
213 | int (*resume)(snd_card_t *), | 217 | int (*resume)(snd_card_t *), |
@@ -238,15 +242,14 @@ static inline int snd_power_wait(snd_card_t *card, unsigned int state, struct fi | |||
238 | 242 | ||
239 | #endif /* CONFIG_PM */ | 243 | #endif /* CONFIG_PM */ |
240 | 244 | ||
241 | /* device.c */ | ||
242 | |||
243 | struct _snd_minor { | 245 | struct _snd_minor { |
244 | struct list_head list; /* list of all minors per card */ | 246 | struct list_head list; /* list of all minors per card */ |
245 | int number; /* minor number */ | 247 | int number; /* minor number */ |
246 | int device; /* device number */ | 248 | int device; /* device number */ |
247 | const char *comment; /* for /proc/asound/devices */ | 249 | const char *comment; /* for /proc/asound/devices */ |
248 | struct file_operations *f_ops; /* file operations */ | 250 | struct file_operations *f_ops; /* file operations */ |
249 | char name[0]; /* device name (keep at the end of structure) */ | 251 | char name[0]; /* device name (keep at the end of |
252 | structure) */ | ||
250 | }; | 253 | }; |
251 | 254 | ||
252 | typedef struct _snd_minor snd_minor_t; | 255 | typedef struct _snd_minor snd_minor_t; |
@@ -287,11 +290,12 @@ void snd_memory_init(void); | |||
287 | void snd_memory_done(void); | 290 | void snd_memory_done(void); |
288 | int snd_memory_info_init(void); | 291 | int snd_memory_info_init(void); |
289 | int snd_memory_info_done(void); | 292 | int snd_memory_info_done(void); |
290 | void *snd_hidden_kmalloc(size_t size, int flags); | 293 | void *snd_hidden_kmalloc(size_t size, unsigned int __nocast flags); |
291 | void *snd_hidden_kcalloc(size_t n, size_t size, int flags); | 294 | void *snd_hidden_kcalloc(size_t n, size_t size, unsigned int __nocast flags); |
292 | void snd_hidden_kfree(const void *obj); | 295 | void snd_hidden_kfree(const void *obj); |
293 | void *snd_hidden_vmalloc(unsigned long size); | 296 | void *snd_hidden_vmalloc(unsigned long size); |
294 | void snd_hidden_vfree(void *obj); | 297 | void snd_hidden_vfree(void *obj); |
298 | char *snd_hidden_kstrdup(const char *s, unsigned int __nocast flags); | ||
295 | #define kmalloc(size, flags) snd_hidden_kmalloc(size, flags) | 299 | #define kmalloc(size, flags) snd_hidden_kmalloc(size, flags) |
296 | #define kcalloc(n, size, flags) snd_hidden_kcalloc(n, size, flags) | 300 | #define kcalloc(n, size, flags) snd_hidden_kcalloc(n, size, flags) |
297 | #define kfree(obj) snd_hidden_kfree(obj) | 301 | #define kfree(obj) snd_hidden_kfree(obj) |
@@ -301,6 +305,7 @@ void snd_hidden_vfree(void *obj); | |||
301 | #define vmalloc_nocheck(size) snd_wrapper_vmalloc(size) | 305 | #define vmalloc_nocheck(size) snd_wrapper_vmalloc(size) |
302 | #define kfree_nocheck(obj) snd_wrapper_kfree(obj) | 306 | #define kfree_nocheck(obj) snd_wrapper_kfree(obj) |
303 | #define vfree_nocheck(obj) snd_wrapper_vfree(obj) | 307 | #define vfree_nocheck(obj) snd_wrapper_vfree(obj) |
308 | #define kstrdup(s, flags) snd_hidden_kstrdup(s, flags) | ||
304 | #else | 309 | #else |
305 | #define snd_memory_init() /*NOP*/ | 310 | #define snd_memory_init() /*NOP*/ |
306 | #define snd_memory_done() /*NOP*/ | 311 | #define snd_memory_done() /*NOP*/ |
@@ -311,7 +316,6 @@ void snd_hidden_vfree(void *obj); | |||
311 | #define kfree_nocheck(obj) kfree(obj) | 316 | #define kfree_nocheck(obj) kfree(obj) |
312 | #define vfree_nocheck(obj) vfree(obj) | 317 | #define vfree_nocheck(obj) vfree(obj) |
313 | #endif | 318 | #endif |
314 | char *snd_kmalloc_strdup(const char *string, int flags); | ||
315 | int copy_to_user_fromio(void __user *dst, const volatile void __iomem *src, size_t count); | 319 | int copy_to_user_fromio(void __user *dst, const volatile void __iomem *src, size_t count); |
316 | int copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count); | 320 | int copy_from_user_toio(volatile void __iomem *dst, const void __user *src, size_t count); |
317 | 321 | ||
@@ -356,11 +360,13 @@ int snd_device_free_all(snd_card_t *card, snd_device_cmd_t cmd); | |||
356 | 360 | ||
357 | /* isadma.c */ | 361 | /* isadma.c */ |
358 | 362 | ||
363 | #ifdef CONFIG_ISA_DMA_API | ||
359 | #define DMA_MODE_NO_ENABLE 0x0100 | 364 | #define DMA_MODE_NO_ENABLE 0x0100 |
360 | 365 | ||
361 | void snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode); | 366 | void snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode); |
362 | void snd_dma_disable(unsigned long dma); | 367 | void snd_dma_disable(unsigned long dma); |
363 | unsigned int snd_dma_pointer(unsigned long dma, unsigned int size); | 368 | unsigned int snd_dma_pointer(unsigned long dma, unsigned int size); |
369 | #endif | ||
364 | 370 | ||
365 | /* misc.c */ | 371 | /* misc.c */ |
366 | 372 | ||
@@ -410,7 +416,7 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...) | |||
410 | printk(fmt ,##args) | 416 | printk(fmt ,##args) |
411 | #endif | 417 | #endif |
412 | /** | 418 | /** |
413 | * snd_assert - run-time assersion macro | 419 | * snd_assert - run-time assertion macro |
414 | * @expr: expression | 420 | * @expr: expression |
415 | * @args...: the action | 421 | * @args...: the action |
416 | * | 422 | * |
@@ -426,7 +432,7 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...) | |||
426 | }\ | 432 | }\ |
427 | } while (0) | 433 | } while (0) |
428 | /** | 434 | /** |
429 | * snd_runtime_check - run-time assersion macro | 435 | * snd_runtime_check - run-time assertion macro |
430 | * @expr: expression | 436 | * @expr: expression |
431 | * @args...: the action | 437 | * @args...: the action |
432 | * | 438 | * |
diff --git a/include/sound/driver.h b/include/sound/driver.h index 948e9a1aebef..0d12456ec3ae 100644 --- a/include/sound/driver.h +++ b/include/sound/driver.h | |||
@@ -51,7 +51,7 @@ | |||
51 | #ifdef CONFIG_SND_DEBUG_MEMORY | 51 | #ifdef CONFIG_SND_DEBUG_MEMORY |
52 | #include <linux/slab.h> | 52 | #include <linux/slab.h> |
53 | #include <linux/vmalloc.h> | 53 | #include <linux/vmalloc.h> |
54 | void *snd_wrapper_kmalloc(size_t, int); | 54 | void *snd_wrapper_kmalloc(size_t, unsigned int __nocast); |
55 | #undef kmalloc | 55 | #undef kmalloc |
56 | void snd_wrapper_kfree(const void *); | 56 | void snd_wrapper_kfree(const void *); |
57 | #undef kfree | 57 | #undef kfree |
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h index 43b6786abae5..c2ef3f023687 100644 --- a/include/sound/emu10k1.h +++ b/include/sound/emu10k1.h | |||
@@ -83,7 +83,8 @@ | |||
83 | #define IPR 0x08 /* Global interrupt pending register */ | 83 | #define IPR 0x08 /* Global interrupt pending register */ |
84 | /* Clear pending interrupts by writing a 1 to */ | 84 | /* Clear pending interrupts by writing a 1 to */ |
85 | /* the relevant bits and zero to the other bits */ | 85 | /* the relevant bits and zero to the other bits */ |
86 | 86 | #define IPR_P16V 0x80000000 /* Bit set when the CA0151 P16V chip wishes | |
87 | to interrupt */ | ||
87 | #define IPR_GPIOMSG 0x20000000 /* GPIO message interrupt (RE'd, still not sure | 88 | #define IPR_GPIOMSG 0x20000000 /* GPIO message interrupt (RE'd, still not sure |
88 | which INTE bits enable it) */ | 89 | which INTE bits enable it) */ |
89 | 90 | ||
@@ -746,6 +747,7 @@ | |||
746 | /* Assumes sample lock */ | 747 | /* Assumes sample lock */ |
747 | 748 | ||
748 | /* These three bitfields apply to CDSRCS, GPSRCS, and (except as noted) ZVSRCS. */ | 749 | /* These three bitfields apply to CDSRCS, GPSRCS, and (except as noted) ZVSRCS. */ |
750 | #define SRCS_SPDIFVALID 0x04000000 /* SPDIF stream valid */ | ||
749 | #define SRCS_SPDIFLOCKED 0x02000000 /* SPDIF stream locked */ | 751 | #define SRCS_SPDIFLOCKED 0x02000000 /* SPDIF stream locked */ |
750 | #define SRCS_RATELOCKED 0x01000000 /* Sample rate locked */ | 752 | #define SRCS_RATELOCKED 0x01000000 /* Sample rate locked */ |
751 | #define SRCS_ESTSAMPLERATE 0x0007ffff /* Do not modify this field. */ | 753 | #define SRCS_ESTSAMPLERATE 0x0007ffff /* Do not modify this field. */ |
@@ -803,10 +805,26 @@ | |||
803 | #define A_FXWC2 0x75 /* Selects 0x9f-0x80 for FX recording */ | 805 | #define A_FXWC2 0x75 /* Selects 0x9f-0x80 for FX recording */ |
804 | 806 | ||
805 | #define A_SPDIF_SAMPLERATE 0x76 /* Set the sample rate of SPDIF output */ | 807 | #define A_SPDIF_SAMPLERATE 0x76 /* Set the sample rate of SPDIF output */ |
806 | #define A_SPDIF_RATE_MASK 0x000000c0 | 808 | #define A_SAMPLE_RATE 0x76 /* Various sample rate settings. */ |
809 | #define A_SAMPLE_RATE_NOT_USED 0x0ffc111e /* Bits that are not used and cannot be set. */ | ||
810 | #define A_SAMPLE_RATE_UNKNOWN 0xf0030001 /* Bits that can be set, but have unknown use. */ | ||
811 | #define A_SPDIF_RATE_MASK 0x000000e0 /* Any other values for rates, just use 48000 */ | ||
807 | #define A_SPDIF_48000 0x00000000 | 812 | #define A_SPDIF_48000 0x00000000 |
808 | #define A_SPDIF_44100 0x00000080 | 813 | #define A_SPDIF_192000 0x00000020 |
809 | #define A_SPDIF_96000 0x00000040 | 814 | #define A_SPDIF_96000 0x00000040 |
815 | #define A_SPDIF_44100 0x00000080 | ||
816 | |||
817 | #define A_I2S_CAPTURE_RATE_MASK 0x00000e00 /* This sets the capture PCM rate, but it is */ | ||
818 | #define A_I2S_CAPTURE_48000 0x00000000 /* unclear if this sets the ADC rate as well. */ | ||
819 | #define A_I2S_CAPTURE_192000 0x00000200 | ||
820 | #define A_I2S_CAPTURE_96000 0x00000400 | ||
821 | #define A_I2S_CAPTURE_44100 0x00000800 | ||
822 | |||
823 | #define A_PCM_RATE_MASK 0x0000e000 /* This sets the playback PCM rate on the P16V */ | ||
824 | #define A_PCM_48000 0x00000000 | ||
825 | #define A_PCM_192000 0x00002000 | ||
826 | #define A_PCM_96000 0x00004000 | ||
827 | #define A_PCM_44100 0x00008000 | ||
810 | 828 | ||
811 | /* 0x77,0x78,0x79 "something i2s-related" - default to 0x01080000 on my audigy 2 ZS --rlrevell */ | 829 | /* 0x77,0x78,0x79 "something i2s-related" - default to 0x01080000 on my audigy 2 ZS --rlrevell */ |
812 | /* 0x7a, 0x7b - lookup tables */ | 830 | /* 0x7a, 0x7b - lookup tables */ |
@@ -1039,28 +1057,28 @@ typedef struct { | |||
1039 | u32 vendor; | 1057 | u32 vendor; |
1040 | u32 device; | 1058 | u32 device; |
1041 | u32 subsystem; | 1059 | u32 subsystem; |
1060 | unsigned char revision; | ||
1042 | unsigned char emu10k1_chip; /* Original SB Live. Not SB Live 24bit. */ | 1061 | unsigned char emu10k1_chip; /* Original SB Live. Not SB Live 24bit. */ |
1043 | unsigned char emu10k2_chip; /* Audigy 1 or Audigy 2. */ | 1062 | unsigned char emu10k2_chip; /* Audigy 1 or Audigy 2. */ |
1044 | unsigned char ca0102_chip; /* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */ | 1063 | unsigned char ca0102_chip; /* Audigy 1 or Audigy 2. Not SB Audigy 2 Value. */ |
1045 | unsigned char ca0108_chip; /* Audigy 2 Value */ | 1064 | unsigned char ca0108_chip; /* Audigy 2 Value */ |
1046 | unsigned char ca0151_chip; /* P16V */ | 1065 | unsigned char ca0151_chip; /* P16V */ |
1047 | unsigned char spk71; /* Has 7.1 speakers */ | 1066 | unsigned char spk71; /* Has 7.1 speakers */ |
1067 | unsigned char sblive51; /* SBLive! 5.1 - extout 0x11 -> center, 0x12 -> lfe */ | ||
1048 | unsigned char spdif_bug; /* Has Spdif phasing bug */ | 1068 | unsigned char spdif_bug; /* Has Spdif phasing bug */ |
1049 | unsigned char ac97_chip; /* Has an AC97 chip */ | 1069 | unsigned char ac97_chip; /* Has an AC97 chip */ |
1050 | unsigned char ecard; /* APS EEPROM */ | 1070 | unsigned char ecard; /* APS EEPROM */ |
1051 | char * driver; | 1071 | const char *driver; |
1052 | char * name; | 1072 | const char *name; |
1073 | const char *id; /* for backward compatibility - can be NULL if not needed */ | ||
1053 | } emu_chip_details_t; | 1074 | } emu_chip_details_t; |
1054 | 1075 | ||
1055 | struct _snd_emu10k1 { | 1076 | struct _snd_emu10k1 { |
1056 | int irq; | 1077 | int irq; |
1057 | 1078 | ||
1058 | unsigned long port; /* I/O port number */ | 1079 | unsigned long port; /* I/O port number */ |
1059 | unsigned int APS: 1, /* APS flag */ | 1080 | unsigned int tos_link: 1, /* tos link detected */ |
1060 | no_ac97: 1, /* no AC'97 */ | 1081 | rear_ac97: 1; /* rear channels are on AC'97 */ |
1061 | tos_link: 1, /* tos link detected */ | ||
1062 | rear_ac97: 1, /* rear channels are on AC'97 */ | ||
1063 | spk71:1; /* 7.1 configuration (Audigy 2 ZS) */ | ||
1064 | const emu_chip_details_t *card_capabilities; /* Contains profile of card capabilities */ | 1082 | const emu_chip_details_t *card_capabilities; /* Contains profile of card capabilities */ |
1065 | unsigned int audigy; /* is Audigy? */ | 1083 | unsigned int audigy; /* is Audigy? */ |
1066 | unsigned int revision; /* chip revision */ | 1084 | unsigned int revision; /* chip revision */ |
@@ -1109,7 +1127,10 @@ struct _snd_emu10k1 { | |||
1109 | 1127 | ||
1110 | emu10k1_voice_t voices[NUM_G]; | 1128 | emu10k1_voice_t voices[NUM_G]; |
1111 | emu10k1_voice_t p16v_voices[4]; | 1129 | emu10k1_voice_t p16v_voices[4]; |
1130 | emu10k1_voice_t p16v_capture_voice; | ||
1112 | int p16v_device_offset; | 1131 | int p16v_device_offset; |
1132 | u32 p16v_capture_source; | ||
1133 | u32 p16v_capture_channel; | ||
1113 | emu10k1_pcm_mixer_t pcm_mixer[32]; | 1134 | emu10k1_pcm_mixer_t pcm_mixer[32]; |
1114 | emu10k1_pcm_mixer_t efx_pcm_mixer[NUM_EFX_PLAYBACK]; | 1135 | emu10k1_pcm_mixer_t efx_pcm_mixer[NUM_EFX_PLAYBACK]; |
1115 | snd_kcontrol_t *ctl_send_routing; | 1136 | snd_kcontrol_t *ctl_send_routing; |
@@ -1146,6 +1167,7 @@ int snd_emu10k1_create(snd_card_t * card, | |||
1146 | unsigned short extout_mask, | 1167 | unsigned short extout_mask, |
1147 | long max_cache_bytes, | 1168 | long max_cache_bytes, |
1148 | int enable_ir, | 1169 | int enable_ir, |
1170 | uint subsystem, | ||
1149 | emu10k1_t ** remu); | 1171 | emu10k1_t ** remu); |
1150 | 1172 | ||
1151 | int snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); | 1173 | int snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); |
@@ -1453,7 +1475,6 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, | |||
1453 | #endif | 1475 | #endif |
1454 | 1476 | ||
1455 | typedef struct { | 1477 | typedef struct { |
1456 | unsigned int card; /* card type */ | ||
1457 | unsigned int internal_tram_size; /* in samples */ | 1478 | unsigned int internal_tram_size; /* in samples */ |
1458 | unsigned int external_tram_size; /* in samples */ | 1479 | unsigned int external_tram_size; /* in samples */ |
1459 | char fxbus_names[16][32]; /* names of FXBUSes */ | 1480 | char fxbus_names[16][32]; /* names of FXBUSes */ |
diff --git a/include/sound/gus.h b/include/sound/gus.h index 8b6287a6fff5..b4b461ca173d 100644 --- a/include/sound/gus.h +++ b/include/sound/gus.h | |||
@@ -526,9 +526,6 @@ extern void snd_gf1_adlib_write(snd_gus_card_t * gus, unsigned char reg, unsigne | |||
526 | extern void snd_gf1_dram_addr(snd_gus_card_t * gus, unsigned int addr); | 526 | extern void snd_gf1_dram_addr(snd_gus_card_t * gus, unsigned int addr); |
527 | extern void snd_gf1_poke(snd_gus_card_t * gus, unsigned int addr, unsigned char data); | 527 | extern void snd_gf1_poke(snd_gus_card_t * gus, unsigned int addr, unsigned char data); |
528 | extern unsigned char snd_gf1_peek(snd_gus_card_t * gus, unsigned int addr); | 528 | extern unsigned char snd_gf1_peek(snd_gus_card_t * gus, unsigned int addr); |
529 | extern void snd_gf1_pokew(snd_gus_card_t * gus, unsigned int addr, unsigned short data); | ||
530 | extern unsigned short snd_gf1_peekw(snd_gus_card_t * gus, unsigned int addr); | ||
531 | extern void snd_gf1_dram_setmem(snd_gus_card_t * gus, unsigned int addr, unsigned short value, unsigned int count); | ||
532 | extern void snd_gf1_write_addr(snd_gus_card_t * gus, unsigned char reg, unsigned int addr, short w_16bit); | 529 | extern void snd_gf1_write_addr(snd_gus_card_t * gus, unsigned char reg, unsigned int addr, short w_16bit); |
533 | extern unsigned int snd_gf1_read_addr(snd_gus_card_t * gus, unsigned char reg, short w_16bit); | 530 | extern unsigned int snd_gf1_read_addr(snd_gus_card_t * gus, unsigned char reg, short w_16bit); |
534 | extern void snd_gf1_i_ctrl_stop(snd_gus_card_t * gus, unsigned char reg); | 531 | extern void snd_gf1_i_ctrl_stop(snd_gus_card_t * gus, unsigned char reg); |
@@ -544,9 +541,6 @@ extern inline unsigned short snd_gf1_i_read16(snd_gus_card_t * gus, unsigned cha | |||
544 | { | 541 | { |
545 | return snd_gf1_i_look16(gus, reg | 0x80); | 542 | return snd_gf1_i_look16(gus, reg | 0x80); |
546 | } | 543 | } |
547 | extern void snd_gf1_i_adlib_write(snd_gus_card_t * gus, unsigned char reg, unsigned char data); | ||
548 | extern void snd_gf1_i_write_addr(snd_gus_card_t * gus, unsigned char reg, unsigned int addr, short w_16bit); | ||
549 | extern unsigned int snd_gf1_i_read_addr(snd_gus_card_t * gus, unsigned char reg, short w_16bit); | ||
550 | 544 | ||
551 | extern void snd_gf1_select_active_voices(snd_gus_card_t * gus); | 545 | extern void snd_gf1_select_active_voices(snd_gus_card_t * gus); |
552 | 546 | ||
@@ -580,10 +574,6 @@ extern void snd_gf1_lfo_command(snd_gus_card_t * gus, int voice, unsigned char * | |||
580 | 574 | ||
581 | void snd_gf1_mem_lock(snd_gf1_mem_t * alloc, int xup); | 575 | void snd_gf1_mem_lock(snd_gf1_mem_t * alloc, int xup); |
582 | int snd_gf1_mem_xfree(snd_gf1_mem_t * alloc, snd_gf1_mem_block_t * block); | 576 | int snd_gf1_mem_xfree(snd_gf1_mem_t * alloc, snd_gf1_mem_block_t * block); |
583 | snd_gf1_mem_block_t *snd_gf1_mem_look(snd_gf1_mem_t * alloc, | ||
584 | unsigned int address); | ||
585 | snd_gf1_mem_block_t *snd_gf1_mem_share(snd_gf1_mem_t * alloc, | ||
586 | unsigned int *share_id); | ||
587 | snd_gf1_mem_block_t *snd_gf1_mem_alloc(snd_gf1_mem_t * alloc, int owner, | 577 | snd_gf1_mem_block_t *snd_gf1_mem_alloc(snd_gf1_mem_t * alloc, int owner, |
588 | char *name, int size, int w_16, | 578 | char *name, int size, int w_16, |
589 | int align, unsigned int *share_id); | 579 | int align, unsigned int *share_id); |
@@ -608,23 +598,13 @@ int snd_gf1_dma_transfer_block(snd_gus_card_t * gus, | |||
608 | /* gus_volume.c */ | 598 | /* gus_volume.c */ |
609 | 599 | ||
610 | unsigned short snd_gf1_lvol_to_gvol_raw(unsigned int vol); | 600 | unsigned short snd_gf1_lvol_to_gvol_raw(unsigned int vol); |
611 | unsigned int snd_gf1_gvol_to_lvol_raw(unsigned short gf1_vol); | ||
612 | unsigned int snd_gf1_calc_ramp_rate(snd_gus_card_t * gus, | ||
613 | unsigned short start, | ||
614 | unsigned short end, | ||
615 | unsigned int us); | ||
616 | unsigned short snd_gf1_translate_freq(snd_gus_card_t * gus, unsigned int freq2); | 601 | unsigned short snd_gf1_translate_freq(snd_gus_card_t * gus, unsigned int freq2); |
617 | unsigned short snd_gf1_compute_pitchbend(unsigned short pitchbend, unsigned short sens); | ||
618 | unsigned short snd_gf1_compute_freq(unsigned int freq, | ||
619 | unsigned int rate, | ||
620 | unsigned short mix_rate); | ||
621 | 602 | ||
622 | /* gus_reset.c */ | 603 | /* gus_reset.c */ |
623 | 604 | ||
624 | void snd_gf1_set_default_handlers(snd_gus_card_t * gus, unsigned int what); | 605 | void snd_gf1_set_default_handlers(snd_gus_card_t * gus, unsigned int what); |
625 | void snd_gf1_smart_stop_voice(snd_gus_card_t * gus, unsigned short voice); | 606 | void snd_gf1_smart_stop_voice(snd_gus_card_t * gus, unsigned short voice); |
626 | void snd_gf1_stop_voice(snd_gus_card_t * gus, unsigned short voice); | 607 | void snd_gf1_stop_voice(snd_gus_card_t * gus, unsigned short voice); |
627 | void snd_gf1_clear_voices(snd_gus_card_t * gus, unsigned short v_min, unsigned short v_max); | ||
628 | void snd_gf1_stop_voices(snd_gus_card_t * gus, unsigned short v_min, unsigned short v_max); | 608 | void snd_gf1_stop_voices(snd_gus_card_t * gus, unsigned short v_min, unsigned short v_max); |
629 | snd_gus_voice_t *snd_gf1_alloc_voice(snd_gus_card_t * gus, int type, int client, int port); | 609 | snd_gus_voice_t *snd_gf1_alloc_voice(snd_gus_card_t * gus, int type, int client, int port); |
630 | void snd_gf1_free_voice(snd_gus_card_t * gus, snd_gus_voice_t *voice); | 610 | void snd_gf1_free_voice(snd_gus_card_t * gus, snd_gus_voice_t *voice); |
@@ -641,9 +621,6 @@ int snd_gf1_pcm_new(snd_gus_card_t * gus, int pcm_dev, int control_index, snd_pc | |||
641 | 621 | ||
642 | #ifdef CONFIG_SND_DEBUG | 622 | #ifdef CONFIG_SND_DEBUG |
643 | extern void snd_gf1_print_voice_registers(snd_gus_card_t * gus); | 623 | extern void snd_gf1_print_voice_registers(snd_gus_card_t * gus); |
644 | extern void snd_gf1_print_global_registers(snd_gus_card_t * gus); | ||
645 | extern void snd_gf1_print_setup_registers(snd_gus_card_t * gus); | ||
646 | extern void snd_gf1_peek_print_block(snd_gus_card_t * gus, unsigned int addr, int count, int w_16bit); | ||
647 | #endif | 624 | #endif |
648 | 625 | ||
649 | /* gus.c */ | 626 | /* gus.c */ |
diff --git a/include/sound/hdspm.h b/include/sound/hdspm.h new file mode 100644 index 000000000000..c34427ccd0b3 --- /dev/null +++ b/include/sound/hdspm.h | |||
@@ -0,0 +1,131 @@ | |||
1 | #ifndef __SOUND_HDSPM_H /* -*- linux-c -*- */ | ||
2 | #define __SOUND_HDSPM_H | ||
3 | /* | ||
4 | * Copyright (C) 2003 Winfried Ritsch (IEM) | ||
5 | * based on hdsp.h from Thomas Charbonnel (thomas@undata.org) | ||
6 | * | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | ||
21 | */ | ||
22 | |||
23 | /* Maximum channels is 64 even on 56Mode you have 64playbacks to matrix */ | ||
24 | #define HDSPM_MAX_CHANNELS 64 | ||
25 | |||
26 | /* -------------------- IOCTL Peak/RMS Meters -------------------- */ | ||
27 | |||
28 | typedef struct _snd_hdspm_peak_rms hdspm_peak_rms_t; | ||
29 | |||
30 | /* peam rms level structure like we get from hardware | ||
31 | |||
32 | maybe in future we can memory map it so I just copy it | ||
33 | to user on ioctl call now an dont change anything | ||
34 | rms are made out of low and high values | ||
35 | where (long) ????_rms = (????_rms_l >> 8) + ((????_rms_h & 0xFFFFFF00)<<24) | ||
36 | (i asume so from the code) | ||
37 | */ | ||
38 | |||
39 | struct _snd_hdspm_peak_rms { | ||
40 | |||
41 | unsigned int level_offset[1024]; | ||
42 | |||
43 | unsigned int input_peak[64]; | ||
44 | unsigned int playback_peak[64]; | ||
45 | unsigned int output_peak[64]; | ||
46 | unsigned int xxx_peak[64]; /* not used */ | ||
47 | |||
48 | unsigned int reserved[256]; /* not used */ | ||
49 | |||
50 | unsigned int input_rms_l[64]; | ||
51 | unsigned int playback_rms_l[64]; | ||
52 | unsigned int output_rms_l[64]; | ||
53 | unsigned int xxx_rms_l[64]; /* not used */ | ||
54 | |||
55 | unsigned int input_rms_h[64]; | ||
56 | unsigned int playback_rms_h[64]; | ||
57 | unsigned int output_rms_h[64]; | ||
58 | unsigned int xxx_rms_h[64]; /* not used */ | ||
59 | }; | ||
60 | |||
61 | struct sndrv_hdspm_peak_rms_ioctl { | ||
62 | hdspm_peak_rms_t *peak; | ||
63 | }; | ||
64 | |||
65 | /* use indirect access due to the limit of ioctl bit size */ | ||
66 | #define SNDRV_HDSPM_IOCTL_GET_PEAK_RMS _IOR('H', 0x40, struct sndrv_hdspm_peak_rms_ioctl) | ||
67 | |||
68 | /* ------------ CONFIG block IOCTL ---------------------- */ | ||
69 | |||
70 | typedef struct _snd_hdspm_config_info hdspm_config_info_t; | ||
71 | |||
72 | struct _snd_hdspm_config_info { | ||
73 | unsigned char pref_sync_ref; | ||
74 | unsigned char wordclock_sync_check; | ||
75 | unsigned char madi_sync_check; | ||
76 | unsigned int system_sample_rate; | ||
77 | unsigned int autosync_sample_rate; | ||
78 | unsigned char system_clock_mode; | ||
79 | unsigned char clock_source; | ||
80 | unsigned char autosync_ref; | ||
81 | unsigned char line_out; | ||
82 | unsigned int passthru; | ||
83 | unsigned int analog_out; | ||
84 | }; | ||
85 | |||
86 | #define SNDRV_HDSPM_IOCTL_GET_CONFIG_INFO _IOR('H', 0x41, hdspm_config_info_t) | ||
87 | |||
88 | |||
89 | /* get Soundcard Version */ | ||
90 | |||
91 | typedef struct _snd_hdspm_version hdspm_version_t; | ||
92 | |||
93 | struct _snd_hdspm_version { | ||
94 | unsigned short firmware_rev; | ||
95 | }; | ||
96 | |||
97 | #define SNDRV_HDSPM_IOCTL_GET_VERSION _IOR('H', 0x43, hdspm_version_t) | ||
98 | |||
99 | |||
100 | /* ------------- get Matrix Mixer IOCTL --------------- */ | ||
101 | |||
102 | /* MADI mixer: 64inputs+64playback in 64outputs = 8192 => *4Byte = 32768 Bytes */ | ||
103 | |||
104 | /* organisation is 64 channelfader in a continous memory block */ | ||
105 | /* equivalent to hardware definition, maybe for future feature of mmap of them */ | ||
106 | /* each of 64 outputs has 64 infader and 64 outfader: | ||
107 | Ins to Outs mixer[out].in[in], Outstreams to Outs mixer[out].pb[pb] */ | ||
108 | |||
109 | #define HDSPM_MIXER_CHANNELS HDSPM_MAX_CHANNELS | ||
110 | |||
111 | typedef struct _snd_hdspm_channelfader snd_hdspm_channelfader_t; | ||
112 | |||
113 | struct _snd_hdspm_channelfader { | ||
114 | unsigned int in[HDSPM_MIXER_CHANNELS]; | ||
115 | unsigned int pb[HDSPM_MIXER_CHANNELS]; | ||
116 | }; | ||
117 | |||
118 | typedef struct _snd_hdspm_mixer hdspm_mixer_t; | ||
119 | |||
120 | struct _snd_hdspm_mixer { | ||
121 | snd_hdspm_channelfader_t ch[HDSPM_MIXER_CHANNELS]; | ||
122 | }; | ||
123 | |||
124 | struct sndrv_hdspm_mixer_ioctl { | ||
125 | hdspm_mixer_t *mixer; | ||
126 | }; | ||
127 | |||
128 | /* use indirect access due to the limit of ioctl bit size */ | ||
129 | #define SNDRV_HDSPM_IOCTL_GET_MIXER _IOR('H', 0x44, struct sndrv_hdspm_mixer_ioctl) | ||
130 | |||
131 | #endif /* __SOUND_HDSPM_H */ | ||
diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 53fc04d75bad..d935417575b5 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h | |||
@@ -848,23 +848,6 @@ int snd_interval_ratnum(snd_interval_t *i, | |||
848 | 848 | ||
849 | void _snd_pcm_hw_params_any(snd_pcm_hw_params_t *params); | 849 | void _snd_pcm_hw_params_any(snd_pcm_hw_params_t *params); |
850 | void _snd_pcm_hw_param_setempty(snd_pcm_hw_params_t *params, snd_pcm_hw_param_t var); | 850 | void _snd_pcm_hw_param_setempty(snd_pcm_hw_params_t *params, snd_pcm_hw_param_t var); |
851 | int snd_pcm_hw_param_min(snd_pcm_substream_t *substream, | ||
852 | snd_pcm_hw_params_t *params, | ||
853 | snd_pcm_hw_param_t var, | ||
854 | unsigned int val, int *dir); | ||
855 | int snd_pcm_hw_param_max(snd_pcm_substream_t *substream, | ||
856 | snd_pcm_hw_params_t *params, | ||
857 | snd_pcm_hw_param_t var, | ||
858 | unsigned int val, int *dir); | ||
859 | int snd_pcm_hw_param_setinteger(snd_pcm_substream_t *substream, | ||
860 | snd_pcm_hw_params_t *params, | ||
861 | snd_pcm_hw_param_t var); | ||
862 | int snd_pcm_hw_param_first(snd_pcm_substream_t *substream, | ||
863 | snd_pcm_hw_params_t *params, | ||
864 | snd_pcm_hw_param_t var, int *dir); | ||
865 | int snd_pcm_hw_param_last(snd_pcm_substream_t *substream, | ||
866 | snd_pcm_hw_params_t *params, | ||
867 | snd_pcm_hw_param_t var, int *dir); | ||
868 | int snd_pcm_hw_param_near(snd_pcm_substream_t *substream, | 851 | int snd_pcm_hw_param_near(snd_pcm_substream_t *substream, |
869 | snd_pcm_hw_params_t *params, | 852 | snd_pcm_hw_params_t *params, |
870 | snd_pcm_hw_param_t var, | 853 | snd_pcm_hw_param_t var, |
@@ -876,7 +859,6 @@ int snd_pcm_hw_param_set(snd_pcm_substream_t *pcm, | |||
876 | int snd_pcm_hw_params_choose(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); | 859 | int snd_pcm_hw_params_choose(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); |
877 | 860 | ||
878 | int snd_pcm_hw_refine(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); | 861 | int snd_pcm_hw_refine(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); |
879 | int snd_pcm_hw_params(snd_pcm_substream_t *substream, snd_pcm_hw_params_t *params); | ||
880 | 862 | ||
881 | int snd_pcm_hw_constraints_init(snd_pcm_substream_t *substream); | 863 | int snd_pcm_hw_constraints_init(snd_pcm_substream_t *substream); |
882 | int snd_pcm_hw_constraints_complete(snd_pcm_substream_t *substream); | 864 | int snd_pcm_hw_constraints_complete(snd_pcm_substream_t *substream); |
@@ -922,8 +904,22 @@ int snd_pcm_format_unsigned(snd_pcm_format_t format); | |||
922 | int snd_pcm_format_linear(snd_pcm_format_t format); | 904 | int snd_pcm_format_linear(snd_pcm_format_t format); |
923 | int snd_pcm_format_little_endian(snd_pcm_format_t format); | 905 | int snd_pcm_format_little_endian(snd_pcm_format_t format); |
924 | int snd_pcm_format_big_endian(snd_pcm_format_t format); | 906 | int snd_pcm_format_big_endian(snd_pcm_format_t format); |
907 | /** | ||
908 | * snd_pcm_format_cpu_endian - Check the PCM format is CPU-endian | ||
909 | * @format: the format to check | ||
910 | * | ||
911 | * Returns 1 if the given PCM format is CPU-endian, 0 if | ||
912 | * opposite, or a negative error code if endian not specified. | ||
913 | */ | ||
914 | /* int snd_pcm_format_cpu_endian(snd_pcm_format_t format); */ | ||
915 | #ifdef SNDRV_LITTLE_ENDIAN | ||
916 | #define snd_pcm_format_cpu_endian snd_pcm_format_little_endian | ||
917 | #else | ||
918 | #define snd_pcm_format_cpu_endian snd_pcm_format_big_endian | ||
919 | #endif | ||
925 | int snd_pcm_format_width(snd_pcm_format_t format); /* in bits */ | 920 | int snd_pcm_format_width(snd_pcm_format_t format); /* in bits */ |
926 | int snd_pcm_format_physical_width(snd_pcm_format_t format); /* in bits */ | 921 | int snd_pcm_format_physical_width(snd_pcm_format_t format); /* in bits */ |
922 | ssize_t snd_pcm_format_size(snd_pcm_format_t format, size_t samples); | ||
927 | const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format); | 923 | const unsigned char *snd_pcm_format_silence_64(snd_pcm_format_t format); |
928 | int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int frames); | 924 | int snd_pcm_format_set_silence(snd_pcm_format_t format, void *buf, unsigned int frames); |
929 | snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian); | 925 | snd_pcm_format_t snd_pcm_build_linear_format(int width, int unsignd, int big_endian); |
diff --git a/include/sound/seq_midi_event.h b/include/sound/seq_midi_event.h index 4357cac07500..8857e2bd31a5 100644 --- a/include/sound/seq_midi_event.h +++ b/include/sound/seq_midi_event.h | |||
@@ -41,9 +41,7 @@ struct snd_midi_event_t { | |||
41 | }; | 41 | }; |
42 | 42 | ||
43 | int snd_midi_event_new(int bufsize, snd_midi_event_t **rdev); | 43 | int snd_midi_event_new(int bufsize, snd_midi_event_t **rdev); |
44 | int snd_midi_event_resize_buffer(snd_midi_event_t *dev, int bufsize); | ||
45 | void snd_midi_event_free(snd_midi_event_t *dev); | 44 | void snd_midi_event_free(snd_midi_event_t *dev); |
46 | void snd_midi_event_init(snd_midi_event_t *dev); | ||
47 | void snd_midi_event_reset_encode(snd_midi_event_t *dev); | 45 | void snd_midi_event_reset_encode(snd_midi_event_t *dev); |
48 | void snd_midi_event_reset_decode(snd_midi_event_t *dev); | 46 | void snd_midi_event_reset_decode(snd_midi_event_t *dev); |
49 | void snd_midi_event_no_status(snd_midi_event_t *dev, int on); | 47 | void snd_midi_event_no_status(snd_midi_event_t *dev, int on); |
diff --git a/include/sound/seq_virmidi.h b/include/sound/seq_virmidi.h index cf4e2388103f..1ad27e859af3 100644 --- a/include/sound/seq_virmidi.h +++ b/include/sound/seq_virmidi.h | |||
@@ -79,6 +79,5 @@ struct _snd_virmidi_dev { | |||
79 | #define SNDRV_VIRMIDI_SEQ_DISPATCH 2 | 79 | #define SNDRV_VIRMIDI_SEQ_DISPATCH 2 |
80 | 80 | ||
81 | int snd_virmidi_new(snd_card_t *card, int device, snd_rawmidi_t **rrmidi); | 81 | int snd_virmidi_new(snd_card_t *card, int device, snd_rawmidi_t **rrmidi); |
82 | int snd_virmidi_receive(snd_rawmidi_t *rmidi, snd_seq_event_t *ev); | ||
83 | 82 | ||
84 | #endif /* __SOUND_SEQ_VIRMIDI */ | 83 | #endif /* __SOUND_SEQ_VIRMIDI */ |
diff --git a/include/sound/timer.h b/include/sound/timer.h index 57fde990606e..1898511a0f38 100644 --- a/include/sound/timer.h +++ b/include/sound/timer.h | |||
@@ -152,6 +152,4 @@ extern int snd_timer_pause(snd_timer_instance_t * timeri); | |||
152 | 152 | ||
153 | extern void snd_timer_interrupt(snd_timer_t * timer, unsigned long ticks_left); | 153 | extern void snd_timer_interrupt(snd_timer_t * timer, unsigned long ticks_left); |
154 | 154 | ||
155 | extern unsigned int snd_timer_system_resolution(void); | ||
156 | |||
157 | #endif /* __SOUND_TIMER_H */ | 155 | #endif /* __SOUND_TIMER_H */ |
diff --git a/include/sound/version.h b/include/sound/version.h index 98b4230778ed..c085136f391f 100644 --- a/include/sound/version.h +++ b/include/sound/version.h | |||
@@ -1,3 +1,3 @@ | |||
1 | /* include/version.h. Generated by configure. */ | 1 | /* include/version.h. Generated by configure. */ |
2 | #define CONFIG_SND_VERSION "1.0.9rc2" | 2 | #define CONFIG_SND_VERSION "1.0.9b" |
3 | #define CONFIG_SND_DATE " (Thu Mar 24 10:33:39 2005 UTC)" | 3 | #define CONFIG_SND_DATE " (Thu Jul 28 12:20:13 2005 UTC)" |
diff --git a/include/sound/vx_core.h b/include/sound/vx_core.h index a7e29933f2d0..7a60a3888667 100644 --- a/include/sound/vx_core.h +++ b/include/sound/vx_core.h | |||
@@ -233,37 +233,37 @@ irqreturn_t snd_vx_irq_handler(int irq, void *dev, struct pt_regs *regs); | |||
233 | /* | 233 | /* |
234 | * lowlevel functions | 234 | * lowlevel functions |
235 | */ | 235 | */ |
236 | inline static int vx_test_and_ack(vx_core_t *chip) | 236 | static inline int vx_test_and_ack(vx_core_t *chip) |
237 | { | 237 | { |
238 | snd_assert(chip->ops->test_and_ack, return -ENXIO); | 238 | snd_assert(chip->ops->test_and_ack, return -ENXIO); |
239 | return chip->ops->test_and_ack(chip); | 239 | return chip->ops->test_and_ack(chip); |
240 | } | 240 | } |
241 | 241 | ||
242 | inline static void vx_validate_irq(vx_core_t *chip, int enable) | 242 | static inline void vx_validate_irq(vx_core_t *chip, int enable) |
243 | { | 243 | { |
244 | snd_assert(chip->ops->validate_irq, return); | 244 | snd_assert(chip->ops->validate_irq, return); |
245 | chip->ops->validate_irq(chip, enable); | 245 | chip->ops->validate_irq(chip, enable); |
246 | } | 246 | } |
247 | 247 | ||
248 | inline static unsigned char snd_vx_inb(vx_core_t *chip, int reg) | 248 | static inline unsigned char snd_vx_inb(vx_core_t *chip, int reg) |
249 | { | 249 | { |
250 | snd_assert(chip->ops->in8, return 0); | 250 | snd_assert(chip->ops->in8, return 0); |
251 | return chip->ops->in8(chip, reg); | 251 | return chip->ops->in8(chip, reg); |
252 | } | 252 | } |
253 | 253 | ||
254 | inline static unsigned int snd_vx_inl(vx_core_t *chip, int reg) | 254 | static inline unsigned int snd_vx_inl(vx_core_t *chip, int reg) |
255 | { | 255 | { |
256 | snd_assert(chip->ops->in32, return 0); | 256 | snd_assert(chip->ops->in32, return 0); |
257 | return chip->ops->in32(chip, reg); | 257 | return chip->ops->in32(chip, reg); |
258 | } | 258 | } |
259 | 259 | ||
260 | inline static void snd_vx_outb(vx_core_t *chip, int reg, unsigned char val) | 260 | static inline void snd_vx_outb(vx_core_t *chip, int reg, unsigned char val) |
261 | { | 261 | { |
262 | snd_assert(chip->ops->out8, return); | 262 | snd_assert(chip->ops->out8, return); |
263 | chip->ops->out8(chip, reg, val); | 263 | chip->ops->out8(chip, reg, val); |
264 | } | 264 | } |
265 | 265 | ||
266 | inline static void snd_vx_outl(vx_core_t *chip, int reg, unsigned int val) | 266 | static inline void snd_vx_outl(vx_core_t *chip, int reg, unsigned int val) |
267 | { | 267 | { |
268 | snd_assert(chip->ops->out32, return); | 268 | snd_assert(chip->ops->out32, return); |
269 | chip->ops->out32(chip, reg, val); | 269 | chip->ops->out32(chip, reg, val); |
@@ -303,14 +303,14 @@ int snd_vx_check_reg_bit(vx_core_t *chip, int reg, int mask, int bit, int time); | |||
303 | /* | 303 | /* |
304 | * pseudo-DMA transfer | 304 | * pseudo-DMA transfer |
305 | */ | 305 | */ |
306 | inline static void vx_pseudo_dma_write(vx_core_t *chip, snd_pcm_runtime_t *runtime, | 306 | static inline void vx_pseudo_dma_write(vx_core_t *chip, snd_pcm_runtime_t *runtime, |
307 | vx_pipe_t *pipe, int count) | 307 | vx_pipe_t *pipe, int count) |
308 | { | 308 | { |
309 | snd_assert(chip->ops->dma_write, return); | 309 | snd_assert(chip->ops->dma_write, return); |
310 | chip->ops->dma_write(chip, runtime, pipe, count); | 310 | chip->ops->dma_write(chip, runtime, pipe, count); |
311 | } | 311 | } |
312 | 312 | ||
313 | inline static void vx_pseudo_dma_read(vx_core_t *chip, snd_pcm_runtime_t *runtime, | 313 | static inline void vx_pseudo_dma_read(vx_core_t *chip, snd_pcm_runtime_t *runtime, |
314 | vx_pipe_t *pipe, int count) | 314 | vx_pipe_t *pipe, int count) |
315 | { | 315 | { |
316 | snd_assert(chip->ops->dma_read, return); | 316 | snd_assert(chip->ops->dma_read, return); |