Commit eb4698f3 authored by Takashi Iwai's avatar Takashi Iwai Committed by Jaroslav Kysela

[ALSA] Remove xxx_t typedefs: PCI emu10k1

Modules: EMU10K1/EMU10K2 driver

Remove xxx_t typedefs from the PCI emu10k1 driver.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 3d19f804
...@@ -887,47 +887,45 @@ ...@@ -887,47 +887,45 @@
/* ------------------- STRUCTURES -------------------- */ /* ------------------- STRUCTURES -------------------- */
typedef struct _snd_emu10k1 emu10k1_t; enum {
typedef struct _snd_emu10k1_voice emu10k1_voice_t;
typedef struct _snd_emu10k1_pcm emu10k1_pcm_t;
typedef enum {
EMU10K1_EFX, EMU10K1_EFX,
EMU10K1_PCM, EMU10K1_PCM,
EMU10K1_SYNTH, EMU10K1_SYNTH,
EMU10K1_MIDI EMU10K1_MIDI
} emu10k1_voice_type_t; };
struct snd_emu10k1;
struct _snd_emu10k1_voice { struct snd_emu10k1_voice {
emu10k1_t *emu; struct snd_emu10k1 *emu;
int number; int number;
unsigned int use: 1, unsigned int use: 1,
pcm: 1, pcm: 1,
efx: 1, efx: 1,
synth: 1, synth: 1,
midi: 1; midi: 1;
void (*interrupt)(emu10k1_t *emu, emu10k1_voice_t *pvoice); void (*interrupt)(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice);
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
}; };
typedef enum { enum {
PLAYBACK_EMUVOICE, PLAYBACK_EMUVOICE,
PLAYBACK_EFX, PLAYBACK_EFX,
CAPTURE_AC97ADC, CAPTURE_AC97ADC,
CAPTURE_AC97MIC, CAPTURE_AC97MIC,
CAPTURE_EFX CAPTURE_EFX
} snd_emu10k1_pcm_type_t; };
struct _snd_emu10k1_pcm { struct snd_emu10k1_pcm {
emu10k1_t *emu; struct snd_emu10k1 *emu;
snd_emu10k1_pcm_type_t type; int type;
snd_pcm_substream_t *substream; struct snd_pcm_substream *substream;
emu10k1_voice_t *voices[NUM_EFX_PLAYBACK]; struct snd_emu10k1_voice *voices[NUM_EFX_PLAYBACK];
emu10k1_voice_t *extra; struct snd_emu10k1_voice *extra;
unsigned short running; unsigned short running;
unsigned short first_ptr; unsigned short first_ptr;
snd_util_memblk_t *memblk; struct snd_util_memblk *memblk;
unsigned int start_addr; unsigned int start_addr;
unsigned int ccca_start_addr; unsigned int ccca_start_addr;
unsigned int capture_ipr; /* interrupt acknowledge mask */ unsigned int capture_ipr; /* interrupt acknowledge mask */
...@@ -941,13 +939,13 @@ struct _snd_emu10k1_pcm { ...@@ -941,13 +939,13 @@ struct _snd_emu10k1_pcm {
unsigned int capture_bufsize; /* buffer size in bytes */ unsigned int capture_bufsize; /* buffer size in bytes */
}; };
typedef struct { struct snd_emu10k1_pcm_mixer {
/* mono, left, right x 8 sends (4 on emu10k1) */ /* mono, left, right x 8 sends (4 on emu10k1) */
unsigned char send_routing[3][8]; unsigned char send_routing[3][8];
unsigned char send_volume[3][8]; unsigned char send_volume[3][8];
unsigned short attn[3]; unsigned short attn[3];
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
} emu10k1_pcm_mixer_t; };
#define snd_emu10k1_compose_send_routing(route) \ #define snd_emu10k1_compose_send_routing(route) \
((route[0] | (route[1] << 4) | (route[2] << 8) | (route[3] << 12)) << 16) ((route[0] | (route[1] << 4) | (route[2] << 8) | (route[3] << 12)) << 16)
...@@ -958,20 +956,20 @@ typedef struct { ...@@ -958,20 +956,20 @@ typedef struct {
#define snd_emu10k1_compose_audigy_fxrt2(route) \ #define snd_emu10k1_compose_audigy_fxrt2(route) \
((unsigned int)route[4] | ((unsigned int)route[5] << 8) | ((unsigned int)route[6] << 16) | ((unsigned int)route[7] << 24)) ((unsigned int)route[4] | ((unsigned int)route[5] << 8) | ((unsigned int)route[6] << 16) | ((unsigned int)route[7] << 24))
typedef struct snd_emu10k1_memblk { struct snd_emu10k1_memblk {
snd_util_memblk_t mem; struct snd_util_memblk mem;
/* private part */ /* private part */
int first_page, last_page, pages, mapped_page; int first_page, last_page, pages, mapped_page;
unsigned int map_locked; unsigned int map_locked;
struct list_head mapped_link; struct list_head mapped_link;
struct list_head mapped_order_link; struct list_head mapped_order_link;
} emu10k1_memblk_t; };
#define snd_emu10k1_memblk_offset(blk) (((blk)->mapped_page << PAGE_SHIFT) | ((blk)->mem.offset & (PAGE_SIZE - 1))) #define snd_emu10k1_memblk_offset(blk) (((blk)->mapped_page << PAGE_SHIFT) | ((blk)->mem.offset & (PAGE_SIZE - 1)))
#define EMU10K1_MAX_TRAM_BLOCKS_PER_CODE 16 #define EMU10K1_MAX_TRAM_BLOCKS_PER_CODE 16
typedef struct { struct snd_emu10k1_fx8010_ctl {
struct list_head list; /* list link container */ struct list_head list; /* list link container */
unsigned int vcount; unsigned int vcount;
unsigned int count; /* count of GPR (1..16) */ unsigned int count; /* count of GPR (1..16) */
...@@ -980,19 +978,19 @@ typedef struct { ...@@ -980,19 +978,19 @@ typedef struct {
unsigned int min; /* minimum range */ unsigned int min; /* minimum range */
unsigned int max; /* maximum range */ unsigned int max; /* maximum range */
unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */ unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */
snd_kcontrol_t *kcontrol; struct snd_kcontrol *kcontrol;
} snd_emu10k1_fx8010_ctl_t; };
typedef void (snd_fx8010_irq_handler_t)(emu10k1_t *emu, void *private_data); typedef void (snd_fx8010_irq_handler_t)(struct snd_emu10k1 *emu, void *private_data);
typedef struct _snd_emu10k1_fx8010_irq { struct snd_emu10k1_fx8010_irq {
struct _snd_emu10k1_fx8010_irq *next; struct snd_emu10k1_fx8010_irq *next;
snd_fx8010_irq_handler_t *handler; snd_fx8010_irq_handler_t *handler;
unsigned short gpr_running; unsigned short gpr_running;
void *private_data; void *private_data;
} snd_emu10k1_fx8010_irq_t; };
typedef struct { struct snd_emu10k1_fx8010_pcm {
unsigned int valid: 1, unsigned int valid: 1,
opened: 1, opened: 1,
active: 1; active: 1;
...@@ -1006,13 +1004,13 @@ typedef struct { ...@@ -1006,13 +1004,13 @@ typedef struct {
unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */ unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */
unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */ unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */
unsigned char etram[32]; /* external TRAM address & data */ unsigned char etram[32]; /* external TRAM address & data */
snd_pcm_indirect_t pcm_rec; struct snd_pcm_indirect pcm_rec;
unsigned int tram_pos; unsigned int tram_pos;
unsigned int tram_shift; unsigned int tram_shift;
snd_emu10k1_fx8010_irq_t *irq; struct snd_emu10k1_fx8010_irq *irq;
} snd_emu10k1_fx8010_pcm_t; };
typedef struct { struct snd_emu10k1_fx8010 {
unsigned short fxbus_mask; /* used FX buses (bitmask) */ unsigned short fxbus_mask; /* used FX buses (bitmask) */
unsigned short extin_mask; /* used external inputs (bitmask) */ unsigned short extin_mask; /* used external inputs (bitmask) */
unsigned short extout_mask; /* used external outputs (bitmask) */ unsigned short extout_mask; /* used external outputs (bitmask) */
...@@ -1025,18 +1023,18 @@ typedef struct { ...@@ -1025,18 +1023,18 @@ typedef struct {
int gpr_count; /* count of used kcontrols */ int gpr_count; /* count of used kcontrols */
struct list_head gpr_ctl; /* GPR controls */ struct list_head gpr_ctl; /* GPR controls */
struct semaphore lock; struct semaphore lock;
snd_emu10k1_fx8010_pcm_t pcm[8]; struct snd_emu10k1_fx8010_pcm pcm[8];
spinlock_t irq_lock; spinlock_t irq_lock;
snd_emu10k1_fx8010_irq_t *irq_handlers; struct snd_emu10k1_fx8010_irq *irq_handlers;
} snd_emu10k1_fx8010_t; };
#define emu10k1_gpr_ctl(n) list_entry(n, snd_emu10k1_fx8010_ctl_t, list) #define emu10k1_gpr_ctl(n) list_entry(n, struct snd_emu10k1_fx8010_ctl, list)
typedef struct { struct snd_emu10k1_midi {
struct _snd_emu10k1 *emu; struct snd_emu10k1 *emu;
snd_rawmidi_t *rmidi; struct snd_rawmidi *rmidi;
snd_rawmidi_substream_t *substream_input; struct snd_rawmidi_substream *substream_input;
snd_rawmidi_substream_t *substream_output; struct snd_rawmidi_substream *substream_output;
unsigned int midi_mode; unsigned int midi_mode;
spinlock_t input_lock; spinlock_t input_lock;
spinlock_t output_lock; spinlock_t output_lock;
...@@ -1044,10 +1042,10 @@ typedef struct { ...@@ -1044,10 +1042,10 @@ typedef struct {
int tx_enable, rx_enable; int tx_enable, rx_enable;
int port; int port;
int ipr_tx, ipr_rx; int ipr_tx, ipr_rx;
void (*interrupt)(emu10k1_t *emu, unsigned int status); void (*interrupt)(struct snd_emu10k1 *emu, unsigned int status);
} emu10k1_midi_t; };
typedef struct { struct snd_emu_chip_details {
u32 vendor; u32 vendor;
u32 device; u32 device;
u32 subsystem; u32 subsystem;
...@@ -1066,15 +1064,16 @@ typedef struct { ...@@ -1066,15 +1064,16 @@ typedef struct {
const char *driver; const char *driver;
const char *name; const char *name;
const char *id; /* for backward compatibility - can be NULL if not needed */ const char *id; /* for backward compatibility - can be NULL if not needed */
} emu_chip_details_t; };
struct _snd_emu10k1 { struct snd_emu10k1 {
int irq; int irq;
unsigned long port; /* I/O port number */ unsigned long port; /* I/O port number */
unsigned int tos_link: 1, /* tos link detected */ unsigned int tos_link: 1, /* tos link detected */
rear_ac97: 1; /* rear channels are on AC'97 */ rear_ac97: 1; /* rear channels are on AC'97 */
const emu_chip_details_t *card_capabilities; /* Contains profile of card capabilities */ /* Contains profile of card capabilities */
const struct snd_emu_chip_details *card_capabilities;
unsigned int audigy; /* is Audigy? */ unsigned int audigy; /* is Audigy? */
unsigned int revision; /* chip revision */ unsigned int revision; /* chip revision */
unsigned int serial; /* serial number */ unsigned int serial; /* serial number */
...@@ -1088,8 +1087,8 @@ struct _snd_emu10k1 { ...@@ -1088,8 +1087,8 @@ struct _snd_emu10k1 {
struct snd_dma_device p16v_dma_dev; struct snd_dma_device p16v_dma_dev;
struct snd_dma_buffer p16v_buffer; struct snd_dma_buffer p16v_buffer;
snd_util_memhdr_t *memhdr; /* page allocation list */ struct snd_util_memhdr *memhdr; /* page allocation list */
emu10k1_memblk_t *reserved_page; /* reserved page */ struct snd_emu10k1_memblk *reserved_page; /* reserved page */
struct list_head mapped_link_head; struct list_head mapped_link_head;
struct list_head mapped_order_link_head; struct list_head mapped_order_link_head;
...@@ -1099,142 +1098,142 @@ struct _snd_emu10k1 { ...@@ -1099,142 +1098,142 @@ struct _snd_emu10k1 {
unsigned int spdif_bits[3]; /* s/pdif out setup */ unsigned int spdif_bits[3]; /* s/pdif out setup */
snd_emu10k1_fx8010_t fx8010; /* FX8010 info */ struct snd_emu10k1_fx8010 fx8010; /* FX8010 info */
int gpr_base; int gpr_base;
ac97_t *ac97; struct snd_ac97 *ac97;
struct pci_dev *pci; struct pci_dev *pci;
snd_card_t *card; struct snd_card *card;
snd_pcm_t *pcm; struct snd_pcm *pcm;
snd_pcm_t *pcm_mic; struct snd_pcm *pcm_mic;
snd_pcm_t *pcm_efx; struct snd_pcm *pcm_efx;
snd_pcm_t *pcm_p16v; struct snd_pcm *pcm_p16v;
spinlock_t synth_lock; spinlock_t synth_lock;
void *synth; void *synth;
int (*get_synth_voice)(emu10k1_t *emu); int (*get_synth_voice)(struct snd_emu10k1 *emu);
spinlock_t reg_lock; spinlock_t reg_lock;
spinlock_t emu_lock; spinlock_t emu_lock;
spinlock_t voice_lock; spinlock_t voice_lock;
struct semaphore ptb_lock; struct semaphore ptb_lock;
emu10k1_voice_t voices[NUM_G]; struct snd_emu10k1_voice voices[NUM_G];
emu10k1_voice_t p16v_voices[4]; struct snd_emu10k1_voice p16v_voices[4];
emu10k1_voice_t p16v_capture_voice; struct snd_emu10k1_voice p16v_capture_voice;
int p16v_device_offset; int p16v_device_offset;
u32 p16v_capture_source; u32 p16v_capture_source;
u32 p16v_capture_channel; u32 p16v_capture_channel;
emu10k1_pcm_mixer_t pcm_mixer[32]; struct snd_emu10k1_pcm_mixer pcm_mixer[32];
emu10k1_pcm_mixer_t efx_pcm_mixer[NUM_EFX_PLAYBACK]; struct snd_emu10k1_pcm_mixer efx_pcm_mixer[NUM_EFX_PLAYBACK];
snd_kcontrol_t *ctl_send_routing; struct snd_kcontrol *ctl_send_routing;
snd_kcontrol_t *ctl_send_volume; struct snd_kcontrol *ctl_send_volume;
snd_kcontrol_t *ctl_attn; struct snd_kcontrol *ctl_attn;
snd_kcontrol_t *ctl_efx_send_routing; struct snd_kcontrol *ctl_efx_send_routing;
snd_kcontrol_t *ctl_efx_send_volume; struct snd_kcontrol *ctl_efx_send_volume;
snd_kcontrol_t *ctl_efx_attn; struct snd_kcontrol *ctl_efx_attn;
void (*hwvol_interrupt)(emu10k1_t *emu, unsigned int status); void (*hwvol_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
void (*capture_interrupt)(emu10k1_t *emu, unsigned int status); void (*capture_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
void (*capture_mic_interrupt)(emu10k1_t *emu, unsigned int status); void (*capture_mic_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
void (*capture_efx_interrupt)(emu10k1_t *emu, unsigned int status); void (*capture_efx_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
void (*spdif_interrupt)(emu10k1_t *emu, unsigned int status); void (*spdif_interrupt)(struct snd_emu10k1 *emu, unsigned int status);
void (*dsp_interrupt)(emu10k1_t *emu); void (*dsp_interrupt)(struct snd_emu10k1 *emu);
snd_pcm_substream_t *pcm_capture_substream; struct snd_pcm_substream *pcm_capture_substream;
snd_pcm_substream_t *pcm_capture_mic_substream; struct snd_pcm_substream *pcm_capture_mic_substream;
snd_pcm_substream_t *pcm_capture_efx_substream; struct snd_pcm_substream *pcm_capture_efx_substream;
snd_pcm_substream_t *pcm_playback_efx_substream; struct snd_pcm_substream *pcm_playback_efx_substream;
snd_timer_t *timer; struct snd_timer *timer;
emu10k1_midi_t midi; struct snd_emu10k1_midi midi;
emu10k1_midi_t midi2; /* for audigy */ struct snd_emu10k1_midi midi2; /* for audigy */
unsigned int efx_voices_mask[2]; unsigned int efx_voices_mask[2];
unsigned int next_free_voice; unsigned int next_free_voice;
}; };
int snd_emu10k1_create(snd_card_t * card, int snd_emu10k1_create(struct snd_card *card,
struct pci_dev *pci, struct pci_dev *pci,
unsigned short extin_mask, unsigned short extin_mask,
unsigned short extout_mask, unsigned short extout_mask,
long max_cache_bytes, long max_cache_bytes,
int enable_ir, int enable_ir,
uint subsystem, uint subsystem,
emu10k1_t ** remu); struct snd_emu10k1 ** remu);
int snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); int snd_emu10k1_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
int snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); int snd_emu10k1_pcm_mic(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
int snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); int snd_emu10k1_pcm_efx(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
int snd_p16v_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); int snd_p16v_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
int snd_p16v_free(emu10k1_t * emu); int snd_p16v_free(struct snd_emu10k1 * emu);
int snd_p16v_mixer(emu10k1_t * emu); int snd_p16v_mixer(struct snd_emu10k1 * emu);
int snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); int snd_emu10k1_pcm_multi(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
int snd_emu10k1_fx8010_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); int snd_emu10k1_fx8010_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);
int snd_emu10k1_mixer(emu10k1_t * emu, int pcm_device, int multi_device); int snd_emu10k1_mixer(struct snd_emu10k1 * emu, int pcm_device, int multi_device);
int snd_emu10k1_timer(emu10k1_t * emu, int device); int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device);
int snd_emu10k1_fx8010_new(emu10k1_t *emu, int device, snd_hwdep_t ** rhwdep); int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep);
irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs); irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs);
/* initialization */ /* initialization */
void snd_emu10k1_voice_init(emu10k1_t * emu, int voice); void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice);
int snd_emu10k1_init_efx(emu10k1_t *emu); int snd_emu10k1_init_efx(struct snd_emu10k1 *emu);
void snd_emu10k1_free_efx(emu10k1_t *emu); void snd_emu10k1_free_efx(struct snd_emu10k1 *emu);
int snd_emu10k1_fx8010_tram_setup(emu10k1_t *emu, u32 size); int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size);
/* I/O functions */ /* I/O functions */
unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned int chn); unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);
void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data); void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);
unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu, unsigned int reg, unsigned int chn); unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);
void snd_emu10k1_ptr20_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data); void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);
unsigned int snd_emu10k1_efx_read(emu10k1_t *emu, unsigned int pc); unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc);
void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb); void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb);
void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb); void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb);
void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum); void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum); void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum); void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicenum); void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voicenum); void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum); void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum); void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum); void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum);
void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait); void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait);
static inline unsigned int snd_emu10k1_wc(emu10k1_t *emu) { return (inl(emu->port + WC) >> 6) & 0xfffff; } static inline unsigned int snd_emu10k1_wc(struct snd_emu10k1 *emu) { return (inl(emu->port + WC) >> 6) & 0xfffff; }
unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg); unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg);
void snd_emu10k1_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short data); void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data);
unsigned int snd_emu10k1_rate_to_pitch(unsigned int rate); unsigned int snd_emu10k1_rate_to_pitch(unsigned int rate);
/* memory allocation */ /* memory allocation */
snd_util_memblk_t *snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream); struct snd_util_memblk *snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *substream);
int snd_emu10k1_free_pages(emu10k1_t *emu, snd_util_memblk_t *blk); int snd_emu10k1_free_pages(struct snd_emu10k1 *emu, struct snd_util_memblk *blk);
snd_util_memblk_t *snd_emu10k1_synth_alloc(emu10k1_t *emu, unsigned int size); struct snd_util_memblk *snd_emu10k1_synth_alloc(struct snd_emu10k1 *emu, unsigned int size);
int snd_emu10k1_synth_free(emu10k1_t *emu, snd_util_memblk_t *blk); int snd_emu10k1_synth_free(struct snd_emu10k1 *emu, struct snd_util_memblk *blk);
int snd_emu10k1_synth_bzero(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, int size); int snd_emu10k1_synth_bzero(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, int size);
int snd_emu10k1_synth_copy_from_user(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, const char __user *data, int size); int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, const char __user *data, int size);
int snd_emu10k1_memblk_map(emu10k1_t *emu, emu10k1_memblk_t *blk); int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk);
/* voice allocation */ /* voice allocation */
int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int pair, emu10k1_voice_t **rvoice); int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int pair, struct snd_emu10k1_voice **rvoice);
int snd_emu10k1_voice_free(emu10k1_t *emu, emu10k1_voice_t *pvoice); int snd_emu10k1_voice_free(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice);
/* MIDI uart */ /* MIDI uart */
int snd_emu10k1_midi(emu10k1_t * emu); int snd_emu10k1_midi(struct snd_emu10k1 * emu);
int snd_emu10k1_audigy_midi(emu10k1_t * emu); int snd_emu10k1_audigy_midi(struct snd_emu10k1 * emu);
/* proc interface */ /* proc interface */
int snd_emu10k1_proc_init(emu10k1_t * emu); int snd_emu10k1_proc_init(struct snd_emu10k1 * emu);
/* fx8010 irq handler */ /* fx8010 irq handler */
int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu, int snd_emu10k1_fx8010_register_irq_handler(struct snd_emu10k1 *emu,
snd_fx8010_irq_handler_t *handler, snd_fx8010_irq_handler_t *handler,
unsigned char gpr_running, unsigned char gpr_running,
void *private_data, void *private_data,
snd_emu10k1_fx8010_irq_t **r_irq); struct snd_emu10k1_fx8010_irq **r_irq);
int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu,
snd_emu10k1_fx8010_irq_t *irq); struct snd_emu10k1_fx8010_irq *irq);
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
...@@ -1469,14 +1468,14 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, ...@@ -1469,14 +1468,14 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu,
#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */ #define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */
#endif #endif
typedef struct { struct snd_emu10k1_fx8010_info {
unsigned int internal_tram_size; /* in samples */ unsigned int internal_tram_size; /* in samples */
unsigned int external_tram_size; /* in samples */ unsigned int external_tram_size; /* in samples */
char fxbus_names[16][32]; /* names of FXBUSes */ char fxbus_names[16][32]; /* names of FXBUSes */
char extin_names[16][32]; /* names of external inputs */ char extin_names[16][32]; /* names of external inputs */
char extout_names[32][32]; /* names of external outputs */ char extout_names[32][32]; /* names of external outputs */
unsigned int gpr_controls; /* count of GPR controls */ unsigned int gpr_controls; /* count of GPR controls */
} emu10k1_fx8010_info_t; };
#define EMU10K1_GPR_TRANSLATION_NONE 0 #define EMU10K1_GPR_TRANSLATION_NONE 0
#define EMU10K1_GPR_TRANSLATION_TABLE100 1 #define EMU10K1_GPR_TRANSLATION_TABLE100 1
...@@ -1484,8 +1483,8 @@ typedef struct { ...@@ -1484,8 +1483,8 @@ typedef struct {
#define EMU10K1_GPR_TRANSLATION_TREBLE 3 #define EMU10K1_GPR_TRANSLATION_TREBLE 3
#define EMU10K1_GPR_TRANSLATION_ONOFF 4 #define EMU10K1_GPR_TRANSLATION_ONOFF 4
typedef struct { struct snd_emu10k1_fx8010_control_gpr {
snd_ctl_elem_id_t id; /* full control ID definition */ struct snd_ctl_elem_id id; /* full control ID definition */
unsigned int vcount; /* visible count */ unsigned int vcount; /* visible count */
unsigned int count; /* count of GPR (1..16) */ unsigned int count; /* count of GPR (1..16) */
unsigned short gpr[32]; /* GPR number(s) */ unsigned short gpr[32]; /* GPR number(s) */
...@@ -1493,23 +1492,23 @@ typedef struct { ...@@ -1493,23 +1492,23 @@ typedef struct {
unsigned int min; /* minimum range */ unsigned int min; /* minimum range */
unsigned int max; /* maximum range */ unsigned int max; /* maximum range */
unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */ unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */
} emu10k1_fx8010_control_gpr_t; };
typedef struct { struct snd_emu10k1_fx8010_code {
char name[128]; char name[128];
DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */ DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */
u_int32_t __user *gpr_map; /* initializers */ u_int32_t __user *gpr_map; /* initializers */
unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */ unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */
emu10k1_fx8010_control_gpr_t __user *gpr_add_controls; /* GPR controls to add/replace */ struct snd_emu10k1_fx8010_control_gpr __user *gpr_add_controls; /* GPR controls to add/replace */
unsigned int gpr_del_control_count; /* count of GPR controls to remove */ unsigned int gpr_del_control_count; /* count of GPR controls to remove */
snd_ctl_elem_id_t __user *gpr_del_controls; /* IDs of GPR controls to remove */ struct snd_ctl_elem_id __user *gpr_del_controls; /* IDs of GPR controls to remove */
unsigned int gpr_list_control_count; /* count of GPR controls to list */ unsigned int gpr_list_control_count; /* count of GPR controls to list */
unsigned int gpr_list_control_total; /* total count of GPR controls */ unsigned int gpr_list_control_total; /* total count of GPR controls */
emu10k1_fx8010_control_gpr_t __user *gpr_list_controls; /* listed GPR controls */ struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */
DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */ DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */
u_int32_t __user *tram_data_map; /* data initializers */ u_int32_t __user *tram_data_map; /* data initializers */
...@@ -1517,16 +1516,16 @@ typedef struct { ...@@ -1517,16 +1516,16 @@ typedef struct {
DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */ DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */
u_int32_t __user *code; /* one instruction - 64 bits */ u_int32_t __user *code; /* one instruction - 64 bits */
} emu10k1_fx8010_code_t; };
typedef struct { struct snd_emu10k1_fx8010_tram {
unsigned int address; /* 31.bit == 1 -> external TRAM */ unsigned int address; /* 31.bit == 1 -> external TRAM */
unsigned int size; /* size in samples (4 bytes) */ unsigned int size; /* size in samples (4 bytes) */
unsigned int *samples; /* pointer to samples (20-bit) */ unsigned int *samples; /* pointer to samples (20-bit) */
/* NULL->clear memory */ /* NULL->clear memory */
} emu10k1_fx8010_tram_t; };
typedef struct { struct snd_emu10k1_fx8010_pcm_rec {
unsigned int substream; /* substream number */ unsigned int substream; /* substream number */
unsigned int res1; /* reserved */ unsigned int res1; /* reserved */
unsigned int channels; /* 16-bit channels count, zero = remove this substream */ unsigned int channels; /* 16-bit channels count, zero = remove this substream */
...@@ -1541,20 +1540,27 @@ typedef struct { ...@@ -1541,20 +1540,27 @@ typedef struct {
unsigned char pad; /* reserved */ unsigned char pad; /* reserved */
unsigned char etram[32]; /* external TRAM address & data (one per channel) */ unsigned char etram[32]; /* external TRAM address & data (one per channel) */
unsigned int res2; /* reserved */ unsigned int res2; /* reserved */
} emu10k1_fx8010_pcm_t; };
#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, emu10k1_fx8010_info_t) #define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, struct snd_emu10k1_fx8010_info)
#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, emu10k1_fx8010_code_t) #define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, struct snd_emu10k1_fx8010_code)
#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, emu10k1_fx8010_code_t) #define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, struct snd_emu10k1_fx8010_code)
#define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int) #define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int)
#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, emu10k1_fx8010_tram_t) #define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, struct snd_emu10k1_fx8010_tram)
#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, emu10k1_fx8010_tram_t) #define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, struct snd_emu10k1_fx8010_tram)
#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, emu10k1_fx8010_pcm_t) #define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, struct snd_emu10k1_fx8010_pcm_rec)
#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, emu10k1_fx8010_pcm_t) #define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, struct snd_emu10k1_fx8010_pcm_rec)
#define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80) #define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80)
#define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81) #define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81)
#define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82) #define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82)
#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int) #define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)
#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int) #define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)
/* typedefs for compatibility to user-space */
typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;
typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;
typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;
typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;
typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;
#endif /* __SOUND_EMU10K1_H */ #endif /* __SOUND_EMU10K1_H */
...@@ -27,12 +27,12 @@ ...@@ -27,12 +27,12 @@
#define SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH "emu10k1-synth" #define SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH "emu10k1-synth"
/* argument for snd_seq_device_new */ /* argument for snd_seq_device_new */
typedef struct snd_emu10k1_synth_arg { struct snd_emu10k1_synth_arg {
emu10k1_t *hwptr; /* chip */ struct snd_emu10k1 *hwptr; /* chip */
int index; /* sequencer client index */ int index; /* sequencer client index */
int seq_ports; /* number of sequencer ports to be created */ int seq_ports; /* number of sequencer ports to be created */
int max_voices; /* maximum number of voices for wavetable */ int max_voices; /* maximum number of voices for wavetable */
} snd_emu10k1_synth_arg_t; };
#define EMU10K1_MAX_MEMSIZE (32 * 1024 * 1024) /* 32MB */ #define EMU10K1_MAX_MEMSIZE (32 * 1024 * 1024) /* 32MB */
......
...@@ -101,10 +101,10 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci, ...@@ -101,10 +101,10 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci,
const struct pci_device_id *pci_id) const struct pci_device_id *pci_id)
{ {
static int dev; static int dev;
snd_card_t *card; struct snd_card *card;
emu10k1_t *emu; struct snd_emu10k1 *emu;
#ifdef ENABLE_SYNTH #ifdef ENABLE_SYNTH
snd_seq_device_t *wave = NULL; struct snd_seq_device *wave = NULL;
#endif #endif
int err; int err;
...@@ -186,11 +186,11 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci, ...@@ -186,11 +186,11 @@ static int __devinit snd_card_emu10k1_probe(struct pci_dev *pci,
} }
#ifdef ENABLE_SYNTH #ifdef ENABLE_SYNTH
if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, if (snd_seq_device_new(card, 1, SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH,
sizeof(snd_emu10k1_synth_arg_t), &wave) < 0 || sizeof(struct snd_emu10k1_synth_arg), &wave) < 0 ||
wave == NULL) { wave == NULL) {
snd_printk(KERN_WARNING "can't initialize Emu10k1 wavetable synth\n"); snd_printk(KERN_WARNING "can't initialize Emu10k1 wavetable synth\n");
} else { } else {
snd_emu10k1_synth_arg_t *arg; struct snd_emu10k1_synth_arg *arg;
arg = SNDRV_SEQ_DEVICE_ARGPTR(wave); arg = SNDRV_SEQ_DEVICE_ARGPTR(wave);
strcpy(wave->name, "Emu-10k1 Synth"); strcpy(wave->name, "Emu-10k1 Synth");
arg->hwptr = emu; arg->hwptr = emu;
......
...@@ -27,26 +27,28 @@ enum { ...@@ -27,26 +27,28 @@ enum {
}; };
/* Keeps track of what we are finding */ /* Keeps track of what we are finding */
typedef struct best_voice { struct best_voice {
unsigned int time; unsigned int time;
int voice; int voice;
} best_voice_t; };
/* /*
* prototypes * prototypes
*/ */
static void lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_only); static void lookup_voices(struct snd_emux *emu, struct snd_emu10k1 *hw,
static snd_emux_voice_t *get_voice(snd_emux_t *emu, snd_emux_port_t *port); struct best_voice *best, int active_only);
static int start_voice(snd_emux_voice_t *vp); static struct snd_emux_voice *get_voice(struct snd_emux *emu,
static void trigger_voice(snd_emux_voice_t *vp); struct snd_emux_port *port);
static void release_voice(snd_emux_voice_t *vp); static int start_voice(struct snd_emux_voice *vp);
static void update_voice(snd_emux_voice_t *vp, int update); static void trigger_voice(struct snd_emux_voice *vp);
static void terminate_voice(snd_emux_voice_t *vp); static void release_voice(struct snd_emux_voice *vp);
static void free_voice(snd_emux_voice_t *vp); static void update_voice(struct snd_emux_voice *vp, int update);
static void terminate_voice(struct snd_emux_voice *vp);
static void set_fmmod(emu10k1_t *hw, snd_emux_voice_t *vp); static void free_voice(struct snd_emux_voice *vp);
static void set_fm2frq2(emu10k1_t *hw, snd_emux_voice_t *vp);
static void set_filterQ(emu10k1_t *hw, snd_emux_voice_t *vp); static void set_fmmod(struct snd_emu10k1 *hw, struct snd_emux_voice *vp);
static void set_fm2frq2(struct snd_emu10k1 *hw, struct snd_emux_voice *vp);
static void set_filterQ(struct snd_emu10k1 *hw, struct snd_emux_voice *vp);
/* /*
* Ensure a value is between two points * Ensure a value is between two points
...@@ -59,7 +61,7 @@ static void set_filterQ(emu10k1_t *hw, snd_emux_voice_t *vp); ...@@ -59,7 +61,7 @@ static void set_filterQ(emu10k1_t *hw, snd_emux_voice_t *vp);
/* /*
* set up operators * set up operators
*/ */
static snd_emux_operators_t emu10k1_ops = { static struct snd_emux_operators emu10k1_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.get_voice = get_voice, .get_voice = get_voice,
.prepare = start_voice, .prepare = start_voice,
...@@ -73,7 +75,7 @@ static snd_emux_operators_t emu10k1_ops = { ...@@ -73,7 +75,7 @@ static snd_emux_operators_t emu10k1_ops = {
}; };
void void
snd_emu10k1_ops_setup(snd_emux_t *emu) snd_emu10k1_ops_setup(struct snd_emux *emu)
{ {
emu->ops = emu10k1_ops; emu->ops = emu10k1_ops;
} }
...@@ -85,11 +87,11 @@ snd_emu10k1_ops_setup(snd_emux_t *emu) ...@@ -85,11 +87,11 @@ snd_emu10k1_ops_setup(snd_emux_t *emu)
* terminate most inactive voice and give it as a pcm voice. * terminate most inactive voice and give it as a pcm voice.
*/ */
int int
snd_emu10k1_synth_get_voice(emu10k1_t *hw) snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw)
{ {
snd_emux_t *emu; struct snd_emux *emu;
snd_emux_voice_t *vp; struct snd_emux_voice *vp;
best_voice_t best[V_END]; struct best_voice best[V_END];
unsigned long flags; unsigned long flags;
int i; int i;
...@@ -123,10 +125,10 @@ snd_emu10k1_synth_get_voice(emu10k1_t *hw) ...@@ -123,10 +125,10 @@ snd_emu10k1_synth_get_voice(emu10k1_t *hw)
* turn off the voice (not terminated) * turn off the voice (not terminated)
*/ */
static void static void
release_voice(snd_emux_voice_t *vp) release_voice(struct snd_emux_voice *vp)
{ {
int dcysusv; int dcysusv;
emu10k1_t *hw; struct snd_emu10k1 *hw;
hw = vp->hw; hw = vp->hw;
dcysusv = 0x8000 | (unsigned char)vp->reg.parm.modrelease; dcysusv = 0x8000 | (unsigned char)vp->reg.parm.modrelease;
...@@ -140,16 +142,16 @@ release_voice(snd_emux_voice_t *vp) ...@@ -140,16 +142,16 @@ release_voice(snd_emux_voice_t *vp)
* terminate the voice * terminate the voice
*/ */
static void static void
terminate_voice(snd_emux_voice_t *vp) terminate_voice(struct snd_emux_voice *vp)
{ {
emu10k1_t *hw; struct snd_emu10k1 *hw;
snd_assert(vp, return); snd_assert(vp, return);
hw = vp->hw; hw = vp->hw;
snd_emu10k1_ptr_write(hw, DCYSUSV, vp->ch, 0x807f | DCYSUSV_CHANNELENABLE_MASK); snd_emu10k1_ptr_write(hw, DCYSUSV, vp->ch, 0x807f | DCYSUSV_CHANNELENABLE_MASK);
if (vp->block) { if (vp->block) {
emu10k1_memblk_t *emem; struct snd_emu10k1_memblk *emem;
emem = (emu10k1_memblk_t *)vp->block; emem = (struct snd_emu10k1_memblk *)vp->block;
if (emem->map_locked > 0) if (emem->map_locked > 0)
emem->map_locked--; emem->map_locked--;
} }
...@@ -159,9 +161,9 @@ terminate_voice(snd_emux_voice_t *vp) ...@@ -159,9 +161,9 @@ terminate_voice(snd_emux_voice_t *vp)
* release the voice to system * release the voice to system
*/ */
static void static void
free_voice(snd_emux_voice_t *vp) free_voice(struct snd_emux_voice *vp)
{ {
emu10k1_t *hw; struct snd_emu10k1 *hw;
hw = vp->hw; hw = vp->hw;
if (vp->ch >= 0) { if (vp->ch >= 0) {
...@@ -181,9 +183,9 @@ free_voice(snd_emux_voice_t *vp) ...@@ -181,9 +183,9 @@ free_voice(snd_emux_voice_t *vp)
* update registers * update registers
*/ */
static void static void
update_voice(snd_emux_voice_t *vp, int update) update_voice(struct snd_emux_voice *vp, int update)
{ {
emu10k1_t *hw; struct snd_emu10k1 *hw;
hw = vp->hw; hw = vp->hw;
if (update & SNDRV_EMUX_UPDATE_VOLUME) if (update & SNDRV_EMUX_UPDATE_VOLUME)
...@@ -210,10 +212,11 @@ update_voice(snd_emux_voice_t *vp, int update) ...@@ -210,10 +212,11 @@ update_voice(snd_emux_voice_t *vp, int update)
*/ */
/* spinlock held! */ /* spinlock held! */
static void static void
lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_only) lookup_voices(struct snd_emux *emu, struct snd_emu10k1 *hw,
struct best_voice *best, int active_only)
{ {
snd_emux_voice_t *vp; struct snd_emux_voice *vp;
best_voice_t *bp; struct best_voice *bp;
int i; int i;
for (i = 0; i < V_END; i++) { for (i = 0; i < V_END; i++) {
...@@ -274,12 +277,12 @@ lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_onl ...@@ -274,12 +277,12 @@ lookup_voices(snd_emux_t *emu, emu10k1_t *hw, best_voice_t *best, int active_onl
* *
* emu->voice_lock is already held. * emu->voice_lock is already held.
*/ */
static snd_emux_voice_t * static struct snd_emux_voice *
get_voice(snd_emux_t *emu, snd_emux_port_t *port) get_voice(struct snd_emux *emu, struct snd_emux_port *port)
{ {
emu10k1_t *hw; struct snd_emu10k1 *hw;
snd_emux_voice_t *vp; struct snd_emux_voice *vp;
best_voice_t best[V_END]; struct best_voice best[V_END];
int i; int i;
hw = emu->hw; hw = emu->hw;
...@@ -290,7 +293,7 @@ get_voice(snd_emux_t *emu, snd_emux_port_t *port) ...@@ -290,7 +293,7 @@ get_voice(snd_emux_t *emu, snd_emux_port_t *port)
vp = &emu->voices[best[i].voice]; vp = &emu->voices[best[i].voice];
if (vp->ch < 0) { if (vp->ch < 0) {
/* allocate a voice */ /* allocate a voice */
emu10k1_voice_t *hwvoice; struct snd_emu10k1_voice *hwvoice;
if (snd_emu10k1_voice_alloc(hw, EMU10K1_SYNTH, 1, &hwvoice) < 0 || hwvoice == NULL) if (snd_emu10k1_voice_alloc(hw, EMU10K1_SYNTH, 1, &hwvoice) < 0 || hwvoice == NULL)
continue; continue;
vp->ch = hwvoice->number; vp->ch = hwvoice->number;
...@@ -308,21 +311,21 @@ get_voice(snd_emux_t *emu, snd_emux_port_t *port) ...@@ -308,21 +311,21 @@ get_voice(snd_emux_t *emu, snd_emux_port_t *port)
* prepare envelopes and LFOs * prepare envelopes and LFOs
*/ */
static int static int
start_voice(snd_emux_voice_t *vp) start_voice(struct snd_emux_voice *vp)
{ {
unsigned int temp; unsigned int temp;
int ch; int ch;
unsigned int addr, mapped_offset; unsigned int addr, mapped_offset;
snd_midi_channel_t *chan; struct snd_midi_channel *chan;
emu10k1_t *hw; struct snd_emu10k1 *hw;
emu10k1_memblk_t *emem; struct snd_emu10k1_memblk *emem;
hw = vp->hw; hw = vp->hw;
ch = vp->ch; ch = vp->ch;
snd_assert(ch >= 0, return -EINVAL); snd_assert(ch >= 0, return -EINVAL);
chan = vp->chan; chan = vp->chan;
emem = (emu10k1_memblk_t *)vp->block; emem = (struct snd_emu10k1_memblk *)vp->block;
if (emem == NULL) if (emem == NULL)
return -EINVAL; return -EINVAL;
emem->map_locked++; emem->map_locked++;
...@@ -463,15 +466,15 @@ start_voice(snd_emux_voice_t *vp) ...@@ -463,15 +466,15 @@ start_voice(snd_emux_voice_t *vp)
* Start envelope * Start envelope
*/ */
static void static void
trigger_voice(snd_emux_voice_t *vp) trigger_voice(struct snd_emux_voice *vp)
{ {
unsigned int temp, ptarget; unsigned int temp, ptarget;
emu10k1_t *hw; struct snd_emu10k1 *hw;
emu10k1_memblk_t *emem; struct snd_emu10k1_memblk *emem;
hw = vp->hw; hw = vp->hw;
emem = (emu10k1_memblk_t *)vp->block; emem = (struct snd_emu10k1_memblk *)vp->block;
if (! emem || emem->mapped_page < 0) if (! emem || emem->mapped_page < 0)
return; /* not mapped */ return; /* not mapped */
...@@ -495,7 +498,7 @@ trigger_voice(snd_emux_voice_t *vp) ...@@ -495,7 +498,7 @@ trigger_voice(snd_emux_voice_t *vp)
/* set lfo1 modulation height and cutoff */ /* set lfo1 modulation height and cutoff */
static void static void
set_fmmod(emu10k1_t *hw, snd_emux_voice_t *vp) set_fmmod(struct snd_emu10k1 *hw, struct snd_emux_voice *vp)
{ {
unsigned short fmmod; unsigned short fmmod;
short pitch; short pitch;
...@@ -513,7 +516,7 @@ set_fmmod(emu10k1_t *hw, snd_emux_voice_t *vp) ...@@ -513,7 +516,7 @@ set_fmmod(emu10k1_t *hw, snd_emux_voice_t *vp)
/* set lfo2 pitch & frequency */ /* set lfo2 pitch & frequency */
static void static void
set_fm2frq2(emu10k1_t *hw, snd_emux_voice_t *vp) set_fm2frq2(struct snd_emu10k1 *hw, struct snd_emux_voice *vp)
{ {
unsigned short fm2frq2; unsigned short fm2frq2;
short pitch; short pitch;
...@@ -531,7 +534,7 @@ set_fm2frq2(emu10k1_t *hw, snd_emux_voice_t *vp) ...@@ -531,7 +534,7 @@ set_fm2frq2(emu10k1_t *hw, snd_emux_voice_t *vp)
/* set filterQ */ /* set filterQ */
static void static void
set_filterQ(emu10k1_t *hw, snd_emux_voice_t *vp) set_filterQ(struct snd_emu10k1 *hw, struct snd_emux_voice *vp)
{ {
unsigned int val; unsigned int val;
val = snd_emu10k1_ptr_read(hw, CCCA, vp->ch) & ~CCCA_RESONANCE; val = snd_emu10k1_ptr_read(hw, CCCA, vp->ch) & ~CCCA_RESONANCE;
......
...@@ -52,7 +52,7 @@ MODULE_LICENSE("GPL"); ...@@ -52,7 +52,7 @@ MODULE_LICENSE("GPL");
* EMU10K1 init / done * EMU10K1 init / done
*************************************************************************/ *************************************************************************/
void snd_emu10k1_voice_init(emu10k1_t * emu, int ch) void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int ch)
{ {
snd_emu10k1_ptr_write(emu, DCYSUSV, ch, 0); snd_emu10k1_ptr_write(emu, DCYSUSV, ch, 0);
snd_emu10k1_ptr_write(emu, IP, ch, 0); snd_emu10k1_ptr_write(emu, IP, ch, 0);
...@@ -97,7 +97,7 @@ void snd_emu10k1_voice_init(emu10k1_t * emu, int ch) ...@@ -97,7 +97,7 @@ void snd_emu10k1_voice_init(emu10k1_t * emu, int ch)
} }
} }
static int __devinit snd_emu10k1_init(emu10k1_t * emu, int enable_ir) static int __devinit snd_emu10k1_init(struct snd_emu10k1 * emu, int enable_ir)
{ {
int ch, idx, err; int ch, idx, err;
unsigned int silent_page; unsigned int silent_page;
...@@ -336,14 +336,14 @@ static int __devinit snd_emu10k1_init(emu10k1_t * emu, int enable_ir) ...@@ -336,14 +336,14 @@ static int __devinit snd_emu10k1_init(emu10k1_t * emu, int enable_ir)
snd_emu10k1_intr_enable(emu, INTE_PCIERRORENABLE); snd_emu10k1_intr_enable(emu, INTE_PCIERRORENABLE);
emu->reserved_page = (emu10k1_memblk_t *)snd_emu10k1_synth_alloc(emu, 4096); emu->reserved_page = (struct snd_emu10k1_memblk *)snd_emu10k1_synth_alloc(emu, 4096);
if (emu->reserved_page) if (emu->reserved_page)
emu->reserved_page->map_locked = 1; emu->reserved_page->map_locked = 1;
return 0; return 0;
} }
static int snd_emu10k1_done(emu10k1_t * emu) static int snd_emu10k1_done(struct snd_emu10k1 * emu)
{ {
int ch; int ch;
...@@ -384,7 +384,7 @@ static int snd_emu10k1_done(emu10k1_t * emu) ...@@ -384,7 +384,7 @@ static int snd_emu10k1_done(emu10k1_t * emu)
/* remove reserved page */ /* remove reserved page */
if (emu->reserved_page != NULL) { if (emu->reserved_page != NULL) {
snd_emu10k1_synth_free(emu, (snd_util_memblk_t *)emu->reserved_page); snd_emu10k1_synth_free(emu, (struct snd_util_memblk *)emu->reserved_page);
emu->reserved_page = NULL; emu->reserved_page = NULL;
} }
...@@ -474,7 +474,7 @@ static int snd_emu10k1_done(emu10k1_t * emu) ...@@ -474,7 +474,7 @@ static int snd_emu10k1_done(emu10k1_t * emu)
* register. * register.
*/ */
static void snd_emu10k1_ecard_write(emu10k1_t * emu, unsigned int value) static void snd_emu10k1_ecard_write(struct snd_emu10k1 * emu, unsigned int value)
{ {
unsigned short count; unsigned short count;
unsigned int data; unsigned int data;
...@@ -512,7 +512,7 @@ static void snd_emu10k1_ecard_write(emu10k1_t * emu, unsigned int value) ...@@ -512,7 +512,7 @@ static void snd_emu10k1_ecard_write(emu10k1_t * emu, unsigned int value)
* channel. * channel.
*/ */
static void snd_emu10k1_ecard_setadcgain(emu10k1_t * emu, static void snd_emu10k1_ecard_setadcgain(struct snd_emu10k1 * emu,
unsigned short gain) unsigned short gain)
{ {
unsigned int bit; unsigned int bit;
...@@ -540,7 +540,7 @@ static void snd_emu10k1_ecard_setadcgain(emu10k1_t * emu, ...@@ -540,7 +540,7 @@ static void snd_emu10k1_ecard_setadcgain(emu10k1_t * emu,
snd_emu10k1_ecard_write(emu, emu->ecard_ctrl); snd_emu10k1_ecard_write(emu, emu->ecard_ctrl);
} }
static int __devinit snd_emu10k1_ecard_init(emu10k1_t * emu) static int __devinit snd_emu10k1_ecard_init(struct snd_emu10k1 * emu)
{ {
unsigned int hc_value; unsigned int hc_value;
...@@ -580,7 +580,7 @@ static int __devinit snd_emu10k1_ecard_init(emu10k1_t * emu) ...@@ -580,7 +580,7 @@ static int __devinit snd_emu10k1_ecard_init(emu10k1_t * emu)
return 0; return 0;
} }
static int __devinit snd_emu10k1_cardbus_init(emu10k1_t * emu) static int __devinit snd_emu10k1_cardbus_init(struct snd_emu10k1 * emu)
{ {
unsigned long special_port; unsigned long special_port;
unsigned int value; unsigned int value;
...@@ -609,7 +609,7 @@ static int __devinit snd_emu10k1_cardbus_init(emu10k1_t * emu) ...@@ -609,7 +609,7 @@ static int __devinit snd_emu10k1_cardbus_init(emu10k1_t * emu)
* Create the EMU10K1 instance * Create the EMU10K1 instance
*/ */
static int snd_emu10k1_free(emu10k1_t *emu) static int snd_emu10k1_free(struct snd_emu10k1 *emu)
{ {
if (emu->port) { /* avoid access to already used hardware */ if (emu->port) { /* avoid access to already used hardware */
snd_emu10k1_fx8010_tram_setup(emu, 0); snd_emu10k1_fx8010_tram_setup(emu, 0);
...@@ -634,13 +634,13 @@ static int snd_emu10k1_free(emu10k1_t *emu) ...@@ -634,13 +634,13 @@ static int snd_emu10k1_free(emu10k1_t *emu)
return 0; return 0;
} }
static int snd_emu10k1_dev_free(snd_device_t *device) static int snd_emu10k1_dev_free(struct snd_device *device)
{ {
emu10k1_t *emu = device->device_data; struct snd_emu10k1 *emu = device->device_data;
return snd_emu10k1_free(emu); return snd_emu10k1_free(emu);
} }
static emu_chip_details_t emu_chip_details[] = { static struct snd_emu_chip_details emu_chip_details[] = {
/* Audigy 2 Value AC3 out does not work yet. Need to find out how to turn off interpolators.*/ /* Audigy 2 Value AC3 out does not work yet. Need to find out how to turn off interpolators.*/
/* Tested by James@superbug.co.uk 3rd July 2005 */ /* Tested by James@superbug.co.uk 3rd July 2005 */
{.vendor = 0x1102, .device = 0x0008, .subsystem = 0x10011102, {.vendor = 0x1102, .device = 0x0008, .subsystem = 0x10011102,
...@@ -890,21 +890,21 @@ static emu_chip_details_t emu_chip_details[] = { ...@@ -890,21 +890,21 @@ static emu_chip_details_t emu_chip_details[] = {
{ } /* terminator */ { } /* terminator */
}; };
int __devinit snd_emu10k1_create(snd_card_t * card, int __devinit snd_emu10k1_create(struct snd_card *card,
struct pci_dev * pci, struct pci_dev * pci,
unsigned short extin_mask, unsigned short extin_mask,
unsigned short extout_mask, unsigned short extout_mask,
long max_cache_bytes, long max_cache_bytes,
int enable_ir, int enable_ir,
uint subsystem, uint subsystem,
emu10k1_t ** remu) struct snd_emu10k1 ** remu)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
int err; int err;
int is_audigy; int is_audigy;
unsigned char revision; unsigned char revision;
const emu_chip_details_t *c; const struct snd_emu_chip_details *c;
static snd_device_ops_t ops = { static struct snd_device_ops ops = {
.dev_free = snd_emu10k1_dev_free, .dev_free = snd_emu10k1_dev_free,
}; };
...@@ -1041,7 +1041,8 @@ int __devinit snd_emu10k1_create(snd_card_t * card, ...@@ -1041,7 +1041,8 @@ int __devinit snd_emu10k1_create(snd_card_t * card,
snd_emu10k1_free(emu); snd_emu10k1_free(emu);
return -ENOMEM; return -ENOMEM;
} }
emu->memhdr->block_extra_size = sizeof(emu10k1_memblk_t) - sizeof(snd_util_memblk_t); emu->memhdr->block_extra_size = sizeof(struct snd_emu10k1_memblk) -
sizeof(struct snd_util_memblk);
pci_set_master(pci); pci_set_master(pci);
......
...@@ -35,14 +35,15 @@ ...@@ -35,14 +35,15 @@
* allocate a sample block and copy data from userspace * allocate a sample block and copy data from userspace
*/ */
int int
snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp, snd_emu10k1_sample_new(struct snd_emux *rec, struct snd_sf_sample *sp,
snd_util_memhdr_t *hdr, const void __user *data, long count) struct snd_util_memhdr *hdr,
const void __user *data, long count)
{ {
int offset; int offset;
int truesize, size, loopsize, blocksize; int truesize, size, loopsize, blocksize;
int loopend, sampleend; int loopend, sampleend;
unsigned int start_addr; unsigned int start_addr;
emu10k1_t *emu; struct snd_emu10k1 *emu;
emu = rec->hw; emu = rec->hw;
snd_assert(sp != NULL, return -EINVAL); snd_assert(sp != NULL, return -EINVAL);
...@@ -205,10 +206,10 @@ snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp, ...@@ -205,10 +206,10 @@ snd_emu10k1_sample_new(snd_emux_t *rec, snd_sf_sample_t *sp,
* free a sample block * free a sample block
*/ */
int int
snd_emu10k1_sample_free(snd_emux_t *rec, snd_sf_sample_t *sp, snd_emu10k1_sample_free(struct snd_emux *rec, struct snd_sf_sample *sp,
snd_util_memhdr_t *hdr) struct snd_util_memhdr *hdr)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
emu = rec->hw; emu = rec->hw;
snd_assert(sp != NULL, return -EINVAL); snd_assert(sp != NULL, return -EINVAL);
......
...@@ -28,11 +28,11 @@ MODULE_LICENSE("GPL"); ...@@ -28,11 +28,11 @@ MODULE_LICENSE("GPL");
/* /*
* create a new hardware dependent device for Emu10k1 * create a new hardware dependent device for Emu10k1
*/ */
static int snd_emu10k1_synth_new_device(snd_seq_device_t *dev) static int snd_emu10k1_synth_new_device(struct snd_seq_device *dev)
{ {
snd_emux_t *emu; struct snd_emux *emu;
emu10k1_t *hw; struct snd_emu10k1 *hw;
snd_emu10k1_synth_arg_t *arg; struct snd_emu10k1_synth_arg *arg;
unsigned long flags; unsigned long flags;
arg = SNDRV_SEQ_DEVICE_ARGPTR(dev); arg = SNDRV_SEQ_DEVICE_ARGPTR(dev);
...@@ -76,10 +76,10 @@ static int snd_emu10k1_synth_new_device(snd_seq_device_t *dev) ...@@ -76,10 +76,10 @@ static int snd_emu10k1_synth_new_device(snd_seq_device_t *dev)
return 0; return 0;
} }
static int snd_emu10k1_synth_delete_device(snd_seq_device_t *dev) static int snd_emu10k1_synth_delete_device(struct snd_seq_device *dev)
{ {
snd_emux_t *emu; struct snd_emux *emu;
emu10k1_t *hw; struct snd_emu10k1 *hw;
unsigned long flags; unsigned long flags;
if (dev->driver_data == NULL) if (dev->driver_data == NULL)
...@@ -104,11 +104,12 @@ static int snd_emu10k1_synth_delete_device(snd_seq_device_t *dev) ...@@ -104,11 +104,12 @@ static int snd_emu10k1_synth_delete_device(snd_seq_device_t *dev)
static int __init alsa_emu10k1_synth_init(void) static int __init alsa_emu10k1_synth_init(void)
{ {
static snd_seq_dev_ops_t ops = { static struct snd_seq_dev_ops ops = {
snd_emu10k1_synth_new_device, snd_emu10k1_synth_new_device,
snd_emu10k1_synth_delete_device, snd_emu10k1_synth_delete_device,
}; };
return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, &ops, sizeof(snd_emu10k1_synth_arg_t)); return snd_seq_device_register_driver(SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH, &ops,
sizeof(struct snd_emu10k1_synth_arg));
} }
static void __exit alsa_emu10k1_synth_exit(void) static void __exit alsa_emu10k1_synth_exit(void)
......
...@@ -26,13 +26,18 @@ ...@@ -26,13 +26,18 @@
#include <sound/emu10k1_synth.h> #include <sound/emu10k1_synth.h>
/* emu10k1_patch.c */ /* emu10k1_patch.c */
int snd_emu10k1_sample_new(snd_emux_t *private_data, snd_sf_sample_t *sp, snd_util_memhdr_t *hdr, const void __user *_data, long count); int snd_emu10k1_sample_new(struct snd_emux *private_data,
int snd_emu10k1_sample_free(snd_emux_t *private_data, snd_sf_sample_t *sp, snd_util_memhdr_t *hdr); struct snd_sf_sample *sp,
int snd_emu10k1_memhdr_init(snd_emux_t *emu); struct snd_util_memhdr *hdr,
const void __user *_data, long count);
int snd_emu10k1_sample_free(struct snd_emux *private_data,
struct snd_sf_sample *sp,
struct snd_util_memhdr *hdr);
int snd_emu10k1_memhdr_init(struct snd_emux *emu);
/* emu10k1_callback.c */ /* emu10k1_callback.c */
void snd_emu10k1_ops_setup(snd_emux_t *emu); void snd_emu10k1_ops_setup(struct snd_emux *emu);
int snd_emu10k1_synth_get_voice(emu10k1_t *hw); int snd_emu10k1_synth_get_voice(struct snd_emu10k1 *hw);
#endif /* __EMU10K1_SYNTH_LOCAL_H */ #endif /* __EMU10K1_SYNTH_LOCAL_H */
...@@ -309,9 +309,10 @@ static inline void snd_leave_user(mm_segment_t fs) ...@@ -309,9 +309,10 @@ static inline void snd_leave_user(mm_segment_t fs)
* controls * controls
*/ */
static int snd_emu10k1_gpr_ctl_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_gpr_ctl_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
snd_emu10k1_fx8010_ctl_t *ctl = (snd_emu10k1_fx8010_ctl_t *)kcontrol->private_value; struct snd_emu10k1_fx8010_ctl *ctl =
(struct snd_emu10k1_fx8010_ctl *) kcontrol->private_value;
if (ctl->min == 0 && ctl->max == 1) if (ctl->min == 0 && ctl->max == 1)
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
...@@ -323,10 +324,11 @@ static int snd_emu10k1_gpr_ctl_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_ ...@@ -323,10 +324,11 @@ static int snd_emu10k1_gpr_ctl_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_
return 0; return 0;
} }
static int snd_emu10k1_gpr_ctl_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_emu10k1_gpr_ctl_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
snd_emu10k1_fx8010_ctl_t *ctl = (snd_emu10k1_fx8010_ctl_t *)kcontrol->private_value; struct snd_emu10k1_fx8010_ctl *ctl =
(struct snd_emu10k1_fx8010_ctl *) kcontrol->private_value;
unsigned long flags; unsigned long flags;
unsigned int i; unsigned int i;
...@@ -337,10 +339,11 @@ static int snd_emu10k1_gpr_ctl_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value ...@@ -337,10 +339,11 @@ static int snd_emu10k1_gpr_ctl_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value
return 0; return 0;
} }
static int snd_emu10k1_gpr_ctl_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_emu10k1_gpr_ctl_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
snd_emu10k1_fx8010_ctl_t *ctl = (snd_emu10k1_fx8010_ctl_t *)kcontrol->private_value; struct snd_emu10k1_fx8010_ctl *ctl =
(struct snd_emu10k1_fx8010_ctl *) kcontrol->private_value;
unsigned long flags; unsigned long flags;
unsigned int nval, val; unsigned int nval, val;
unsigned int i, j; unsigned int i, j;
...@@ -393,9 +396,9 @@ static int snd_emu10k1_gpr_ctl_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value ...@@ -393,9 +396,9 @@ static int snd_emu10k1_gpr_ctl_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value
* Interrupt handler * Interrupt handler
*/ */
static void snd_emu10k1_fx8010_interrupt(emu10k1_t *emu) static void snd_emu10k1_fx8010_interrupt(struct snd_emu10k1 *emu)
{ {
snd_emu10k1_fx8010_irq_t *irq, *nirq; struct snd_emu10k1_fx8010_irq *irq, *nirq;
irq = emu->fx8010.irq_handlers; irq = emu->fx8010.irq_handlers;
while (irq) { while (irq) {
...@@ -409,13 +412,13 @@ static void snd_emu10k1_fx8010_interrupt(emu10k1_t *emu) ...@@ -409,13 +412,13 @@ static void snd_emu10k1_fx8010_interrupt(emu10k1_t *emu)
} }
} }
int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu, int snd_emu10k1_fx8010_register_irq_handler(struct snd_emu10k1 *emu,
snd_fx8010_irq_handler_t *handler, snd_fx8010_irq_handler_t *handler,
unsigned char gpr_running, unsigned char gpr_running,
void *private_data, void *private_data,
snd_emu10k1_fx8010_irq_t **r_irq) struct snd_emu10k1_fx8010_irq **r_irq)
{ {
snd_emu10k1_fx8010_irq_t *irq; struct snd_emu10k1_fx8010_irq *irq;
unsigned long flags; unsigned long flags;
irq = kmalloc(sizeof(*irq), GFP_ATOMIC); irq = kmalloc(sizeof(*irq), GFP_ATOMIC);
...@@ -440,10 +443,10 @@ int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu, ...@@ -440,10 +443,10 @@ int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu,
return 0; return 0;
} }
int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu,
snd_emu10k1_fx8010_irq_t *irq) struct snd_emu10k1_fx8010_irq *irq)
{ {
snd_emu10k1_fx8010_irq_t *tmp; struct snd_emu10k1_fx8010_irq *tmp;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&emu->fx8010.irq_lock, flags); spin_lock_irqsave(&emu->fx8010.irq_lock, flags);
...@@ -468,7 +471,8 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu, ...@@ -468,7 +471,8 @@ int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu,
* EMU10K1 effect manager * EMU10K1 effect manager
*************************************************************************/ *************************************************************************/
static void snd_emu10k1_write_op(emu10k1_fx8010_code_t *icode, unsigned int *ptr, static void snd_emu10k1_write_op(struct snd_emu10k1_fx8010_code *icode,
unsigned int *ptr,
u32 op, u32 r, u32 a, u32 x, u32 y) u32 op, u32 r, u32 a, u32 x, u32 y)
{ {
u_int32_t *code; u_int32_t *code;
...@@ -483,7 +487,8 @@ static void snd_emu10k1_write_op(emu10k1_fx8010_code_t *icode, unsigned int *ptr ...@@ -483,7 +487,8 @@ static void snd_emu10k1_write_op(emu10k1_fx8010_code_t *icode, unsigned int *ptr
#define OP(icode, ptr, op, r, a, x, y) \ #define OP(icode, ptr, op, r, a, x, y) \
snd_emu10k1_write_op(icode, ptr, op, r, a, x, y) snd_emu10k1_write_op(icode, ptr, op, r, a, x, y)
static void snd_emu10k1_audigy_write_op(emu10k1_fx8010_code_t *icode, unsigned int *ptr, static void snd_emu10k1_audigy_write_op(struct snd_emu10k1_fx8010_code *icode,
unsigned int *ptr,
u32 op, u32 r, u32 a, u32 x, u32 y) u32 op, u32 r, u32 a, u32 x, u32 y)
{ {
u_int32_t *code; u_int32_t *code;
...@@ -498,19 +503,20 @@ static void snd_emu10k1_audigy_write_op(emu10k1_fx8010_code_t *icode, unsigned i ...@@ -498,19 +503,20 @@ static void snd_emu10k1_audigy_write_op(emu10k1_fx8010_code_t *icode, unsigned i
#define A_OP(icode, ptr, op, r, a, x, y) \ #define A_OP(icode, ptr, op, r, a, x, y) \
snd_emu10k1_audigy_write_op(icode, ptr, op, r, a, x, y) snd_emu10k1_audigy_write_op(icode, ptr, op, r, a, x, y)
static void snd_emu10k1_efx_write(emu10k1_t *emu, unsigned int pc, unsigned int data) static void snd_emu10k1_efx_write(struct snd_emu10k1 *emu, unsigned int pc, unsigned int data)
{ {
pc += emu->audigy ? A_MICROCODEBASE : MICROCODEBASE; pc += emu->audigy ? A_MICROCODEBASE : MICROCODEBASE;
snd_emu10k1_ptr_write(emu, pc, 0, data); snd_emu10k1_ptr_write(emu, pc, 0, data);
} }
unsigned int snd_emu10k1_efx_read(emu10k1_t *emu, unsigned int pc) unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc)
{ {
pc += emu->audigy ? A_MICROCODEBASE : MICROCODEBASE; pc += emu->audigy ? A_MICROCODEBASE : MICROCODEBASE;
return snd_emu10k1_ptr_read(emu, pc, 0); return snd_emu10k1_ptr_read(emu, pc, 0);
} }
static int snd_emu10k1_gpr_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_gpr_poke(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
int gpr; int gpr;
u32 val; u32 val;
...@@ -525,7 +531,8 @@ static int snd_emu10k1_gpr_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) ...@@ -525,7 +531,8 @@ static int snd_emu10k1_gpr_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode)
return 0; return 0;
} }
static int snd_emu10k1_gpr_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_gpr_peek(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
int gpr; int gpr;
u32 val; u32 val;
...@@ -539,7 +546,8 @@ static int snd_emu10k1_gpr_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) ...@@ -539,7 +546,8 @@ static int snd_emu10k1_gpr_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode)
return 0; return 0;
} }
static int snd_emu10k1_tram_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_tram_poke(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
int tram; int tram;
u32 addr, val; u32 addr, val;
...@@ -561,7 +569,8 @@ static int snd_emu10k1_tram_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) ...@@ -561,7 +569,8 @@ static int snd_emu10k1_tram_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode)
return 0; return 0;
} }
static int snd_emu10k1_tram_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_tram_peek(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
int tram; int tram;
u32 val, addr; u32 val, addr;
...@@ -583,7 +592,8 @@ static int snd_emu10k1_tram_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) ...@@ -583,7 +592,8 @@ static int snd_emu10k1_tram_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode)
return 0; return 0;
} }
static int snd_emu10k1_code_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_code_poke(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
u32 pc, lo, hi; u32 pc, lo, hi;
...@@ -599,7 +609,8 @@ static int snd_emu10k1_code_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) ...@@ -599,7 +609,8 @@ static int snd_emu10k1_code_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode)
return 0; return 0;
} }
static int snd_emu10k1_code_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_code_peek(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
u32 pc; u32 pc;
...@@ -614,10 +625,11 @@ static int snd_emu10k1_code_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) ...@@ -614,10 +625,11 @@ static int snd_emu10k1_code_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode)
return 0; return 0;
} }
static snd_emu10k1_fx8010_ctl_t *snd_emu10k1_look_for_ctl(emu10k1_t *emu, snd_ctl_elem_id_t *id) static struct snd_emu10k1_fx8010_ctl *
snd_emu10k1_look_for_ctl(struct snd_emu10k1 *emu, struct snd_ctl_elem_id *id)
{ {
snd_emu10k1_fx8010_ctl_t *ctl; struct snd_emu10k1_fx8010_ctl *ctl;
snd_kcontrol_t *kcontrol; struct snd_kcontrol *kcontrol;
struct list_head *list; struct list_head *list;
list_for_each(list, &emu->fx8010.gpr_ctl) { list_for_each(list, &emu->fx8010.gpr_ctl) {
...@@ -631,13 +643,14 @@ static snd_emu10k1_fx8010_ctl_t *snd_emu10k1_look_for_ctl(emu10k1_t *emu, snd_ct ...@@ -631,13 +643,14 @@ static snd_emu10k1_fx8010_ctl_t *snd_emu10k1_look_for_ctl(emu10k1_t *emu, snd_ct
return NULL; return NULL;
} }
static int snd_emu10k1_verify_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_verify_controls(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
unsigned int i; unsigned int i;
snd_ctl_elem_id_t __user *_id; struct snd_ctl_elem_id __user *_id;
snd_ctl_elem_id_t id; struct snd_ctl_elem_id id;
emu10k1_fx8010_control_gpr_t __user *_gctl; struct snd_emu10k1_fx8010_control_gpr __user *_gctl;
emu10k1_fx8010_control_gpr_t *gctl; struct snd_emu10k1_fx8010_control_gpr *gctl;
int err; int err;
for (i = 0, _id = icode->gpr_del_controls; for (i = 0, _id = icode->gpr_del_controls;
...@@ -685,28 +698,29 @@ static int snd_emu10k1_verify_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *ic ...@@ -685,28 +698,29 @@ static int snd_emu10k1_verify_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *ic
return err; return err;
} }
static void snd_emu10k1_ctl_private_free(snd_kcontrol_t *kctl) static void snd_emu10k1_ctl_private_free(struct snd_kcontrol *kctl)
{ {
snd_emu10k1_fx8010_ctl_t *ctl; struct snd_emu10k1_fx8010_ctl *ctl;
ctl = (snd_emu10k1_fx8010_ctl_t *)kctl->private_value; ctl = (struct snd_emu10k1_fx8010_ctl *) kctl->private_value;
kctl->private_value = 0; kctl->private_value = 0;
list_del(&ctl->list); list_del(&ctl->list);
kfree(ctl); kfree(ctl);
} }
static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_add_controls(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
unsigned int i, j; unsigned int i, j;
emu10k1_fx8010_control_gpr_t __user *_gctl; struct snd_emu10k1_fx8010_control_gpr __user *_gctl;
emu10k1_fx8010_control_gpr_t *gctl; struct snd_emu10k1_fx8010_control_gpr *gctl;
snd_emu10k1_fx8010_ctl_t *ctl, *nctl; struct snd_emu10k1_fx8010_ctl *ctl, *nctl;
snd_kcontrol_new_t knew; struct snd_kcontrol_new knew;
snd_kcontrol_t *kctl; struct snd_kcontrol *kctl;
snd_ctl_elem_value_t *val; struct snd_ctl_elem_value *val;
int err = 0; int err = 0;
val = (snd_ctl_elem_value_t *)kmalloc(sizeof(*val), GFP_KERNEL); val = kmalloc(sizeof(*val), GFP_KERNEL);
gctl = kmalloc(sizeof(*gctl), GFP_KERNEL); gctl = kmalloc(sizeof(*gctl), GFP_KERNEL);
nctl = kmalloc(sizeof(*nctl), GFP_KERNEL); nctl = kmalloc(sizeof(*nctl), GFP_KERNEL);
if (!val || !gctl || !nctl) { if (!val || !gctl || !nctl) {
...@@ -751,7 +765,7 @@ static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode ...@@ -751,7 +765,7 @@ static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode
nctl->max = gctl->max; nctl->max = gctl->max;
nctl->translation = gctl->translation; nctl->translation = gctl->translation;
if (ctl == NULL) { if (ctl == NULL) {
ctl = (snd_emu10k1_fx8010_ctl_t *)kmalloc(sizeof(*ctl), GFP_KERNEL); ctl = kmalloc(sizeof(*ctl), GFP_KERNEL);
if (ctl == NULL) { if (ctl == NULL) {
err = -ENOMEM; err = -ENOMEM;
goto __error; goto __error;
...@@ -782,13 +796,14 @@ static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode ...@@ -782,13 +796,14 @@ static int snd_emu10k1_add_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode
return err; return err;
} }
static int snd_emu10k1_del_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_del_controls(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
unsigned int i; unsigned int i;
snd_ctl_elem_id_t id; struct snd_ctl_elem_id id;
snd_ctl_elem_id_t __user *_id; struct snd_ctl_elem_id __user *_id;
snd_emu10k1_fx8010_ctl_t *ctl; struct snd_emu10k1_fx8010_ctl *ctl;
snd_card_t *card = emu->card; struct snd_card *card = emu->card;
for (i = 0, _id = icode->gpr_del_controls; for (i = 0, _id = icode->gpr_del_controls;
i < icode->gpr_del_control_count; i++, _id++) { i < icode->gpr_del_control_count; i++, _id++) {
...@@ -803,14 +818,15 @@ static int snd_emu10k1_del_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode ...@@ -803,14 +818,15 @@ static int snd_emu10k1_del_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode
return 0; return 0;
} }
static int snd_emu10k1_list_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_list_controls(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
unsigned int i = 0, j; unsigned int i = 0, j;
unsigned int total = 0; unsigned int total = 0;
emu10k1_fx8010_control_gpr_t *gctl; struct snd_emu10k1_fx8010_control_gpr *gctl;
emu10k1_fx8010_control_gpr_t __user *_gctl; struct snd_emu10k1_fx8010_control_gpr __user *_gctl;
snd_emu10k1_fx8010_ctl_t *ctl; struct snd_emu10k1_fx8010_ctl *ctl;
snd_ctl_elem_id_t *id; struct snd_ctl_elem_id *id;
struct list_head *list; struct list_head *list;
gctl = kmalloc(sizeof(*gctl), GFP_KERNEL); gctl = kmalloc(sizeof(*gctl), GFP_KERNEL);
...@@ -851,7 +867,8 @@ static int snd_emu10k1_list_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icod ...@@ -851,7 +867,8 @@ static int snd_emu10k1_list_controls(emu10k1_t *emu, emu10k1_fx8010_code_t *icod
return 0; return 0;
} }
static int snd_emu10k1_icode_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_icode_poke(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
int err = 0; int err = 0;
...@@ -882,7 +899,8 @@ static int snd_emu10k1_icode_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) ...@@ -882,7 +899,8 @@ static int snd_emu10k1_icode_poke(emu10k1_t *emu, emu10k1_fx8010_code_t *icode)
return err; return err;
} }
static int snd_emu10k1_icode_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) static int snd_emu10k1_icode_peek(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_code *icode)
{ {
int err; int err;
...@@ -900,11 +918,12 @@ static int snd_emu10k1_icode_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode) ...@@ -900,11 +918,12 @@ static int snd_emu10k1_icode_peek(emu10k1_t *emu, emu10k1_fx8010_code_t *icode)
return err; return err;
} }
static int snd_emu10k1_ipcm_poke(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) static int snd_emu10k1_ipcm_poke(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_pcm_rec *ipcm)
{ {
unsigned int i; unsigned int i;
int err = 0; int err = 0;
snd_emu10k1_fx8010_pcm_t *pcm; struct snd_emu10k1_fx8010_pcm *pcm;
if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT) if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT)
return -EINVAL; return -EINVAL;
...@@ -945,11 +964,12 @@ static int snd_emu10k1_ipcm_poke(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) ...@@ -945,11 +964,12 @@ static int snd_emu10k1_ipcm_poke(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm)
return err; return err;
} }
static int snd_emu10k1_ipcm_peek(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) static int snd_emu10k1_ipcm_peek(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_pcm_rec *ipcm)
{ {
unsigned int i; unsigned int i;
int err = 0; int err = 0;
snd_emu10k1_fx8010_pcm_t *pcm; struct snd_emu10k1_fx8010_pcm *pcm;
if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT) if (ipcm->substream >= EMU10K1_FX8010_PCM_COUNT)
return -EINVAL; return -EINVAL;
...@@ -979,7 +999,9 @@ static int snd_emu10k1_ipcm_peek(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) ...@@ -979,7 +999,9 @@ static int snd_emu10k1_ipcm_peek(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm)
#define SND_EMU10K1_PLAYBACK_CHANNELS 8 #define SND_EMU10K1_PLAYBACK_CHANNELS 8
#define SND_EMU10K1_CAPTURE_CHANNELS 4 #define SND_EMU10K1_CAPTURE_CHANNELS 4
static void __devinit snd_emu10k1_init_mono_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval) static void __devinit
snd_emu10k1_init_mono_control(struct snd_emu10k1_fx8010_control_gpr *ctl,
const char *name, int gpr, int defval)
{ {
ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
strcpy(ctl->id.name, name); strcpy(ctl->id.name, name);
...@@ -990,7 +1012,9 @@ static void __devinit snd_emu10k1_init_mono_control(emu10k1_fx8010_control_gpr_t ...@@ -990,7 +1012,9 @@ static void __devinit snd_emu10k1_init_mono_control(emu10k1_fx8010_control_gpr_t
ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100; ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100;
} }
static void __devinit snd_emu10k1_init_stereo_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval) static void __devinit
snd_emu10k1_init_stereo_control(struct snd_emu10k1_fx8010_control_gpr *ctl,
const char *name, int gpr, int defval)
{ {
ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
strcpy(ctl->id.name, name); strcpy(ctl->id.name, name);
...@@ -1002,7 +1026,9 @@ static void __devinit snd_emu10k1_init_stereo_control(emu10k1_fx8010_control_gpr ...@@ -1002,7 +1026,9 @@ static void __devinit snd_emu10k1_init_stereo_control(emu10k1_fx8010_control_gpr
ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100; ctl->translation = EMU10K1_GPR_TRANSLATION_TABLE100;
} }
static void __devinit snd_emu10k1_init_mono_onoff_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval) static void __devinit
snd_emu10k1_init_mono_onoff_control(struct snd_emu10k1_fx8010_control_gpr *ctl,
const char *name, int gpr, int defval)
{ {
ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
strcpy(ctl->id.name, name); strcpy(ctl->id.name, name);
...@@ -1013,7 +1039,9 @@ static void __devinit snd_emu10k1_init_mono_onoff_control(emu10k1_fx8010_control ...@@ -1013,7 +1039,9 @@ static void __devinit snd_emu10k1_init_mono_onoff_control(emu10k1_fx8010_control
ctl->translation = EMU10K1_GPR_TRANSLATION_ONOFF; ctl->translation = EMU10K1_GPR_TRANSLATION_ONOFF;
} }
static void __devinit snd_emu10k1_init_stereo_onoff_control(emu10k1_fx8010_control_gpr_t *ctl, const char *name, int gpr, int defval) static void __devinit
snd_emu10k1_init_stereo_onoff_control(struct snd_emu10k1_fx8010_control_gpr *ctl,
const char *name, int gpr, int defval)
{ {
ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; ctl->id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
strcpy(ctl->id.name, name); strcpy(ctl->id.name, name);
...@@ -1030,7 +1058,7 @@ static void __devinit snd_emu10k1_init_stereo_onoff_control(emu10k1_fx8010_contr ...@@ -1030,7 +1058,7 @@ static void __devinit snd_emu10k1_init_stereo_onoff_control(emu10k1_fx8010_contr
* initial DSP configuration for Audigy * initial DSP configuration for Audigy
*/ */
static int __devinit _snd_emu10k1_audigy_init_efx(emu10k1_t *emu) static int __devinit _snd_emu10k1_audigy_init_efx(struct snd_emu10k1 *emu)
{ {
int err, i, z, gpr, nctl; int err, i, z, gpr, nctl;
const int playback = 10; const int playback = 10;
...@@ -1038,8 +1066,8 @@ static int __devinit _snd_emu10k1_audigy_init_efx(emu10k1_t *emu) ...@@ -1038,8 +1066,8 @@ static int __devinit _snd_emu10k1_audigy_init_efx(emu10k1_t *emu)
const int stereo_mix = capture + 2; const int stereo_mix = capture + 2;
const int tmp = 0x88; const int tmp = 0x88;
u32 ptr; u32 ptr;
emu10k1_fx8010_code_t *icode = NULL; struct snd_emu10k1_fx8010_code *icode = NULL;
emu10k1_fx8010_control_gpr_t *controls = NULL, *ctl; struct snd_emu10k1_fx8010_control_gpr *controls = NULL, *ctl;
u32 *gpr_map; u32 *gpr_map;
mm_segment_t seg; mm_segment_t seg;
...@@ -1047,8 +1075,11 @@ static int __devinit _snd_emu10k1_audigy_init_efx(emu10k1_t *emu) ...@@ -1047,8 +1075,11 @@ static int __devinit _snd_emu10k1_audigy_init_efx(emu10k1_t *emu)
INIT_LIST_HEAD(&emu->fx8010.gpr_ctl); INIT_LIST_HEAD(&emu->fx8010.gpr_ctl);
if ((icode = kzalloc(sizeof(*icode), GFP_KERNEL)) == NULL || if ((icode = kzalloc(sizeof(*icode), GFP_KERNEL)) == NULL ||
(icode->gpr_map = (u_int32_t __user *)kcalloc(512 + 256 + 256 + 2 * 1024, sizeof(u_int32_t), GFP_KERNEL)) == NULL || (icode->gpr_map = (u_int32_t __user *)
(controls = kcalloc(SND_EMU10K1_GPR_CONTROLS, sizeof(*controls), GFP_KERNEL)) == NULL) { kcalloc(512 + 256 + 256 + 2 * 1024, sizeof(u_int32_t),
GFP_KERNEL)) == NULL ||
(controls = kcalloc(SND_EMU10K1_GPR_CONTROLS,
sizeof(*controls), GFP_KERNEL)) == NULL) {
err = -ENOMEM; err = -ENOMEM;
goto __err; goto __err;
} }
...@@ -1434,7 +1465,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input)) ...@@ -1434,7 +1465,7 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
seg = snd_enter_user(); seg = snd_enter_user();
icode->gpr_add_control_count = nctl; icode->gpr_add_control_count = nctl;
icode->gpr_add_controls = (emu10k1_fx8010_control_gpr_t __user *)controls; icode->gpr_add_controls = (struct snd_emu10k1_fx8010_control_gpr __user *)controls;
err = snd_emu10k1_icode_poke(emu, icode); err = snd_emu10k1_icode_poke(emu, icode);
snd_leave_user(seg); snd_leave_user(seg);
...@@ -1454,14 +1485,14 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input)) ...@@ -1454,14 +1485,14 @@ A_OP(icode, &ptr, iMAC0, A_GPR(var), A_GPR(var), A_GPR(vol), A_EXTIN(input))
/* when volume = max, then copy only to avoid volume modification */ /* when volume = max, then copy only to avoid volume modification */
/* with iMAC0 (negative values) */ /* with iMAC0 (negative values) */
static void __devinit _volume(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 dst, u32 src, u32 vol) static void __devinit _volume(struct snd_emu10k1_fx8010_code *icode, u32 *ptr, u32 dst, u32 src, u32 vol)
{ {
OP(icode, ptr, iMAC0, dst, C_00000000, src, vol); OP(icode, ptr, iMAC0, dst, C_00000000, src, vol);
OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff); OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff);
OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000001); OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000001);
OP(icode, ptr, iACC3, dst, src, C_00000000, C_00000000); OP(icode, ptr, iACC3, dst, src, C_00000000, C_00000000);
} }
static void __devinit _volume_add(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 dst, u32 src, u32 vol) static void __devinit _volume_add(struct snd_emu10k1_fx8010_code *icode, u32 *ptr, u32 dst, u32 src, u32 vol)
{ {
OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff); OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff);
OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000002); OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000002);
...@@ -1469,7 +1500,7 @@ static void __devinit _volume_add(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 ds ...@@ -1469,7 +1500,7 @@ static void __devinit _volume_add(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 ds
OP(icode, ptr, iSKIP, C_00000000, C_7fffffff, C_7fffffff, C_00000001); OP(icode, ptr, iSKIP, C_00000000, C_7fffffff, C_7fffffff, C_00000001);
OP(icode, ptr, iMAC0, dst, dst, src, vol); OP(icode, ptr, iMAC0, dst, dst, src, vol);
} }
static void __devinit _volume_out(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 dst, u32 src, u32 vol) static void __devinit _volume_out(struct snd_emu10k1_fx8010_code *icode, u32 *ptr, u32 dst, u32 src, u32 vol)
{ {
OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff); OP(icode, ptr, iANDXOR, C_00000000, vol, C_ffffffff, C_7fffffff);
OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000002); OP(icode, ptr, iSKIP, GPR_COND, GPR_COND, CC_REG_NONZERO, C_00000002);
...@@ -1500,13 +1531,13 @@ static void __devinit _volume_out(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 ds ...@@ -1500,13 +1531,13 @@ static void __devinit _volume_out(emu10k1_fx8010_code_t *icode, u32 *ptr, u32 ds
_SWITCH_NEG(icode, ptr, GPR(dst), GPR(src)) _SWITCH_NEG(icode, ptr, GPR(dst), GPR(src))
static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) static int __devinit _snd_emu10k1_init_efx(struct snd_emu10k1 *emu)
{ {
int err, i, z, gpr, tmp, playback, capture; int err, i, z, gpr, tmp, playback, capture;
u32 ptr; u32 ptr;
emu10k1_fx8010_code_t *icode; struct snd_emu10k1_fx8010_code *icode;
emu10k1_fx8010_pcm_t *ipcm = NULL; struct snd_emu10k1_fx8010_pcm_rec *ipcm = NULL;
emu10k1_fx8010_control_gpr_t *controls = NULL, *ctl; struct snd_emu10k1_fx8010_control_gpr *controls = NULL, *ctl;
u32 *gpr_map; u32 *gpr_map;
mm_segment_t seg; mm_segment_t seg;
...@@ -1515,8 +1546,12 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) ...@@ -1515,8 +1546,12 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
if ((icode = kzalloc(sizeof(*icode), GFP_KERNEL)) == NULL) if ((icode = kzalloc(sizeof(*icode), GFP_KERNEL)) == NULL)
return -ENOMEM; return -ENOMEM;
if ((icode->gpr_map = (u_int32_t __user *)kcalloc(256 + 160 + 160 + 2 * 512, sizeof(u_int32_t), GFP_KERNEL)) == NULL || if ((icode->gpr_map = (u_int32_t __user *)
(controls = kcalloc(SND_EMU10K1_GPR_CONTROLS, sizeof(emu10k1_fx8010_control_gpr_t), GFP_KERNEL)) == NULL || kcalloc(256 + 160 + 160 + 2 * 512, sizeof(u_int32_t),
GFP_KERNEL)) == NULL ||
(controls = kcalloc(SND_EMU10K1_GPR_CONTROLS,
sizeof(struct snd_emu10k1_fx8010_control_gpr),
GFP_KERNEL)) == NULL ||
(ipcm = kzalloc(sizeof(*ipcm), GFP_KERNEL)) == NULL) { (ipcm = kzalloc(sizeof(*ipcm), GFP_KERNEL)) == NULL) {
err = -ENOMEM; err = -ENOMEM;
goto __err; goto __err;
...@@ -2050,7 +2085,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) ...@@ -2050,7 +2085,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
goto __err; goto __err;
seg = snd_enter_user(); seg = snd_enter_user();
icode->gpr_add_control_count = i; icode->gpr_add_control_count = i;
icode->gpr_add_controls = (emu10k1_fx8010_control_gpr_t __user *)controls; icode->gpr_add_controls = (struct snd_emu10k1_fx8010_control_gpr __user *)controls;
err = snd_emu10k1_icode_poke(emu, icode); err = snd_emu10k1_icode_poke(emu, icode);
snd_leave_user(seg); snd_leave_user(seg);
if (err >= 0) if (err >= 0)
...@@ -2065,7 +2100,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) ...@@ -2065,7 +2100,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu)
return err; return err;
} }
int __devinit snd_emu10k1_init_efx(emu10k1_t *emu) int __devinit snd_emu10k1_init_efx(struct snd_emu10k1 *emu)
{ {
if (emu->audigy) if (emu->audigy)
return _snd_emu10k1_audigy_init_efx(emu); return _snd_emu10k1_audigy_init_efx(emu);
...@@ -2073,7 +2108,7 @@ int __devinit snd_emu10k1_init_efx(emu10k1_t *emu) ...@@ -2073,7 +2108,7 @@ int __devinit snd_emu10k1_init_efx(emu10k1_t *emu)
return _snd_emu10k1_init_efx(emu); return _snd_emu10k1_init_efx(emu);
} }
void snd_emu10k1_free_efx(emu10k1_t *emu) void snd_emu10k1_free_efx(struct snd_emu10k1 *emu)
{ {
/* stop processor */ /* stop processor */
if (emu->audigy) if (emu->audigy)
...@@ -2083,7 +2118,7 @@ void snd_emu10k1_free_efx(emu10k1_t *emu) ...@@ -2083,7 +2118,7 @@ void snd_emu10k1_free_efx(emu10k1_t *emu)
} }
#if 0 // FIXME: who use them? #if 0 // FIXME: who use them?
int snd_emu10k1_fx8010_tone_control_activate(emu10k1_t *emu, int output) int snd_emu10k1_fx8010_tone_control_activate(struct snd_emu10k1 *emu, int output)
{ {
if (output < 0 || output >= 6) if (output < 0 || output >= 6)
return -EINVAL; return -EINVAL;
...@@ -2091,7 +2126,7 @@ int snd_emu10k1_fx8010_tone_control_activate(emu10k1_t *emu, int output) ...@@ -2091,7 +2126,7 @@ int snd_emu10k1_fx8010_tone_control_activate(emu10k1_t *emu, int output)
return 0; return 0;
} }
int snd_emu10k1_fx8010_tone_control_deactivate(emu10k1_t *emu, int output) int snd_emu10k1_fx8010_tone_control_deactivate(struct snd_emu10k1 *emu, int output)
{ {
if (output < 0 || output >= 6) if (output < 0 || output >= 6)
return -EINVAL; return -EINVAL;
...@@ -2100,7 +2135,7 @@ int snd_emu10k1_fx8010_tone_control_deactivate(emu10k1_t *emu, int output) ...@@ -2100,7 +2135,7 @@ int snd_emu10k1_fx8010_tone_control_deactivate(emu10k1_t *emu, int output)
} }
#endif #endif
int snd_emu10k1_fx8010_tram_setup(emu10k1_t *emu, u32 size) int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size)
{ {
u8 size_reg = 0; u8 size_reg = 0;
...@@ -2142,7 +2177,7 @@ int snd_emu10k1_fx8010_tram_setup(emu10k1_t *emu, u32 size) ...@@ -2142,7 +2177,7 @@ int snd_emu10k1_fx8010_tram_setup(emu10k1_t *emu, u32 size)
return 0; return 0;
} }
static int snd_emu10k1_fx8010_open(snd_hwdep_t * hw, struct file *file) static int snd_emu10k1_fx8010_open(struct snd_hwdep * hw, struct file *file)
{ {
return 0; return 0;
} }
...@@ -2155,7 +2190,8 @@ static void copy_string(char *dst, char *src, char *null, int idx) ...@@ -2155,7 +2190,8 @@ static void copy_string(char *dst, char *src, char *null, int idx)
strcpy(dst, src); strcpy(dst, src);
} }
static int snd_emu10k1_fx8010_info(emu10k1_t *emu, emu10k1_fx8010_info_t *info) static int snd_emu10k1_fx8010_info(struct snd_emu10k1 *emu,
struct snd_emu10k1_fx8010_info *info)
{ {
char **fxbus, **extin, **extout; char **fxbus, **extin, **extout;
unsigned short fxbus_mask, extin_mask, extout_mask; unsigned short fxbus_mask, extin_mask, extout_mask;
...@@ -2181,19 +2217,19 @@ static int snd_emu10k1_fx8010_info(emu10k1_t *emu, emu10k1_fx8010_info_t *info) ...@@ -2181,19 +2217,19 @@ static int snd_emu10k1_fx8010_info(emu10k1_t *emu, emu10k1_fx8010_info_t *info)
return 0; return 0;
} }
static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigned int cmd, unsigned long arg) static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, unsigned int cmd, unsigned long arg)
{ {
emu10k1_t *emu = hw->private_data; struct snd_emu10k1 *emu = hw->private_data;
emu10k1_fx8010_info_t *info; struct snd_emu10k1_fx8010_info *info;
emu10k1_fx8010_code_t *icode; struct snd_emu10k1_fx8010_code *icode;
emu10k1_fx8010_pcm_t *ipcm; struct snd_emu10k1_fx8010_pcm_rec *ipcm;
unsigned int addr; unsigned int addr;
void __user *argp = (void __user *)arg; void __user *argp = (void __user *)arg;
int res; int res;
switch (cmd) { switch (cmd) {
case SNDRV_EMU10K1_IOCTL_INFO: case SNDRV_EMU10K1_IOCTL_INFO:
info = (emu10k1_fx8010_info_t *)kmalloc(sizeof(*info), GFP_KERNEL); info = kmalloc(sizeof(*info), GFP_KERNEL);
if (!info) if (!info)
return -ENOMEM; return -ENOMEM;
if ((res = snd_emu10k1_fx8010_info(emu, info)) < 0) { if ((res = snd_emu10k1_fx8010_info(emu, info)) < 0) {
...@@ -2209,7 +2245,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne ...@@ -2209,7 +2245,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne
case SNDRV_EMU10K1_IOCTL_CODE_POKE: case SNDRV_EMU10K1_IOCTL_CODE_POKE:
if (!capable(CAP_SYS_ADMIN)) if (!capable(CAP_SYS_ADMIN))
return -EPERM; return -EPERM;
icode = (emu10k1_fx8010_code_t *)kmalloc(sizeof(*icode), GFP_KERNEL); icode = kmalloc(sizeof(*icode), GFP_KERNEL);
if (icode == NULL) if (icode == NULL)
return -ENOMEM; return -ENOMEM;
if (copy_from_user(icode, argp, sizeof(*icode))) { if (copy_from_user(icode, argp, sizeof(*icode))) {
...@@ -2220,7 +2256,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne ...@@ -2220,7 +2256,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne
kfree(icode); kfree(icode);
return res; return res;
case SNDRV_EMU10K1_IOCTL_CODE_PEEK: case SNDRV_EMU10K1_IOCTL_CODE_PEEK:
icode = (emu10k1_fx8010_code_t *)kmalloc(sizeof(*icode), GFP_KERNEL); icode = kmalloc(sizeof(*icode), GFP_KERNEL);
if (icode == NULL) if (icode == NULL)
return -ENOMEM; return -ENOMEM;
if (copy_from_user(icode, argp, sizeof(*icode))) { if (copy_from_user(icode, argp, sizeof(*icode))) {
...@@ -2235,7 +2271,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne ...@@ -2235,7 +2271,7 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne
kfree(icode); kfree(icode);
return res; return res;
case SNDRV_EMU10K1_IOCTL_PCM_POKE: case SNDRV_EMU10K1_IOCTL_PCM_POKE:
ipcm = (emu10k1_fx8010_pcm_t *)kmalloc(sizeof(*ipcm), GFP_KERNEL); ipcm = kmalloc(sizeof(*ipcm), GFP_KERNEL);
if (ipcm == NULL) if (ipcm == NULL)
return -ENOMEM; return -ENOMEM;
if (copy_from_user(ipcm, argp, sizeof(*ipcm))) { if (copy_from_user(ipcm, argp, sizeof(*ipcm))) {
...@@ -2327,14 +2363,14 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne ...@@ -2327,14 +2363,14 @@ static int snd_emu10k1_fx8010_ioctl(snd_hwdep_t * hw, struct file *file, unsigne
return -ENOTTY; return -ENOTTY;
} }
static int snd_emu10k1_fx8010_release(snd_hwdep_t * hw, struct file *file) static int snd_emu10k1_fx8010_release(struct snd_hwdep * hw, struct file *file)
{ {
return 0; return 0;
} }
int __devinit snd_emu10k1_fx8010_new(emu10k1_t *emu, int device, snd_hwdep_t ** rhwdep) int __devinit snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep)
{ {
snd_hwdep_t *hw; struct snd_hwdep *hw;
int err; int err;
if (rhwdep) if (rhwdep)
......
...@@ -35,17 +35,17 @@ ...@@ -35,17 +35,17 @@
#define AC97_ID_STAC9758 0x83847658 #define AC97_ID_STAC9758 0x83847658
static int snd_emu10k1_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
uinfo->count = 1; uinfo->count = 1;
return 0; return 0;
} }
static int snd_emu10k1_spdif_get(snd_kcontrol_t * kcontrol, static int snd_emu10k1_spdif_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
unsigned long flags; unsigned long flags;
...@@ -58,8 +58,8 @@ static int snd_emu10k1_spdif_get(snd_kcontrol_t * kcontrol, ...@@ -58,8 +58,8 @@ static int snd_emu10k1_spdif_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_emu10k1_spdif_get_mask(snd_kcontrol_t * kcontrol, static int snd_emu10k1_spdif_get_mask(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
ucontrol->value.iec958.status[0] = 0xff; ucontrol->value.iec958.status[0] = 0xff;
ucontrol->value.iec958.status[1] = 0xff; ucontrol->value.iec958.status[1] = 0xff;
...@@ -69,7 +69,7 @@ static int snd_emu10k1_spdif_get_mask(snd_kcontrol_t * kcontrol, ...@@ -69,7 +69,7 @@ static int snd_emu10k1_spdif_get_mask(snd_kcontrol_t * kcontrol,
} }
#if 0 #if 0
static int snd_audigy_spdif_output_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_audigy_spdif_output_rate_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[] = {"44100", "48000", "96000"}; static char *texts[] = {"44100", "48000", "96000"};
...@@ -82,10 +82,10 @@ static int snd_audigy_spdif_output_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_e ...@@ -82,10 +82,10 @@ static int snd_audigy_spdif_output_rate_info(snd_kcontrol_t *kcontrol, snd_ctl_e
return 0; return 0;
} }
static int snd_audigy_spdif_output_rate_get(snd_kcontrol_t * kcontrol, static int snd_audigy_spdif_output_rate_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
unsigned int tmp; unsigned int tmp;
unsigned long flags; unsigned long flags;
...@@ -109,10 +109,10 @@ static int snd_audigy_spdif_output_rate_get(snd_kcontrol_t * kcontrol, ...@@ -109,10 +109,10 @@ static int snd_audigy_spdif_output_rate_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_audigy_spdif_output_rate_put(snd_kcontrol_t * kcontrol, static int snd_audigy_spdif_output_rate_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
int change; int change;
unsigned int reg, val, tmp; unsigned int reg, val, tmp;
unsigned long flags; unsigned long flags;
...@@ -143,7 +143,7 @@ static int snd_audigy_spdif_output_rate_put(snd_kcontrol_t * kcontrol, ...@@ -143,7 +143,7 @@ static int snd_audigy_spdif_output_rate_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_audigy_spdif_output_rate = static struct snd_kcontrol_new snd_audigy_spdif_output_rate =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
...@@ -155,10 +155,10 @@ static snd_kcontrol_new_t snd_audigy_spdif_output_rate = ...@@ -155,10 +155,10 @@ static snd_kcontrol_new_t snd_audigy_spdif_output_rate =
}; };
#endif #endif
static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol, static int snd_emu10k1_spdif_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); unsigned int idx = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
int change; int change;
unsigned int val; unsigned int val;
...@@ -178,7 +178,7 @@ static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol, ...@@ -178,7 +178,7 @@ static int snd_emu10k1_spdif_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control = static struct snd_kcontrol_new snd_emu10k1_spdif_mask_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READ, .access = SNDRV_CTL_ELEM_ACCESS_READ,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -188,7 +188,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control = ...@@ -188,7 +188,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_mask_control =
.get = snd_emu10k1_spdif_get_mask .get = snd_emu10k1_spdif_get_mask
}; };
static snd_kcontrol_new_t snd_emu10k1_spdif_control = static struct snd_kcontrol_new snd_emu10k1_spdif_control =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT), .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,DEFAULT),
...@@ -199,7 +199,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_control = ...@@ -199,7 +199,7 @@ static snd_kcontrol_new_t snd_emu10k1_spdif_control =
}; };
static void update_emu10k1_fxrt(emu10k1_t *emu, int voice, unsigned char *route) static void update_emu10k1_fxrt(struct snd_emu10k1 *emu, int voice, unsigned char *route)
{ {
if (emu->audigy) { if (emu->audigy) {
snd_emu10k1_ptr_write(emu, A_FXRT1, voice, snd_emu10k1_ptr_write(emu, A_FXRT1, voice,
...@@ -212,7 +212,7 @@ static void update_emu10k1_fxrt(emu10k1_t *emu, int voice, unsigned char *route) ...@@ -212,7 +212,7 @@ static void update_emu10k1_fxrt(emu10k1_t *emu, int voice, unsigned char *route)
} }
} }
static void update_emu10k1_send_volume(emu10k1_t *emu, int voice, unsigned char *volume) static void update_emu10k1_send_volume(struct snd_emu10k1 *emu, int voice, unsigned char *volume)
{ {
snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_A, voice, volume[0]); snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_A, voice, volume[0]);
snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_B, voice, volume[1]); snd_emu10k1_ptr_write(emu, PTRX_FXSENDAMOUNT_B, voice, volume[1]);
...@@ -229,9 +229,9 @@ static void update_emu10k1_send_volume(emu10k1_t *emu, int voice, unsigned char ...@@ -229,9 +229,9 @@ static void update_emu10k1_send_volume(emu10k1_t *emu, int voice, unsigned char
/* PCM stream controls */ /* PCM stream controls */
static int snd_emu10k1_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_send_routing_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = emu->audigy ? 3*8 : 3*4; uinfo->count = emu->audigy ? 3*8 : 3*4;
uinfo->value.integer.min = 0; uinfo->value.integer.min = 0;
...@@ -239,12 +239,13 @@ static int snd_emu10k1_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ ...@@ -239,12 +239,13 @@ static int snd_emu10k1_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_
return 0; return 0;
} }
static int snd_emu10k1_send_routing_get(snd_kcontrol_t * kcontrol, static int snd_emu10k1_send_routing_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
int voice, idx; int voice, idx;
int num_efx = emu->audigy ? 8 : 4; int num_efx = emu->audigy ? 8 : 4;
int mask = emu->audigy ? 0x3f : 0x0f; int mask = emu->audigy ? 0x3f : 0x0f;
...@@ -258,12 +259,13 @@ static int snd_emu10k1_send_routing_get(snd_kcontrol_t * kcontrol, ...@@ -258,12 +259,13 @@ static int snd_emu10k1_send_routing_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_emu10k1_send_routing_put(snd_kcontrol_t * kcontrol, static int snd_emu10k1_send_routing_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
int change = 0, voice, idx, val; int change = 0, voice, idx, val;
int num_efx = emu->audigy ? 8 : 4; int num_efx = emu->audigy ? 8 : 4;
int mask = emu->audigy ? 0x3f : 0x0f; int mask = emu->audigy ? 0x3f : 0x0f;
...@@ -292,7 +294,7 @@ static int snd_emu10k1_send_routing_put(snd_kcontrol_t * kcontrol, ...@@ -292,7 +294,7 @@ static int snd_emu10k1_send_routing_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_emu10k1_send_routing_control = static struct snd_kcontrol_new snd_emu10k1_send_routing_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -303,9 +305,9 @@ static snd_kcontrol_new_t snd_emu10k1_send_routing_control = ...@@ -303,9 +305,9 @@ static snd_kcontrol_new_t snd_emu10k1_send_routing_control =
.put = snd_emu10k1_send_routing_put .put = snd_emu10k1_send_routing_put
}; };
static int snd_emu10k1_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_send_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = emu->audigy ? 3*8 : 3*4; uinfo->count = emu->audigy ? 3*8 : 3*4;
uinfo->value.integer.min = 0; uinfo->value.integer.min = 0;
...@@ -313,12 +315,13 @@ static int snd_emu10k1_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i ...@@ -313,12 +315,13 @@ static int snd_emu10k1_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i
return 0; return 0;
} }
static int snd_emu10k1_send_volume_get(snd_kcontrol_t * kcontrol, static int snd_emu10k1_send_volume_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
int idx; int idx;
int num_efx = emu->audigy ? 8 : 4; int num_efx = emu->audigy ? 8 : 4;
...@@ -329,12 +332,13 @@ static int snd_emu10k1_send_volume_get(snd_kcontrol_t * kcontrol, ...@@ -329,12 +332,13 @@ static int snd_emu10k1_send_volume_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_emu10k1_send_volume_put(snd_kcontrol_t * kcontrol, static int snd_emu10k1_send_volume_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
int change = 0, idx, val; int change = 0, idx, val;
int num_efx = emu->audigy ? 8 : 4; int num_efx = emu->audigy ? 8 : 4;
...@@ -361,7 +365,7 @@ static int snd_emu10k1_send_volume_put(snd_kcontrol_t * kcontrol, ...@@ -361,7 +365,7 @@ static int snd_emu10k1_send_volume_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_emu10k1_send_volume_control = static struct snd_kcontrol_new snd_emu10k1_send_volume_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -372,7 +376,7 @@ static snd_kcontrol_new_t snd_emu10k1_send_volume_control = ...@@ -372,7 +376,7 @@ static snd_kcontrol_new_t snd_emu10k1_send_volume_control =
.put = snd_emu10k1_send_volume_put .put = snd_emu10k1_send_volume_put
}; };
static int snd_emu10k1_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_attn_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 3; uinfo->count = 3;
...@@ -381,11 +385,12 @@ static int snd_emu10k1_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * ...@@ -381,11 +385,12 @@ static int snd_emu10k1_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *
return 0; return 0;
} }
static int snd_emu10k1_attn_get(snd_kcontrol_t * kcontrol, static int snd_emu10k1_attn_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
unsigned long flags; unsigned long flags;
int idx; int idx;
...@@ -396,12 +401,13 @@ static int snd_emu10k1_attn_get(snd_kcontrol_t * kcontrol, ...@@ -396,12 +401,13 @@ static int snd_emu10k1_attn_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_emu10k1_attn_put(snd_kcontrol_t * kcontrol, static int snd_emu10k1_attn_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
int change = 0, idx, val; int change = 0, idx, val;
spin_lock_irqsave(&emu->reg_lock, flags); spin_lock_irqsave(&emu->reg_lock, flags);
...@@ -424,7 +430,7 @@ static int snd_emu10k1_attn_put(snd_kcontrol_t * kcontrol, ...@@ -424,7 +430,7 @@ static int snd_emu10k1_attn_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_emu10k1_attn_control = static struct snd_kcontrol_new snd_emu10k1_attn_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -437,9 +443,9 @@ static snd_kcontrol_new_t snd_emu10k1_attn_control = ...@@ -437,9 +443,9 @@ static snd_kcontrol_new_t snd_emu10k1_attn_control =
/* Mutichannel PCM stream controls */ /* Mutichannel PCM stream controls */
static int snd_emu10k1_efx_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_efx_send_routing_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = emu->audigy ? 8 : 4; uinfo->count = emu->audigy ? 8 : 4;
uinfo->value.integer.min = 0; uinfo->value.integer.min = 0;
...@@ -447,12 +453,13 @@ static int snd_emu10k1_efx_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_e ...@@ -447,12 +453,13 @@ static int snd_emu10k1_efx_send_routing_info(snd_kcontrol_t *kcontrol, snd_ctl_e
return 0; return 0;
} }
static int snd_emu10k1_efx_send_routing_get(snd_kcontrol_t * kcontrol, static int snd_emu10k1_efx_send_routing_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
int idx; int idx;
int num_efx = emu->audigy ? 8 : 4; int num_efx = emu->audigy ? 8 : 4;
int mask = emu->audigy ? 0x3f : 0x0f; int mask = emu->audigy ? 0x3f : 0x0f;
...@@ -465,13 +472,13 @@ static int snd_emu10k1_efx_send_routing_get(snd_kcontrol_t * kcontrol, ...@@ -465,13 +472,13 @@ static int snd_emu10k1_efx_send_routing_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_emu10k1_efx_send_routing_put(snd_kcontrol_t * kcontrol, static int snd_emu10k1_efx_send_routing_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch];
int change = 0, idx, val; int change = 0, idx, val;
int num_efx = emu->audigy ? 8 : 4; int num_efx = emu->audigy ? 8 : 4;
int mask = emu->audigy ? 0x3f : 0x0f; int mask = emu->audigy ? 0x3f : 0x0f;
...@@ -495,7 +502,7 @@ static int snd_emu10k1_efx_send_routing_put(snd_kcontrol_t * kcontrol, ...@@ -495,7 +502,7 @@ static int snd_emu10k1_efx_send_routing_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_emu10k1_efx_send_routing_control = static struct snd_kcontrol_new snd_emu10k1_efx_send_routing_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -506,9 +513,9 @@ static snd_kcontrol_new_t snd_emu10k1_efx_send_routing_control = ...@@ -506,9 +513,9 @@ static snd_kcontrol_new_t snd_emu10k1_efx_send_routing_control =
.put = snd_emu10k1_efx_send_routing_put .put = snd_emu10k1_efx_send_routing_put
}; };
static int snd_emu10k1_efx_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_efx_send_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = emu->audigy ? 8 : 4; uinfo->count = emu->audigy ? 8 : 4;
uinfo->value.integer.min = 0; uinfo->value.integer.min = 0;
...@@ -516,12 +523,13 @@ static int snd_emu10k1_efx_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_el ...@@ -516,12 +523,13 @@ static int snd_emu10k1_efx_send_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_el
return 0; return 0;
} }
static int snd_emu10k1_efx_send_volume_get(snd_kcontrol_t * kcontrol, static int snd_emu10k1_efx_send_volume_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
int idx; int idx;
int num_efx = emu->audigy ? 8 : 4; int num_efx = emu->audigy ? 8 : 4;
...@@ -532,13 +540,13 @@ static int snd_emu10k1_efx_send_volume_get(snd_kcontrol_t * kcontrol, ...@@ -532,13 +540,13 @@ static int snd_emu10k1_efx_send_volume_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_emu10k1_efx_send_volume_put(snd_kcontrol_t * kcontrol, static int snd_emu10k1_efx_send_volume_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch];
int change = 0, idx, val; int change = 0, idx, val;
int num_efx = emu->audigy ? 8 : 4; int num_efx = emu->audigy ? 8 : 4;
...@@ -561,7 +569,7 @@ static int snd_emu10k1_efx_send_volume_put(snd_kcontrol_t * kcontrol, ...@@ -561,7 +569,7 @@ static int snd_emu10k1_efx_send_volume_put(snd_kcontrol_t * kcontrol,
} }
static snd_kcontrol_new_t snd_emu10k1_efx_send_volume_control = static struct snd_kcontrol_new snd_emu10k1_efx_send_volume_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -572,7 +580,7 @@ static snd_kcontrol_new_t snd_emu10k1_efx_send_volume_control = ...@@ -572,7 +580,7 @@ static snd_kcontrol_new_t snd_emu10k1_efx_send_volume_control =
.put = snd_emu10k1_efx_send_volume_put .put = snd_emu10k1_efx_send_volume_put
}; };
static int snd_emu10k1_efx_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_efx_attn_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 1; uinfo->count = 1;
...@@ -581,11 +589,12 @@ static int snd_emu10k1_efx_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info ...@@ -581,11 +589,12 @@ static int snd_emu10k1_efx_attn_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info
return 0; return 0;
} }
static int snd_emu10k1_efx_attn_get(snd_kcontrol_t * kcontrol, static int snd_emu10k1_efx_attn_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)]; struct snd_emu10k1_pcm_mixer *mix =
&emu->efx_pcm_mixer[snd_ctl_get_ioffidx(kcontrol, &ucontrol->id)];
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&emu->reg_lock, flags); spin_lock_irqsave(&emu->reg_lock, flags);
...@@ -594,13 +603,13 @@ static int snd_emu10k1_efx_attn_get(snd_kcontrol_t * kcontrol, ...@@ -594,13 +603,13 @@ static int snd_emu10k1_efx_attn_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_emu10k1_efx_attn_put(snd_kcontrol_t * kcontrol, static int snd_emu10k1_efx_attn_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id); int ch = snd_ctl_get_ioffidx(kcontrol, &ucontrol->id);
emu10k1_pcm_mixer_t *mix = &emu->efx_pcm_mixer[ch]; struct snd_emu10k1_pcm_mixer *mix = &emu->efx_pcm_mixer[ch];
int change = 0, val; int change = 0, val;
spin_lock_irqsave(&emu->reg_lock, flags); spin_lock_irqsave(&emu->reg_lock, flags);
...@@ -618,7 +627,7 @@ static int snd_emu10k1_efx_attn_put(snd_kcontrol_t * kcontrol, ...@@ -618,7 +627,7 @@ static int snd_emu10k1_efx_attn_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_emu10k1_efx_attn_control = static struct snd_kcontrol_new snd_emu10k1_efx_attn_control =
{ {
.access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE,
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
...@@ -629,7 +638,7 @@ static snd_kcontrol_new_t snd_emu10k1_efx_attn_control = ...@@ -629,7 +638,7 @@ static snd_kcontrol_new_t snd_emu10k1_efx_attn_control =
.put = snd_emu10k1_efx_attn_put .put = snd_emu10k1_efx_attn_put
}; };
static int snd_emu10k1_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_shared_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = 1; uinfo->count = 1;
...@@ -638,10 +647,10 @@ static int snd_emu10k1_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ ...@@ -638,10 +647,10 @@ static int snd_emu10k1_shared_spdif_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_
return 0; return 0;
} }
static int snd_emu10k1_shared_spdif_get(snd_kcontrol_t * kcontrol, static int snd_emu10k1_shared_spdif_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
if (emu->audigy) if (emu->audigy)
ucontrol->value.integer.value[0] = inl(emu->port + A_IOCFG) & A_IOCFG_GPOUT0 ? 1 : 0; ucontrol->value.integer.value[0] = inl(emu->port + A_IOCFG) & A_IOCFG_GPOUT0 ? 1 : 0;
...@@ -650,11 +659,11 @@ static int snd_emu10k1_shared_spdif_get(snd_kcontrol_t * kcontrol, ...@@ -650,11 +659,11 @@ static int snd_emu10k1_shared_spdif_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_emu10k1_shared_spdif_put(snd_kcontrol_t * kcontrol, static int snd_emu10k1_shared_spdif_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
unsigned long flags; unsigned long flags;
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
unsigned int reg, val; unsigned int reg, val;
int change = 0; int change = 0;
...@@ -681,7 +690,7 @@ static int snd_emu10k1_shared_spdif_put(snd_kcontrol_t * kcontrol, ...@@ -681,7 +690,7 @@ static int snd_emu10k1_shared_spdif_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_emu10k1_shared_spdif __devinitdata = static struct snd_kcontrol_new snd_emu10k1_shared_spdif __devinitdata =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "SB Live Analog/Digital Output Jack", .name = "SB Live Analog/Digital Output Jack",
...@@ -690,7 +699,7 @@ static snd_kcontrol_new_t snd_emu10k1_shared_spdif __devinitdata = ...@@ -690,7 +699,7 @@ static snd_kcontrol_new_t snd_emu10k1_shared_spdif __devinitdata =
.put = snd_emu10k1_shared_spdif_put .put = snd_emu10k1_shared_spdif_put
}; };
static snd_kcontrol_new_t snd_audigy_shared_spdif __devinitdata = static struct snd_kcontrol_new snd_audigy_shared_spdif __devinitdata =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "Audigy Analog/Digital Output Jack", .name = "Audigy Analog/Digital Output Jack",
...@@ -701,35 +710,35 @@ static snd_kcontrol_new_t snd_audigy_shared_spdif __devinitdata = ...@@ -701,35 +710,35 @@ static snd_kcontrol_new_t snd_audigy_shared_spdif __devinitdata =
/* /*
*/ */
static void snd_emu10k1_mixer_free_ac97(ac97_t *ac97) static void snd_emu10k1_mixer_free_ac97(struct snd_ac97 *ac97)
{ {
emu10k1_t *emu = ac97->private_data; struct snd_emu10k1 *emu = ac97->private_data;
emu->ac97 = NULL; emu->ac97 = NULL;
} }
/* /*
*/ */
static int remove_ctl(snd_card_t *card, const char *name) static int remove_ctl(struct snd_card *card, const char *name)
{ {
snd_ctl_elem_id_t id; struct snd_ctl_elem_id id;
memset(&id, 0, sizeof(id)); memset(&id, 0, sizeof(id));
strcpy(id.name, name); strcpy(id.name, name);
id.iface = SNDRV_CTL_ELEM_IFACE_MIXER; id.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
return snd_ctl_remove_id(card, &id); return snd_ctl_remove_id(card, &id);
} }
static snd_kcontrol_t *ctl_find(snd_card_t *card, const char *name) static struct snd_kcontrol *ctl_find(struct snd_card *card, const char *name)
{ {
snd_ctl_elem_id_t sid; struct snd_ctl_elem_id sid;
memset(&sid, 0, sizeof(sid)); memset(&sid, 0, sizeof(sid));
strcpy(sid.name, name); strcpy(sid.name, name);
sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER; sid.iface = SNDRV_CTL_ELEM_IFACE_MIXER;
return snd_ctl_find_id(card, &sid); return snd_ctl_find_id(card, &sid);
} }
static int rename_ctl(snd_card_t *card, const char *src, const char *dst) static int rename_ctl(struct snd_card *card, const char *src, const char *dst)
{ {
snd_kcontrol_t *kctl = ctl_find(card, src); struct snd_kcontrol *kctl = ctl_find(card, src);
if (kctl) { if (kctl) {
strcpy(kctl->id.name, dst); strcpy(kctl->id.name, dst);
return 0; return 0;
...@@ -737,12 +746,12 @@ static int rename_ctl(snd_card_t *card, const char *src, const char *dst) ...@@ -737,12 +746,12 @@ static int rename_ctl(snd_card_t *card, const char *src, const char *dst)
return -ENOENT; return -ENOENT;
} }
int __devinit snd_emu10k1_mixer(emu10k1_t *emu, int __devinit snd_emu10k1_mixer(struct snd_emu10k1 *emu,
int pcm_device, int multi_device) int pcm_device, int multi_device)
{ {
int err, pcm; int err, pcm;
snd_kcontrol_t *kctl; struct snd_kcontrol *kctl;
snd_card_t *card = emu->card; struct snd_card *card = emu->card;
char **c; char **c;
static char *emu10k1_remove_ctls[] = { static char *emu10k1_remove_ctls[] = {
/* no AC97 mono, surround, center/lfe */ /* no AC97 mono, surround, center/lfe */
...@@ -795,9 +804,9 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, ...@@ -795,9 +804,9 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
}; };
if (emu->card_capabilities->ac97_chip) { if (emu->card_capabilities->ac97_chip) {
ac97_bus_t *pbus; struct snd_ac97_bus *pbus;
ac97_template_t ac97; struct snd_ac97_template ac97;
static ac97_bus_ops_t ops = { static struct snd_ac97_bus_ops ops = {
.write = snd_emu10k1_ac97_write, .write = snd_emu10k1_ac97_write,
.read = snd_emu10k1_ac97_read, .read = snd_emu10k1_ac97_read,
}; };
...@@ -894,7 +903,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, ...@@ -894,7 +903,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
/* initialize the routing and volume table for each pcm playback stream */ /* initialize the routing and volume table for each pcm playback stream */
for (pcm = 0; pcm < 32; pcm++) { for (pcm = 0; pcm < 32; pcm++) {
emu10k1_pcm_mixer_t *mix; struct snd_emu10k1_pcm_mixer *mix;
int v; int v;
mix = &emu->pcm_mixer[pcm]; mix = &emu->pcm_mixer[pcm];
...@@ -914,7 +923,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu, ...@@ -914,7 +923,7 @@ int __devinit snd_emu10k1_mixer(emu10k1_t *emu,
/* initialize the routing and volume table for the multichannel playback stream */ /* initialize the routing and volume table for the multichannel playback stream */
for (pcm = 0; pcm < NUM_EFX_PLAYBACK; pcm++) { for (pcm = 0; pcm < NUM_EFX_PLAYBACK; pcm++) {
emu10k1_pcm_mixer_t *mix; struct snd_emu10k1_pcm_mixer *mix;
int v; int v;
mix = &emu->efx_pcm_mixer[pcm]; mix = &emu->efx_pcm_mixer[pcm];
......
...@@ -28,7 +28,8 @@ ...@@ -28,7 +28,8 @@
#define EMU10K1_MIDI_MODE_INPUT (1<<0) #define EMU10K1_MIDI_MODE_INPUT (1<<0)
#define EMU10K1_MIDI_MODE_OUTPUT (1<<1) #define EMU10K1_MIDI_MODE_OUTPUT (1<<1)
static inline unsigned char mpu401_read(emu10k1_t *emu, emu10k1_midi_t *mpu, int idx) static inline unsigned char mpu401_read(struct snd_emu10k1 *emu,
struct snd_emu10k1_midi *mpu, int idx)
{ {
if (emu->audigy) if (emu->audigy)
return (unsigned char)snd_emu10k1_ptr_read(emu, mpu->port + idx, 0); return (unsigned char)snd_emu10k1_ptr_read(emu, mpu->port + idx, 0);
...@@ -36,7 +37,8 @@ static inline unsigned char mpu401_read(emu10k1_t *emu, emu10k1_midi_t *mpu, int ...@@ -36,7 +37,8 @@ static inline unsigned char mpu401_read(emu10k1_t *emu, emu10k1_midi_t *mpu, int
return inb(emu->port + mpu->port + idx); return inb(emu->port + mpu->port + idx);
} }
static inline void mpu401_write(emu10k1_t *emu, emu10k1_midi_t *mpu, int data, int idx) static inline void mpu401_write(struct snd_emu10k1 *emu,
struct snd_emu10k1_midi *mpu, int data, int idx)
{ {
if (emu->audigy) if (emu->audigy)
snd_emu10k1_ptr_write(emu, mpu->port + idx, 0, data); snd_emu10k1_ptr_write(emu, mpu->port + idx, 0, data);
...@@ -56,7 +58,7 @@ static inline void mpu401_write(emu10k1_t *emu, emu10k1_midi_t *mpu, int data, i ...@@ -56,7 +58,7 @@ static inline void mpu401_write(emu10k1_t *emu, emu10k1_midi_t *mpu, int data, i
#define MPU401_ENTER_UART 0x3f #define MPU401_ENTER_UART 0x3f
#define MPU401_ACK 0xfe #define MPU401_ACK 0xfe
static void mpu401_clear_rx(emu10k1_t *emu, emu10k1_midi_t *mpu) static void mpu401_clear_rx(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *mpu)
{ {
int timeout = 100000; int timeout = 100000;
for (; timeout > 0 && mpu401_input_avail(emu, mpu); timeout--) for (; timeout > 0 && mpu401_input_avail(emu, mpu); timeout--)
...@@ -71,7 +73,7 @@ static void mpu401_clear_rx(emu10k1_t *emu, emu10k1_midi_t *mpu) ...@@ -71,7 +73,7 @@ static void mpu401_clear_rx(emu10k1_t *emu, emu10k1_midi_t *mpu)
*/ */
static void do_emu10k1_midi_interrupt(emu10k1_t *emu, emu10k1_midi_t *midi, unsigned int status) static void do_emu10k1_midi_interrupt(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *midi, unsigned int status)
{ {
unsigned char byte; unsigned char byte;
...@@ -104,17 +106,17 @@ static void do_emu10k1_midi_interrupt(emu10k1_t *emu, emu10k1_midi_t *midi, unsi ...@@ -104,17 +106,17 @@ static void do_emu10k1_midi_interrupt(emu10k1_t *emu, emu10k1_midi_t *midi, unsi
spin_unlock(&midi->output_lock); spin_unlock(&midi->output_lock);
} }
static void snd_emu10k1_midi_interrupt(emu10k1_t *emu, unsigned int status) static void snd_emu10k1_midi_interrupt(struct snd_emu10k1 *emu, unsigned int status)
{ {
do_emu10k1_midi_interrupt(emu, &emu->midi, status); do_emu10k1_midi_interrupt(emu, &emu->midi, status);
} }
static void snd_emu10k1_midi_interrupt2(emu10k1_t *emu, unsigned int status) static void snd_emu10k1_midi_interrupt2(struct snd_emu10k1 *emu, unsigned int status)
{ {
do_emu10k1_midi_interrupt(emu, &emu->midi2, status); do_emu10k1_midi_interrupt(emu, &emu->midi2, status);
} }
static void snd_emu10k1_midi_cmd(emu10k1_t * emu, emu10k1_midi_t *midi, unsigned char cmd, int ack) static void snd_emu10k1_midi_cmd(struct snd_emu10k1 * emu, struct snd_emu10k1_midi *midi, unsigned char cmd, int ack)
{ {
unsigned long flags; unsigned long flags;
int timeout, ok; int timeout, ok;
...@@ -146,10 +148,10 @@ static void snd_emu10k1_midi_cmd(emu10k1_t * emu, emu10k1_midi_t *midi, unsigned ...@@ -146,10 +148,10 @@ static void snd_emu10k1_midi_cmd(emu10k1_t * emu, emu10k1_midi_t *midi, unsigned
mpu401_read_data(emu, midi)); mpu401_read_data(emu, midi));
} }
static int snd_emu10k1_midi_input_open(snd_rawmidi_substream_t * substream) static int snd_emu10k1_midi_input_open(struct snd_rawmidi_substream *substream)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data;
unsigned long flags; unsigned long flags;
emu = midi->emu; emu = midi->emu;
...@@ -167,10 +169,10 @@ static int snd_emu10k1_midi_input_open(snd_rawmidi_substream_t * substream) ...@@ -167,10 +169,10 @@ static int snd_emu10k1_midi_input_open(snd_rawmidi_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_midi_output_open(snd_rawmidi_substream_t * substream) static int snd_emu10k1_midi_output_open(struct snd_rawmidi_substream *substream)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data;
unsigned long flags; unsigned long flags;
emu = midi->emu; emu = midi->emu;
...@@ -188,10 +190,10 @@ static int snd_emu10k1_midi_output_open(snd_rawmidi_substream_t * substream) ...@@ -188,10 +190,10 @@ static int snd_emu10k1_midi_output_open(snd_rawmidi_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_midi_input_close(snd_rawmidi_substream_t * substream) static int snd_emu10k1_midi_input_close(struct snd_rawmidi_substream *substream)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data;
unsigned long flags; unsigned long flags;
emu = midi->emu; emu = midi->emu;
...@@ -209,10 +211,10 @@ static int snd_emu10k1_midi_input_close(snd_rawmidi_substream_t * substream) ...@@ -209,10 +211,10 @@ static int snd_emu10k1_midi_input_close(snd_rawmidi_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_midi_output_close(snd_rawmidi_substream_t * substream) static int snd_emu10k1_midi_output_close(struct snd_rawmidi_substream *substream)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data;
unsigned long flags; unsigned long flags;
emu = midi->emu; emu = midi->emu;
...@@ -230,10 +232,10 @@ static int snd_emu10k1_midi_output_close(snd_rawmidi_substream_t * substream) ...@@ -230,10 +232,10 @@ static int snd_emu10k1_midi_output_close(snd_rawmidi_substream_t * substream)
return 0; return 0;
} }
static void snd_emu10k1_midi_input_trigger(snd_rawmidi_substream_t * substream, int up) static void snd_emu10k1_midi_input_trigger(struct snd_rawmidi_substream *substream, int up)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data;
emu = midi->emu; emu = midi->emu;
snd_assert(emu, return); snd_assert(emu, return);
...@@ -243,10 +245,10 @@ static void snd_emu10k1_midi_input_trigger(snd_rawmidi_substream_t * substream, ...@@ -243,10 +245,10 @@ static void snd_emu10k1_midi_input_trigger(snd_rawmidi_substream_t * substream,
snd_emu10k1_intr_disable(emu, midi->rx_enable); snd_emu10k1_intr_disable(emu, midi->rx_enable);
} }
static void snd_emu10k1_midi_output_trigger(snd_rawmidi_substream_t * substream, int up) static void snd_emu10k1_midi_output_trigger(struct snd_rawmidi_substream *substream, int up)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
emu10k1_midi_t *midi = (emu10k1_midi_t *)substream->rmidi->private_data; struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data;
unsigned long flags; unsigned long flags;
emu = midi->emu; emu = midi->emu;
...@@ -283,30 +285,30 @@ static void snd_emu10k1_midi_output_trigger(snd_rawmidi_substream_t * substream, ...@@ -283,30 +285,30 @@ static void snd_emu10k1_midi_output_trigger(snd_rawmidi_substream_t * substream,
*/ */
static snd_rawmidi_ops_t snd_emu10k1_midi_output = static struct snd_rawmidi_ops snd_emu10k1_midi_output =
{ {
.open = snd_emu10k1_midi_output_open, .open = snd_emu10k1_midi_output_open,
.close = snd_emu10k1_midi_output_close, .close = snd_emu10k1_midi_output_close,
.trigger = snd_emu10k1_midi_output_trigger, .trigger = snd_emu10k1_midi_output_trigger,
}; };
static snd_rawmidi_ops_t snd_emu10k1_midi_input = static struct snd_rawmidi_ops snd_emu10k1_midi_input =
{ {
.open = snd_emu10k1_midi_input_open, .open = snd_emu10k1_midi_input_open,
.close = snd_emu10k1_midi_input_close, .close = snd_emu10k1_midi_input_close,
.trigger = snd_emu10k1_midi_input_trigger, .trigger = snd_emu10k1_midi_input_trigger,
}; };
static void snd_emu10k1_midi_free(snd_rawmidi_t *rmidi) static void snd_emu10k1_midi_free(struct snd_rawmidi *rmidi)
{ {
emu10k1_midi_t *midi = (emu10k1_midi_t *)rmidi->private_data; struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)rmidi->private_data;
midi->interrupt = NULL; midi->interrupt = NULL;
midi->rmidi = NULL; midi->rmidi = NULL;
} }
static int __devinit emu10k1_midi_init(emu10k1_t *emu, emu10k1_midi_t *midi, int device, char *name) static int __devinit emu10k1_midi_init(struct snd_emu10k1 *emu, struct snd_emu10k1_midi *midi, int device, char *name)
{ {
snd_rawmidi_t *rmidi; struct snd_rawmidi *rmidi;
int err; int err;
if ((err = snd_rawmidi_new(emu->card, name, device, 1, 1, &rmidi)) < 0) if ((err = snd_rawmidi_new(emu->card, name, device, 1, 1, &rmidi)) < 0)
...@@ -327,9 +329,9 @@ static int __devinit emu10k1_midi_init(emu10k1_t *emu, emu10k1_midi_t *midi, int ...@@ -327,9 +329,9 @@ static int __devinit emu10k1_midi_init(emu10k1_t *emu, emu10k1_midi_t *midi, int
return 0; return 0;
} }
int __devinit snd_emu10k1_midi(emu10k1_t *emu) int __devinit snd_emu10k1_midi(struct snd_emu10k1 *emu)
{ {
emu10k1_midi_t *midi = &emu->midi; struct snd_emu10k1_midi *midi = &emu->midi;
int err; int err;
if ((err = emu10k1_midi_init(emu, midi, 0, "EMU10K1 MPU-401 (UART)")) < 0) if ((err = emu10k1_midi_init(emu, midi, 0, "EMU10K1 MPU-401 (UART)")) < 0)
...@@ -344,9 +346,9 @@ int __devinit snd_emu10k1_midi(emu10k1_t *emu) ...@@ -344,9 +346,9 @@ int __devinit snd_emu10k1_midi(emu10k1_t *emu)
return 0; return 0;
} }
int __devinit snd_emu10k1_audigy_midi(emu10k1_t *emu) int __devinit snd_emu10k1_audigy_midi(struct snd_emu10k1 *emu)
{ {
emu10k1_midi_t *midi; struct snd_emu10k1_midi *midi;
int err; int err;
midi = &emu->midi; midi = &emu->midi;
......
...@@ -35,9 +35,10 @@ ...@@ -35,9 +35,10 @@
#include <sound/core.h> #include <sound/core.h>
#include <sound/emu10k1.h> #include <sound/emu10k1.h>
static void snd_emu10k1_pcm_interrupt(emu10k1_t *emu, emu10k1_voice_t *voice) static void snd_emu10k1_pcm_interrupt(struct snd_emu10k1 *emu,
struct snd_emu10k1_voice *voice)
{ {
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
if ((epcm = voice->epcm) == NULL) if ((epcm = voice->epcm) == NULL)
return; return;
...@@ -52,7 +53,8 @@ static void snd_emu10k1_pcm_interrupt(emu10k1_t *emu, emu10k1_voice_t *voice) ...@@ -52,7 +53,8 @@ static void snd_emu10k1_pcm_interrupt(emu10k1_t *emu, emu10k1_voice_t *voice)
snd_pcm_period_elapsed(epcm->substream); snd_pcm_period_elapsed(epcm->substream);
} }
static void snd_emu10k1_pcm_ac97adc_interrupt(emu10k1_t *emu, unsigned int status) static void snd_emu10k1_pcm_ac97adc_interrupt(struct snd_emu10k1 *emu,
unsigned int status)
{ {
#if 0 #if 0
if (status & IPR_ADCBUFHALFFULL) { if (status & IPR_ADCBUFHALFFULL) {
...@@ -63,7 +65,8 @@ static void snd_emu10k1_pcm_ac97adc_interrupt(emu10k1_t *emu, unsigned int statu ...@@ -63,7 +65,8 @@ static void snd_emu10k1_pcm_ac97adc_interrupt(emu10k1_t *emu, unsigned int statu
snd_pcm_period_elapsed(emu->pcm_capture_substream); snd_pcm_period_elapsed(emu->pcm_capture_substream);
} }
static void snd_emu10k1_pcm_ac97mic_interrupt(emu10k1_t *emu, unsigned int status) static void snd_emu10k1_pcm_ac97mic_interrupt(struct snd_emu10k1 *emu,
unsigned int status)
{ {
#if 0 #if 0
if (status & IPR_MICBUFHALFFULL) { if (status & IPR_MICBUFHALFFULL) {
...@@ -74,7 +77,8 @@ static void snd_emu10k1_pcm_ac97mic_interrupt(emu10k1_t *emu, unsigned int statu ...@@ -74,7 +77,8 @@ static void snd_emu10k1_pcm_ac97mic_interrupt(emu10k1_t *emu, unsigned int statu
snd_pcm_period_elapsed(emu->pcm_capture_mic_substream); snd_pcm_period_elapsed(emu->pcm_capture_mic_substream);
} }
static void snd_emu10k1_pcm_efx_interrupt(emu10k1_t *emu, unsigned int status) static void snd_emu10k1_pcm_efx_interrupt(struct snd_emu10k1 *emu,
unsigned int status)
{ {
#if 0 #if 0
if (status & IPR_EFXBUFHALFFULL) { if (status & IPR_EFXBUFHALFFULL) {
...@@ -85,11 +89,11 @@ static void snd_emu10k1_pcm_efx_interrupt(emu10k1_t *emu, unsigned int status) ...@@ -85,11 +89,11 @@ static void snd_emu10k1_pcm_efx_interrupt(emu10k1_t *emu, unsigned int status)
snd_pcm_period_elapsed(emu->pcm_capture_efx_substream); snd_pcm_period_elapsed(emu->pcm_capture_efx_substream);
} }
static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(snd_pcm_substream_t * substream) static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
unsigned int ptr; unsigned int ptr;
if (!epcm->running) if (!epcm->running)
...@@ -102,7 +106,7 @@ static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(snd_pcm_substream_t * ...@@ -102,7 +106,7 @@ static snd_pcm_uframes_t snd_emu10k1_efx_playback_pointer(snd_pcm_substream_t *
return ptr; return ptr;
} }
static int snd_emu10k1_pcm_channel_alloc(emu10k1_pcm_t * epcm, int voices) static int snd_emu10k1_pcm_channel_alloc(struct snd_emu10k1_pcm * epcm, int voices)
{ {
int err, i; int err, i;
...@@ -167,7 +171,7 @@ static unsigned int capture_period_sizes[31] = { ...@@ -167,7 +171,7 @@ static unsigned int capture_period_sizes[31] = {
384*128,448*128,512*128 384*128,448*128,512*128
}; };
static snd_pcm_hw_constraint_list_t hw_constraints_capture_period_sizes = { static struct snd_pcm_hw_constraint_list hw_constraints_capture_period_sizes = {
.count = 31, .count = 31,
.list = capture_period_sizes, .list = capture_period_sizes,
.mask = 0 .mask = 0
...@@ -177,7 +181,7 @@ static unsigned int capture_rates[8] = { ...@@ -177,7 +181,7 @@ static unsigned int capture_rates[8] = {
8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000 8000, 11025, 16000, 22050, 24000, 32000, 44100, 48000
}; };
static snd_pcm_hw_constraint_list_t hw_constraints_capture_rates = { static struct snd_pcm_hw_constraint_list hw_constraints_capture_rates = {
.count = 8, .count = 8,
.list = capture_rates, .list = capture_rates,
.mask = 0 .mask = 0
...@@ -271,15 +275,15 @@ static inline int emu10k1_ccis(int stereo, int w_16) ...@@ -271,15 +275,15 @@ static inline int emu10k1_ccis(int stereo, int w_16)
} }
} }
static void snd_emu10k1_pcm_init_voice(emu10k1_t *emu, static void snd_emu10k1_pcm_init_voice(struct snd_emu10k1 *emu,
int master, int extra, int master, int extra,
emu10k1_voice_t *evoice, struct snd_emu10k1_voice *evoice,
unsigned int start_addr, unsigned int start_addr,
unsigned int end_addr, unsigned int end_addr,
emu10k1_pcm_mixer_t *mix) struct snd_emu10k1_pcm_mixer *mix)
{ {
snd_pcm_substream_t *substream = evoice->epcm->substream; struct snd_pcm_substream *substream = evoice->epcm->substream;
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
unsigned int silent_page, tmp; unsigned int silent_page, tmp;
int voice, stereo, w_16; int voice, stereo, w_16;
unsigned char attn, send_amount[8]; unsigned char attn, send_amount[8];
...@@ -392,12 +396,12 @@ static void snd_emu10k1_pcm_init_voice(emu10k1_t *emu, ...@@ -392,12 +396,12 @@ static void snd_emu10k1_pcm_init_voice(emu10k1_t *emu,
spin_unlock_irqrestore(&emu->reg_lock, flags); spin_unlock_irqrestore(&emu->reg_lock, flags);
} }
static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, static int snd_emu10k1_playback_hw_params(struct snd_pcm_substream *substream,
snd_pcm_hw_params_t * hw_params) struct snd_pcm_hw_params *hw_params)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
int err; int err;
if ((err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params))) < 0) if ((err = snd_emu10k1_pcm_channel_alloc(epcm, params_channels(hw_params))) < 0)
...@@ -412,7 +416,7 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, ...@@ -412,7 +416,7 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream,
epcm->start_addr = 0; epcm->start_addr = 0;
if (! epcm->memblk) if (! epcm->memblk)
return -ENOMEM; return -ENOMEM;
mapped = ((emu10k1_memblk_t *)epcm->memblk)->mapped_page; mapped = ((struct snd_emu10k1_memblk *)epcm->memblk)->mapped_page;
if (mapped < 0) if (mapped < 0)
return -ENOMEM; return -ENOMEM;
epcm->start_addr = mapped << PAGE_SHIFT; epcm->start_addr = mapped << PAGE_SHIFT;
...@@ -420,11 +424,11 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, ...@@ -420,11 +424,11 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream,
return 0; return 0;
} }
static int snd_emu10k1_playback_hw_free(snd_pcm_substream_t * substream) static int snd_emu10k1_playback_hw_free(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
if (runtime->private_data == NULL) if (runtime->private_data == NULL)
return 0; return 0;
...@@ -450,11 +454,11 @@ static int snd_emu10k1_playback_hw_free(snd_pcm_substream_t * substream) ...@@ -450,11 +454,11 @@ static int snd_emu10k1_playback_hw_free(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_efx_playback_hw_free(snd_pcm_substream_t * substream) static int snd_emu10k1_efx_playback_hw_free(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
int i; int i;
if (runtime->private_data == NULL) if (runtime->private_data == NULL)
...@@ -479,11 +483,11 @@ static int snd_emu10k1_efx_playback_hw_free(snd_pcm_substream_t * substream) ...@@ -479,11 +483,11 @@ static int snd_emu10k1_efx_playback_hw_free(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_playback_prepare(snd_pcm_substream_t * substream) static int snd_emu10k1_playback_prepare(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
unsigned int start_addr, end_addr; unsigned int start_addr, end_addr;
start_addr = epcm->start_addr; start_addr = epcm->start_addr;
...@@ -507,11 +511,11 @@ static int snd_emu10k1_playback_prepare(snd_pcm_substream_t * substream) ...@@ -507,11 +511,11 @@ static int snd_emu10k1_playback_prepare(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_efx_playback_prepare(snd_pcm_substream_t * substream) static int snd_emu10k1_efx_playback_prepare(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
unsigned int start_addr, end_addr; unsigned int start_addr, end_addr;
unsigned int channel_size; unsigned int channel_size;
int i; int i;
...@@ -543,7 +547,7 @@ static int snd_emu10k1_efx_playback_prepare(snd_pcm_substream_t * substream) ...@@ -543,7 +547,7 @@ static int snd_emu10k1_efx_playback_prepare(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static snd_pcm_hardware_t snd_emu10k1_efx_playback = static struct snd_pcm_hardware snd_emu10k1_efx_playback =
{ {
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_NONINTERLEAVED | .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_NONINTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -562,22 +566,22 @@ static snd_pcm_hardware_t snd_emu10k1_efx_playback = ...@@ -562,22 +566,22 @@ static snd_pcm_hardware_t snd_emu10k1_efx_playback =
.fifo_size = 0, .fifo_size = 0,
}; };
static int snd_emu10k1_capture_hw_params(snd_pcm_substream_t * substream, static int snd_emu10k1_capture_hw_params(struct snd_pcm_substream *substream,
snd_pcm_hw_params_t * hw_params) struct snd_pcm_hw_params *hw_params)
{ {
return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
} }
static int snd_emu10k1_capture_hw_free(snd_pcm_substream_t * substream) static int snd_emu10k1_capture_hw_free(struct snd_pcm_substream *substream)
{ {
return snd_pcm_lib_free_pages(substream); return snd_pcm_lib_free_pages(substream);
} }
static int snd_emu10k1_capture_prepare(snd_pcm_substream_t * substream) static int snd_emu10k1_capture_prepare(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
int idx; int idx;
/* zeroing the buffer size will stop capture */ /* zeroing the buffer size will stop capture */
...@@ -620,9 +624,9 @@ static int snd_emu10k1_capture_prepare(snd_pcm_substream_t * substream) ...@@ -620,9 +624,9 @@ static int snd_emu10k1_capture_prepare(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static void snd_emu10k1_playback_invalidate_cache(emu10k1_t *emu, int extra, emu10k1_voice_t *evoice) static void snd_emu10k1_playback_invalidate_cache(struct snd_emu10k1 *emu, int extra, struct snd_emu10k1_voice *evoice)
{ {
snd_pcm_runtime_t *runtime; struct snd_pcm_runtime *runtime;
unsigned int voice, stereo, i, ccis, cra = 64, cs, sample; unsigned int voice, stereo, i, ccis, cra = 64, cs, sample;
if (evoice == NULL) if (evoice == NULL)
...@@ -655,12 +659,12 @@ static void snd_emu10k1_playback_invalidate_cache(emu10k1_t *emu, int extra, emu ...@@ -655,12 +659,12 @@ static void snd_emu10k1_playback_invalidate_cache(emu10k1_t *emu, int extra, emu
} }
} }
static void snd_emu10k1_playback_prepare_voice(emu10k1_t *emu, emu10k1_voice_t *evoice, static void snd_emu10k1_playback_prepare_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice,
int master, int extra, int master, int extra,
emu10k1_pcm_mixer_t *mix) struct snd_emu10k1_pcm_mixer *mix)
{ {
snd_pcm_substream_t *substream; struct snd_pcm_substream *substream;
snd_pcm_runtime_t *runtime; struct snd_pcm_runtime *runtime;
unsigned int attn, vattn; unsigned int attn, vattn;
unsigned int voice, tmp; unsigned int voice, tmp;
...@@ -680,10 +684,10 @@ static void snd_emu10k1_playback_prepare_voice(emu10k1_t *emu, emu10k1_voice_t * ...@@ -680,10 +684,10 @@ static void snd_emu10k1_playback_prepare_voice(emu10k1_t *emu, emu10k1_voice_t *
snd_emu10k1_voice_clear_loop_stop(emu, voice); snd_emu10k1_voice_clear_loop_stop(emu, voice);
} }
static void snd_emu10k1_playback_trigger_voice(emu10k1_t *emu, emu10k1_voice_t *evoice, int master, int extra) static void snd_emu10k1_playback_trigger_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice, int master, int extra)
{ {
snd_pcm_substream_t *substream; struct snd_pcm_substream *substream;
snd_pcm_runtime_t *runtime; struct snd_pcm_runtime *runtime;
unsigned int voice, pitch, pitch_target; unsigned int voice, pitch, pitch_target;
if (evoice == NULL) /* skip second voice for mono */ if (evoice == NULL) /* skip second voice for mono */
...@@ -702,7 +706,7 @@ static void snd_emu10k1_playback_trigger_voice(emu10k1_t *emu, emu10k1_voice_t * ...@@ -702,7 +706,7 @@ static void snd_emu10k1_playback_trigger_voice(emu10k1_t *emu, emu10k1_voice_t *
snd_emu10k1_voice_intr_enable(emu, voice); snd_emu10k1_voice_intr_enable(emu, voice);
} }
static void snd_emu10k1_playback_stop_voice(emu10k1_t *emu, emu10k1_voice_t *evoice) static void snd_emu10k1_playback_stop_voice(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *evoice)
{ {
unsigned int voice; unsigned int voice;
...@@ -718,13 +722,13 @@ static void snd_emu10k1_playback_stop_voice(emu10k1_t *emu, emu10k1_voice_t *evo ...@@ -718,13 +722,13 @@ static void snd_emu10k1_playback_stop_voice(emu10k1_t *emu, emu10k1_voice_t *evo
snd_emu10k1_ptr_write(emu, IP, voice, 0); snd_emu10k1_ptr_write(emu, IP, voice, 0);
} }
static int snd_emu10k1_playback_trigger(snd_pcm_substream_t * substream, static int snd_emu10k1_playback_trigger(struct snd_pcm_substream *substream,
int cmd) int cmd)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
emu10k1_pcm_mixer_t *mix; struct snd_emu10k1_pcm_mixer *mix;
int result = 0; int result = 0;
// printk("trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n", (int)emu, cmd, substream->ops->pointer(substream)); // printk("trigger - emu10k1 = 0x%x, cmd = %i, pointer = %i\n", (int)emu, cmd, substream->ops->pointer(substream));
...@@ -759,12 +763,12 @@ static int snd_emu10k1_playback_trigger(snd_pcm_substream_t * substream, ...@@ -759,12 +763,12 @@ static int snd_emu10k1_playback_trigger(snd_pcm_substream_t * substream,
return result; return result;
} }
static int snd_emu10k1_capture_trigger(snd_pcm_substream_t * substream, static int snd_emu10k1_capture_trigger(struct snd_pcm_substream *substream,
int cmd) int cmd)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
int result = 0; int result = 0;
spin_lock(&emu->reg_lock); spin_lock(&emu->reg_lock);
...@@ -819,11 +823,11 @@ static int snd_emu10k1_capture_trigger(snd_pcm_substream_t * substream, ...@@ -819,11 +823,11 @@ static int snd_emu10k1_capture_trigger(snd_pcm_substream_t * substream,
return result; return result;
} }
static snd_pcm_uframes_t snd_emu10k1_playback_pointer(snd_pcm_substream_t * substream) static snd_pcm_uframes_t snd_emu10k1_playback_pointer(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
unsigned int ptr; unsigned int ptr;
if (!epcm->running) if (!epcm->running)
...@@ -847,12 +851,12 @@ static snd_pcm_uframes_t snd_emu10k1_playback_pointer(snd_pcm_substream_t * subs ...@@ -847,12 +851,12 @@ static snd_pcm_uframes_t snd_emu10k1_playback_pointer(snd_pcm_substream_t * subs
} }
static int snd_emu10k1_efx_playback_trigger(snd_pcm_substream_t * substream, static int snd_emu10k1_efx_playback_trigger(struct snd_pcm_substream *substream,
int cmd) int cmd)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
int i; int i;
int result = 0; int result = 0;
...@@ -896,11 +900,11 @@ static int snd_emu10k1_efx_playback_trigger(snd_pcm_substream_t * substream, ...@@ -896,11 +900,11 @@ static int snd_emu10k1_efx_playback_trigger(snd_pcm_substream_t * substream,
} }
static snd_pcm_uframes_t snd_emu10k1_capture_pointer(snd_pcm_substream_t * substream) static snd_pcm_uframes_t snd_emu10k1_capture_pointer(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
unsigned int ptr; unsigned int ptr;
if (!epcm->running) if (!epcm->running)
...@@ -917,7 +921,7 @@ static snd_pcm_uframes_t snd_emu10k1_capture_pointer(snd_pcm_substream_t * subst ...@@ -917,7 +921,7 @@ static snd_pcm_uframes_t snd_emu10k1_capture_pointer(snd_pcm_substream_t * subst
* Playback support device description * Playback support device description
*/ */
static snd_pcm_hardware_t snd_emu10k1_playback = static struct snd_pcm_hardware snd_emu10k1_playback =
{ {
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -940,7 +944,7 @@ static snd_pcm_hardware_t snd_emu10k1_playback = ...@@ -940,7 +944,7 @@ static snd_pcm_hardware_t snd_emu10k1_playback =
* Capture support device description * Capture support device description
*/ */
static snd_pcm_hardware_t snd_emu10k1_capture = static struct snd_pcm_hardware snd_emu10k1_capture =
{ {
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -963,9 +967,9 @@ static snd_pcm_hardware_t snd_emu10k1_capture = ...@@ -963,9 +967,9 @@ static snd_pcm_hardware_t snd_emu10k1_capture =
* *
*/ */
static void snd_emu10k1_pcm_mixer_notify1(emu10k1_t *emu, snd_kcontrol_t *kctl, int idx, int activate) static void snd_emu10k1_pcm_mixer_notify1(struct snd_emu10k1 *emu, struct snd_kcontrol *kctl, int idx, int activate)
{ {
snd_ctl_elem_id_t id; struct snd_ctl_elem_id id;
if (! kctl) if (! kctl)
return; return;
...@@ -978,29 +982,29 @@ static void snd_emu10k1_pcm_mixer_notify1(emu10k1_t *emu, snd_kcontrol_t *kctl, ...@@ -978,29 +982,29 @@ static void snd_emu10k1_pcm_mixer_notify1(emu10k1_t *emu, snd_kcontrol_t *kctl,
snd_ctl_build_ioff(&id, kctl, idx)); snd_ctl_build_ioff(&id, kctl, idx));
} }
static void snd_emu10k1_pcm_mixer_notify(emu10k1_t *emu, int idx, int activate) static void snd_emu10k1_pcm_mixer_notify(struct snd_emu10k1 *emu, int idx, int activate)
{ {
snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_routing, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_routing, idx, activate);
snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_volume, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_send_volume, idx, activate);
snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_attn, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_attn, idx, activate);
} }
static void snd_emu10k1_pcm_efx_mixer_notify(emu10k1_t *emu, int idx, int activate) static void snd_emu10k1_pcm_efx_mixer_notify(struct snd_emu10k1 *emu, int idx, int activate)
{ {
snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_routing, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_routing, idx, activate);
snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_volume, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_send_volume, idx, activate);
snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_attn, idx, activate); snd_emu10k1_pcm_mixer_notify1(emu, emu->ctl_efx_attn, idx, activate);
} }
static void snd_emu10k1_pcm_free_substream(snd_pcm_runtime_t *runtime) static void snd_emu10k1_pcm_free_substream(struct snd_pcm_runtime *runtime)
{ {
kfree(runtime->private_data); kfree(runtime->private_data);
} }
static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream) static int snd_emu10k1_efx_playback_close(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu10k1_pcm_mixer_t *mix; struct snd_emu10k1_pcm_mixer *mix;
int i; int i;
for (i=0; i < NUM_EFX_PLAYBACK; i++) { for (i=0; i < NUM_EFX_PLAYBACK; i++) {
...@@ -1011,12 +1015,12 @@ static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream) ...@@ -1011,12 +1015,12 @@ static int snd_emu10k1_efx_playback_close(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_efx_playback_open(snd_pcm_substream_t * substream) static int snd_emu10k1_efx_playback_open(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
emu10k1_pcm_mixer_t *mix; struct snd_emu10k1_pcm_mixer *mix;
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
int i; int i;
epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
...@@ -1044,12 +1048,12 @@ static int snd_emu10k1_efx_playback_open(snd_pcm_substream_t * substream) ...@@ -1044,12 +1048,12 @@ static int snd_emu10k1_efx_playback_open(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_playback_open(snd_pcm_substream_t * substream) static int snd_emu10k1_playback_open(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
emu10k1_pcm_mixer_t *mix; struct snd_emu10k1_pcm_mixer *mix;
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
int i, err; int i, err;
epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
...@@ -1081,21 +1085,21 @@ static int snd_emu10k1_playback_open(snd_pcm_substream_t * substream) ...@@ -1081,21 +1085,21 @@ static int snd_emu10k1_playback_open(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_playback_close(snd_pcm_substream_t * substream) static int snd_emu10k1_playback_close(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu10k1_pcm_mixer_t *mix = &emu->pcm_mixer[substream->number]; struct snd_emu10k1_pcm_mixer *mix = &emu->pcm_mixer[substream->number];
mix->epcm = NULL; mix->epcm = NULL;
snd_emu10k1_pcm_mixer_notify(emu, substream->number, 0); snd_emu10k1_pcm_mixer_notify(emu, substream->number, 0);
return 0; return 0;
} }
static int snd_emu10k1_capture_open(snd_pcm_substream_t * substream) static int snd_emu10k1_capture_open(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
if (epcm == NULL) if (epcm == NULL)
...@@ -1118,20 +1122,20 @@ static int snd_emu10k1_capture_open(snd_pcm_substream_t * substream) ...@@ -1118,20 +1122,20 @@ static int snd_emu10k1_capture_open(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_capture_close(snd_pcm_substream_t * substream) static int snd_emu10k1_capture_close(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu->capture_interrupt = NULL; emu->capture_interrupt = NULL;
emu->pcm_capture_substream = NULL; emu->pcm_capture_substream = NULL;
return 0; return 0;
} }
static int snd_emu10k1_capture_mic_open(snd_pcm_substream_t * substream) static int snd_emu10k1_capture_mic_open(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
if (epcm == NULL) if (epcm == NULL)
...@@ -1156,20 +1160,20 @@ static int snd_emu10k1_capture_mic_open(snd_pcm_substream_t * substream) ...@@ -1156,20 +1160,20 @@ static int snd_emu10k1_capture_mic_open(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_capture_mic_close(snd_pcm_substream_t * substream) static int snd_emu10k1_capture_mic_close(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu->capture_interrupt = NULL; emu->capture_interrupt = NULL;
emu->pcm_capture_mic_substream = NULL; emu->pcm_capture_mic_substream = NULL;
return 0; return 0;
} }
static int snd_emu10k1_capture_efx_open(snd_pcm_substream_t * substream) static int snd_emu10k1_capture_efx_open(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
int nefx = emu->audigy ? 64 : 32; int nefx = emu->audigy ? 64 : 32;
int idx; int idx;
...@@ -1206,16 +1210,16 @@ static int snd_emu10k1_capture_efx_open(snd_pcm_substream_t * substream) ...@@ -1206,16 +1210,16 @@ static int snd_emu10k1_capture_efx_open(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_capture_efx_close(snd_pcm_substream_t * substream) static int snd_emu10k1_capture_efx_close(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu->capture_interrupt = NULL; emu->capture_interrupt = NULL;
emu->pcm_capture_efx_substream = NULL; emu->pcm_capture_efx_substream = NULL;
return 0; return 0;
} }
static snd_pcm_ops_t snd_emu10k1_playback_ops = { static struct snd_pcm_ops snd_emu10k1_playback_ops = {
.open = snd_emu10k1_playback_open, .open = snd_emu10k1_playback_open,
.close = snd_emu10k1_playback_close, .close = snd_emu10k1_playback_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1227,7 +1231,7 @@ static snd_pcm_ops_t snd_emu10k1_playback_ops = { ...@@ -1227,7 +1231,7 @@ static snd_pcm_ops_t snd_emu10k1_playback_ops = {
.page = snd_pcm_sgbuf_ops_page, .page = snd_pcm_sgbuf_ops_page,
}; };
static snd_pcm_ops_t snd_emu10k1_capture_ops = { static struct snd_pcm_ops snd_emu10k1_capture_ops = {
.open = snd_emu10k1_capture_open, .open = snd_emu10k1_capture_open,
.close = snd_emu10k1_capture_close, .close = snd_emu10k1_capture_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1239,7 +1243,7 @@ static snd_pcm_ops_t snd_emu10k1_capture_ops = { ...@@ -1239,7 +1243,7 @@ static snd_pcm_ops_t snd_emu10k1_capture_ops = {
}; };
/* EFX playback */ /* EFX playback */
static snd_pcm_ops_t snd_emu10k1_efx_playback_ops = { static struct snd_pcm_ops snd_emu10k1_efx_playback_ops = {
.open = snd_emu10k1_efx_playback_open, .open = snd_emu10k1_efx_playback_open,
.close = snd_emu10k1_efx_playback_close, .close = snd_emu10k1_efx_playback_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1251,10 +1255,10 @@ static snd_pcm_ops_t snd_emu10k1_efx_playback_ops = { ...@@ -1251,10 +1255,10 @@ static snd_pcm_ops_t snd_emu10k1_efx_playback_ops = {
.page = snd_pcm_sgbuf_ops_page, .page = snd_pcm_sgbuf_ops_page,
}; };
int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) int __devinit snd_emu10k1_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm)
{ {
snd_pcm_t *pcm; struct snd_pcm *pcm;
snd_pcm_substream_t *substream; struct snd_pcm_substream *substream;
int err; int err;
if (rpcm) if (rpcm)
...@@ -1286,10 +1290,10 @@ int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) ...@@ -1286,10 +1290,10 @@ int __devinit snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm)
return 0; return 0;
} }
int __devinit snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) int __devinit snd_emu10k1_pcm_multi(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm)
{ {
snd_pcm_t *pcm; struct snd_pcm *pcm;
snd_pcm_substream_t *substream; struct snd_pcm_substream *substream;
int err; int err;
if (rpcm) if (rpcm)
...@@ -1318,7 +1322,7 @@ int __devinit snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rp ...@@ -1318,7 +1322,7 @@ int __devinit snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rp
} }
static snd_pcm_ops_t snd_emu10k1_capture_mic_ops = { static struct snd_pcm_ops snd_emu10k1_capture_mic_ops = {
.open = snd_emu10k1_capture_mic_open, .open = snd_emu10k1_capture_mic_open,
.close = snd_emu10k1_capture_mic_close, .close = snd_emu10k1_capture_mic_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1329,9 +1333,9 @@ static snd_pcm_ops_t snd_emu10k1_capture_mic_ops = { ...@@ -1329,9 +1333,9 @@ static snd_pcm_ops_t snd_emu10k1_capture_mic_ops = {
.pointer = snd_emu10k1_capture_pointer, .pointer = snd_emu10k1_capture_pointer,
}; };
int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) int __devinit snd_emu10k1_pcm_mic(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm)
{ {
snd_pcm_t *pcm; struct snd_pcm *pcm;
int err; int err;
if (rpcm) if (rpcm)
...@@ -1355,9 +1359,9 @@ int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm ...@@ -1355,9 +1359,9 @@ int __devinit snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm
return 0; return 0;
} }
static int snd_emu10k1_pcm_efx_voices_mask_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_emu10k1_pcm_efx_voices_mask_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
int nefx = emu->audigy ? 64 : 32; int nefx = emu->audigy ? 64 : 32;
uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN; uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
uinfo->count = nefx; uinfo->count = nefx;
...@@ -1366,9 +1370,9 @@ static int snd_emu10k1_pcm_efx_voices_mask_info(snd_kcontrol_t *kcontrol, snd_ct ...@@ -1366,9 +1370,9 @@ static int snd_emu10k1_pcm_efx_voices_mask_info(snd_kcontrol_t *kcontrol, snd_ct
return 0; return 0;
} }
static int snd_emu10k1_pcm_efx_voices_mask_get(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_emu10k1_pcm_efx_voices_mask_get(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
int nefx = emu->audigy ? 64 : 32; int nefx = emu->audigy ? 64 : 32;
int idx; int idx;
...@@ -1379,9 +1383,9 @@ static int snd_emu10k1_pcm_efx_voices_mask_get(snd_kcontrol_t * kcontrol, snd_ct ...@@ -1379,9 +1383,9 @@ static int snd_emu10k1_pcm_efx_voices_mask_get(snd_kcontrol_t * kcontrol, snd_ct
return 0; return 0;
} }
static int snd_emu10k1_pcm_efx_voices_mask_put(snd_kcontrol_t * kcontrol, snd_ctl_elem_value_t * ucontrol) static int snd_emu10k1_pcm_efx_voices_mask_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
unsigned int nval[2], bits; unsigned int nval[2], bits;
int nefx = emu->audigy ? 64 : 32; int nefx = emu->audigy ? 64 : 32;
int nefxb = emu->audigy ? 7 : 6; int nefxb = emu->audigy ? 7 : 6;
...@@ -1410,7 +1414,7 @@ static int snd_emu10k1_pcm_efx_voices_mask_put(snd_kcontrol_t * kcontrol, snd_ct ...@@ -1410,7 +1414,7 @@ static int snd_emu10k1_pcm_efx_voices_mask_put(snd_kcontrol_t * kcontrol, snd_ct
return change; return change;
} }
static snd_kcontrol_new_t snd_emu10k1_pcm_efx_voices_mask = { static struct snd_kcontrol_new snd_emu10k1_pcm_efx_voices_mask = {
.iface = SNDRV_CTL_ELEM_IFACE_PCM, .iface = SNDRV_CTL_ELEM_IFACE_PCM,
.name = "Captured FX8010 Outputs", .name = "Captured FX8010 Outputs",
.info = snd_emu10k1_pcm_efx_voices_mask_info, .info = snd_emu10k1_pcm_efx_voices_mask_info,
...@@ -1418,7 +1422,7 @@ static snd_kcontrol_new_t snd_emu10k1_pcm_efx_voices_mask = { ...@@ -1418,7 +1422,7 @@ static snd_kcontrol_new_t snd_emu10k1_pcm_efx_voices_mask = {
.put = snd_emu10k1_pcm_efx_voices_mask_put .put = snd_emu10k1_pcm_efx_voices_mask_put
}; };
static snd_pcm_ops_t snd_emu10k1_capture_efx_ops = { static struct snd_pcm_ops snd_emu10k1_capture_efx_ops = {
.open = snd_emu10k1_capture_efx_open, .open = snd_emu10k1_capture_efx_open,
.close = snd_emu10k1_capture_efx_close, .close = snd_emu10k1_capture_efx_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1435,9 +1439,9 @@ static snd_pcm_ops_t snd_emu10k1_capture_efx_ops = { ...@@ -1435,9 +1439,9 @@ static snd_pcm_ops_t snd_emu10k1_capture_efx_ops = {
#define INITIAL_TRAM_SHIFT 14 #define INITIAL_TRAM_SHIFT 14
#define INITIAL_TRAM_POS(size) ((((size) / 2) - INITIAL_TRAM_SHIFT) - 1) #define INITIAL_TRAM_POS(size) ((((size) / 2) - INITIAL_TRAM_SHIFT) - 1)
static void snd_emu10k1_fx8010_playback_irq(emu10k1_t *emu, void *private_data) static void snd_emu10k1_fx8010_playback_irq(struct snd_emu10k1 *emu, void *private_data)
{ {
snd_pcm_substream_t *substream = private_data; struct snd_pcm_substream *substream = private_data;
snd_pcm_period_elapsed(substream); snd_pcm_period_elapsed(substream);
} }
...@@ -1461,11 +1465,11 @@ static void snd_emu10k1_fx8010_playback_tram_poke1(unsigned short *dst_left, ...@@ -1461,11 +1465,11 @@ static void snd_emu10k1_fx8010_playback_tram_poke1(unsigned short *dst_left,
} }
} }
static void fx8010_pb_trans_copy(snd_pcm_substream_t *substream, static void fx8010_pb_trans_copy(struct snd_pcm_substream *substream,
snd_pcm_indirect_t *rec, size_t bytes) struct snd_pcm_indirect *rec, size_t bytes)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
unsigned int tram_size = pcm->buffer_size; unsigned int tram_size = pcm->buffer_size;
unsigned short *src = (unsigned short *)(substream->runtime->dma_area + rec->sw_data); unsigned short *src = (unsigned short *)(substream->runtime->dma_area + rec->sw_data);
unsigned int frames = bytes >> 2, count; unsigned int frames = bytes >> 2, count;
...@@ -1490,25 +1494,25 @@ static void fx8010_pb_trans_copy(snd_pcm_substream_t *substream, ...@@ -1490,25 +1494,25 @@ static void fx8010_pb_trans_copy(snd_pcm_substream_t *substream,
pcm->tram_shift = tram_shift; pcm->tram_shift = tram_shift;
} }
static int snd_emu10k1_fx8010_playback_transfer(snd_pcm_substream_t *substream) static int snd_emu10k1_fx8010_playback_transfer(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
snd_pcm_indirect_playback_transfer(substream, &pcm->pcm_rec, fx8010_pb_trans_copy); snd_pcm_indirect_playback_transfer(substream, &pcm->pcm_rec, fx8010_pb_trans_copy);
return 0; return 0;
} }
static int snd_emu10k1_fx8010_playback_hw_params(snd_pcm_substream_t * substream, static int snd_emu10k1_fx8010_playback_hw_params(struct snd_pcm_substream *substream,
snd_pcm_hw_params_t * hw_params) struct snd_pcm_hw_params *hw_params)
{ {
return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params)); return snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
} }
static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream) static int snd_emu10k1_fx8010_playback_hw_free(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
unsigned int i; unsigned int i;
for (i = 0; i < pcm->channels; i++) for (i = 0; i < pcm->channels; i++)
...@@ -1517,11 +1521,11 @@ static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream) ...@@ -1517,11 +1521,11 @@ static int snd_emu10k1_fx8010_playback_hw_free(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream) static int snd_emu10k1_fx8010_playback_prepare(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
unsigned int i; unsigned int i;
// printk("prepare: etram_pages = 0x%p, dma_area = 0x%x, buffer_size = 0x%x (0x%x)\n", emu->fx8010.etram_pages, runtime->dma_area, runtime->buffer_size, runtime->buffer_size << 2); // printk("prepare: etram_pages = 0x%p, dma_area = 0x%x, buffer_size = 0x%x (0x%x)\n", emu->fx8010.etram_pages, runtime->dma_area, runtime->buffer_size, runtime->buffer_size << 2);
...@@ -1541,10 +1545,10 @@ static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream) ...@@ -1541,10 +1545,10 @@ static int snd_emu10k1_fx8010_playback_prepare(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream, int cmd) static int snd_emu10k1_fx8010_playback_trigger(struct snd_pcm_substream *substream, int cmd)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
int result = 0; int result = 0;
spin_lock(&emu->reg_lock); spin_lock(&emu->reg_lock);
...@@ -1586,10 +1590,10 @@ static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream, ...@@ -1586,10 +1590,10 @@ static int snd_emu10k1_fx8010_playback_trigger(snd_pcm_substream_t * substream,
return result; return result;
} }
static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t * substream) static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
size_t ptr; /* byte pointer */ size_t ptr; /* byte pointer */
if (!snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_trigger, 0)) if (!snd_emu10k1_ptr_read(emu, emu->gpr_base + pcm->gpr_trigger, 0))
...@@ -1598,7 +1602,7 @@ static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t ...@@ -1598,7 +1602,7 @@ static snd_pcm_uframes_t snd_emu10k1_fx8010_playback_pointer(snd_pcm_substream_t
return snd_pcm_indirect_playback_pointer(substream, &pcm->pcm_rec, ptr); return snd_pcm_indirect_playback_pointer(substream, &pcm->pcm_rec, ptr);
} }
static snd_pcm_hardware_t snd_emu10k1_fx8010_playback = static struct snd_pcm_hardware snd_emu10k1_fx8010_playback =
{ {
.info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED | .info = (SNDRV_PCM_INFO_MMAP | SNDRV_PCM_INFO_INTERLEAVED |
/* SNDRV_PCM_INFO_MMAP_VALID | */ SNDRV_PCM_INFO_PAUSE), /* SNDRV_PCM_INFO_MMAP_VALID | */ SNDRV_PCM_INFO_PAUSE),
...@@ -1616,11 +1620,11 @@ static snd_pcm_hardware_t snd_emu10k1_fx8010_playback = ...@@ -1616,11 +1620,11 @@ static snd_pcm_hardware_t snd_emu10k1_fx8010_playback =
.fifo_size = 0, .fifo_size = 0,
}; };
static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream) static int snd_emu10k1_fx8010_playback_open(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
runtime->hw = snd_emu10k1_fx8010_playback; runtime->hw = snd_emu10k1_fx8010_playback;
runtime->hw.channels_min = runtime->hw.channels_max = pcm->channels; runtime->hw.channels_min = runtime->hw.channels_max = pcm->channels;
...@@ -1635,10 +1639,10 @@ static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream) ...@@ -1635,10 +1639,10 @@ static int snd_emu10k1_fx8010_playback_open(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream) static int snd_emu10k1_fx8010_playback_close(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_emu10k1_fx8010_pcm_t *pcm = &emu->fx8010.pcm[substream->number]; struct snd_emu10k1_fx8010_pcm *pcm = &emu->fx8010.pcm[substream->number];
spin_lock_irq(&emu->reg_lock); spin_lock_irq(&emu->reg_lock);
pcm->opened = 0; pcm->opened = 0;
...@@ -1646,7 +1650,7 @@ static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream) ...@@ -1646,7 +1650,7 @@ static int snd_emu10k1_fx8010_playback_close(snd_pcm_substream_t * substream)
return 0; return 0;
} }
static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = { static struct snd_pcm_ops snd_emu10k1_fx8010_playback_ops = {
.open = snd_emu10k1_fx8010_playback_open, .open = snd_emu10k1_fx8010_playback_open,
.close = snd_emu10k1_fx8010_playback_close, .close = snd_emu10k1_fx8010_playback_close,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -1658,10 +1662,10 @@ static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = { ...@@ -1658,10 +1662,10 @@ static snd_pcm_ops_t snd_emu10k1_fx8010_playback_ops = {
.ack = snd_emu10k1_fx8010_playback_transfer, .ack = snd_emu10k1_fx8010_playback_transfer,
}; };
int __devinit snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm) int __devinit snd_emu10k1_pcm_efx(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm)
{ {
snd_pcm_t *pcm; struct snd_pcm *pcm;
snd_kcontrol_t *kctl; struct snd_kcontrol *kctl;
int err; int err;
if (rpcm) if (rpcm)
......
...@@ -32,8 +32,8 @@ ...@@ -32,8 +32,8 @@
#include <sound/emu10k1.h> #include <sound/emu10k1.h>
#include "p16v.h" #include "p16v.h"
static void snd_emu10k1_proc_spdif_status(emu10k1_t * emu, static void snd_emu10k1_proc_spdif_status(struct snd_emu10k1 * emu,
snd_info_buffer_t * buffer, struct snd_info_buffer *buffer,
char *title, char *title,
int status_reg, int status_reg,
int rate_reg) int rate_reg)
...@@ -75,8 +75,8 @@ static void snd_emu10k1_proc_spdif_status(emu10k1_t * emu, ...@@ -75,8 +75,8 @@ static void snd_emu10k1_proc_spdif_status(emu10k1_t * emu,
} }
static void snd_emu10k1_proc_read(snd_info_entry_t *entry, static void snd_emu10k1_proc_read(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
/* FIXME - output names are in emufx.c too */ /* FIXME - output names are in emufx.c too */
static char *creative_outs[32] = { static char *creative_outs[32] = {
...@@ -181,7 +181,7 @@ static void snd_emu10k1_proc_read(snd_info_entry_t *entry, ...@@ -181,7 +181,7 @@ static void snd_emu10k1_proc_read(snd_info_entry_t *entry,
/* 63 */ "FXBUS2_31" /* 63 */ "FXBUS2_31"
}; };
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
unsigned int val, val1; unsigned int val, val1;
int nefx = emu->audigy ? 64 : 32; int nefx = emu->audigy ? 64 : 32;
char **outputs = emu->audigy ? audigy_outs : creative_outs; char **outputs = emu->audigy ? audigy_outs : creative_outs;
...@@ -232,10 +232,10 @@ static void snd_emu10k1_proc_read(snd_info_entry_t *entry, ...@@ -232,10 +232,10 @@ static void snd_emu10k1_proc_read(snd_info_entry_t *entry,
snd_iprintf(buffer, " Output %02i [%s]\n", idx, outputs[idx]); snd_iprintf(buffer, " Output %02i [%s]\n", idx, outputs[idx]);
} }
static void snd_emu10k1_proc_spdif_read(snd_info_entry_t *entry, static void snd_emu10k1_proc_spdif_read(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
snd_emu10k1_proc_spdif_status(emu, buffer, "CD-ROM S/PDIF In", CDCS, CDSRCS); snd_emu10k1_proc_spdif_status(emu, buffer, "CD-ROM S/PDIF In", CDCS, CDSRCS);
snd_emu10k1_proc_spdif_status(emu, buffer, "Optical or Coax S/PDIF In", GPSCS, GPSRCS); snd_emu10k1_proc_spdif_status(emu, buffer, "Optical or Coax S/PDIF In", GPSCS, GPSRCS);
#if 0 #if 0
...@@ -246,11 +246,11 @@ static void snd_emu10k1_proc_spdif_read(snd_info_entry_t *entry, ...@@ -246,11 +246,11 @@ static void snd_emu10k1_proc_spdif_read(snd_info_entry_t *entry,
#endif #endif
} }
static void snd_emu10k1_proc_rates_read(snd_info_entry_t *entry, static void snd_emu10k1_proc_rates_read(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
static int samplerate[8] = { 44100, 48000, 96000, 192000, 4, 5, 6, 7 }; static int samplerate[8] = { 44100, 48000, 96000, 192000, 4, 5, 6, 7 };
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
unsigned int val, tmp, n; unsigned int val, tmp, n;
val = snd_emu10k1_ptr20_read(emu, CAPTURE_RATE_STATUS, 0); val = snd_emu10k1_ptr20_read(emu, CAPTURE_RATE_STATUS, 0);
tmp = (val >> 16) & 0x8; tmp = (val >> 16) & 0x8;
...@@ -261,11 +261,11 @@ static void snd_emu10k1_proc_rates_read(snd_info_entry_t *entry, ...@@ -261,11 +261,11 @@ static void snd_emu10k1_proc_rates_read(snd_info_entry_t *entry,
} }
} }
static void snd_emu10k1_proc_acode_read(snd_info_entry_t *entry, static void snd_emu10k1_proc_acode_read(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
u32 pc; u32 pc;
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
snd_iprintf(buffer, "FX8010 Instruction List '%s'\n", emu->fx8010.name); snd_iprintf(buffer, "FX8010 Instruction List '%s'\n", emu->fx8010.name);
snd_iprintf(buffer, " Code dump :\n"); snd_iprintf(buffer, " Code dump :\n");
...@@ -304,12 +304,13 @@ static void snd_emu10k1_proc_acode_read(snd_info_entry_t *entry, ...@@ -304,12 +304,13 @@ static void snd_emu10k1_proc_acode_read(snd_info_entry_t *entry,
#define TOTAL_SIZE_CODE (0x200*8) #define TOTAL_SIZE_CODE (0x200*8)
#define A_TOTAL_SIZE_CODE (0x400*8) #define A_TOTAL_SIZE_CODE (0x400*8)
static long snd_emu10k1_fx8010_read(snd_info_entry_t *entry, void *file_private_data, static long snd_emu10k1_fx8010_read(struct snd_info_entry *entry,
void *file_private_data,
struct file *file, char __user *buf, struct file *file, char __user *buf,
unsigned long count, unsigned long pos) unsigned long count, unsigned long pos)
{ {
long size; long size;
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
unsigned int offset; unsigned int offset;
int tram_addr = 0; int tram_addr = 0;
...@@ -349,11 +350,11 @@ static long snd_emu10k1_fx8010_read(snd_info_entry_t *entry, void *file_private_ ...@@ -349,11 +350,11 @@ static long snd_emu10k1_fx8010_read(snd_info_entry_t *entry, void *file_private_
return 0; return 0;
} }
static void snd_emu10k1_proc_voices_read(snd_info_entry_t *entry, static void snd_emu10k1_proc_voices_read(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
emu10k1_voice_t *voice; struct snd_emu10k1_voice *voice;
int idx; int idx;
snd_iprintf(buffer, "ch\tuse\tpcm\tefx\tsynth\tmidi\n"); snd_iprintf(buffer, "ch\tuse\tpcm\tefx\tsynth\tmidi\n");
...@@ -370,10 +371,10 @@ static void snd_emu10k1_proc_voices_read(snd_info_entry_t *entry, ...@@ -370,10 +371,10 @@ static void snd_emu10k1_proc_voices_read(snd_info_entry_t *entry,
} }
#ifdef CONFIG_SND_DEBUG #ifdef CONFIG_SND_DEBUG
static void snd_emu_proc_io_reg_read(snd_info_entry_t *entry, static void snd_emu_proc_io_reg_read(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
unsigned long value; unsigned long value;
unsigned long flags; unsigned long flags;
int i; int i;
...@@ -386,10 +387,10 @@ static void snd_emu_proc_io_reg_read(snd_info_entry_t *entry, ...@@ -386,10 +387,10 @@ static void snd_emu_proc_io_reg_read(snd_info_entry_t *entry,
} }
} }
static void snd_emu_proc_io_reg_write(snd_info_entry_t *entry, static void snd_emu_proc_io_reg_write(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
unsigned long flags; unsigned long flags;
char line[64]; char line[64];
u32 reg, val; u32 reg, val;
...@@ -404,7 +405,7 @@ static void snd_emu_proc_io_reg_write(snd_info_entry_t *entry, ...@@ -404,7 +405,7 @@ static void snd_emu_proc_io_reg_write(snd_info_entry_t *entry,
} }
} }
static unsigned int snd_ptr_read(emu10k1_t * emu, static unsigned int snd_ptr_read(struct snd_emu10k1 * emu,
unsigned int iobase, unsigned int iobase,
unsigned int reg, unsigned int reg,
unsigned int chn) unsigned int chn)
...@@ -421,7 +422,7 @@ static unsigned int snd_ptr_read(emu10k1_t * emu, ...@@ -421,7 +422,7 @@ static unsigned int snd_ptr_read(emu10k1_t * emu,
return val; return val;
} }
static void snd_ptr_write(emu10k1_t *emu, static void snd_ptr_write(struct snd_emu10k1 *emu,
unsigned int iobase, unsigned int iobase,
unsigned int reg, unsigned int reg,
unsigned int chn, unsigned int chn,
...@@ -439,10 +440,10 @@ static void snd_ptr_write(emu10k1_t *emu, ...@@ -439,10 +440,10 @@ static void snd_ptr_write(emu10k1_t *emu,
} }
static void snd_emu_proc_ptr_reg_read(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_read(struct snd_info_entry *entry,
snd_info_buffer_t * buffer, int iobase, int offset, int length, int voices) struct snd_info_buffer *buffer, int iobase, int offset, int length, int voices)
{ {
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
unsigned long value; unsigned long value;
int i,j; int i,j;
if (offset+length > 0xa0) { if (offset+length > 0xa0) {
...@@ -463,10 +464,10 @@ static void snd_emu_proc_ptr_reg_read(snd_info_entry_t *entry, ...@@ -463,10 +464,10 @@ static void snd_emu_proc_ptr_reg_read(snd_info_entry_t *entry,
} }
} }
static void snd_emu_proc_ptr_reg_write(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_write(struct snd_info_entry *entry,
snd_info_buffer_t * buffer, int iobase) struct snd_info_buffer *buffer, int iobase)
{ {
emu10k1_t *emu = entry->private_data; struct snd_emu10k1 *emu = entry->private_data;
char line[64]; char line[64];
unsigned int reg, channel_id , val; unsigned int reg, channel_id , val;
while (!snd_info_get_line(buffer, line, sizeof(line))) { while (!snd_info_get_line(buffer, line, sizeof(line))) {
...@@ -477,45 +478,45 @@ static void snd_emu_proc_ptr_reg_write(snd_info_entry_t *entry, ...@@ -477,45 +478,45 @@ static void snd_emu_proc_ptr_reg_write(snd_info_entry_t *entry,
} }
} }
static void snd_emu_proc_ptr_reg_write00(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_write00(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
snd_emu_proc_ptr_reg_write(entry, buffer, 0); snd_emu_proc_ptr_reg_write(entry, buffer, 0);
} }
static void snd_emu_proc_ptr_reg_write20(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_write20(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
snd_emu_proc_ptr_reg_write(entry, buffer, 0x20); snd_emu_proc_ptr_reg_write(entry, buffer, 0x20);
} }
static void snd_emu_proc_ptr_reg_read00a(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_read00a(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
snd_emu_proc_ptr_reg_read(entry, buffer, 0, 0, 0x40, 64); snd_emu_proc_ptr_reg_read(entry, buffer, 0, 0, 0x40, 64);
} }
static void snd_emu_proc_ptr_reg_read00b(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_read00b(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
snd_emu_proc_ptr_reg_read(entry, buffer, 0, 0x40, 0x40, 64); snd_emu_proc_ptr_reg_read(entry, buffer, 0, 0x40, 0x40, 64);
} }
static void snd_emu_proc_ptr_reg_read20a(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_read20a(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0, 0x40, 4); snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0, 0x40, 4);
} }
static void snd_emu_proc_ptr_reg_read20b(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_read20b(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer *buffer)
{ {
snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0x40, 0x40, 4); snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0x40, 0x40, 4);
} }
static void snd_emu_proc_ptr_reg_read20c(snd_info_entry_t *entry, static void snd_emu_proc_ptr_reg_read20c(struct snd_info_entry *entry,
snd_info_buffer_t * buffer) struct snd_info_buffer * buffer)
{ {
snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0x80, 0x20, 4); snd_emu_proc_ptr_reg_read(entry, buffer, 0x20, 0x80, 0x20, 4);
} }
...@@ -525,9 +526,9 @@ static struct snd_info_entry_ops snd_emu10k1_proc_ops_fx8010 = { ...@@ -525,9 +526,9 @@ static struct snd_info_entry_ops snd_emu10k1_proc_ops_fx8010 = {
.read = snd_emu10k1_fx8010_read, .read = snd_emu10k1_fx8010_read,
}; };
int __devinit snd_emu10k1_proc_init(emu10k1_t * emu) int __devinit snd_emu10k1_proc_init(struct snd_emu10k1 * emu)
{ {
snd_info_entry_t *entry; struct snd_info_entry *entry;
#ifdef CONFIG_SND_DEBUG #ifdef CONFIG_SND_DEBUG
if (! snd_card_proc_new(emu->card, "io_regs", &entry)) { if (! snd_card_proc_new(emu->card, "io_regs", &entry)) {
snd_info_set_text_ops(entry, emu, 1024, snd_emu_proc_io_reg_read); snd_info_set_text_ops(entry, emu, 1024, snd_emu_proc_io_reg_read);
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
#include <sound/core.h> #include <sound/core.h>
#include <sound/emu10k1.h> #include <sound/emu10k1.h>
unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned int chn) unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn)
{ {
unsigned long flags; unsigned long flags;
unsigned int regptr, val; unsigned int regptr, val;
...@@ -61,7 +61,7 @@ unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned in ...@@ -61,7 +61,7 @@ unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned in
} }
} }
void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data) void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data)
{ {
unsigned int regptr; unsigned int regptr;
unsigned long flags; unsigned long flags;
...@@ -91,7 +91,7 @@ void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, u ...@@ -91,7 +91,7 @@ void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, u
} }
} }
unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu, unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu,
unsigned int reg, unsigned int reg,
unsigned int chn) unsigned int chn)
{ {
...@@ -107,7 +107,7 @@ unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu, ...@@ -107,7 +107,7 @@ unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu,
return val; return val;
} }
void snd_emu10k1_ptr20_write(emu10k1_t *emu, void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu,
unsigned int reg, unsigned int reg,
unsigned int chn, unsigned int chn,
unsigned int data) unsigned int data)
...@@ -123,7 +123,7 @@ void snd_emu10k1_ptr20_write(emu10k1_t *emu, ...@@ -123,7 +123,7 @@ void snd_emu10k1_ptr20_write(emu10k1_t *emu,
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb) void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb)
{ {
unsigned long flags; unsigned long flags;
unsigned int enable; unsigned int enable;
...@@ -134,7 +134,7 @@ void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb) ...@@ -134,7 +134,7 @@ void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb) void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb)
{ {
unsigned long flags; unsigned long flags;
unsigned int enable; unsigned int enable;
...@@ -145,7 +145,7 @@ void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb) ...@@ -145,7 +145,7 @@ void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum) void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum)
{ {
unsigned long flags; unsigned long flags;
unsigned int val; unsigned int val;
...@@ -165,7 +165,7 @@ void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum) ...@@ -165,7 +165,7 @@ void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum) void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum)
{ {
unsigned long flags; unsigned long flags;
unsigned int val; unsigned int val;
...@@ -185,7 +185,7 @@ void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum) ...@@ -185,7 +185,7 @@ void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum) void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum)
{ {
unsigned long flags; unsigned long flags;
...@@ -202,7 +202,7 @@ void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum) ...@@ -202,7 +202,7 @@ void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicenum) void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum)
{ {
unsigned long flags; unsigned long flags;
unsigned int val; unsigned int val;
...@@ -222,7 +222,7 @@ void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicen ...@@ -222,7 +222,7 @@ void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicen
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voicenum) void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum)
{ {
unsigned long flags; unsigned long flags;
unsigned int val; unsigned int val;
...@@ -242,7 +242,7 @@ void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voice ...@@ -242,7 +242,7 @@ void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voice
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum) void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum)
{ {
unsigned long flags; unsigned long flags;
...@@ -259,7 +259,7 @@ void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum) ...@@ -259,7 +259,7 @@ void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum) void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum)
{ {
unsigned long flags; unsigned long flags;
unsigned int sol; unsigned int sol;
...@@ -279,7 +279,7 @@ void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum) ...@@ -279,7 +279,7 @@ void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum) void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum)
{ {
unsigned long flags; unsigned long flags;
unsigned int sol; unsigned int sol;
...@@ -299,7 +299,7 @@ void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum) ...@@ -299,7 +299,7 @@ void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait) void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait)
{ {
volatile unsigned count; volatile unsigned count;
unsigned int newtime = 0, curtime; unsigned int newtime = 0, curtime;
...@@ -318,9 +318,9 @@ void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait) ...@@ -318,9 +318,9 @@ void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait)
} }
} }
unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg) unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
{ {
emu10k1_t *emu = ac97->private_data; struct snd_emu10k1 *emu = ac97->private_data;
unsigned long flags; unsigned long flags;
unsigned short val; unsigned short val;
...@@ -331,9 +331,9 @@ unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg) ...@@ -331,9 +331,9 @@ unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg)
return val; return val;
} }
void snd_emu10k1_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short data) void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data)
{ {
emu10k1_t *emu = ac97->private_data; struct snd_emu10k1 *emu = ac97->private_data;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&emu->emu_lock, flags); spin_lock_irqsave(&emu->emu_lock, flags);
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{ {
emu10k1_t *emu = dev_id; struct snd_emu10k1 *emu = dev_id;
unsigned int status, status2, orig_status, orig_status2; unsigned int status, status2, orig_status, orig_status2;
int handled = 0; int handled = 0;
...@@ -56,7 +56,7 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -56,7 +56,7 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
int voice; int voice;
int voice_max = status & IPR_CHANNELNUMBERMASK; int voice_max = status & IPR_CHANNELNUMBERMASK;
u32 val; u32 val;
emu10k1_voice_t *pvoice = emu->voices; struct snd_emu10k1_voice *pvoice = emu->voices;
val = snd_emu10k1_ptr_read(emu, CLIPL, 0); val = snd_emu10k1_ptr_read(emu, CLIPL, 0);
for (voice = 0; voice <= voice_max; voice++) { for (voice = 0; voice <= voice_max; voice++) {
...@@ -150,8 +150,8 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs) ...@@ -150,8 +150,8 @@ irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs)
if (status & IPR_P16V) { if (status & IPR_P16V) {
while ((status2 = inl(emu->port + IPR2)) != 0) { while ((status2 = inl(emu->port + IPR2)) != 0) {
u32 mask = INTE2_PLAYBACK_CH_0_LOOP; /* Full Loop */ u32 mask = INTE2_PLAYBACK_CH_0_LOOP; /* Full Loop */
emu10k1_voice_t *pvoice = &(emu->p16v_voices[0]); struct snd_emu10k1_voice *pvoice = &(emu->p16v_voices[0]);
emu10k1_voice_t *cvoice = &(emu->p16v_capture_voice); struct snd_emu10k1_voice *cvoice = &(emu->p16v_capture_voice);
//printk(KERN_INFO "status2=0x%x\n", status2); //printk(KERN_INFO "status2=0x%x\n", status2);
orig_status2 = status2; orig_status2 = status2;
......
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
#define set_silent_ptb(emu,page) __set_ptb_entry(emu,page,emu->silent_page.addr) #define set_silent_ptb(emu,page) __set_ptb_entry(emu,page,emu->silent_page.addr)
#else #else
/* fill PTB entries -- we need to fill UNIT_PAGES entries */ /* fill PTB entries -- we need to fill UNIT_PAGES entries */
static inline void set_ptb_entry(emu10k1_t *emu, int page, dma_addr_t addr) static inline void set_ptb_entry(struct snd_emu10k1 *emu, int page, dma_addr_t addr)
{ {
int i; int i;
page *= UNIT_PAGES; page *= UNIT_PAGES;
...@@ -57,7 +57,7 @@ static inline void set_ptb_entry(emu10k1_t *emu, int page, dma_addr_t addr) ...@@ -57,7 +57,7 @@ static inline void set_ptb_entry(emu10k1_t *emu, int page, dma_addr_t addr)
addr += EMUPAGESIZE; addr += EMUPAGESIZE;
} }
} }
static inline void set_silent_ptb(emu10k1_t *emu, int page) static inline void set_silent_ptb(struct snd_emu10k1 *emu, int page)
{ {
int i; int i;
page *= UNIT_PAGES; page *= UNIT_PAGES;
...@@ -70,14 +70,14 @@ static inline void set_silent_ptb(emu10k1_t *emu, int page) ...@@ -70,14 +70,14 @@ static inline void set_silent_ptb(emu10k1_t *emu, int page)
/* /*
*/ */
static int synth_alloc_pages(emu10k1_t *hw, emu10k1_memblk_t *blk); static int synth_alloc_pages(struct snd_emu10k1 *hw, struct snd_emu10k1_memblk *blk);
static int synth_free_pages(emu10k1_t *hw, emu10k1_memblk_t *blk); static int synth_free_pages(struct snd_emu10k1 *hw, struct snd_emu10k1_memblk *blk);
#define get_emu10k1_memblk(l,member) list_entry(l, emu10k1_memblk_t, member) #define get_emu10k1_memblk(l,member) list_entry(l, struct snd_emu10k1_memblk, member)
/* initialize emu10k1 part */ /* initialize emu10k1 part */
static void emu10k1_memblk_init(emu10k1_memblk_t *blk) static void emu10k1_memblk_init(struct snd_emu10k1_memblk *blk)
{ {
blk->mapped_page = -1; blk->mapped_page = -1;
INIT_LIST_HEAD(&blk->mapped_link); INIT_LIST_HEAD(&blk->mapped_link);
...@@ -96,7 +96,7 @@ static void emu10k1_memblk_init(emu10k1_memblk_t *blk) ...@@ -96,7 +96,7 @@ static void emu10k1_memblk_init(emu10k1_memblk_t *blk)
* in nextp * in nextp
* if not found, return a negative error code. * if not found, return a negative error code.
*/ */
static int search_empty_map_area(emu10k1_t *emu, int npages, struct list_head **nextp) static int search_empty_map_area(struct snd_emu10k1 *emu, int npages, struct list_head **nextp)
{ {
int page = 0, found_page = -ENOMEM; int page = 0, found_page = -ENOMEM;
int max_size = npages; int max_size = npages;
...@@ -105,7 +105,7 @@ static int search_empty_map_area(emu10k1_t *emu, int npages, struct list_head ** ...@@ -105,7 +105,7 @@ static int search_empty_map_area(emu10k1_t *emu, int npages, struct list_head **
struct list_head *pos; struct list_head *pos;
list_for_each (pos, &emu->mapped_link_head) { list_for_each (pos, &emu->mapped_link_head) {
emu10k1_memblk_t *blk = get_emu10k1_memblk(pos, mapped_link); struct snd_emu10k1_memblk *blk = get_emu10k1_memblk(pos, mapped_link);
snd_assert(blk->mapped_page >= 0, continue); snd_assert(blk->mapped_page >= 0, continue);
size = blk->mapped_page - page; size = blk->mapped_page - page;
if (size == npages) { if (size == npages) {
...@@ -134,7 +134,7 @@ static int search_empty_map_area(emu10k1_t *emu, int npages, struct list_head ** ...@@ -134,7 +134,7 @@ static int search_empty_map_area(emu10k1_t *emu, int npages, struct list_head **
* *
* call with memblk_lock held * call with memblk_lock held
*/ */
static int map_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk) static int map_memblk(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
{ {
int page, pg; int page, pg;
struct list_head *next; struct list_head *next;
...@@ -161,11 +161,11 @@ static int map_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk) ...@@ -161,11 +161,11 @@ static int map_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk)
* *
* call with memblk_lock held * call with memblk_lock held
*/ */
static int unmap_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk) static int unmap_memblk(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
{ {
int start_page, end_page, mpage, pg; int start_page, end_page, mpage, pg;
struct list_head *p; struct list_head *p;
emu10k1_memblk_t *q; struct snd_emu10k1_memblk *q;
/* calculate the expected size of empty region */ /* calculate the expected size of empty region */
if ((p = blk->mapped_link.prev) != &emu->mapped_link_head) { if ((p = blk->mapped_link.prev) != &emu->mapped_link_head) {
...@@ -197,11 +197,11 @@ static int unmap_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk) ...@@ -197,11 +197,11 @@ static int unmap_memblk(emu10k1_t *emu, emu10k1_memblk_t *blk)
* *
* unlike synth_alloc the memory block is aligned to the page start * unlike synth_alloc the memory block is aligned to the page start
*/ */
static emu10k1_memblk_t * static struct snd_emu10k1_memblk *
search_empty(emu10k1_t *emu, int size) search_empty(struct snd_emu10k1 *emu, int size)
{ {
struct list_head *p; struct list_head *p;
emu10k1_memblk_t *blk; struct snd_emu10k1_memblk *blk;
int page, psize; int page, psize;
psize = get_aligned_page(size + PAGE_SIZE -1); psize = get_aligned_page(size + PAGE_SIZE -1);
...@@ -217,7 +217,7 @@ search_empty(emu10k1_t *emu, int size) ...@@ -217,7 +217,7 @@ search_empty(emu10k1_t *emu, int size)
__found_pages: __found_pages:
/* create a new memory block */ /* create a new memory block */
blk = (emu10k1_memblk_t *)__snd_util_memblk_new(emu->memhdr, psize << PAGE_SHIFT, p->prev); blk = (struct snd_emu10k1_memblk *)__snd_util_memblk_new(emu->memhdr, psize << PAGE_SHIFT, p->prev);
if (blk == NULL) if (blk == NULL)
return NULL; return NULL;
blk->mem.offset = aligned_page_offset(page); /* set aligned offset */ blk->mem.offset = aligned_page_offset(page); /* set aligned offset */
...@@ -229,7 +229,7 @@ search_empty(emu10k1_t *emu, int size) ...@@ -229,7 +229,7 @@ search_empty(emu10k1_t *emu, int size)
/* /*
* check if the given pointer is valid for pages * check if the given pointer is valid for pages
*/ */
static int is_valid_page(emu10k1_t *emu, dma_addr_t addr) static int is_valid_page(struct snd_emu10k1 *emu, dma_addr_t addr)
{ {
if (addr & ~emu->dma_mask) { if (addr & ~emu->dma_mask) {
snd_printk(KERN_ERR "max memory size is 0x%lx (addr = 0x%lx)!!\n", emu->dma_mask, (unsigned long)addr); snd_printk(KERN_ERR "max memory size is 0x%lx (addr = 0x%lx)!!\n", emu->dma_mask, (unsigned long)addr);
...@@ -248,12 +248,12 @@ static int is_valid_page(emu10k1_t *emu, dma_addr_t addr) ...@@ -248,12 +248,12 @@ static int is_valid_page(emu10k1_t *emu, dma_addr_t addr)
* if no empty pages are found, tries to release unsed memory blocks * if no empty pages are found, tries to release unsed memory blocks
* and retry the mapping. * and retry the mapping.
*/ */
int snd_emu10k1_memblk_map(emu10k1_t *emu, emu10k1_memblk_t *blk) int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
{ {
int err; int err;
int size; int size;
struct list_head *p, *nextp; struct list_head *p, *nextp;
emu10k1_memblk_t *deleted; struct snd_emu10k1_memblk *deleted;
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&emu->memblk_lock, flags); spin_lock_irqsave(&emu->memblk_lock, flags);
...@@ -288,13 +288,13 @@ int snd_emu10k1_memblk_map(emu10k1_t *emu, emu10k1_memblk_t *blk) ...@@ -288,13 +288,13 @@ int snd_emu10k1_memblk_map(emu10k1_t *emu, emu10k1_memblk_t *blk)
/* /*
* page allocation for DMA * page allocation for DMA
*/ */
snd_util_memblk_t * struct snd_util_memblk *
snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream) snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *substream)
{ {
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream); struct snd_sg_buf *sgbuf = snd_pcm_substream_sgbuf(substream);
snd_util_memhdr_t *hdr; struct snd_util_memhdr *hdr;
emu10k1_memblk_t *blk; struct snd_emu10k1_memblk *blk;
int page, err, idx; int page, err, idx;
snd_assert(emu, return NULL); snd_assert(emu, return NULL);
...@@ -336,19 +336,19 @@ snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream) ...@@ -336,19 +336,19 @@ snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream)
blk->map_locked = 1; /* do not unmap this block! */ blk->map_locked = 1; /* do not unmap this block! */
err = snd_emu10k1_memblk_map(emu, blk); err = snd_emu10k1_memblk_map(emu, blk);
if (err < 0) { if (err < 0) {
__snd_util_mem_free(hdr, (snd_util_memblk_t *)blk); __snd_util_mem_free(hdr, (struct snd_util_memblk *)blk);
up(&hdr->block_mutex); up(&hdr->block_mutex);
return NULL; return NULL;
} }
up(&hdr->block_mutex); up(&hdr->block_mutex);
return (snd_util_memblk_t *)blk; return (struct snd_util_memblk *)blk;
} }
/* /*
* release DMA buffer from page table * release DMA buffer from page table
*/ */
int snd_emu10k1_free_pages(emu10k1_t *emu, snd_util_memblk_t *blk) int snd_emu10k1_free_pages(struct snd_emu10k1 *emu, struct snd_util_memblk *blk)
{ {
snd_assert(emu && blk, return -EINVAL); snd_assert(emu && blk, return -EINVAL);
return snd_emu10k1_synth_free(emu, blk); return snd_emu10k1_synth_free(emu, blk);
...@@ -363,26 +363,26 @@ int snd_emu10k1_free_pages(emu10k1_t *emu, snd_util_memblk_t *blk) ...@@ -363,26 +363,26 @@ int snd_emu10k1_free_pages(emu10k1_t *emu, snd_util_memblk_t *blk)
/* /*
* allocate a synth sample area * allocate a synth sample area
*/ */
snd_util_memblk_t * struct snd_util_memblk *
snd_emu10k1_synth_alloc(emu10k1_t *hw, unsigned int size) snd_emu10k1_synth_alloc(struct snd_emu10k1 *hw, unsigned int size)
{ {
emu10k1_memblk_t *blk; struct snd_emu10k1_memblk *blk;
snd_util_memhdr_t *hdr = hw->memhdr; struct snd_util_memhdr *hdr = hw->memhdr;
down(&hdr->block_mutex); down(&hdr->block_mutex);
blk = (emu10k1_memblk_t *)__snd_util_mem_alloc(hdr, size); blk = (struct snd_emu10k1_memblk *)__snd_util_mem_alloc(hdr, size);
if (blk == NULL) { if (blk == NULL) {
up(&hdr->block_mutex); up(&hdr->block_mutex);
return NULL; return NULL;
} }
if (synth_alloc_pages(hw, blk)) { if (synth_alloc_pages(hw, blk)) {
__snd_util_mem_free(hdr, (snd_util_memblk_t *)blk); __snd_util_mem_free(hdr, (struct snd_util_memblk *)blk);
up(&hdr->block_mutex); up(&hdr->block_mutex);
return NULL; return NULL;
} }
snd_emu10k1_memblk_map(hw, blk); snd_emu10k1_memblk_map(hw, blk);
up(&hdr->block_mutex); up(&hdr->block_mutex);
return (snd_util_memblk_t *)blk; return (struct snd_util_memblk *)blk;
} }
...@@ -390,10 +390,10 @@ snd_emu10k1_synth_alloc(emu10k1_t *hw, unsigned int size) ...@@ -390,10 +390,10 @@ snd_emu10k1_synth_alloc(emu10k1_t *hw, unsigned int size)
* free a synth sample area * free a synth sample area
*/ */
int int
snd_emu10k1_synth_free(emu10k1_t *emu, snd_util_memblk_t *memblk) snd_emu10k1_synth_free(struct snd_emu10k1 *emu, struct snd_util_memblk *memblk)
{ {
snd_util_memhdr_t *hdr = emu->memhdr; struct snd_util_memhdr *hdr = emu->memhdr;
emu10k1_memblk_t *blk = (emu10k1_memblk_t *)memblk; struct snd_emu10k1_memblk *blk = (struct snd_emu10k1_memblk *)memblk;
unsigned long flags; unsigned long flags;
down(&hdr->block_mutex); down(&hdr->block_mutex);
...@@ -409,10 +409,12 @@ snd_emu10k1_synth_free(emu10k1_t *emu, snd_util_memblk_t *memblk) ...@@ -409,10 +409,12 @@ snd_emu10k1_synth_free(emu10k1_t *emu, snd_util_memblk_t *memblk)
/* check new allocation range */ /* check new allocation range */
static void get_single_page_range(snd_util_memhdr_t *hdr, emu10k1_memblk_t *blk, int *first_page_ret, int *last_page_ret) static void get_single_page_range(struct snd_util_memhdr *hdr,
struct snd_emu10k1_memblk *blk,
int *first_page_ret, int *last_page_ret)
{ {
struct list_head *p; struct list_head *p;
emu10k1_memblk_t *q; struct snd_emu10k1_memblk *q;
int first_page, last_page; int first_page, last_page;
first_page = blk->first_page; first_page = blk->first_page;
if ((p = blk->mem.list.prev) != &hdr->block) { if ((p = blk->mem.list.prev) != &hdr->block) {
...@@ -433,7 +435,7 @@ static void get_single_page_range(snd_util_memhdr_t *hdr, emu10k1_memblk_t *blk, ...@@ -433,7 +435,7 @@ static void get_single_page_range(snd_util_memhdr_t *hdr, emu10k1_memblk_t *blk,
/* /*
* allocate kernel pages * allocate kernel pages
*/ */
static int synth_alloc_pages(emu10k1_t *emu, emu10k1_memblk_t *blk) static int synth_alloc_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
{ {
int page, first_page, last_page; int page, first_page, last_page;
struct snd_dma_buffer dmab; struct snd_dma_buffer dmab;
...@@ -472,7 +474,7 @@ static int synth_alloc_pages(emu10k1_t *emu, emu10k1_memblk_t *blk) ...@@ -472,7 +474,7 @@ static int synth_alloc_pages(emu10k1_t *emu, emu10k1_memblk_t *blk)
/* /*
* free pages * free pages
*/ */
static int synth_free_pages(emu10k1_t *emu, emu10k1_memblk_t *blk) static int synth_free_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk)
{ {
int page, first_page, last_page; int page, first_page, last_page;
struct snd_dma_buffer dmab; struct snd_dma_buffer dmab;
...@@ -495,7 +497,7 @@ static int synth_free_pages(emu10k1_t *emu, emu10k1_memblk_t *blk) ...@@ -495,7 +497,7 @@ static int synth_free_pages(emu10k1_t *emu, emu10k1_memblk_t *blk)
} }
/* calculate buffer pointer from offset address */ /* calculate buffer pointer from offset address */
static inline void *offset_ptr(emu10k1_t *emu, int page, int offset) static inline void *offset_ptr(struct snd_emu10k1 *emu, int page, int offset)
{ {
char *ptr; char *ptr;
snd_assert(page >= 0 && page < emu->max_cache_pages, return NULL); snd_assert(page >= 0 && page < emu->max_cache_pages, return NULL);
...@@ -511,11 +513,12 @@ static inline void *offset_ptr(emu10k1_t *emu, int page, int offset) ...@@ -511,11 +513,12 @@ static inline void *offset_ptr(emu10k1_t *emu, int page, int offset)
/* /*
* bzero(blk + offset, size) * bzero(blk + offset, size)
*/ */
int snd_emu10k1_synth_bzero(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, int size) int snd_emu10k1_synth_bzero(struct snd_emu10k1 *emu, struct snd_util_memblk *blk,
int offset, int size)
{ {
int page, nextofs, end_offset, temp, temp1; int page, nextofs, end_offset, temp, temp1;
void *ptr; void *ptr;
emu10k1_memblk_t *p = (emu10k1_memblk_t *)blk; struct snd_emu10k1_memblk *p = (struct snd_emu10k1_memblk *)blk;
offset += blk->offset & (PAGE_SIZE - 1); offset += blk->offset & (PAGE_SIZE - 1);
end_offset = offset + size; end_offset = offset + size;
...@@ -538,11 +541,12 @@ int snd_emu10k1_synth_bzero(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, ...@@ -538,11 +541,12 @@ int snd_emu10k1_synth_bzero(emu10k1_t *emu, snd_util_memblk_t *blk, int offset,
/* /*
* copy_from_user(blk + offset, data, size) * copy_from_user(blk + offset, data, size)
*/ */
int snd_emu10k1_synth_copy_from_user(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, const char __user *data, int size) int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk,
int offset, const char __user *data, int size)
{ {
int page, nextofs, end_offset, temp, temp1; int page, nextofs, end_offset, temp, temp1;
void *ptr; void *ptr;
emu10k1_memblk_t *p = (emu10k1_memblk_t *)blk; struct snd_emu10k1_memblk *p = (struct snd_emu10k1_memblk *)blk;
offset += blk->offset & (PAGE_SIZE - 1); offset += blk->offset & (PAGE_SIZE - 1);
end_offset = offset + size; end_offset = offset + size;
......
...@@ -121,7 +121,7 @@ ...@@ -121,7 +121,7 @@
*/ */
/* hardware definition */ /* hardware definition */
static snd_pcm_hardware_t snd_p16v_playback_hw = { static struct snd_pcm_hardware snd_p16v_playback_hw = {
.info = (SNDRV_PCM_INFO_MMAP | .info = (SNDRV_PCM_INFO_MMAP |
SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -140,7 +140,7 @@ static snd_pcm_hardware_t snd_p16v_playback_hw = { ...@@ -140,7 +140,7 @@ static snd_pcm_hardware_t snd_p16v_playback_hw = {
.fifo_size = 0, .fifo_size = 0,
}; };
static snd_pcm_hardware_t snd_p16v_capture_hw = { static struct snd_pcm_hardware snd_p16v_capture_hw = {
.info = (SNDRV_PCM_INFO_MMAP | .info = (SNDRV_PCM_INFO_MMAP |
SNDRV_PCM_INFO_INTERLEAVED | SNDRV_PCM_INFO_INTERLEAVED |
SNDRV_PCM_INFO_BLOCK_TRANSFER | SNDRV_PCM_INFO_BLOCK_TRANSFER |
...@@ -159,9 +159,9 @@ static snd_pcm_hardware_t snd_p16v_capture_hw = { ...@@ -159,9 +159,9 @@ static snd_pcm_hardware_t snd_p16v_capture_hw = {
.fifo_size = 0, .fifo_size = 0,
}; };
static void snd_p16v_pcm_free_substream(snd_pcm_runtime_t *runtime) static void snd_p16v_pcm_free_substream(struct snd_pcm_runtime *runtime)
{ {
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
if (epcm) { if (epcm) {
//snd_printk("epcm free: %p\n", epcm); //snd_printk("epcm free: %p\n", epcm);
...@@ -170,12 +170,12 @@ static void snd_p16v_pcm_free_substream(snd_pcm_runtime_t *runtime) ...@@ -170,12 +170,12 @@ static void snd_p16v_pcm_free_substream(snd_pcm_runtime_t *runtime)
} }
/* open_playback callback */ /* open_playback callback */
static int snd_p16v_pcm_open_playback_channel(snd_pcm_substream_t *substream, int channel_id) static int snd_p16v_pcm_open_playback_channel(struct snd_pcm_substream *substream, int channel_id)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu10k1_voice_t *channel = &(emu->p16v_voices[channel_id]); struct snd_emu10k1_voice *channel = &(emu->p16v_voices[channel_id]);
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
int err; int err;
epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
...@@ -206,12 +206,12 @@ static int snd_p16v_pcm_open_playback_channel(snd_pcm_substream_t *substream, in ...@@ -206,12 +206,12 @@ static int snd_p16v_pcm_open_playback_channel(snd_pcm_substream_t *substream, in
return 0; return 0;
} }
/* open_capture callback */ /* open_capture callback */
static int snd_p16v_pcm_open_capture_channel(snd_pcm_substream_t *substream, int channel_id) static int snd_p16v_pcm_open_capture_channel(struct snd_pcm_substream *substream, int channel_id)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
emu10k1_voice_t *channel = &(emu->p16v_capture_voice); struct snd_emu10k1_voice *channel = &(emu->p16v_capture_voice);
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
int err; int err;
epcm = kzalloc(sizeof(*epcm), GFP_KERNEL); epcm = kzalloc(sizeof(*epcm), GFP_KERNEL);
...@@ -244,41 +244,41 @@ static int snd_p16v_pcm_open_capture_channel(snd_pcm_substream_t *substream, int ...@@ -244,41 +244,41 @@ static int snd_p16v_pcm_open_capture_channel(snd_pcm_substream_t *substream, int
/* close callback */ /* close callback */
static int snd_p16v_pcm_close_playback(snd_pcm_substream_t *substream) static int snd_p16v_pcm_close_playback(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
//snd_pcm_runtime_t *runtime = substream->runtime; //struct snd_pcm_runtime *runtime = substream->runtime;
//emu10k1_pcm_t *epcm = runtime->private_data; //struct snd_emu10k1_pcm *epcm = runtime->private_data;
emu->p16v_voices[substream->pcm->device - emu->p16v_device_offset].use=0; emu->p16v_voices[substream->pcm->device - emu->p16v_device_offset].use=0;
/* FIXME: maybe zero others */ /* FIXME: maybe zero others */
return 0; return 0;
} }
/* close callback */ /* close callback */
static int snd_p16v_pcm_close_capture(snd_pcm_substream_t *substream) static int snd_p16v_pcm_close_capture(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
//snd_pcm_runtime_t *runtime = substream->runtime; //struct snd_pcm_runtime *runtime = substream->runtime;
//emu10k1_pcm_t *epcm = runtime->private_data; //struct snd_emu10k1_pcm *epcm = runtime->private_data;
emu->p16v_capture_voice.use=0; emu->p16v_capture_voice.use=0;
/* FIXME: maybe zero others */ /* FIXME: maybe zero others */
return 0; return 0;
} }
static int snd_p16v_pcm_open_playback_front(snd_pcm_substream_t *substream) static int snd_p16v_pcm_open_playback_front(struct snd_pcm_substream *substream)
{ {
return snd_p16v_pcm_open_playback_channel(substream, PCM_FRONT_CHANNEL); return snd_p16v_pcm_open_playback_channel(substream, PCM_FRONT_CHANNEL);
} }
static int snd_p16v_pcm_open_capture(snd_pcm_substream_t *substream) static int snd_p16v_pcm_open_capture(struct snd_pcm_substream *substream)
{ {
// Only using channel 0 for now, but the card has 2 channels. // Only using channel 0 for now, but the card has 2 channels.
return snd_p16v_pcm_open_capture_channel(substream, 0); return snd_p16v_pcm_open_capture_channel(substream, 0);
} }
/* hw_params callback */ /* hw_params callback */
static int snd_p16v_pcm_hw_params_playback(snd_pcm_substream_t *substream, static int snd_p16v_pcm_hw_params_playback(struct snd_pcm_substream *substream,
snd_pcm_hw_params_t * hw_params) struct snd_pcm_hw_params *hw_params)
{ {
int result; int result;
result = snd_pcm_lib_malloc_pages(substream, result = snd_pcm_lib_malloc_pages(substream,
...@@ -287,8 +287,8 @@ static int snd_p16v_pcm_hw_params_playback(snd_pcm_substream_t *substream, ...@@ -287,8 +287,8 @@ static int snd_p16v_pcm_hw_params_playback(snd_pcm_substream_t *substream,
} }
/* hw_params callback */ /* hw_params callback */
static int snd_p16v_pcm_hw_params_capture(snd_pcm_substream_t *substream, static int snd_p16v_pcm_hw_params_capture(struct snd_pcm_substream *substream,
snd_pcm_hw_params_t * hw_params) struct snd_pcm_hw_params *hw_params)
{ {
int result; int result;
result = snd_pcm_lib_malloc_pages(substream, result = snd_pcm_lib_malloc_pages(substream,
...@@ -298,7 +298,7 @@ static int snd_p16v_pcm_hw_params_capture(snd_pcm_substream_t *substream, ...@@ -298,7 +298,7 @@ static int snd_p16v_pcm_hw_params_capture(snd_pcm_substream_t *substream,
/* hw_free callback */ /* hw_free callback */
static int snd_p16v_pcm_hw_free_playback(snd_pcm_substream_t *substream) static int snd_p16v_pcm_hw_free_playback(struct snd_pcm_substream *substream)
{ {
int result; int result;
result = snd_pcm_lib_free_pages(substream); result = snd_pcm_lib_free_pages(substream);
...@@ -306,7 +306,7 @@ static int snd_p16v_pcm_hw_free_playback(snd_pcm_substream_t *substream) ...@@ -306,7 +306,7 @@ static int snd_p16v_pcm_hw_free_playback(snd_pcm_substream_t *substream)
} }
/* hw_free callback */ /* hw_free callback */
static int snd_p16v_pcm_hw_free_capture(snd_pcm_substream_t *substream) static int snd_p16v_pcm_hw_free_capture(struct snd_pcm_substream *substream)
{ {
int result; int result;
result = snd_pcm_lib_free_pages(substream); result = snd_pcm_lib_free_pages(substream);
...@@ -315,10 +315,10 @@ static int snd_p16v_pcm_hw_free_capture(snd_pcm_substream_t *substream) ...@@ -315,10 +315,10 @@ static int snd_p16v_pcm_hw_free_capture(snd_pcm_substream_t *substream)
/* prepare playback callback */ /* prepare playback callback */
static int snd_p16v_pcm_prepare_playback(snd_pcm_substream_t *substream) static int snd_p16v_pcm_prepare_playback(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
int channel = substream->pcm->device - emu->p16v_device_offset; int channel = substream->pcm->device - emu->p16v_device_offset;
u32 *table_base = (u32 *)(emu->p16v_buffer.area+(8*16*channel)); u32 *table_base = (u32 *)(emu->p16v_buffer.area+(8*16*channel));
u32 period_size_bytes = frames_to_bytes(runtime, runtime->period_size); u32 period_size_bytes = frames_to_bytes(runtime, runtime->period_size);
...@@ -364,10 +364,10 @@ static int snd_p16v_pcm_prepare_playback(snd_pcm_substream_t *substream) ...@@ -364,10 +364,10 @@ static int snd_p16v_pcm_prepare_playback(snd_pcm_substream_t *substream)
} }
/* prepare capture callback */ /* prepare capture callback */
static int snd_p16v_pcm_prepare_capture(snd_pcm_substream_t *substream) static int snd_p16v_pcm_prepare_capture(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
int channel = substream->pcm->device - emu->p16v_device_offset; int channel = substream->pcm->device - emu->p16v_device_offset;
u32 tmp; u32 tmp;
//printk("prepare capture:channel_number=%d, rate=%d, format=0x%x, channels=%d, buffer_size=%ld, period_size=%ld, frames_to_bytes=%d\n",channel, runtime->rate, runtime->format, runtime->channels, runtime->buffer_size, runtime->period_size, frames_to_bytes(runtime, 1)); //printk("prepare capture:channel_number=%d, rate=%d, format=0x%x, channels=%d, buffer_size=%ld, period_size=%ld, frames_to_bytes=%d\n",channel, runtime->rate, runtime->format, runtime->channels, runtime->buffer_size, runtime->period_size, frames_to_bytes(runtime, 1));
...@@ -398,7 +398,7 @@ static int snd_p16v_pcm_prepare_capture(snd_pcm_substream_t *substream) ...@@ -398,7 +398,7 @@ static int snd_p16v_pcm_prepare_capture(snd_pcm_substream_t *substream)
return 0; return 0;
} }
static void snd_p16v_intr_enable(emu10k1_t *emu, unsigned int intrenb) static void snd_p16v_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb)
{ {
unsigned long flags; unsigned long flags;
unsigned int enable; unsigned int enable;
...@@ -409,7 +409,7 @@ static void snd_p16v_intr_enable(emu10k1_t *emu, unsigned int intrenb) ...@@ -409,7 +409,7 @@ static void snd_p16v_intr_enable(emu10k1_t *emu, unsigned int intrenb)
spin_unlock_irqrestore(&emu->emu_lock, flags); spin_unlock_irqrestore(&emu->emu_lock, flags);
} }
static void snd_p16v_intr_disable(emu10k1_t *emu, unsigned int intrenb) static void snd_p16v_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb)
{ {
unsigned long flags; unsigned long flags;
unsigned int disable; unsigned int disable;
...@@ -421,16 +421,16 @@ static void snd_p16v_intr_disable(emu10k1_t *emu, unsigned int intrenb) ...@@ -421,16 +421,16 @@ static void snd_p16v_intr_disable(emu10k1_t *emu, unsigned int intrenb)
} }
/* trigger_playback callback */ /* trigger_playback callback */
static int snd_p16v_pcm_trigger_playback(snd_pcm_substream_t *substream, static int snd_p16v_pcm_trigger_playback(struct snd_pcm_substream *substream,
int cmd) int cmd)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime; struct snd_pcm_runtime *runtime;
emu10k1_pcm_t *epcm; struct snd_emu10k1_pcm *epcm;
int channel; int channel;
int result = 0; int result = 0;
struct list_head *pos; struct list_head *pos;
snd_pcm_substream_t *s; struct snd_pcm_substream *s;
u32 basic = 0; u32 basic = 0;
u32 inte = 0; u32 inte = 0;
int running=0; int running=0;
...@@ -474,12 +474,12 @@ static int snd_p16v_pcm_trigger_playback(snd_pcm_substream_t *substream, ...@@ -474,12 +474,12 @@ static int snd_p16v_pcm_trigger_playback(snd_pcm_substream_t *substream,
} }
/* trigger_capture callback */ /* trigger_capture callback */
static int snd_p16v_pcm_trigger_capture(snd_pcm_substream_t *substream, static int snd_p16v_pcm_trigger_capture(struct snd_pcm_substream *substream,
int cmd) int cmd)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
int channel = 0; int channel = 0;
int result = 0; int result = 0;
u32 inte = INTE2_CAPTURE_CH_0_LOOP | INTE2_CAPTURE_CH_0_HALF_LOOP; u32 inte = INTE2_CAPTURE_CH_0_LOOP | INTE2_CAPTURE_CH_0_HALF_LOOP;
...@@ -505,11 +505,11 @@ static int snd_p16v_pcm_trigger_capture(snd_pcm_substream_t *substream, ...@@ -505,11 +505,11 @@ static int snd_p16v_pcm_trigger_capture(snd_pcm_substream_t *substream,
/* pointer_playback callback */ /* pointer_playback callback */
static snd_pcm_uframes_t static snd_pcm_uframes_t
snd_p16v_pcm_pointer_playback(snd_pcm_substream_t *substream) snd_p16v_pcm_pointer_playback(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
snd_pcm_uframes_t ptr, ptr1, ptr2,ptr3,ptr4 = 0; snd_pcm_uframes_t ptr, ptr1, ptr2,ptr3,ptr4 = 0;
int channel = substream->pcm->device - emu->p16v_device_offset; int channel = substream->pcm->device - emu->p16v_device_offset;
if (!epcm->running) if (!epcm->running)
...@@ -530,11 +530,11 @@ snd_p16v_pcm_pointer_playback(snd_pcm_substream_t *substream) ...@@ -530,11 +530,11 @@ snd_p16v_pcm_pointer_playback(snd_pcm_substream_t *substream)
/* pointer_capture callback */ /* pointer_capture callback */
static snd_pcm_uframes_t static snd_pcm_uframes_t
snd_p16v_pcm_pointer_capture(snd_pcm_substream_t *substream) snd_p16v_pcm_pointer_capture(struct snd_pcm_substream *substream)
{ {
emu10k1_t *emu = snd_pcm_substream_chip(substream); struct snd_emu10k1 *emu = snd_pcm_substream_chip(substream);
snd_pcm_runtime_t *runtime = substream->runtime; struct snd_pcm_runtime *runtime = substream->runtime;
emu10k1_pcm_t *epcm = runtime->private_data; struct snd_emu10k1_pcm *epcm = runtime->private_data;
snd_pcm_uframes_t ptr, ptr1, ptr2 = 0; snd_pcm_uframes_t ptr, ptr1, ptr2 = 0;
int channel = 0; int channel = 0;
...@@ -554,7 +554,7 @@ snd_p16v_pcm_pointer_capture(snd_pcm_substream_t *substream) ...@@ -554,7 +554,7 @@ snd_p16v_pcm_pointer_capture(snd_pcm_substream_t *substream)
} }
/* operators */ /* operators */
static snd_pcm_ops_t snd_p16v_playback_front_ops = { static struct snd_pcm_ops snd_p16v_playback_front_ops = {
.open = snd_p16v_pcm_open_playback_front, .open = snd_p16v_pcm_open_playback_front,
.close = snd_p16v_pcm_close_playback, .close = snd_p16v_pcm_close_playback,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -565,7 +565,7 @@ static snd_pcm_ops_t snd_p16v_playback_front_ops = { ...@@ -565,7 +565,7 @@ static snd_pcm_ops_t snd_p16v_playback_front_ops = {
.pointer = snd_p16v_pcm_pointer_playback, .pointer = snd_p16v_pcm_pointer_playback,
}; };
static snd_pcm_ops_t snd_p16v_capture_ops = { static struct snd_pcm_ops snd_p16v_capture_ops = {
.open = snd_p16v_pcm_open_capture, .open = snd_p16v_pcm_open_capture,
.close = snd_p16v_pcm_close_capture, .close = snd_p16v_pcm_close_capture,
.ioctl = snd_pcm_lib_ioctl, .ioctl = snd_pcm_lib_ioctl,
...@@ -577,7 +577,7 @@ static snd_pcm_ops_t snd_p16v_capture_ops = { ...@@ -577,7 +577,7 @@ static snd_pcm_ops_t snd_p16v_capture_ops = {
}; };
int snd_p16v_free(emu10k1_t *chip) int snd_p16v_free(struct snd_emu10k1 *chip)
{ {
// release the data // release the data
if (chip->p16v_buffer.area) { if (chip->p16v_buffer.area) {
...@@ -587,10 +587,10 @@ int snd_p16v_free(emu10k1_t *chip) ...@@ -587,10 +587,10 @@ int snd_p16v_free(emu10k1_t *chip)
return 0; return 0;
} }
int snd_p16v_pcm(emu10k1_t *emu, int device, snd_pcm_t **rpcm) int snd_p16v_pcm(struct snd_emu10k1 *emu, int device, struct snd_pcm **rpcm)
{ {
snd_pcm_t *pcm; struct snd_pcm *pcm;
snd_pcm_substream_t *substream; struct snd_pcm_substream *substream;
int err; int err;
int capture=1; int capture=1;
...@@ -641,7 +641,7 @@ int snd_p16v_pcm(emu10k1_t *emu, int device, snd_pcm_t **rpcm) ...@@ -641,7 +641,7 @@ int snd_p16v_pcm(emu10k1_t *emu, int device, snd_pcm_t **rpcm)
return 0; return 0;
} }
static int snd_p16v_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_p16v_volume_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
uinfo->count = 2; uinfo->count = 2;
...@@ -650,10 +650,10 @@ static int snd_p16v_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * ...@@ -650,10 +650,10 @@ static int snd_p16v_volume_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t *
return 0; return 0;
} }
static int snd_p16v_volume_get(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol, int reg, int high_low) struct snd_ctl_elem_value *ucontrol, int reg, int high_low)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
u32 value; u32 value;
value = snd_emu10k1_ptr20_read(emu, reg, high_low); value = snd_emu10k1_ptr20_read(emu, reg, high_low);
...@@ -667,71 +667,71 @@ static int snd_p16v_volume_get(snd_kcontrol_t * kcontrol, ...@@ -667,71 +667,71 @@ static int snd_p16v_volume_get(snd_kcontrol_t * kcontrol,
return 0; return 0;
} }
static int snd_p16v_volume_get_spdif_front(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get_spdif_front(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 0; int high_low = 0;
int reg = PLAYBACK_VOLUME_MIXER7; int reg = PLAYBACK_VOLUME_MIXER7;
return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_get_spdif_center_lfe(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get_spdif_center_lfe(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 1; int high_low = 1;
int reg = PLAYBACK_VOLUME_MIXER7; int reg = PLAYBACK_VOLUME_MIXER7;
return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_get_spdif_unknown(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get_spdif_unknown(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 0; int high_low = 0;
int reg = PLAYBACK_VOLUME_MIXER8; int reg = PLAYBACK_VOLUME_MIXER8;
return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_get_spdif_rear(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get_spdif_rear(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 1; int high_low = 1;
int reg = PLAYBACK_VOLUME_MIXER8; int reg = PLAYBACK_VOLUME_MIXER8;
return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_get_analog_front(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get_analog_front(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 0; int high_low = 0;
int reg = PLAYBACK_VOLUME_MIXER9; int reg = PLAYBACK_VOLUME_MIXER9;
return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_get_analog_center_lfe(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get_analog_center_lfe(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 1; int high_low = 1;
int reg = PLAYBACK_VOLUME_MIXER9; int reg = PLAYBACK_VOLUME_MIXER9;
return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_get_analog_rear(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get_analog_rear(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 1; int high_low = 1;
int reg = PLAYBACK_VOLUME_MIXER10; int reg = PLAYBACK_VOLUME_MIXER10;
return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_get_analog_unknown(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_get_analog_unknown(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 0; int high_low = 0;
int reg = PLAYBACK_VOLUME_MIXER10; int reg = PLAYBACK_VOLUME_MIXER10;
return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_get(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_put(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol, int reg, int high_low) struct snd_ctl_elem_value *ucontrol, int reg, int high_low)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
u32 value; u32 value;
value = snd_emu10k1_ptr20_read(emu, reg, 0); value = snd_emu10k1_ptr20_read(emu, reg, 0);
//value = value & 0xffff; //value = value & 0xffff;
...@@ -746,71 +746,71 @@ static int snd_p16v_volume_put(snd_kcontrol_t * kcontrol, ...@@ -746,71 +746,71 @@ static int snd_p16v_volume_put(snd_kcontrol_t * kcontrol,
return 1; return 1;
} }
static int snd_p16v_volume_put_spdif_front(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put_spdif_front(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 0; int high_low = 0;
int reg = PLAYBACK_VOLUME_MIXER7; int reg = PLAYBACK_VOLUME_MIXER7;
return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_put_spdif_center_lfe(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put_spdif_center_lfe(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 1; int high_low = 1;
int reg = PLAYBACK_VOLUME_MIXER7; int reg = PLAYBACK_VOLUME_MIXER7;
return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_put_spdif_unknown(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put_spdif_unknown(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 0; int high_low = 0;
int reg = PLAYBACK_VOLUME_MIXER8; int reg = PLAYBACK_VOLUME_MIXER8;
return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_put_spdif_rear(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put_spdif_rear(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 1; int high_low = 1;
int reg = PLAYBACK_VOLUME_MIXER8; int reg = PLAYBACK_VOLUME_MIXER8;
return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_put_analog_front(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put_analog_front(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 0; int high_low = 0;
int reg = PLAYBACK_VOLUME_MIXER9; int reg = PLAYBACK_VOLUME_MIXER9;
return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_put_analog_center_lfe(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put_analog_center_lfe(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 1; int high_low = 1;
int reg = PLAYBACK_VOLUME_MIXER9; int reg = PLAYBACK_VOLUME_MIXER9;
return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_put_analog_rear(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put_analog_rear(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 1; int high_low = 1;
int reg = PLAYBACK_VOLUME_MIXER10; int reg = PLAYBACK_VOLUME_MIXER10;
return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low);
} }
static int snd_p16v_volume_put_analog_unknown(snd_kcontrol_t * kcontrol, static int snd_p16v_volume_put_analog_unknown(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
int high_low = 0; int high_low = 0;
int reg = PLAYBACK_VOLUME_MIXER10; int reg = PLAYBACK_VOLUME_MIXER10;
return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low); return snd_p16v_volume_put(kcontrol, ucontrol, reg, high_low);
} }
static snd_kcontrol_new_t snd_p16v_volume_control_analog_front = static struct snd_kcontrol_new snd_p16v_volume_control_analog_front =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD Analog Front Playback Volume", .name = "HD Analog Front Playback Volume",
...@@ -819,7 +819,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_front = ...@@ -819,7 +819,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_front =
.put = snd_p16v_volume_put_analog_front .put = snd_p16v_volume_put_analog_front
}; };
static snd_kcontrol_new_t snd_p16v_volume_control_analog_center_lfe = static struct snd_kcontrol_new snd_p16v_volume_control_analog_center_lfe =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD Analog Center/LFE Playback Volume", .name = "HD Analog Center/LFE Playback Volume",
...@@ -828,7 +828,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_center_lfe = ...@@ -828,7 +828,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_center_lfe =
.put = snd_p16v_volume_put_analog_center_lfe .put = snd_p16v_volume_put_analog_center_lfe
}; };
static snd_kcontrol_new_t snd_p16v_volume_control_analog_unknown = static struct snd_kcontrol_new snd_p16v_volume_control_analog_unknown =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD Analog Unknown Playback Volume", .name = "HD Analog Unknown Playback Volume",
...@@ -837,7 +837,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_unknown = ...@@ -837,7 +837,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_unknown =
.put = snd_p16v_volume_put_analog_unknown .put = snd_p16v_volume_put_analog_unknown
}; };
static snd_kcontrol_new_t snd_p16v_volume_control_analog_rear = static struct snd_kcontrol_new snd_p16v_volume_control_analog_rear =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD Analog Rear Playback Volume", .name = "HD Analog Rear Playback Volume",
...@@ -846,7 +846,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_rear = ...@@ -846,7 +846,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_analog_rear =
.put = snd_p16v_volume_put_analog_rear .put = snd_p16v_volume_put_analog_rear
}; };
static snd_kcontrol_new_t snd_p16v_volume_control_spdif_front = static struct snd_kcontrol_new snd_p16v_volume_control_spdif_front =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD SPDIF Front Playback Volume", .name = "HD SPDIF Front Playback Volume",
...@@ -855,7 +855,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_front = ...@@ -855,7 +855,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_front =
.put = snd_p16v_volume_put_spdif_front .put = snd_p16v_volume_put_spdif_front
}; };
static snd_kcontrol_new_t snd_p16v_volume_control_spdif_center_lfe = static struct snd_kcontrol_new snd_p16v_volume_control_spdif_center_lfe =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD SPDIF Center/LFE Playback Volume", .name = "HD SPDIF Center/LFE Playback Volume",
...@@ -864,7 +864,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_center_lfe = ...@@ -864,7 +864,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_center_lfe =
.put = snd_p16v_volume_put_spdif_center_lfe .put = snd_p16v_volume_put_spdif_center_lfe
}; };
static snd_kcontrol_new_t snd_p16v_volume_control_spdif_unknown = static struct snd_kcontrol_new snd_p16v_volume_control_spdif_unknown =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD SPDIF Unknown Playback Volume", .name = "HD SPDIF Unknown Playback Volume",
...@@ -873,7 +873,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_unknown = ...@@ -873,7 +873,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_unknown =
.put = snd_p16v_volume_put_spdif_unknown .put = snd_p16v_volume_put_spdif_unknown
}; };
static snd_kcontrol_new_t snd_p16v_volume_control_spdif_rear = static struct snd_kcontrol_new snd_p16v_volume_control_spdif_rear =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD SPDIF Rear Playback Volume", .name = "HD SPDIF Rear Playback Volume",
...@@ -882,7 +882,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_rear = ...@@ -882,7 +882,7 @@ static snd_kcontrol_new_t snd_p16v_volume_control_spdif_rear =
.put = snd_p16v_volume_put_spdif_rear .put = snd_p16v_volume_put_spdif_rear
}; };
static int snd_p16v_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_p16v_capture_source_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[8] = { "SPDIF", "I2S", "SRC48", "SRCMulti_SPDIF", "SRCMulti_I2S", "CDIF", "FX", "AC97" }; static char *texts[8] = { "SPDIF", "I2S", "SRC48", "SRCMulti_SPDIF", "SRCMulti_I2S", "CDIF", "FX", "AC97" };
...@@ -895,19 +895,19 @@ static int snd_p16v_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i ...@@ -895,19 +895,19 @@ static int snd_p16v_capture_source_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_i
return 0; return 0;
} }
static int snd_p16v_capture_source_get(snd_kcontrol_t * kcontrol, static int snd_p16v_capture_source_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
ucontrol->value.enumerated.item[0] = emu->p16v_capture_source; ucontrol->value.enumerated.item[0] = emu->p16v_capture_source;
return 0; return 0;
} }
static int snd_p16v_capture_source_put(snd_kcontrol_t * kcontrol, static int snd_p16v_capture_source_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
unsigned int val; unsigned int val;
int change = 0; int change = 0;
u32 mask; u32 mask;
...@@ -924,7 +924,7 @@ static int snd_p16v_capture_source_put(snd_kcontrol_t * kcontrol, ...@@ -924,7 +924,7 @@ static int snd_p16v_capture_source_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_p16v_capture_source __devinitdata = static struct snd_kcontrol_new snd_p16v_capture_source __devinitdata =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD source Capture", .name = "HD source Capture",
...@@ -933,7 +933,7 @@ static snd_kcontrol_new_t snd_p16v_capture_source __devinitdata = ...@@ -933,7 +933,7 @@ static snd_kcontrol_new_t snd_p16v_capture_source __devinitdata =
.put = snd_p16v_capture_source_put .put = snd_p16v_capture_source_put
}; };
static int snd_p16v_capture_channel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_info_t * uinfo) static int snd_p16v_capture_channel_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo)
{ {
static char *texts[4] = { "0", "1", "2", "3", }; static char *texts[4] = { "0", "1", "2", "3", };
...@@ -946,19 +946,19 @@ static int snd_p16v_capture_channel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_ ...@@ -946,19 +946,19 @@ static int snd_p16v_capture_channel_info(snd_kcontrol_t *kcontrol, snd_ctl_elem_
return 0; return 0;
} }
static int snd_p16v_capture_channel_get(snd_kcontrol_t * kcontrol, static int snd_p16v_capture_channel_get(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
ucontrol->value.enumerated.item[0] = emu->p16v_capture_channel; ucontrol->value.enumerated.item[0] = emu->p16v_capture_channel;
return 0; return 0;
} }
static int snd_p16v_capture_channel_put(snd_kcontrol_t * kcontrol, static int snd_p16v_capture_channel_put(struct snd_kcontrol *kcontrol,
snd_ctl_elem_value_t * ucontrol) struct snd_ctl_elem_value *ucontrol)
{ {
emu10k1_t *emu = snd_kcontrol_chip(kcontrol); struct snd_emu10k1 *emu = snd_kcontrol_chip(kcontrol);
unsigned int val; unsigned int val;
int change = 0; int change = 0;
u32 tmp; u32 tmp;
...@@ -973,7 +973,7 @@ static int snd_p16v_capture_channel_put(snd_kcontrol_t * kcontrol, ...@@ -973,7 +973,7 @@ static int snd_p16v_capture_channel_put(snd_kcontrol_t * kcontrol,
return change; return change;
} }
static snd_kcontrol_new_t snd_p16v_capture_channel __devinitdata = static struct snd_kcontrol_new snd_p16v_capture_channel __devinitdata =
{ {
.iface = SNDRV_CTL_ELEM_IFACE_MIXER, .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
.name = "HD channel Capture", .name = "HD channel Capture",
...@@ -982,11 +982,11 @@ static snd_kcontrol_new_t snd_p16v_capture_channel __devinitdata = ...@@ -982,11 +982,11 @@ static snd_kcontrol_new_t snd_p16v_capture_channel __devinitdata =
.put = snd_p16v_capture_channel_put .put = snd_p16v_capture_channel_put
}; };
int snd_p16v_mixer(emu10k1_t *emu) int snd_p16v_mixer(struct snd_emu10k1 *emu)
{ {
int err; int err;
snd_kcontrol_t *kctl; struct snd_kcontrol *kctl;
snd_card_t *card = emu->card; struct snd_card *card = emu->card;
if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_analog_front, emu)) == NULL) if ((kctl = snd_ctl_new1(&snd_p16v_volume_control_analog_front, emu)) == NULL)
return -ENOMEM; return -ENOMEM;
if ((err = snd_ctl_add(card, kctl))) if ((err = snd_ctl_add(card, kctl)))
......
...@@ -30,9 +30,9 @@ ...@@ -30,9 +30,9 @@
#include <sound/core.h> #include <sound/core.h>
#include <sound/emu10k1.h> #include <sound/emu10k1.h>
static int snd_emu10k1_timer_start(snd_timer_t *timer) static int snd_emu10k1_timer_start(struct snd_timer *timer)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
unsigned long flags; unsigned long flags;
unsigned int delay; unsigned int delay;
...@@ -47,9 +47,9 @@ static int snd_emu10k1_timer_start(snd_timer_t *timer) ...@@ -47,9 +47,9 @@ static int snd_emu10k1_timer_start(snd_timer_t *timer)
return 0; return 0;
} }
static int snd_emu10k1_timer_stop(snd_timer_t *timer) static int snd_emu10k1_timer_stop(struct snd_timer *timer)
{ {
emu10k1_t *emu; struct snd_emu10k1 *emu;
unsigned long flags; unsigned long flags;
emu = snd_timer_chip(timer); emu = snd_timer_chip(timer);
...@@ -59,7 +59,7 @@ static int snd_emu10k1_timer_stop(snd_timer_t *timer) ...@@ -59,7 +59,7 @@ static int snd_emu10k1_timer_stop(snd_timer_t *timer)
return 0; return 0;
} }
static int snd_emu10k1_timer_precise_resolution(snd_timer_t *timer, static int snd_emu10k1_timer_precise_resolution(struct snd_timer *timer,
unsigned long *num, unsigned long *den) unsigned long *num, unsigned long *den)
{ {
*num = 1; *num = 1;
...@@ -67,7 +67,7 @@ static int snd_emu10k1_timer_precise_resolution(snd_timer_t *timer, ...@@ -67,7 +67,7 @@ static int snd_emu10k1_timer_precise_resolution(snd_timer_t *timer,
return 0; return 0;
} }
static struct _snd_timer_hardware snd_emu10k1_timer_hw = { static struct snd_timer_hardware snd_emu10k1_timer_hw = {
.flags = SNDRV_TIMER_HW_AUTO, .flags = SNDRV_TIMER_HW_AUTO,
.resolution = 20833, /* 1 sample @ 48KHZ = 20.833...us */ .resolution = 20833, /* 1 sample @ 48KHZ = 20.833...us */
.ticks = 1024, .ticks = 1024,
...@@ -76,10 +76,10 @@ static struct _snd_timer_hardware snd_emu10k1_timer_hw = { ...@@ -76,10 +76,10 @@ static struct _snd_timer_hardware snd_emu10k1_timer_hw = {
.precise_resolution = snd_emu10k1_timer_precise_resolution, .precise_resolution = snd_emu10k1_timer_precise_resolution,
}; };
int __devinit snd_emu10k1_timer(emu10k1_t *emu, int device) int __devinit snd_emu10k1_timer(struct snd_emu10k1 *emu, int device)
{ {
snd_timer_t *timer = NULL; struct snd_timer *timer = NULL;
snd_timer_id_t tid; struct snd_timer_id tid;
int err; int err;
tid.dev_class = SNDRV_TIMER_CLASS_CARD; tid.dev_class = SNDRV_TIMER_CLASS_CARD;
......
...@@ -45,9 +45,10 @@ ...@@ -45,9 +45,10 @@
* --rlrevell * --rlrevell
*/ */
static int voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int number, emu10k1_voice_t **rvoice) static int voice_alloc(struct snd_emu10k1 *emu, int type, int number,
struct snd_emu10k1_voice **rvoice)
{ {
emu10k1_voice_t *voice; struct snd_emu10k1_voice *voice;
int i, j, k, first_voice, last_voice, skip; int i, j, k, first_voice, last_voice, skip;
*rvoice = NULL; *rvoice = NULL;
...@@ -105,7 +106,8 @@ static int voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int number, em ...@@ -105,7 +106,8 @@ static int voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int number, em
return 0; return 0;
} }
int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int number, emu10k1_voice_t **rvoice) int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int number,
struct snd_emu10k1_voice **rvoice)
{ {
unsigned long flags; unsigned long flags;
int result; int result;
...@@ -123,7 +125,7 @@ int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int numbe ...@@ -123,7 +125,7 @@ int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int numbe
if (emu->get_synth_voice) { if (emu->get_synth_voice) {
result = emu->get_synth_voice(emu); result = emu->get_synth_voice(emu);
if (result >= 0) { if (result >= 0) {
emu10k1_voice_t *pvoice = &emu->voices[result]; struct snd_emu10k1_voice *pvoice = &emu->voices[result];
pvoice->interrupt = NULL; pvoice->interrupt = NULL;
pvoice->use = pvoice->pcm = pvoice->synth = pvoice->midi = pvoice->efx = 0; pvoice->use = pvoice->pcm = pvoice->synth = pvoice->midi = pvoice->efx = 0;
pvoice->epcm = NULL; pvoice->epcm = NULL;
...@@ -137,7 +139,8 @@ int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int numbe ...@@ -137,7 +139,8 @@ int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int numbe
return result; return result;
} }
int snd_emu10k1_voice_free(emu10k1_t *emu, emu10k1_voice_t *pvoice) int snd_emu10k1_voice_free(struct snd_emu10k1 *emu,
struct snd_emu10k1_voice *pvoice)
{ {
unsigned long flags; unsigned long flags;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment