summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJaroslav Kysela <perex@suse.cz>2002-02-18 22:35:21 -0800
committerJaroslav Kysela <perex@suse.cz>2002-02-18 22:35:21 -0800
commit56eab47da5d7380b728987d3d9c90d4e07712763 (patch)
treedba4d78654b28c09f480556d3babd9438353dd5a /include
parent4d32c6ba21d27f2db9e09ec196d12a2456c32048 (diff)
[PATCH] ALSA update for 2.5.5-pre1
this is a sync with the current ALSA CVS tree (last code modification: (Sun Feb 17 17:46:41 2002 UTC)) and 2.5.5-pre1 code and contains: - ALSA code version 0.9.0beta11 - Config.in files updated (separated associated drivers to submenus) - global sound/Makefile fixes - added inclusion of missing header files for alpha architecture - fixed power functions (bad locking) - fixed copy_to_user calls (removed them from spinlocks) - fixed freeing of resource structures - fixed AD1816A driver (inverted volume controls) - added new functions to allocate ISA DMA memory (cleanups in ISA drivers) - updated ISA PnP detection in wavefront driver - added joystick support for VIA686 - updated ES1968 (Maestro2) driver - moved joystick support for YMFPCI to the control interface - updated Korg1212 driver
Diffstat (limited to 'include')
-rw-r--r--include/sound/asound.h23
-rw-r--r--include/sound/core.h35
-rw-r--r--include/sound/cs46xx.h4
-rw-r--r--include/sound/emu8000.h2
-rw-r--r--include/sound/emux_synth.h2
-rw-r--r--include/sound/gus.h3
-rw-r--r--include/sound/opl3.h1
-rw-r--r--include/sound/pcm.h6
-rw-r--r--include/sound/pcm_params.h2
-rw-r--r--include/sound/seq_kernel.h1
-rw-r--r--include/sound/trident.h4
-rw-r--r--include/sound/version.h3
-rw-r--r--include/sound/wavefront.h255
-rw-r--r--include/sound/ymfpci.h6
14 files changed, 191 insertions, 156 deletions
diff --git a/include/sound/asound.h b/include/sound/asound.h
index f613dbddac7a..013e59fb6eb4 100644
--- a/include/sound/asound.h
+++ b/include/sound/asound.h
@@ -24,7 +24,24 @@
#define __SOUND_ASOUND_H
#if defined(LINUX) || defined(__LINUX__) || defined(__linux__)
+
#include <linux/ioctl.h>
+
+#ifdef __KERNEL__
+
+#include <linux/types.h>
+#include <asm/byteorder.h>
+
+#if __LITTLE_ENDIAN == 1234
+#define SNDRV_LITTLE_ENDIAN
+#elif __BIG_ENDIAN == 4321
+#define SNDRV_BIG_ENDIAN
+#else
+#error "Unsupported endian..."
+#endif
+
+#else /* !__KERNEL__ */
+
#include <endian.h>
#if __BYTE_ORDER == __LITTLE_ENDIAN
#define SNDRV_LITTLE_ENDIAN
@@ -33,7 +50,11 @@
#else
#error "Unsupported endian..."
#endif
-#endif
+
+#endif /* __KERNEL **/
+
+#endif /* LINUX */
+
#ifndef __KERNEL__
#include <sys/time.h>
#include <sys/types.h>
diff --git a/include/sound/core.h b/include/sound/core.h
index e216c6ba1efc..ebd845c0191b 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -132,7 +132,7 @@ struct _snd_card {
int (*set_power_state) (snd_card_t *card, unsigned int state);
void *power_state_private_data;
unsigned int power_state; /* power state */
- unsigned int power_lock; /* power lock */
+ struct semaphore power_lock; /* power lock */
wait_queue_head_t power_sleep;
#endif
@@ -143,22 +143,17 @@ struct _snd_card {
};
#ifdef CONFIG_PM
-static inline void snd_power_lock(snd_card_t *card, int can_schedule)
+static inline void snd_power_lock(snd_card_t *card)
{
- while (test_and_set_bit(0, &card->power_lock)) {
- if (can_schedule) {
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(1);
- }
- }
+ down(&card->power_lock);
}
static inline void snd_power_unlock(snd_card_t *card)
{
- clear_bit(0, &card->power_lock);
+ up(&card->power_lock);
}
-void snd_power_wait(snd_card_t *card, int can_schedule);
+void snd_power_wait(snd_card_t *card);
static inline unsigned int snd_power_get_state(snd_card_t *card)
{
@@ -171,9 +166,9 @@ static inline void snd_power_change_state(snd_card_t *card, unsigned int state)
wake_up(&card->power_sleep);
}
#else
-#define snd_power_lock(card, can_schedule) do { ; } while (0)
+#define snd_power_lock(card) do { ; } while (0)
#define snd_power_unlock(card) do { ; } while (0)
-#define snd_power_wait(card, can_schedule) do { ; } while (0)
+#define snd_power_wait(card) do { ; } while (0)
#define snd_power_get_state(card) SNDRV_CTL_POWER_D0
#define snd_power_change_state(card, state) do { ; } while (0)
#endif
@@ -236,18 +231,26 @@ void *snd_hidden_vmalloc(unsigned long size);
void snd_hidden_vfree(void *obj);
#define kmalloc(size, flags) snd_hidden_kmalloc(size, flags)
#define kfree(obj) snd_hidden_kfree(obj)
+#define kfree_nocheck(obj) snd_wrapper_kfree(obj)
#define vmalloc(size) snd_hidden_vmalloc(size)
#define vfree(obj) snd_hidden_vfree(obj)
+#else
+#define kfree_nocheck(obj) kfree(obj)
#endif
void *snd_kcalloc(size_t size, int flags);
char *snd_kmalloc_strdup(const char *string, int flags);
void *snd_malloc_pages(unsigned long size, unsigned int dma_flags);
void *snd_malloc_pages_fallback(unsigned long size, unsigned int dma_flags, unsigned long *res_size);
void snd_free_pages(void *ptr, unsigned long size);
+#ifdef CONFIG_ISA
+void *snd_malloc_isa_pages(unsigned long size, dma_addr_t *dma_addr);
+void *snd_malloc_isa_pages_fallback(unsigned long size, dma_addr_t *dma_addr, unsigned long *res_size);
+#define snd_free_isa_pages(size, ptr, dma_addr) snd_free_pages(ptr, size)
+#endif
#ifdef CONFIG_PCI
-void *snd_malloc_pci_pages(struct pci_dev *pci, unsigned long size, dma_addr_t *dmaaddr);
-void *snd_malloc_pci_pages_fallback(struct pci_dev *pci, unsigned long size, dma_addr_t *dmaaddr, unsigned long *res_size);
-void snd_free_pci_pages(struct pci_dev *pci, unsigned long size, void *ptr, dma_addr_t dmaaddr);
+void *snd_malloc_pci_pages(struct pci_dev *pci, unsigned long size, dma_addr_t *dma_addr);
+void *snd_malloc_pci_pages_fallback(struct pci_dev *pci, unsigned long size, dma_addr_t *dma_addr, unsigned long *res_size);
+void snd_free_pci_pages(struct pci_dev *pci, unsigned long size, void *ptr, dma_addr_t dma_addr);
#endif
int copy_to_user_fromio(void *dst, unsigned long src, size_t count);
int copy_from_user_toio(unsigned long dst, const void *src, size_t count);
@@ -282,7 +285,7 @@ int snd_device_free_all(snd_card_t *card, snd_device_cmd_t cmd);
#define DMA_MODE_NO_ENABLE 0x0100
-void snd_dma_program(unsigned long dma, const void *buf, unsigned int size, unsigned short mode);
+void snd_dma_program(unsigned long dma, unsigned long addr, unsigned int size, unsigned short mode);
void snd_dma_disable(unsigned long dma);
unsigned int snd_dma_residue(unsigned long dma);
diff --git a/include/sound/cs46xx.h b/include/sound/cs46xx.h
index 97176de0ab50..f900efa6b8c4 100644
--- a/include/sound/cs46xx.h
+++ b/include/sound/cs46xx.h
@@ -1713,8 +1713,8 @@ int snd_cs46xx_mixer(cs46xx_t *chip);
int snd_cs46xx_midi(cs46xx_t *chip, int device, snd_rawmidi_t **rmidi);
#ifdef CONFIG_PM
-void snd_cs46xx_suspend(cs46xx_t *chip, int can_schedule);
-void snd_cs46xx_resume(cs46xx_t *chip, int can_schedule);
+void snd_cs46xx_suspend(cs46xx_t *chip);
+void snd_cs46xx_resume(cs46xx_t *chip);
#endif
#endif /* __SOUND_CS46XX_H */
diff --git a/include/sound/emu8000.h b/include/sound/emu8000.h
index abd21a616307..78d84750db2e 100644
--- a/include/sound/emu8000.h
+++ b/include/sound/emu8000.h
@@ -21,8 +21,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "driver.h"
-#include "core.h"
#include "emux_synth.h"
#include "seq_kernel.h"
diff --git a/include/sound/emux_synth.h b/include/sound/emux_synth.h
index 25c43395100b..09ce125b782a 100644
--- a/include/sound/emux_synth.h
+++ b/include/sound/emux_synth.h
@@ -21,8 +21,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "driver.h"
-#include "core.h"
#include "seq_kernel.h"
#include "seq_device.h"
#include "soundfont.h"
diff --git a/include/sound/gus.h b/include/sound/gus.h
index c24de2d59d88..2e84f2687588 100644
--- a/include/sound/gus.h
+++ b/include/sound/gus.h
@@ -216,6 +216,7 @@ typedef struct _snd_gf1_mem {
typedef struct snd_gf1_dma_block {
void *buffer; /* buffer in computer's RAM */
+ unsigned long buf_addr; /* buffer address */
unsigned int addr; /* address in onboard memory */
unsigned int count; /* count in bytes */
unsigned int cmd; /* DMA command (format) */
@@ -605,7 +606,7 @@ int snd_gf1_mem_proc_done(snd_gus_card_t * gus);
/* gus_dma.c */
void snd_gf1_dma_program(snd_gus_card_t * gus, unsigned int addr,
- const void *buf, unsigned int count,
+ unsigned long buf_addr, unsigned int count,
unsigned int cmd);
void snd_gf1_dma_ack(snd_gus_card_t * gus);
int snd_gf1_dma_init(snd_gus_card_t * gus);
diff --git a/include/sound/opl3.h b/include/sound/opl3.h
index d2cf59f12517..c3c6218aac71 100644
--- a/include/sound/opl3.h
+++ b/include/sound/opl3.h
@@ -52,6 +52,7 @@
*/
#include "driver.h"
+#include <linux/time.h>
#include "core.h"
#include "hwdep.h"
#include "timer.h"
diff --git a/include/sound/pcm.h b/include/sound/pcm.h
index 945313c4e82c..3d24d3c04273 100644
--- a/include/sound/pcm.h
+++ b/include/sound/pcm.h
@@ -832,11 +832,9 @@ int snd_pcm_lib_free_pages(snd_pcm_substream_t *substream);
#ifdef CONFIG_ISA
int snd_pcm_lib_preallocate_isa_pages(snd_pcm_substream_t *substream,
- size_t size, size_t max,
- unsigned int flags);
+ size_t size, size_t max);
int snd_pcm_lib_preallocate_isa_pages_for_all(snd_pcm_t *pcm,
- size_t size, size_t max,
- unsigned int flags);
+ size_t size, size_t max);
#endif
#ifdef CONFIG_PCI
int snd_pcm_lib_preallocate_pci_pages(struct pci_dev *pci,
diff --git a/include/sound/pcm_params.h b/include/sound/pcm_params.h
index 769d8738f2fd..9d008650e5f2 100644
--- a/include/sound/pcm_params.h
+++ b/include/sound/pcm_params.h
@@ -22,6 +22,8 @@
*
*/
+#include <linux/bitops.h>
+
extern int snd_pcm_hw_param_mask(snd_pcm_substream_t *pcm, snd_pcm_hw_params_t *params,
snd_pcm_hw_param_t var, const snd_mask_t *val);
extern unsigned int snd_pcm_hw_param_value_min(const snd_pcm_hw_params_t *params,
diff --git a/include/sound/seq_kernel.h b/include/sound/seq_kernel.h
index a0e630210215..69a7acf1590f 100644
--- a/include/sound/seq_kernel.h
+++ b/include/sound/seq_kernel.h
@@ -21,6 +21,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
+#include <linux/time.h>
#include "asequencer.h"
typedef sndrv_seq_tick_time_t snd_seq_tick_time_t;
diff --git a/include/sound/trident.h b/include/sound/trident.h
index 572cc323a8bf..1d8b1c3d7931 100644
--- a/include/sound/trident.h
+++ b/include/sound/trident.h
@@ -469,8 +469,8 @@ int snd_trident_synth_copy_from_user(trident_t *trident, snd_util_memblk_t *blk,
/* Power Management */
#ifdef CONFIG_PM
-void snd_trident_suspend(trident_t *trident, int can_schedule);
-void snd_trident_resume(trident_t *trident, int can_schedule);
+void snd_trident_suspend(trident_t *trident);
+void snd_trident_resume(trident_t *trident);
#endif
#endif /* __SOUND_TRIDENT_H */
diff --git a/include/sound/version.h b/include/sound/version.h
index cb3edc7cff9b..eac7e72f5513 100644
--- a/include/sound/version.h
+++ b/include/sound/version.h
@@ -1,2 +1,3 @@
/* include/version.h. Generated automatically by configure. */
-#define CONFIG_SND_VERSION "0.9.0beta10"
+#define CONFIG_SND_VERSION "0.9.0beta11"
+#define CONFIG_SND_DATE " (Tue Feb 19 08:14:59 2002 UTC)"
diff --git a/include/sound/wavefront.h b/include/sound/wavefront.h
index 1062084d55ae..79ff3b4b1da4 100644
--- a/include/sound/wavefront.h
+++ b/include/sound/wavefront.h
@@ -64,12 +64,21 @@
between a 16-bit view of the world and a 32-bit one.
*/
-typedef short INT16;
-typedef unsigned short UINT16;
-typedef int INT32;
-typedef unsigned int UINT32;
-typedef char CHAR8;
-typedef unsigned char UCHAR8;
+#ifndef __KERNEL__
+/* keep them for compatibility */
+typedef short s16;
+typedef unsigned short u16;
+typedef int s32;
+typedef unsigned int u32;
+typedef char s8;
+typedef unsigned char u8;
+typedef s16 INT16;
+typedef u16 UINT16;
+typedef s32 INT32;
+typedef u32 UINT32;
+typedef s8 CHAR8;
+typedef u8 UCHAR8;
+#endif
/* Pseudo-commands not part of the WaveFront command set.
These are used for various driver controls and direct
@@ -197,111 +206,111 @@ typedef unsigned char UCHAR8;
struct wf_envelope
{
- UCHAR8 attack_time:7;
- UCHAR8 Unused1:1;
+ u8 attack_time:7;
+ u8 Unused1:1;
- UCHAR8 decay1_time:7;
- UCHAR8 Unused2:1;
+ u8 decay1_time:7;
+ u8 Unused2:1;
- UCHAR8 decay2_time:7;
- UCHAR8 Unused3:1;
+ u8 decay2_time:7;
+ u8 Unused3:1;
- UCHAR8 sustain_time:7;
- UCHAR8 Unused4:1;
+ u8 sustain_time:7;
+ u8 Unused4:1;
- UCHAR8 release_time:7;
- UCHAR8 Unused5:1;
+ u8 release_time:7;
+ u8 Unused5:1;
- UCHAR8 release2_time:7;
- UCHAR8 Unused6:1;
+ u8 release2_time:7;
+ u8 Unused6:1;
- CHAR8 attack_level;
- CHAR8 decay1_level;
- CHAR8 decay2_level;
- CHAR8 sustain_level;
- CHAR8 release_level;
+ s8 attack_level;
+ s8 decay1_level;
+ s8 decay2_level;
+ s8 sustain_level;
+ s8 release_level;
- UCHAR8 attack_velocity:7;
- UCHAR8 Unused7:1;
+ u8 attack_velocity:7;
+ u8 Unused7:1;
- UCHAR8 volume_velocity:7;
- UCHAR8 Unused8:1;
+ u8 volume_velocity:7;
+ u8 Unused8:1;
- UCHAR8 keyboard_scaling:7;
- UCHAR8 Unused9:1;
+ u8 keyboard_scaling:7;
+ u8 Unused9:1;
};
typedef struct wf_envelope wavefront_envelope;
struct wf_lfo
{
- UCHAR8 sample_number;
+ u8 sample_number;
- UCHAR8 frequency:7;
- UCHAR8 Unused1:1;
+ u8 frequency:7;
+ u8 Unused1:1;
- UCHAR8 am_src:4;
- UCHAR8 fm_src:4;
+ u8 am_src:4;
+ u8 fm_src:4;
- CHAR8 fm_amount;
- CHAR8 am_amount;
- CHAR8 start_level;
- CHAR8 end_level;
+ s8 fm_amount;
+ s8 am_amount;
+ s8 start_level;
+ s8 end_level;
- UCHAR8 ramp_delay:7;
- UCHAR8 wave_restart:1; /* for LFO2 only */
+ u8 ramp_delay:7;
+ u8 wave_restart:1; /* for LFO2 only */
- UCHAR8 ramp_time:7;
- UCHAR8 Unused2:1;
+ u8 ramp_time:7;
+ u8 Unused2:1;
};
typedef struct wf_lfo wavefront_lfo;
struct wf_patch
{
- INT16 frequency_bias; /* ** THIS IS IN MOTOROLA FORMAT!! ** */
+ s16 frequency_bias; /* ** THIS IS IN MOTOROLA FORMAT!! ** */
- UCHAR8 amplitude_bias:7;
- UCHAR8 Unused1:1;
+ u8 amplitude_bias:7;
+ u8 Unused1:1;
- UCHAR8 portamento:7;
- UCHAR8 Unused2:1;
+ u8 portamento:7;
+ u8 Unused2:1;
- UCHAR8 sample_number;
+ u8 sample_number;
- UCHAR8 pitch_bend:4;
- UCHAR8 sample_msb:1;
- UCHAR8 Unused3:3;
+ u8 pitch_bend:4;
+ u8 sample_msb:1;
+ u8 Unused3:3;
- UCHAR8 mono:1;
- UCHAR8 retrigger:1;
- UCHAR8 nohold:1;
- UCHAR8 restart:1;
- UCHAR8 filterconfig:2; /* SDK says "not used" */
- UCHAR8 reuse:1;
- UCHAR8 reset_lfo:1;
+ u8 mono:1;
+ u8 retrigger:1;
+ u8 nohold:1;
+ u8 restart:1;
+ u8 filterconfig:2; /* SDK says "not used" */
+ u8 reuse:1;
+ u8 reset_lfo:1;
- UCHAR8 fm_src2:4;
- UCHAR8 fm_src1:4;
+ u8 fm_src2:4;
+ u8 fm_src1:4;
- CHAR8 fm_amount1;
- CHAR8 fm_amount2;
+ s8 fm_amount1;
+ s8 fm_amount2;
- UCHAR8 am_src:4;
- UCHAR8 Unused4:4;
+ u8 am_src:4;
+ u8 Unused4:4;
- CHAR8 am_amount;
+ s8 am_amount;
- UCHAR8 fc1_mode:4;
- UCHAR8 fc2_mode:4;
+ u8 fc1_mode:4;
+ u8 fc2_mode:4;
- CHAR8 fc1_mod_amount;
- CHAR8 fc1_keyboard_scaling;
- CHAR8 fc1_bias;
- CHAR8 fc2_mod_amount;
- CHAR8 fc2_keyboard_scaling;
- CHAR8 fc2_bias;
+ s8 fc1_mod_amount;
+ s8 fc1_keyboard_scaling;
+ s8 fc1_bias;
+ s8 fc2_mod_amount;
+ s8 fc2_keyboard_scaling;
+ s8 fc2_bias;
- UCHAR8 randomizer:7;
- UCHAR8 Unused5:1;
+ u8 randomizer:7;
+ u8 Unused5:1;
struct wf_envelope envelope1;
struct wf_envelope envelope2;
@@ -312,18 +321,18 @@ typedef struct wf_patch wavefront_patch;
struct wf_layer
{
- UCHAR8 patch_number;
+ u8 patch_number;
- UCHAR8 mix_level:7;
- UCHAR8 mute:1;
+ u8 mix_level:7;
+ u8 mute:1;
- UCHAR8 split_point:7;
- UCHAR8 play_below:1;
+ u8 split_point:7;
+ u8 play_below:1;
- UCHAR8 pan_mod_src:2;
- UCHAR8 pan_or_mod:1;
- UCHAR8 pan:4;
- UCHAR8 split_type:1;
+ u8 pan_mod_src:2;
+ u8 pan_or_mod:1;
+ u8 pan:4;
+ u8 split_type:1;
};
typedef struct wf_layer wavefront_layer;
@@ -335,9 +344,9 @@ typedef struct wf_program wavefront_program;
struct wf_sample_offset
{
- INT32 Fraction:4;
- INT32 Integer:20;
- INT32 Unused:8;
+ s32 Fraction:4;
+ s32 Integer:20;
+ s32 Unused:8;
};
typedef struct wf_sample_offset wavefront_sample_offset;
@@ -429,38 +438,38 @@ typedef struct wf_sample {
struct wf_sample_offset loopStartOffset;
struct wf_sample_offset loopEndOffset;
struct wf_sample_offset sampleEndOffset;
- INT16 FrequencyBias;
- UCHAR8 SampleResolution:2; /* sample_format */
- UCHAR8 Unused1:1;
- UCHAR8 Loop:1;
- UCHAR8 Bidirectional:1;
- UCHAR8 Unused2:1;
- UCHAR8 Reverse:1;
- UCHAR8 Unused3:1;
+ s16 FrequencyBias;
+ u8 SampleResolution:2; /* sample_format */
+ u8 Unused1:1;
+ u8 Loop:1;
+ u8 Bidirectional:1;
+ u8 Unused2:1;
+ u8 Reverse:1;
+ u8 Unused3:1;
} wavefront_sample;
typedef struct wf_multisample {
- INT16 NumberOfSamples; /* log2 of the number of samples */
- INT16 SampleNumber[NUM_MIDIKEYS];
+ s16 NumberOfSamples; /* log2 of the number of samples */
+ s16 SampleNumber[NUM_MIDIKEYS];
} wavefront_multisample;
typedef struct wf_alias {
- INT16 OriginalSample __attribute__ ((packed));
+ s16 OriginalSample __attribute__ ((packed));
struct wf_sample_offset sampleStartOffset __attribute__ ((packed));
struct wf_sample_offset loopStartOffset __attribute__ ((packed));
struct wf_sample_offset sampleEndOffset __attribute__ ((packed));
struct wf_sample_offset loopEndOffset __attribute__ ((packed));
- INT16 FrequencyBias __attribute__ ((packed));
+ s16 FrequencyBias __attribute__ ((packed));
- UCHAR8 SampleResolution:2 __attribute__ ((packed));
- UCHAR8 Unused1:1 __attribute__ ((packed));
- UCHAR8 Loop:1 __attribute__ ((packed));
- UCHAR8 Bidirectional:1 __attribute__ ((packed));
- UCHAR8 Unused2:1 __attribute__ ((packed));
- UCHAR8 Reverse:1 __attribute__ ((packed));
- UCHAR8 Unused3:1 __attribute__ ((packed));
+ u8 SampleResolution:2 __attribute__ ((packed));
+ u8 Unused1:1 __attribute__ ((packed));
+ u8 Loop:1 __attribute__ ((packed));
+ u8 Bidirectional:1 __attribute__ ((packed));
+ u8 Unused2:1 __attribute__ ((packed));
+ u8 Reverse:1 __attribute__ ((packed));
+ u8 Unused3:1 __attribute__ ((packed));
/* This structure is meant to be padded only to 16 bits on their
original. Of course, whoever wrote their documentation didn't
@@ -471,19 +480,19 @@ typedef struct wf_alias {
standard 16->32 bit issues.
*/
- UCHAR8 sixteen_bit_padding __attribute__ ((packed));
+ u8 sixteen_bit_padding __attribute__ ((packed));
} wavefront_alias;
typedef struct wf_drum {
- UCHAR8 PatchNumber;
- UCHAR8 MixLevel:7;
- UCHAR8 Unmute:1;
- UCHAR8 Group:4;
- UCHAR8 Unused1:4;
- UCHAR8 PanModSource:2;
- UCHAR8 PanModulated:1;
- UCHAR8 PanAmount:4;
- UCHAR8 Unused2:1;
+ u8 PatchNumber;
+ u8 MixLevel:7;
+ u8 Unmute:1;
+ u8 Group:4;
+ u8 Unused1:4;
+ u8 PanModSource:2;
+ u8 PanModulated:1;
+ u8 PanAmount:4;
+ u8 Unused2:1;
} wavefront_drum;
typedef struct wf_drumkit {
@@ -491,7 +500,7 @@ typedef struct wf_drumkit {
} wavefront_drumkit;
typedef struct wf_channel_programs {
- UCHAR8 Program[NUM_MIDICHANNELS];
+ u8 Program[NUM_MIDICHANNELS];
} wavefront_channel_programs;
/* How to get MIDI channel status from the data returned by
@@ -522,15 +531,15 @@ typedef struct wf_patch_info {
only, and are unused by the current user-level library.
*/
- INT16 key; /* Use WAVEFRONT_PATCH here */
- UINT16 devno; /* fill in when sending */
- UCHAR8 subkey; /* WF_ST_{SAMPLE,ALIAS,etc.} */
+ s16 key; /* Use WAVEFRONT_PATCH here */
+ u16 devno; /* fill in when sending */
+ u8 subkey; /* WF_ST_{SAMPLE,ALIAS,etc.} */
#define WAVEFRONT_FIND_FREE_SAMPLE_SLOT 999
- UINT16 number; /* patch/sample/prog number */
+ u16 number; /* patch/sample/prog number */
- UINT32 size; /* size of any data included in
+ u32 size; /* size of any data included in
one of the fields in `hdrptr', or
as `dataptr'.
@@ -546,7 +555,7 @@ typedef struct wf_patch_info {
*/
wavefront_any *hdrptr; /* user-space ptr to hdr bytes */
- UINT16 *dataptr; /* actual sample data */
+ u16 *dataptr; /* actual sample data */
wavefront_any hdr; /* kernel-space copy of hdr bytes */
} wavefront_patch_info;
diff --git a/include/sound/ymfpci.h b/include/sound/ymfpci.h
index bab03cc0fb7f..113f8a25a5de 100644
--- a/include/sound/ymfpci.h
+++ b/include/sound/ymfpci.h
@@ -285,6 +285,7 @@ struct _snd_ymfpci {
struct resource *res_reg_area;
unsigned short old_legacy_ctrl;
+ unsigned int joystick_port;
void *work_ptr;
dma_addr_t work_ptr_addr;
@@ -355,13 +356,14 @@ int snd_ymfpci_pcm2(ymfpci_t *chip, int device, snd_pcm_t **rpcm);
int snd_ymfpci_pcm_spdif(ymfpci_t *chip, int device, snd_pcm_t **rpcm);
int snd_ymfpci_pcm_4ch(ymfpci_t *chip, int device, snd_pcm_t **rpcm);
int snd_ymfpci_mixer(ymfpci_t *chip);
+int snd_ymfpci_joystick(ymfpci_t *chip);
int snd_ymfpci_voice_alloc(ymfpci_t *chip, ymfpci_voice_type_t type, int pair, ymfpci_voice_t **rvoice);
int snd_ymfpci_voice_free(ymfpci_t *chip, ymfpci_voice_t *pvoice);
#ifdef CONFIG_PM
-void snd_ymfpci_suspend(ymfpci_t *chip, int can_schedule);
-void snd_ymfpci_resume(ymfpci_t *chip, int can_schedule);
+void snd_ymfpci_suspend(ymfpci_t *chip);
+void snd_ymfpci_resume(ymfpci_t *chip);
#endif
#endif /* __SOUND_YMFPCI_H */