···887887888888/* ------------------- STRUCTURES -------------------- */889889890890-typedef struct _snd_emu10k1 emu10k1_t;891891-typedef struct _snd_emu10k1_voice emu10k1_voice_t;892892-typedef struct _snd_emu10k1_pcm emu10k1_pcm_t;893893-894894-typedef enum {890890+enum {895891 EMU10K1_EFX,896892 EMU10K1_PCM,897893 EMU10K1_SYNTH,898894 EMU10K1_MIDI899899-} emu10k1_voice_type_t;895895+};900896901901-struct _snd_emu10k1_voice {902902- emu10k1_t *emu;897897+struct snd_emu10k1;898898+899899+struct snd_emu10k1_voice {900900+ struct snd_emu10k1 *emu;903901 int number;904902 unsigned int use: 1,905903 pcm: 1,906904 efx: 1,907905 synth: 1,908906 midi: 1;909909- void (*interrupt)(emu10k1_t *emu, emu10k1_voice_t *pvoice);907907+ void (*interrupt)(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice);910908911911- emu10k1_pcm_t *epcm;909909+ struct snd_emu10k1_pcm *epcm;912910};913911914914-typedef enum {912912+enum {915913 PLAYBACK_EMUVOICE,916914 PLAYBACK_EFX,917915 CAPTURE_AC97ADC,918916 CAPTURE_AC97MIC,919917 CAPTURE_EFX920920-} snd_emu10k1_pcm_type_t;918918+};921919922922-struct _snd_emu10k1_pcm {923923- emu10k1_t *emu;924924- snd_emu10k1_pcm_type_t type;925925- snd_pcm_substream_t *substream;926926- emu10k1_voice_t *voices[NUM_EFX_PLAYBACK];927927- emu10k1_voice_t *extra;920920+struct snd_emu10k1_pcm {921921+ struct snd_emu10k1 *emu;922922+ int type;923923+ struct snd_pcm_substream *substream;924924+ struct snd_emu10k1_voice *voices[NUM_EFX_PLAYBACK];925925+ struct snd_emu10k1_voice *extra;928926 unsigned short running;929927 unsigned short first_ptr;930930- snd_util_memblk_t *memblk;928928+ struct snd_util_memblk *memblk;931929 unsigned int start_addr;932930 unsigned int ccca_start_addr;933931 unsigned int capture_ipr; /* interrupt acknowledge mask */···939941 unsigned int capture_bufsize; /* buffer size in bytes */940942};941943942942-typedef struct {944944+struct snd_emu10k1_pcm_mixer {943945 /* mono, left, right x 8 sends (4 on emu10k1) */944946 unsigned char send_routing[3][8];945947 unsigned char send_volume[3][8];946948 unsigned short attn[3];947947- emu10k1_pcm_t *epcm;948948-} emu10k1_pcm_mixer_t;949949+ struct snd_emu10k1_pcm *epcm;950950+};949951950952#define snd_emu10k1_compose_send_routing(route) \951953((route[0] | (route[1] << 4) | (route[2] << 8) | (route[3] << 12)) << 16)···956958#define snd_emu10k1_compose_audigy_fxrt2(route) \957959((unsigned int)route[4] | ((unsigned int)route[5] << 8) | ((unsigned int)route[6] << 16) | ((unsigned int)route[7] << 24))958960959959-typedef struct snd_emu10k1_memblk {960960- snd_util_memblk_t mem;961961+struct snd_emu10k1_memblk {962962+ struct snd_util_memblk mem;961963 /* private part */962964 int first_page, last_page, pages, mapped_page;963965 unsigned int map_locked;964966 struct list_head mapped_link;965967 struct list_head mapped_order_link;966966-} emu10k1_memblk_t;968968+};967969968970#define snd_emu10k1_memblk_offset(blk) (((blk)->mapped_page << PAGE_SHIFT) | ((blk)->mem.offset & (PAGE_SIZE - 1)))969971970972#define EMU10K1_MAX_TRAM_BLOCKS_PER_CODE 16971973972972-typedef struct {974974+struct snd_emu10k1_fx8010_ctl {973975 struct list_head list; /* list link container */974976 unsigned int vcount;975977 unsigned int count; /* count of GPR (1..16) */···978980 unsigned int min; /* minimum range */979981 unsigned int max; /* maximum range */980982 unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */981981- snd_kcontrol_t *kcontrol;982982-} snd_emu10k1_fx8010_ctl_t;983983+ struct snd_kcontrol *kcontrol;984984+};983985984984-typedef void (snd_fx8010_irq_handler_t)(emu10k1_t *emu, void *private_data);986986+typedef void (snd_fx8010_irq_handler_t)(struct snd_emu10k1 *emu, void *private_data);985987986986-typedef struct _snd_emu10k1_fx8010_irq {987987- struct _snd_emu10k1_fx8010_irq *next;988988+struct snd_emu10k1_fx8010_irq {989989+ struct snd_emu10k1_fx8010_irq *next;988990 snd_fx8010_irq_handler_t *handler;989991 unsigned short gpr_running;990992 void *private_data;991991-} snd_emu10k1_fx8010_irq_t;993993+};992994993993-typedef struct {995995+struct snd_emu10k1_fx8010_pcm {994996 unsigned int valid: 1,995997 opened: 1,996998 active: 1;···10041006 unsigned short gpr_trigger; /* GPR containing trigger (activate) information (host) */10051007 unsigned short gpr_running; /* GPR containing info if PCM is running (FX8010) */10061008 unsigned char etram[32]; /* external TRAM address & data */10071007- snd_pcm_indirect_t pcm_rec;10091009+ struct snd_pcm_indirect pcm_rec;10081010 unsigned int tram_pos;10091011 unsigned int tram_shift;10101010- snd_emu10k1_fx8010_irq_t *irq;10111011-} snd_emu10k1_fx8010_pcm_t;10121012+ struct snd_emu10k1_fx8010_irq *irq;10131013+};1012101410131013-typedef struct {10151015+struct snd_emu10k1_fx8010 {10141016 unsigned short fxbus_mask; /* used FX buses (bitmask) */10151017 unsigned short extin_mask; /* used external inputs (bitmask) */10161018 unsigned short extout_mask; /* used external outputs (bitmask) */···10231025 int gpr_count; /* count of used kcontrols */10241026 struct list_head gpr_ctl; /* GPR controls */10251027 struct semaphore lock;10261026- snd_emu10k1_fx8010_pcm_t pcm[8];10281028+ struct snd_emu10k1_fx8010_pcm pcm[8];10271029 spinlock_t irq_lock;10281028- snd_emu10k1_fx8010_irq_t *irq_handlers;10291029-} snd_emu10k1_fx8010_t;10301030+ struct snd_emu10k1_fx8010_irq *irq_handlers;10311031+};1030103210311031-#define emu10k1_gpr_ctl(n) list_entry(n, snd_emu10k1_fx8010_ctl_t, list)10331033+#define emu10k1_gpr_ctl(n) list_entry(n, struct snd_emu10k1_fx8010_ctl, list)1032103410331033-typedef struct {10341034- struct _snd_emu10k1 *emu;10351035- snd_rawmidi_t *rmidi;10361036- snd_rawmidi_substream_t *substream_input;10371037- snd_rawmidi_substream_t *substream_output;10351035+struct snd_emu10k1_midi {10361036+ struct snd_emu10k1 *emu;10371037+ struct snd_rawmidi *rmidi;10381038+ struct snd_rawmidi_substream *substream_input;10391039+ struct snd_rawmidi_substream *substream_output;10381040 unsigned int midi_mode;10391041 spinlock_t input_lock;10401042 spinlock_t output_lock;···10421044 int tx_enable, rx_enable;10431045 int port;10441046 int ipr_tx, ipr_rx;10451045- void (*interrupt)(emu10k1_t *emu, unsigned int status);10461046-} emu10k1_midi_t;10471047+ void (*interrupt)(struct snd_emu10k1 *emu, unsigned int status);10481048+};1047104910481048-typedef struct {10501050+struct snd_emu_chip_details {10491051 u32 vendor;10501052 u32 device;10511053 u32 subsystem;···10641066 const char *driver;10651067 const char *name;10661068 const char *id; /* for backward compatibility - can be NULL if not needed */10671067-} emu_chip_details_t;10691069+};1068107010691069-struct _snd_emu10k1 {10711071+struct snd_emu10k1 {10701072 int irq;1071107310721074 unsigned long port; /* I/O port number */10731075 unsigned int tos_link: 1, /* tos link detected */10741076 rear_ac97: 1; /* rear channels are on AC'97 */10751075- const emu_chip_details_t *card_capabilities; /* Contains profile of card capabilities */10771077+ /* Contains profile of card capabilities */10781078+ const struct snd_emu_chip_details *card_capabilities;10761079 unsigned int audigy; /* is Audigy? */10771080 unsigned int revision; /* chip revision */10781081 unsigned int serial; /* serial number */···10871088 struct snd_dma_device p16v_dma_dev;10881089 struct snd_dma_buffer p16v_buffer;1089109010901090- snd_util_memhdr_t *memhdr; /* page allocation list */10911091- emu10k1_memblk_t *reserved_page; /* reserved page */10911091+ struct snd_util_memhdr *memhdr; /* page allocation list */10921092+ struct snd_emu10k1_memblk *reserved_page; /* reserved page */1092109310931094 struct list_head mapped_link_head;10941095 struct list_head mapped_order_link_head;···1098109910991100 unsigned int spdif_bits[3]; /* s/pdif out setup */1100110111011101- snd_emu10k1_fx8010_t fx8010; /* FX8010 info */11021102+ struct snd_emu10k1_fx8010 fx8010; /* FX8010 info */11021103 int gpr_base;1103110411041104- ac97_t *ac97;11051105+ struct snd_ac97 *ac97;1105110611061107 struct pci_dev *pci;11071107- snd_card_t *card;11081108- snd_pcm_t *pcm;11091109- snd_pcm_t *pcm_mic;11101110- snd_pcm_t *pcm_efx;11111111- snd_pcm_t *pcm_p16v;11081108+ struct snd_card *card;11091109+ struct snd_pcm *pcm;11101110+ struct snd_pcm *pcm_mic;11111111+ struct snd_pcm *pcm_efx;11121112+ struct snd_pcm *pcm_p16v;1112111311131114 spinlock_t synth_lock;11141115 void *synth;11151115- int (*get_synth_voice)(emu10k1_t *emu);11161116+ int (*get_synth_voice)(struct snd_emu10k1 *emu);1116111711171118 spinlock_t reg_lock;11181119 spinlock_t emu_lock;11191120 spinlock_t voice_lock;11201121 struct semaphore ptb_lock;1121112211221122- emu10k1_voice_t voices[NUM_G];11231123- emu10k1_voice_t p16v_voices[4];11241124- emu10k1_voice_t p16v_capture_voice;11231123+ struct snd_emu10k1_voice voices[NUM_G];11241124+ struct snd_emu10k1_voice p16v_voices[4];11251125+ struct snd_emu10k1_voice p16v_capture_voice;11251126 int p16v_device_offset;11261127 u32 p16v_capture_source;11271128 u32 p16v_capture_channel;11281128- emu10k1_pcm_mixer_t pcm_mixer[32];11291129- emu10k1_pcm_mixer_t efx_pcm_mixer[NUM_EFX_PLAYBACK];11301130- snd_kcontrol_t *ctl_send_routing;11311131- snd_kcontrol_t *ctl_send_volume;11321132- snd_kcontrol_t *ctl_attn;11331133- snd_kcontrol_t *ctl_efx_send_routing;11341134- snd_kcontrol_t *ctl_efx_send_volume;11351135- snd_kcontrol_t *ctl_efx_attn;11291129+ struct snd_emu10k1_pcm_mixer pcm_mixer[32];11301130+ struct snd_emu10k1_pcm_mixer efx_pcm_mixer[NUM_EFX_PLAYBACK];11311131+ struct snd_kcontrol *ctl_send_routing;11321132+ struct snd_kcontrol *ctl_send_volume;11331133+ struct snd_kcontrol *ctl_attn;11341134+ struct snd_kcontrol *ctl_efx_send_routing;11351135+ struct snd_kcontrol *ctl_efx_send_volume;11361136+ struct snd_kcontrol *ctl_efx_attn;1136113711371137- void (*hwvol_interrupt)(emu10k1_t *emu, unsigned int status);11381138- void (*capture_interrupt)(emu10k1_t *emu, unsigned int status);11391139- void (*capture_mic_interrupt)(emu10k1_t *emu, unsigned int status);11401140- void (*capture_efx_interrupt)(emu10k1_t *emu, unsigned int status);11411141- void (*spdif_interrupt)(emu10k1_t *emu, unsigned int status);11421142- void (*dsp_interrupt)(emu10k1_t *emu);11381138+ void (*hwvol_interrupt)(struct snd_emu10k1 *emu, unsigned int status);11391139+ void (*capture_interrupt)(struct snd_emu10k1 *emu, unsigned int status);11401140+ void (*capture_mic_interrupt)(struct snd_emu10k1 *emu, unsigned int status);11411141+ void (*capture_efx_interrupt)(struct snd_emu10k1 *emu, unsigned int status);11421142+ void (*spdif_interrupt)(struct snd_emu10k1 *emu, unsigned int status);11431143+ void (*dsp_interrupt)(struct snd_emu10k1 *emu);1143114411441144- snd_pcm_substream_t *pcm_capture_substream;11451145- snd_pcm_substream_t *pcm_capture_mic_substream;11461146- snd_pcm_substream_t *pcm_capture_efx_substream;11471147- snd_pcm_substream_t *pcm_playback_efx_substream;11451145+ struct snd_pcm_substream *pcm_capture_substream;11461146+ struct snd_pcm_substream *pcm_capture_mic_substream;11471147+ struct snd_pcm_substream *pcm_capture_efx_substream;11481148+ struct snd_pcm_substream *pcm_playback_efx_substream;1148114911491149- snd_timer_t *timer;11501150+ struct snd_timer *timer;1150115111511151- emu10k1_midi_t midi;11521152- emu10k1_midi_t midi2; /* for audigy */11521152+ struct snd_emu10k1_midi midi;11531153+ struct snd_emu10k1_midi midi2; /* for audigy */1153115411541155 unsigned int efx_voices_mask[2];11551156 unsigned int next_free_voice;11561157};1157115811581158-int snd_emu10k1_create(snd_card_t * card,11591159+int snd_emu10k1_create(struct snd_card *card,11591160 struct pci_dev *pci,11601161 unsigned short extin_mask,11611162 unsigned short extout_mask,11621163 long max_cache_bytes,11631164 int enable_ir,11641165 uint subsystem,11651165- emu10k1_t ** remu);11661166+ struct snd_emu10k1 ** remu);1166116711671167-int snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm);11681168-int snd_emu10k1_pcm_mic(emu10k1_t * emu, int device, snd_pcm_t ** rpcm);11691169-int snd_emu10k1_pcm_efx(emu10k1_t * emu, int device, snd_pcm_t ** rpcm);11701170-int snd_p16v_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm);11711171-int snd_p16v_free(emu10k1_t * emu);11721172-int snd_p16v_mixer(emu10k1_t * emu);11731173-int snd_emu10k1_pcm_multi(emu10k1_t * emu, int device, snd_pcm_t ** rpcm);11741174-int snd_emu10k1_fx8010_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm);11751175-int snd_emu10k1_mixer(emu10k1_t * emu, int pcm_device, int multi_device);11761176-int snd_emu10k1_timer(emu10k1_t * emu, int device);11771177-int snd_emu10k1_fx8010_new(emu10k1_t *emu, int device, snd_hwdep_t ** rhwdep);11681168+int snd_emu10k1_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);11691169+int snd_emu10k1_pcm_mic(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);11701170+int snd_emu10k1_pcm_efx(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);11711171+int snd_p16v_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);11721172+int snd_p16v_free(struct snd_emu10k1 * emu);11731173+int snd_p16v_mixer(struct snd_emu10k1 * emu);11741174+int snd_emu10k1_pcm_multi(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);11751175+int snd_emu10k1_fx8010_pcm(struct snd_emu10k1 * emu, int device, struct snd_pcm ** rpcm);11761176+int snd_emu10k1_mixer(struct snd_emu10k1 * emu, int pcm_device, int multi_device);11771177+int snd_emu10k1_timer(struct snd_emu10k1 * emu, int device);11781178+int snd_emu10k1_fx8010_new(struct snd_emu10k1 *emu, int device, struct snd_hwdep ** rhwdep);1178117911791180irqreturn_t snd_emu10k1_interrupt(int irq, void *dev_id, struct pt_regs *regs);1180118111811182/* initialization */11821182-void snd_emu10k1_voice_init(emu10k1_t * emu, int voice);11831183-int snd_emu10k1_init_efx(emu10k1_t *emu);11841184-void snd_emu10k1_free_efx(emu10k1_t *emu);11851185-int snd_emu10k1_fx8010_tram_setup(emu10k1_t *emu, u32 size);11831183+void snd_emu10k1_voice_init(struct snd_emu10k1 * emu, int voice);11841184+int snd_emu10k1_init_efx(struct snd_emu10k1 *emu);11851185+void snd_emu10k1_free_efx(struct snd_emu10k1 *emu);11861186+int snd_emu10k1_fx8010_tram_setup(struct snd_emu10k1 *emu, u32 size);1186118711871188/* I/O functions */11881188-unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned int chn);11891189-void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data);11901190-unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu, unsigned int reg, unsigned int chn);11911191-void snd_emu10k1_ptr20_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data);11921192-unsigned int snd_emu10k1_efx_read(emu10k1_t *emu, unsigned int pc);11931193-void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb);11941194-void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb);11951195-void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum);11961196-void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum);11971197-void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum);11981198-void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicenum);11991199-void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voicenum);12001200-void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum);12011201-void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum);12021202-void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum);12031203-void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait);12041204-static inline unsigned int snd_emu10k1_wc(emu10k1_t *emu) { return (inl(emu->port + WC) >> 6) & 0xfffff; }12051205-unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg);12061206-void snd_emu10k1_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short data);11891189+unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);11901190+void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);11911191+unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn);11921192+void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data);11931193+unsigned int snd_emu10k1_efx_read(struct snd_emu10k1 *emu, unsigned int pc);11941194+void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb);11951195+void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb);11961196+void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum);11971197+void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum);11981198+void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum);11991199+void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum);12001200+void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum);12011201+void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum);12021202+void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum);12031203+void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum);12041204+void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait);12051205+static inline unsigned int snd_emu10k1_wc(struct snd_emu10k1 *emu) { return (inl(emu->port + WC) >> 6) & 0xfffff; }12061206+unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg);12071207+void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data);12071208unsigned int snd_emu10k1_rate_to_pitch(unsigned int rate);1208120912091210/* memory allocation */12101210-snd_util_memblk_t *snd_emu10k1_alloc_pages(emu10k1_t *emu, snd_pcm_substream_t *substream);12111211-int snd_emu10k1_free_pages(emu10k1_t *emu, snd_util_memblk_t *blk);12121212-snd_util_memblk_t *snd_emu10k1_synth_alloc(emu10k1_t *emu, unsigned int size);12131213-int snd_emu10k1_synth_free(emu10k1_t *emu, snd_util_memblk_t *blk);12141214-int snd_emu10k1_synth_bzero(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, int size);12151215-int snd_emu10k1_synth_copy_from_user(emu10k1_t *emu, snd_util_memblk_t *blk, int offset, const char __user *data, int size);12161216-int snd_emu10k1_memblk_map(emu10k1_t *emu, emu10k1_memblk_t *blk);12111211+struct snd_util_memblk *snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *substream);12121212+int snd_emu10k1_free_pages(struct snd_emu10k1 *emu, struct snd_util_memblk *blk);12131213+struct snd_util_memblk *snd_emu10k1_synth_alloc(struct snd_emu10k1 *emu, unsigned int size);12141214+int snd_emu10k1_synth_free(struct snd_emu10k1 *emu, struct snd_util_memblk *blk);12151215+int snd_emu10k1_synth_bzero(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, int size);12161216+int snd_emu10k1_synth_copy_from_user(struct snd_emu10k1 *emu, struct snd_util_memblk *blk, int offset, const char __user *data, int size);12171217+int snd_emu10k1_memblk_map(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk *blk);1217121812181219/* voice allocation */12191219-int snd_emu10k1_voice_alloc(emu10k1_t *emu, emu10k1_voice_type_t type, int pair, emu10k1_voice_t **rvoice);12201220-int snd_emu10k1_voice_free(emu10k1_t *emu, emu10k1_voice_t *pvoice);12201220+int snd_emu10k1_voice_alloc(struct snd_emu10k1 *emu, int type, int pair, struct snd_emu10k1_voice **rvoice);12211221+int snd_emu10k1_voice_free(struct snd_emu10k1 *emu, struct snd_emu10k1_voice *pvoice);1221122212221223/* MIDI uart */12231223-int snd_emu10k1_midi(emu10k1_t * emu);12241224-int snd_emu10k1_audigy_midi(emu10k1_t * emu);12241224+int snd_emu10k1_midi(struct snd_emu10k1 * emu);12251225+int snd_emu10k1_audigy_midi(struct snd_emu10k1 * emu);1225122612261227/* proc interface */12271227-int snd_emu10k1_proc_init(emu10k1_t * emu);12281228+int snd_emu10k1_proc_init(struct snd_emu10k1 * emu);1228122912291230/* fx8010 irq handler */12301230-int snd_emu10k1_fx8010_register_irq_handler(emu10k1_t *emu,12311231+int snd_emu10k1_fx8010_register_irq_handler(struct snd_emu10k1 *emu,12311232 snd_fx8010_irq_handler_t *handler,12321233 unsigned char gpr_running,12331234 void *private_data,12341234- snd_emu10k1_fx8010_irq_t **r_irq);12351235-int snd_emu10k1_fx8010_unregister_irq_handler(emu10k1_t *emu,12361236- snd_emu10k1_fx8010_irq_t *irq);12351235+ struct snd_emu10k1_fx8010_irq **r_irq);12361236+int snd_emu10k1_fx8010_unregister_irq_handler(struct snd_emu10k1 *emu,12371237+ struct snd_emu10k1_fx8010_irq *irq);1237123812381239#endif /* __KERNEL__ */12391240···14681469#define TANKMEMADDRREG_READ 0x00100000 /* Read from tank memory */14691470#endif1470147114711471-typedef struct {14721472+struct snd_emu10k1_fx8010_info {14721473 unsigned int internal_tram_size; /* in samples */14731474 unsigned int external_tram_size; /* in samples */14741475 char fxbus_names[16][32]; /* names of FXBUSes */14751476 char extin_names[16][32]; /* names of external inputs */14761477 char extout_names[32][32]; /* names of external outputs */14771478 unsigned int gpr_controls; /* count of GPR controls */14781478-} emu10k1_fx8010_info_t;14791479+};1479148014801481#define EMU10K1_GPR_TRANSLATION_NONE 014811482#define EMU10K1_GPR_TRANSLATION_TABLE100 1···14831484#define EMU10K1_GPR_TRANSLATION_TREBLE 314841485#define EMU10K1_GPR_TRANSLATION_ONOFF 41485148614861486-typedef struct {14871487- snd_ctl_elem_id_t id; /* full control ID definition */14871487+struct snd_emu10k1_fx8010_control_gpr {14881488+ struct snd_ctl_elem_id id; /* full control ID definition */14881489 unsigned int vcount; /* visible count */14891490 unsigned int count; /* count of GPR (1..16) */14901491 unsigned short gpr[32]; /* GPR number(s) */···14921493 unsigned int min; /* minimum range */14931494 unsigned int max; /* maximum range */14941495 unsigned int translation; /* translation type (EMU10K1_GPR_TRANSLATION*) */14951495-} emu10k1_fx8010_control_gpr_t;14961496+};1496149714971497-typedef struct {14981498+struct snd_emu10k1_fx8010_code {14981499 char name[128];1499150015001501 DECLARE_BITMAP(gpr_valid, 0x200); /* bitmask of valid initializers */15011502 u_int32_t __user *gpr_map; /* initializers */1502150315031504 unsigned int gpr_add_control_count; /* count of GPR controls to add/replace */15041504- emu10k1_fx8010_control_gpr_t __user *gpr_add_controls; /* GPR controls to add/replace */15051505+ struct snd_emu10k1_fx8010_control_gpr __user *gpr_add_controls; /* GPR controls to add/replace */1505150615061507 unsigned int gpr_del_control_count; /* count of GPR controls to remove */15071507- snd_ctl_elem_id_t __user *gpr_del_controls; /* IDs of GPR controls to remove */15081508+ struct snd_ctl_elem_id __user *gpr_del_controls; /* IDs of GPR controls to remove */1508150915091510 unsigned int gpr_list_control_count; /* count of GPR controls to list */15101511 unsigned int gpr_list_control_total; /* total count of GPR controls */15111511- emu10k1_fx8010_control_gpr_t __user *gpr_list_controls; /* listed GPR controls */15121512+ struct snd_emu10k1_fx8010_control_gpr __user *gpr_list_controls; /* listed GPR controls */1512151315131514 DECLARE_BITMAP(tram_valid, 0x100); /* bitmask of valid initializers */15141515 u_int32_t __user *tram_data_map; /* data initializers */···1516151715171518 DECLARE_BITMAP(code_valid, 1024); /* bitmask of valid instructions */15181519 u_int32_t __user *code; /* one instruction - 64 bits */15191519-} emu10k1_fx8010_code_t;15201520+};1520152115211521-typedef struct {15221522+struct snd_emu10k1_fx8010_tram {15221523 unsigned int address; /* 31.bit == 1 -> external TRAM */15231524 unsigned int size; /* size in samples (4 bytes) */15241525 unsigned int *samples; /* pointer to samples (20-bit) */15251526 /* NULL->clear memory */15261526-} emu10k1_fx8010_tram_t;15271527+};1527152815281528-typedef struct {15291529+struct snd_emu10k1_fx8010_pcm_rec {15291530 unsigned int substream; /* substream number */15301531 unsigned int res1; /* reserved */15311532 unsigned int channels; /* 16-bit channels count, zero = remove this substream */···15401541 unsigned char pad; /* reserved */15411542 unsigned char etram[32]; /* external TRAM address & data (one per channel) */15421543 unsigned int res2; /* reserved */15431543-} emu10k1_fx8010_pcm_t;15441544+};1544154515451545-#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, emu10k1_fx8010_info_t)15461546-#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, emu10k1_fx8010_code_t)15471547-#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, emu10k1_fx8010_code_t)15461546+#define SNDRV_EMU10K1_IOCTL_INFO _IOR ('H', 0x10, struct snd_emu10k1_fx8010_info)15471547+#define SNDRV_EMU10K1_IOCTL_CODE_POKE _IOW ('H', 0x11, struct snd_emu10k1_fx8010_code)15481548+#define SNDRV_EMU10K1_IOCTL_CODE_PEEK _IOWR('H', 0x12, struct snd_emu10k1_fx8010_code)15481549#define SNDRV_EMU10K1_IOCTL_TRAM_SETUP _IOW ('H', 0x20, int)15491549-#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, emu10k1_fx8010_tram_t)15501550-#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, emu10k1_fx8010_tram_t)15511551-#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, emu10k1_fx8010_pcm_t)15521552-#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, emu10k1_fx8010_pcm_t)15501550+#define SNDRV_EMU10K1_IOCTL_TRAM_POKE _IOW ('H', 0x21, struct snd_emu10k1_fx8010_tram)15511551+#define SNDRV_EMU10K1_IOCTL_TRAM_PEEK _IOWR('H', 0x22, struct snd_emu10k1_fx8010_tram)15521552+#define SNDRV_EMU10K1_IOCTL_PCM_POKE _IOW ('H', 0x30, struct snd_emu10k1_fx8010_pcm_rec)15531553+#define SNDRV_EMU10K1_IOCTL_PCM_PEEK _IOWR('H', 0x31, struct snd_emu10k1_fx8010_pcm_rec)15531554#define SNDRV_EMU10K1_IOCTL_STOP _IO ('H', 0x80)15541555#define SNDRV_EMU10K1_IOCTL_CONTINUE _IO ('H', 0x81)15551556#define SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER _IO ('H', 0x82)15561557#define SNDRV_EMU10K1_IOCTL_SINGLE_STEP _IOW ('H', 0x83, int)15571558#define SNDRV_EMU10K1_IOCTL_DBG_READ _IOR ('H', 0x84, int)15591559+15601560+/* typedefs for compatibility to user-space */15611561+typedef struct snd_emu10k1_fx8010_info emu10k1_fx8010_info_t;15621562+typedef struct snd_emu10k1_fx8010_control_gpr emu10k1_fx8010_control_gpr_t;15631563+typedef struct snd_emu10k1_fx8010_code emu10k1_fx8010_code_t;15641564+typedef struct snd_emu10k1_fx8010_tram emu10k1_fx8010_tram_t;15651565+typedef struct snd_emu10k1_fx8010_pcm_rec emu10k1_fx8010_pcm_t;1558156615591567#endif /* __SOUND_EMU10K1_H */
+3-3
include/sound/emu10k1_synth.h
···2727#define SNDRV_SEQ_DEV_ID_EMU10K1_SYNTH "emu10k1-synth"28282929/* argument for snd_seq_device_new */3030-typedef struct snd_emu10k1_synth_arg {3131- emu10k1_t *hwptr; /* chip */3030+struct snd_emu10k1_synth_arg {3131+ struct snd_emu10k1 *hwptr; /* chip */3232 int index; /* sequencer client index */3333 int seq_ports; /* number of sequencer ports to be created */3434 int max_voices; /* maximum number of voices for wavetable */3535-} snd_emu10k1_synth_arg_t;3535+};36363737#define EMU10K1_MAX_MEMSIZE (32 * 1024 * 1024) /* 32MB */3838
···3030#include <sound/core.h>3131#include <sound/emu10k1.h>32323333-unsigned int snd_emu10k1_ptr_read(emu10k1_t * emu, unsigned int reg, unsigned int chn)3333+unsigned int snd_emu10k1_ptr_read(struct snd_emu10k1 * emu, unsigned int reg, unsigned int chn)3434{3535 unsigned long flags;3636 unsigned int regptr, val;···6161 }6262}63636464-void snd_emu10k1_ptr_write(emu10k1_t *emu, unsigned int reg, unsigned int chn, unsigned int data)6464+void snd_emu10k1_ptr_write(struct snd_emu10k1 *emu, unsigned int reg, unsigned int chn, unsigned int data)6565{6666 unsigned int regptr;6767 unsigned long flags;···9191 }9292}93939494-unsigned int snd_emu10k1_ptr20_read(emu10k1_t * emu, 9494+unsigned int snd_emu10k1_ptr20_read(struct snd_emu10k1 * emu, 9595 unsigned int reg, 9696 unsigned int chn)9797{···107107 return val;108108}109109110110-void snd_emu10k1_ptr20_write(emu10k1_t *emu, 110110+void snd_emu10k1_ptr20_write(struct snd_emu10k1 *emu, 111111 unsigned int reg, 112112 unsigned int chn, 113113 unsigned int data)···123123 spin_unlock_irqrestore(&emu->emu_lock, flags);124124}125125126126-void snd_emu10k1_intr_enable(emu10k1_t *emu, unsigned int intrenb)126126+void snd_emu10k1_intr_enable(struct snd_emu10k1 *emu, unsigned int intrenb)127127{128128 unsigned long flags;129129 unsigned int enable;···134134 spin_unlock_irqrestore(&emu->emu_lock, flags);135135}136136137137-void snd_emu10k1_intr_disable(emu10k1_t *emu, unsigned int intrenb)137137+void snd_emu10k1_intr_disable(struct snd_emu10k1 *emu, unsigned int intrenb)138138{139139 unsigned long flags;140140 unsigned int enable;···145145 spin_unlock_irqrestore(&emu->emu_lock, flags);146146}147147148148-void snd_emu10k1_voice_intr_enable(emu10k1_t *emu, unsigned int voicenum)148148+void snd_emu10k1_voice_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum)149149{150150 unsigned long flags;151151 unsigned int val;···165165 spin_unlock_irqrestore(&emu->emu_lock, flags);166166}167167168168-void snd_emu10k1_voice_intr_disable(emu10k1_t *emu, unsigned int voicenum)168168+void snd_emu10k1_voice_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum)169169{170170 unsigned long flags;171171 unsigned int val;···185185 spin_unlock_irqrestore(&emu->emu_lock, flags);186186}187187188188-void snd_emu10k1_voice_intr_ack(emu10k1_t *emu, unsigned int voicenum)188188+void snd_emu10k1_voice_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum)189189{190190 unsigned long flags;191191···202202 spin_unlock_irqrestore(&emu->emu_lock, flags);203203}204204205205-void snd_emu10k1_voice_half_loop_intr_enable(emu10k1_t *emu, unsigned int voicenum)205205+void snd_emu10k1_voice_half_loop_intr_enable(struct snd_emu10k1 *emu, unsigned int voicenum)206206{207207 unsigned long flags;208208 unsigned int val;···222222 spin_unlock_irqrestore(&emu->emu_lock, flags);223223}224224225225-void snd_emu10k1_voice_half_loop_intr_disable(emu10k1_t *emu, unsigned int voicenum)225225+void snd_emu10k1_voice_half_loop_intr_disable(struct snd_emu10k1 *emu, unsigned int voicenum)226226{227227 unsigned long flags;228228 unsigned int val;···242242 spin_unlock_irqrestore(&emu->emu_lock, flags);243243}244244245245-void snd_emu10k1_voice_half_loop_intr_ack(emu10k1_t *emu, unsigned int voicenum)245245+void snd_emu10k1_voice_half_loop_intr_ack(struct snd_emu10k1 *emu, unsigned int voicenum)246246{247247 unsigned long flags;248248···259259 spin_unlock_irqrestore(&emu->emu_lock, flags);260260}261261262262-void snd_emu10k1_voice_set_loop_stop(emu10k1_t *emu, unsigned int voicenum)262262+void snd_emu10k1_voice_set_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum)263263{264264 unsigned long flags;265265 unsigned int sol;···279279 spin_unlock_irqrestore(&emu->emu_lock, flags);280280}281281282282-void snd_emu10k1_voice_clear_loop_stop(emu10k1_t *emu, unsigned int voicenum)282282+void snd_emu10k1_voice_clear_loop_stop(struct snd_emu10k1 *emu, unsigned int voicenum)283283{284284 unsigned long flags;285285 unsigned int sol;···299299 spin_unlock_irqrestore(&emu->emu_lock, flags);300300}301301302302-void snd_emu10k1_wait(emu10k1_t *emu, unsigned int wait)302302+void snd_emu10k1_wait(struct snd_emu10k1 *emu, unsigned int wait)303303{304304 volatile unsigned count;305305 unsigned int newtime = 0, curtime;···318318 }319319}320320321321-unsigned short snd_emu10k1_ac97_read(ac97_t *ac97, unsigned short reg)321321+unsigned short snd_emu10k1_ac97_read(struct snd_ac97 *ac97, unsigned short reg)322322{323323- emu10k1_t *emu = ac97->private_data;323323+ struct snd_emu10k1 *emu = ac97->private_data;324324 unsigned long flags;325325 unsigned short val;326326···331331 return val;332332}333333334334-void snd_emu10k1_ac97_write(ac97_t *ac97, unsigned short reg, unsigned short data)334334+void snd_emu10k1_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short data)335335{336336- emu10k1_t *emu = ac97->private_data;336336+ struct snd_emu10k1 *emu = ac97->private_data;337337 unsigned long flags;338338339339 spin_lock_irqsave(&emu->emu_lock, flags);