[ALSA] Remove xxx_t typedefs: PCI CS46xx
Modules: CS46xx driver Remove xxx_t typedefs from the PCI CS46xx driver. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:

committed by
Jaroslav Kysela

parent
af26367f69
commit
3d19f804ef
@@ -1631,42 +1631,41 @@
|
||||
#define CS46XX_MIXER_SPDIF_INPUT_ELEMENT 1
|
||||
#define CS46XX_MIXER_SPDIF_OUTPUT_ELEMENT 2
|
||||
|
||||
typedef struct _snd_cs46xx cs46xx_t;
|
||||
|
||||
typedef struct _snd_cs46xx_pcm_t {
|
||||
struct snd_cs46xx_pcm {
|
||||
struct snd_dma_buffer hw_buf;
|
||||
|
||||
unsigned int ctl;
|
||||
unsigned int shift; /* Shift count to trasform frames in bytes */
|
||||
snd_pcm_indirect_t pcm_rec;
|
||||
snd_pcm_substream_t *substream;
|
||||
struct snd_pcm_indirect pcm_rec;
|
||||
struct snd_pcm_substream *substream;
|
||||
|
||||
pcm_channel_descriptor_t * pcm_channel;
|
||||
struct dsp_pcm_channel_descriptor * pcm_channel;
|
||||
|
||||
int pcm_channel_id; /* Fron Rear, Center Lfe ... */
|
||||
} cs46xx_pcm_t;
|
||||
};
|
||||
|
||||
typedef struct {
|
||||
struct snd_cs46xx_region {
|
||||
char name[24];
|
||||
unsigned long base;
|
||||
void __iomem *remap_addr;
|
||||
unsigned long size;
|
||||
struct resource *resource;
|
||||
} snd_cs46xx_region_t;
|
||||
};
|
||||
|
||||
struct _snd_cs46xx {
|
||||
struct snd_cs46xx {
|
||||
int irq;
|
||||
unsigned long ba0_addr;
|
||||
unsigned long ba1_addr;
|
||||
union {
|
||||
struct {
|
||||
snd_cs46xx_region_t ba0;
|
||||
snd_cs46xx_region_t data0;
|
||||
snd_cs46xx_region_t data1;
|
||||
snd_cs46xx_region_t pmem;
|
||||
snd_cs46xx_region_t reg;
|
||||
struct snd_cs46xx_region ba0;
|
||||
struct snd_cs46xx_region data0;
|
||||
struct snd_cs46xx_region data1;
|
||||
struct snd_cs46xx_region pmem;
|
||||
struct snd_cs46xx_region reg;
|
||||
} name;
|
||||
snd_cs46xx_region_t idx[5];
|
||||
struct snd_cs46xx_region idx[5];
|
||||
} region;
|
||||
|
||||
unsigned int mode;
|
||||
@@ -1676,34 +1675,34 @@ struct _snd_cs46xx {
|
||||
|
||||
unsigned int ctl;
|
||||
unsigned int shift; /* Shift count to trasform frames in bytes */
|
||||
snd_pcm_indirect_t pcm_rec;
|
||||
snd_pcm_substream_t *substream;
|
||||
struct snd_pcm_indirect pcm_rec;
|
||||
struct snd_pcm_substream *substream;
|
||||
} capt;
|
||||
|
||||
|
||||
int nr_ac97_codecs;
|
||||
ac97_bus_t *ac97_bus;
|
||||
ac97_t *ac97[MAX_NR_AC97];
|
||||
struct snd_ac97_bus *ac97_bus;
|
||||
struct snd_ac97 *ac97[MAX_NR_AC97];
|
||||
|
||||
struct pci_dev *pci;
|
||||
snd_card_t *card;
|
||||
snd_pcm_t *pcm;
|
||||
struct snd_card *card;
|
||||
struct snd_pcm *pcm;
|
||||
|
||||
snd_rawmidi_t *rmidi;
|
||||
snd_rawmidi_substream_t *midi_input;
|
||||
snd_rawmidi_substream_t *midi_output;
|
||||
struct snd_rawmidi *rmidi;
|
||||
struct snd_rawmidi_substream *midi_input;
|
||||
struct snd_rawmidi_substream *midi_output;
|
||||
|
||||
spinlock_t reg_lock;
|
||||
unsigned int midcr;
|
||||
unsigned int uartm;
|
||||
|
||||
int amplifier;
|
||||
void (*amplifier_ctrl)(cs46xx_t *, int);
|
||||
void (*active_ctrl)(cs46xx_t *, int);
|
||||
void (*mixer_init)(cs46xx_t *);
|
||||
void (*amplifier_ctrl)(struct snd_cs46xx *, int);
|
||||
void (*active_ctrl)(struct snd_cs46xx *, int);
|
||||
void (*mixer_init)(struct snd_cs46xx *);
|
||||
|
||||
int acpi_port;
|
||||
snd_kcontrol_t *eapd_switch; /* for amplifier hack */
|
||||
struct snd_kcontrol *eapd_switch; /* for amplifier hack */
|
||||
int accept_valid; /* accept mmap valid (for OSS) */
|
||||
|
||||
struct gameport *gameport;
|
||||
@@ -1714,29 +1713,29 @@ struct _snd_cs46xx {
|
||||
#ifdef CONFIG_SND_CS46XX_NEW_DSP
|
||||
struct semaphore spos_mutex;
|
||||
|
||||
dsp_spos_instance_t * dsp_spos_instance;
|
||||
struct dsp_spos_instance * dsp_spos_instance;
|
||||
|
||||
snd_pcm_t *pcm_rear;
|
||||
snd_pcm_t *pcm_center_lfe;
|
||||
snd_pcm_t *pcm_iec958;
|
||||
struct snd_pcm *pcm_rear;
|
||||
struct snd_pcm *pcm_center_lfe;
|
||||
struct snd_pcm *pcm_iec958;
|
||||
#else /* for compatibility */
|
||||
cs46xx_pcm_t *playback_pcm;
|
||||
struct snd_cs46xx_pcm *playback_pcm;
|
||||
unsigned int play_ctl;
|
||||
#endif
|
||||
};
|
||||
|
||||
int snd_cs46xx_create(snd_card_t *card,
|
||||
int snd_cs46xx_create(struct snd_card *card,
|
||||
struct pci_dev *pci,
|
||||
int external_amp, int thinkpad,
|
||||
cs46xx_t **rcodec);
|
||||
struct snd_cs46xx **rcodec);
|
||||
|
||||
int snd_cs46xx_pcm(cs46xx_t *chip, int device, snd_pcm_t **rpcm);
|
||||
int snd_cs46xx_pcm_rear(cs46xx_t *chip, int device, snd_pcm_t **rpcm);
|
||||
int snd_cs46xx_pcm_iec958(cs46xx_t *chip, int device, snd_pcm_t **rpcm);
|
||||
int snd_cs46xx_pcm_center_lfe(cs46xx_t *chip, int device, snd_pcm_t **rpcm);
|
||||
int snd_cs46xx_mixer(cs46xx_t *chip, int spdif_device);
|
||||
int snd_cs46xx_midi(cs46xx_t *chip, int device, snd_rawmidi_t **rmidi);
|
||||
int snd_cs46xx_start_dsp(cs46xx_t *chip);
|
||||
int snd_cs46xx_gameport(cs46xx_t *chip);
|
||||
int snd_cs46xx_pcm(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm);
|
||||
int snd_cs46xx_pcm_rear(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm);
|
||||
int snd_cs46xx_pcm_iec958(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm);
|
||||
int snd_cs46xx_pcm_center_lfe(struct snd_cs46xx *chip, int device, struct snd_pcm **rpcm);
|
||||
int snd_cs46xx_mixer(struct snd_cs46xx *chip, int spdif_device);
|
||||
int snd_cs46xx_midi(struct snd_cs46xx *chip, int device, struct snd_rawmidi **rmidi);
|
||||
int snd_cs46xx_start_dsp(struct snd_cs46xx *chip);
|
||||
int snd_cs46xx_gameport(struct snd_cs46xx *chip);
|
||||
|
||||
#endif /* __SOUND_CS46XX_H */
|
||||
|
@@ -41,7 +41,7 @@
|
||||
|
||||
/* This structs are used internally by the SP */
|
||||
|
||||
typedef struct _basic_dma_req_t {
|
||||
struct dsp_basic_dma_req {
|
||||
/* DMA Requestor Word 0 (DCW) fields:
|
||||
|
||||
31 [30-28]27 [26:24] 23 22 21 20 [19:18] [17:16] 15 14 13 12 11 10 9 8 7 6 [5:0]
|
||||
@@ -53,9 +53,9 @@ typedef struct _basic_dma_req_t {
|
||||
u32 dmw; /* DMA Mode Word */
|
||||
u32 saw; /* Source Address Word */
|
||||
u32 daw; /* Destination Address Word */
|
||||
} basic_dma_req_t;
|
||||
};
|
||||
|
||||
typedef struct _scatter_gather_ext_t {
|
||||
struct dsp_scatter_gather_ext {
|
||||
u32 npaw; /* Next-Page Address Word */
|
||||
|
||||
/* DMA Requestor Word 5 (NPCW) fields:
|
||||
@@ -69,9 +69,9 @@ typedef struct _scatter_gather_ext_t {
|
||||
u32 lbaw; /* Loop-Begin Address Word */
|
||||
u32 nplbaw; /* Next-Page after Loop-Begin Address Word */
|
||||
u32 sgaw; /* Scatter/Gather Address Word */
|
||||
} scatter_gather_ext_t;
|
||||
};
|
||||
|
||||
typedef struct _volume_control_t {
|
||||
struct dsp_volume_control {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
rightTarg, /* Target volume for left & right channels */
|
||||
leftTarg
|
||||
@@ -80,10 +80,10 @@ typedef struct _volume_control_t {
|
||||
rightVol, /* Current left & right channel volumes */
|
||||
leftVol
|
||||
)
|
||||
} volume_control_t;
|
||||
};
|
||||
|
||||
/* Generic stream control block (SCB) structure definition */
|
||||
typedef struct _generic_scb_t {
|
||||
struct dsp_generic_scb {
|
||||
/* For streaming I/O, the DSP should never alter any words in the DMA
|
||||
requestor or the scatter/gather extension. Only ad hoc DMA request
|
||||
streams are free to alter the requestor (currently only occur in the
|
||||
@@ -99,13 +99,13 @@ typedef struct _generic_scb_t {
|
||||
|
||||
/* Initialized by the host, only modified by DMA
|
||||
R/O for the DSP task */
|
||||
basic_dma_req_t basic_req; /* Optional */
|
||||
struct dsp_basic_dma_req basic_req; /* Optional */
|
||||
|
||||
/* Scatter/gather DMA requestor extension (5 ints)
|
||||
Initialized by the host, only modified by DMA
|
||||
DSP task never needs to even read these.
|
||||
*/
|
||||
scatter_gather_ext_t sg_ext; /* Optional */
|
||||
struct dsp_scatter_gather_ext sg_ext; /* Optional */
|
||||
|
||||
/* Sublist pointer & next stream control block (SCB) link.
|
||||
Initialized & modified by the host R/O for the DSP task
|
||||
@@ -179,11 +179,11 @@ typedef struct _generic_scb_t {
|
||||
|
||||
These two 32-bit words are redefined for wavetable & 3-D voices.
|
||||
*/
|
||||
volume_control_t vol_ctrl_t; /* Optional */
|
||||
} generic_scb_t;
|
||||
struct dsp_volume_control vol_ctrl_t; /* Optional */
|
||||
};
|
||||
|
||||
|
||||
typedef struct _spos_control_block_t {
|
||||
struct dsp_spos_control_block {
|
||||
/* WARNING: Certain items in this structure are modified by the host
|
||||
Any dword that can be modified by the host, must not be
|
||||
modified by the SP as the host can only do atomic dword
|
||||
@@ -273,10 +273,10 @@ typedef struct _spos_control_block_t {
|
||||
u32 r32_save_for_spurious_int;
|
||||
u32 r32_save_for_trap;
|
||||
u32 r32_save_for_HFG;
|
||||
} spos_control_block_t;
|
||||
};
|
||||
|
||||
/* SPB for MIX_TO_OSTREAM algorithm family */
|
||||
typedef struct _mix2_ostream_spb_t
|
||||
struct dsp_mix2_ostream_spb
|
||||
{
|
||||
/* 16b.16b integer.frac approximation to the
|
||||
number of 3 sample triplets to output each
|
||||
@@ -290,13 +290,13 @@ typedef struct _mix2_ostream_spb_t
|
||||
output triplets since the start of group
|
||||
*/
|
||||
u32 accumOutTriplets;
|
||||
} mix2_ostream_spb_t;
|
||||
};
|
||||
|
||||
/* SCB for Timing master algorithm */
|
||||
typedef struct _timing_master_scb_t {
|
||||
struct dsp_timing_master_scb {
|
||||
/* First 12 dwords from generic_scb_t */
|
||||
basic_dma_req_t basic_req; /* Optional */
|
||||
scatter_gather_ext_t sg_ext; /* Optional */
|
||||
struct dsp_basic_dma_req basic_req; /* Optional */
|
||||
struct dsp_scatter_gather_ext sg_ext; /* Optional */
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
next_scb, /* REQUIRED */
|
||||
sub_list_ptr /* REQUIRED */
|
||||
@@ -358,13 +358,13 @@ typedef struct _timing_master_scb_t {
|
||||
number of samples to output each frame.
|
||||
(approximation must be floor, to insure */
|
||||
u32 nsamp_per_frm_q15;
|
||||
} timing_master_scb_t;
|
||||
};
|
||||
|
||||
/* SCB for CODEC output algorithm */
|
||||
typedef struct _codec_output_scb_t {
|
||||
struct dsp_codec_output_scb {
|
||||
/* First 13 dwords from generic_scb_t */
|
||||
basic_dma_req_t basic_req; /* Optional */
|
||||
scatter_gather_ext_t sg_ext; /* Optional */
|
||||
struct dsp_basic_dma_req basic_req; /* Optional */
|
||||
struct dsp_scatter_gather_ext sg_ext; /* Optional */
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
next_scb, /* REQUIRED */
|
||||
sub_list_ptr /* REQUIRED */
|
||||
@@ -422,13 +422,13 @@ typedef struct _codec_output_scb_t {
|
||||
reserved,
|
||||
last_sub_ptr
|
||||
)
|
||||
} codec_output_scb_t;
|
||||
};
|
||||
|
||||
/* SCB for CODEC input algorithm */
|
||||
typedef struct _codec_input_scb_t {
|
||||
struct dsp_codec_input_scb {
|
||||
/* First 13 dwords from generic_scb_t */
|
||||
basic_dma_req_t basic_req; /* Optional */
|
||||
scatter_gather_ext_t sg_ext; /* Optional */
|
||||
struct dsp_basic_dma_req basic_req; /* Optional */
|
||||
struct dsp_scatter_gather_ext sg_ext; /* Optional */
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
next_scb, /* REQUIRED */
|
||||
sub_list_ptr /* REQUIRED */
|
||||
@@ -479,13 +479,13 @@ typedef struct _codec_input_scb_t {
|
||||
)
|
||||
|
||||
u32 reserved2;
|
||||
} codec_input_scb_t;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _pcm_serial_input_scb_t {
|
||||
struct dsp_pcm_serial_input_scb {
|
||||
/* First 13 dwords from generic_scb_t */
|
||||
basic_dma_req_t basic_req; /* Optional */
|
||||
scatter_gather_ext_t sg_ext; /* Optional */
|
||||
struct dsp_basic_dma_req basic_req; /* Optional */
|
||||
struct dsp_scatter_gather_ext sg_ext; /* Optional */
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
next_scb, /* REQUIRED */
|
||||
sub_list_ptr /* REQUIRED */
|
||||
@@ -512,11 +512,11 @@ typedef struct _pcm_serial_input_scb_t {
|
||||
)
|
||||
|
||||
/* Initialized by the host (host updates target volumes) */
|
||||
volume_control_t psi_vol_ctrl;
|
||||
struct dsp_volume_control psi_vol_ctrl;
|
||||
|
||||
} pcm_serial_input_scb_t;
|
||||
};
|
||||
|
||||
typedef struct _src_task_scb_t {
|
||||
struct dsp_src_task_scb {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
frames_left_in_gof,
|
||||
gofs_left_in_sec
|
||||
@@ -571,10 +571,10 @@ typedef struct _src_task_scb_t {
|
||||
|
||||
u32 phiIncr6int_26frac;
|
||||
|
||||
volume_control_t src_vol_ctrl;
|
||||
} src_task_scb_t;
|
||||
struct dsp_volume_control src_vol_ctrl;
|
||||
};
|
||||
|
||||
typedef struct _decimate_by_pow2_scb_t {
|
||||
struct dsp_decimate_by_pow2_scb {
|
||||
/* decimationFactor = 2, 4, or 8 (larger factors waste too much memory
|
||||
when compared to cascading decimators)
|
||||
*/
|
||||
@@ -648,10 +648,10 @@ typedef struct _decimate_by_pow2_scb_t {
|
||||
|
||||
u32 dec2_reserved4;
|
||||
|
||||
volume_control_t dec2_vol_ctrl; /* Not used! */
|
||||
} decimate_by_pow2_scb_t;
|
||||
struct dsp_volume_control dec2_vol_ctrl; /* Not used! */
|
||||
};
|
||||
|
||||
typedef struct _vari_decimate_scb_t {
|
||||
struct dsp_vari_decimate_scb {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
vdec_frames_left_in_gof,
|
||||
vdec_gofs_left_in_sec
|
||||
@@ -711,15 +711,15 @@ typedef struct _vari_decimate_scb_t {
|
||||
|
||||
u32 vdec_phi_incr_6int_26frac;
|
||||
|
||||
volume_control_t vdec_vol_ctrl;
|
||||
} vari_decimate_scb_t;
|
||||
struct dsp_volume_control vdec_vol_ctrl;
|
||||
};
|
||||
|
||||
|
||||
/* SCB for MIX_TO_OSTREAM algorithm family */
|
||||
typedef struct _mix2_ostream_scb_t {
|
||||
struct dsp_mix2_ostream_scb {
|
||||
/* First 13 dwords from generic_scb_t */
|
||||
basic_dma_req_t basic_req; /* Optional */
|
||||
scatter_gather_ext_t sg_ext; /* Optional */
|
||||
struct dsp_basic_dma_req basic_req; /* Optional */
|
||||
struct dsp_scatter_gather_ext sg_ext; /* Optional */
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
next_scb, /* REQUIRED */
|
||||
sub_list_ptr /* REQUIRED */
|
||||
@@ -758,14 +758,14 @@ typedef struct _mix2_ostream_scb_t {
|
||||
const_FFFF,
|
||||
const_zero
|
||||
)
|
||||
} mix2_ostream_scb_t;
|
||||
};
|
||||
|
||||
|
||||
/* SCB for S16_MIX algorithm */
|
||||
typedef struct _mix_only_scb_t {
|
||||
struct dsp_mix_only_scb {
|
||||
/* First 13 dwords from generic_scb_t */
|
||||
basic_dma_req_t basic_req; /* Optional */
|
||||
scatter_gather_ext_t sg_ext; /* Optional */
|
||||
struct dsp_basic_dma_req basic_req; /* Optional */
|
||||
struct dsp_scatter_gather_ext sg_ext; /* Optional */
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
next_scb, /* REQUIRED */
|
||||
sub_list_ptr /* REQUIRED */
|
||||
@@ -780,11 +780,11 @@ typedef struct _mix_only_scb_t {
|
||||
u32 strm_buf_ptr; /* REQUIRED */
|
||||
|
||||
u32 reserved;
|
||||
volume_control_t vol_ctrl;
|
||||
} mix_only_scb_t;
|
||||
struct dsp_volume_control vol_ctrl;
|
||||
};
|
||||
|
||||
/* SCB for the async. CODEC input algorithm */
|
||||
typedef struct _async_codec_input_scb_t {
|
||||
struct dsp_async_codec_input_scb {
|
||||
u32 io_free2;
|
||||
|
||||
u32 io_current_total;
|
||||
@@ -837,11 +837,11 @@ typedef struct _async_codec_input_scb_t {
|
||||
)
|
||||
|
||||
u32 i_free;
|
||||
} async_codec_input_scb_t;
|
||||
};
|
||||
|
||||
|
||||
/* SCB for the SP/DIF CODEC input and output */
|
||||
typedef struct _spdifiscb_t {
|
||||
struct dsp_spdifiscb {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
status_ptr,
|
||||
status_start_ptr
|
||||
@@ -895,12 +895,11 @@ typedef struct _spdifiscb_t {
|
||||
)
|
||||
|
||||
u32 free1;
|
||||
} spdifiscb_t;
|
||||
};
|
||||
|
||||
|
||||
/* SCB for the SP/DIF CODEC input and output */
|
||||
typedef struct _spdifoscb_t {
|
||||
|
||||
struct dsp_spdifoscb {
|
||||
|
||||
u32 free2;
|
||||
|
||||
@@ -941,11 +940,10 @@ typedef struct _spdifoscb_t {
|
||||
)
|
||||
|
||||
u32 free1;
|
||||
} spdifoscb_t;
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct _asynch_fg_rx_scb_t {
|
||||
struct dsp_asynch_fg_rx_scb {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
bot_buf_mask,
|
||||
buf_Mask
|
||||
@@ -993,11 +991,10 @@ typedef struct _asynch_fg_rx_scb_t {
|
||||
right_vol,
|
||||
left_vol
|
||||
)
|
||||
} asynch_fg_rx_scb_t;
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct _asynch_fg_tx_scb_t {
|
||||
struct dsp_asynch_fg_tx_scb {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
not_buf_mask,
|
||||
buf_mask
|
||||
@@ -1052,13 +1049,13 @@ typedef struct _asynch_fg_tx_scb_t {
|
||||
unused_right_vol,
|
||||
unused_left_vol
|
||||
)
|
||||
} asynch_fg_tx_scb_t;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _output_snoop_scb_t {
|
||||
struct dsp_output_snoop_scb {
|
||||
/* First 13 dwords from generic_scb_t */
|
||||
basic_dma_req_t basic_req; /* Optional */
|
||||
scatter_gather_ext_t sg_ext; /* Optional */
|
||||
struct dsp_basic_dma_req basic_req; /* Optional */
|
||||
struct dsp_scatter_gather_ext sg_ext; /* Optional */
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
next_scb, /* REQUIRED */
|
||||
sub_list_ptr /* REQUIRED */
|
||||
@@ -1083,9 +1080,9 @@ typedef struct _output_snoop_scb_t {
|
||||
reserved,
|
||||
input_scb
|
||||
)
|
||||
} output_snoop_scb_t;
|
||||
};
|
||||
|
||||
typedef struct _spio_write_scb_t {
|
||||
struct dsp_spio_write_scb {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
address1,
|
||||
address2
|
||||
@@ -1122,9 +1119,9 @@ typedef struct _spio_write_scb_t {
|
||||
)
|
||||
|
||||
u32 unused3[5];
|
||||
} spio_write_scb_t;
|
||||
};
|
||||
|
||||
typedef struct _magic_snoop_task_t {
|
||||
struct dsp_magic_snoop_task {
|
||||
u32 i0;
|
||||
u32 i1;
|
||||
|
||||
@@ -1155,11 +1152,11 @@ typedef struct _magic_snoop_task_t {
|
||||
|
||||
u32 i8;
|
||||
|
||||
volume_control_t vdec_vol_ctrl;
|
||||
} magic_snoop_task_t;
|
||||
struct dsp_volume_control vdec_vol_ctrl;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _filter_scb_t {
|
||||
struct dsp_filter_scb {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
a0_right, /* 0x00 */
|
||||
a0_left
|
||||
@@ -1212,5 +1209,5 @@ typedef struct _filter_scb_t {
|
||||
b2_right, /* 0x0F */
|
||||
b2_left
|
||||
)
|
||||
} filter_scb_t;
|
||||
};
|
||||
#endif /* __DSP_SCB_TYPES_H__ */
|
||||
|
@@ -65,133 +65,130 @@
|
||||
#define DSP_SPDIF_STATUS_HW_ENABLED 4
|
||||
#define DSP_SPDIF_STATUS_INPUT_CTRL_ENABLED 8
|
||||
|
||||
struct _dsp_module_desc_t;
|
||||
|
||||
typedef struct _symbol_entry_t {
|
||||
struct dsp_symbol_entry {
|
||||
u32 address;
|
||||
char symbol_name[DSP_MAX_SYMBOL_NAME];
|
||||
int symbol_type;
|
||||
|
||||
/* initialized by driver */
|
||||
struct _dsp_module_desc_t * module;
|
||||
struct dsp_module_desc * module;
|
||||
int deleted;
|
||||
} symbol_entry_t;
|
||||
};
|
||||
|
||||
typedef struct _symbol_desc_t {
|
||||
struct dsp_symbol_desc {
|
||||
int nsymbols;
|
||||
|
||||
symbol_entry_t * symbols;
|
||||
struct dsp_symbol_entry *symbols;
|
||||
|
||||
/* initialized by driver */
|
||||
int highest_frag_index;
|
||||
} symbol_desc_t;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _segment_desc_t {
|
||||
struct dsp_segment_desc {
|
||||
int segment_type;
|
||||
u32 offset;
|
||||
u32 size;
|
||||
u32 * data;
|
||||
} segment_desc_t;
|
||||
};
|
||||
|
||||
typedef struct _dsp_module_desc_t {
|
||||
struct dsp_module_desc {
|
||||
char * module_name;
|
||||
symbol_desc_t symbol_table;
|
||||
struct dsp_symbol_desc symbol_table;
|
||||
int nsegments;
|
||||
segment_desc_t * segments;
|
||||
struct dsp_segment_desc * segments;
|
||||
|
||||
/* initialized by driver */
|
||||
u32 overlay_begin_address;
|
||||
u32 load_address;
|
||||
int nfixups;
|
||||
} dsp_module_desc_t;
|
||||
};
|
||||
|
||||
typedef struct _dsp_scb_descriptor_t {
|
||||
struct dsp_scb_descriptor {
|
||||
char scb_name[DSP_MAX_SCB_NAME];
|
||||
u32 address;
|
||||
int index;
|
||||
|
||||
struct _dsp_scb_descriptor_t * sub_list_ptr;
|
||||
struct _dsp_scb_descriptor_t * next_scb_ptr;
|
||||
struct _dsp_scb_descriptor_t * parent_scb_ptr;
|
||||
struct dsp_scb_descriptor * sub_list_ptr;
|
||||
struct dsp_scb_descriptor * next_scb_ptr;
|
||||
struct dsp_scb_descriptor * parent_scb_ptr;
|
||||
|
||||
symbol_entry_t * task_entry;
|
||||
symbol_entry_t * scb_symbol;
|
||||
struct dsp_symbol_entry * task_entry;
|
||||
struct dsp_symbol_entry * scb_symbol;
|
||||
|
||||
snd_info_entry_t *proc_info;
|
||||
struct snd_info_entry *proc_info;
|
||||
int ref_count;
|
||||
spinlock_t lock;
|
||||
|
||||
int deleted;
|
||||
} dsp_scb_descriptor_t;
|
||||
};
|
||||
|
||||
typedef struct _dsp_task_descriptor_t {
|
||||
struct dsp_task_descriptor {
|
||||
char task_name[DSP_MAX_TASK_NAME];
|
||||
int size;
|
||||
u32 address;
|
||||
int index;
|
||||
} dsp_task_descriptor_t;
|
||||
};
|
||||
|
||||
typedef struct _pcm_channel_descriptor_t {
|
||||
struct dsp_pcm_channel_descriptor {
|
||||
int active;
|
||||
int src_slot;
|
||||
int pcm_slot;
|
||||
u32 sample_rate;
|
||||
u32 unlinked;
|
||||
dsp_scb_descriptor_t * pcm_reader_scb;
|
||||
dsp_scb_descriptor_t * src_scb;
|
||||
dsp_scb_descriptor_t * mixer_scb;
|
||||
struct dsp_scb_descriptor * pcm_reader_scb;
|
||||
struct dsp_scb_descriptor * src_scb;
|
||||
struct dsp_scb_descriptor * mixer_scb;
|
||||
|
||||
void * private_data;
|
||||
} pcm_channel_descriptor_t;
|
||||
};
|
||||
|
||||
typedef struct _dsp_spos_instance_t {
|
||||
symbol_desc_t symbol_table; /* currently availble loaded symbols in SP */
|
||||
struct dsp_spos_instance {
|
||||
struct dsp_symbol_desc symbol_table; /* currently availble loaded symbols in SP */
|
||||
|
||||
int nmodules;
|
||||
dsp_module_desc_t * modules; /* modules loaded into SP */
|
||||
struct dsp_module_desc * modules; /* modules loaded into SP */
|
||||
|
||||
segment_desc_t code;
|
||||
struct dsp_segment_desc code;
|
||||
|
||||
/* Main PCM playback mixer */
|
||||
dsp_scb_descriptor_t * master_mix_scb;
|
||||
struct dsp_scb_descriptor * master_mix_scb;
|
||||
u16 dac_volume_right;
|
||||
u16 dac_volume_left;
|
||||
|
||||
/* Rear/surround PCM playback mixer */
|
||||
dsp_scb_descriptor_t * rear_mix_scb;
|
||||
struct dsp_scb_descriptor * rear_mix_scb;
|
||||
|
||||
/* Center/LFE mixer */
|
||||
dsp_scb_descriptor_t * center_lfe_mix_scb;
|
||||
struct dsp_scb_descriptor * center_lfe_mix_scb;
|
||||
|
||||
int npcm_channels;
|
||||
int nsrc_scb;
|
||||
pcm_channel_descriptor_t pcm_channels[DSP_MAX_PCM_CHANNELS];
|
||||
struct dsp_pcm_channel_descriptor pcm_channels[DSP_MAX_PCM_CHANNELS];
|
||||
int src_scb_slots[DSP_MAX_SRC_NR];
|
||||
|
||||
/* cache this symbols */
|
||||
symbol_entry_t * null_algorithm; /* used by PCMreaderSCB's */
|
||||
symbol_entry_t * s16_up; /* used by SRCtaskSCB's */
|
||||
struct dsp_symbol_entry * null_algorithm; /* used by PCMreaderSCB's */
|
||||
struct dsp_symbol_entry * s16_up; /* used by SRCtaskSCB's */
|
||||
|
||||
/* proc fs */
|
||||
snd_card_t * snd_card;
|
||||
snd_info_entry_t * proc_dsp_dir;
|
||||
snd_info_entry_t * proc_sym_info_entry;
|
||||
snd_info_entry_t * proc_modules_info_entry;
|
||||
snd_info_entry_t * proc_parameter_dump_info_entry;
|
||||
snd_info_entry_t * proc_sample_dump_info_entry;
|
||||
struct snd_card *snd_card;
|
||||
struct snd_info_entry * proc_dsp_dir;
|
||||
struct snd_info_entry * proc_sym_info_entry;
|
||||
struct snd_info_entry * proc_modules_info_entry;
|
||||
struct snd_info_entry * proc_parameter_dump_info_entry;
|
||||
struct snd_info_entry * proc_sample_dump_info_entry;
|
||||
|
||||
/* SCB's descriptors */
|
||||
int nscb;
|
||||
int scb_highest_frag_index;
|
||||
dsp_scb_descriptor_t scbs[DSP_MAX_SCB_DESC];
|
||||
snd_info_entry_t * proc_scb_info_entry;
|
||||
dsp_scb_descriptor_t * the_null_scb;
|
||||
struct dsp_scb_descriptor scbs[DSP_MAX_SCB_DESC];
|
||||
struct snd_info_entry * proc_scb_info_entry;
|
||||
struct dsp_scb_descriptor * the_null_scb;
|
||||
|
||||
/* Task's descriptors */
|
||||
int ntask;
|
||||
dsp_task_descriptor_t tasks[DSP_MAX_TASK_DESC];
|
||||
snd_info_entry_t * proc_task_info_entry;
|
||||
struct dsp_task_descriptor tasks[DSP_MAX_TASK_DESC];
|
||||
struct snd_info_entry * proc_task_info_entry;
|
||||
|
||||
/* SPDIF status */
|
||||
int spdif_status_out;
|
||||
@@ -204,30 +201,30 @@ typedef struct _dsp_spos_instance_t {
|
||||
unsigned int spdif_csuv_stream;
|
||||
|
||||
/* SPDIF input sample rate converter */
|
||||
dsp_scb_descriptor_t * spdif_in_src;
|
||||
struct dsp_scb_descriptor * spdif_in_src;
|
||||
/* SPDIF input asynch. receiver */
|
||||
dsp_scb_descriptor_t * asynch_rx_scb;
|
||||
struct dsp_scb_descriptor * asynch_rx_scb;
|
||||
|
||||
/* Capture record mixer SCB */
|
||||
dsp_scb_descriptor_t * record_mixer_scb;
|
||||
struct dsp_scb_descriptor * record_mixer_scb;
|
||||
|
||||
/* CODEC input SCB */
|
||||
dsp_scb_descriptor_t * codec_in_scb;
|
||||
struct dsp_scb_descriptor * codec_in_scb;
|
||||
|
||||
/* reference snooper */
|
||||
dsp_scb_descriptor_t * ref_snoop_scb;
|
||||
struct dsp_scb_descriptor * ref_snoop_scb;
|
||||
|
||||
/* SPDIF output PCM reference */
|
||||
dsp_scb_descriptor_t * spdif_pcm_input_scb;
|
||||
struct dsp_scb_descriptor * spdif_pcm_input_scb;
|
||||
|
||||
/* asynch TX task */
|
||||
dsp_scb_descriptor_t * asynch_tx_scb;
|
||||
struct dsp_scb_descriptor * asynch_tx_scb;
|
||||
|
||||
/* record sources */
|
||||
dsp_scb_descriptor_t * pcm_input;
|
||||
dsp_scb_descriptor_t * adc_input;
|
||||
struct dsp_scb_descriptor * pcm_input;
|
||||
struct dsp_scb_descriptor * adc_input;
|
||||
|
||||
int spdif_in_sample_rate;
|
||||
} dsp_spos_instance_t;
|
||||
};
|
||||
|
||||
#endif /* __DSP_SPOS_H__ */
|
||||
|
@@ -71,7 +71,7 @@ Ptr____Call (c)
|
||||
at the end of BG */
|
||||
|
||||
/* Minimal context save area for Hyper Forground */
|
||||
typedef struct _hf_save_area_t {
|
||||
struct dsp_hf_save_area {
|
||||
u32 r10_save;
|
||||
u32 r54_save;
|
||||
u32 r98_save;
|
||||
@@ -96,11 +96,11 @@ typedef struct _hf_save_area_t {
|
||||
rsa2Save
|
||||
)
|
||||
/* saved as part of HFG context */
|
||||
} hf_save_area_t;
|
||||
};
|
||||
|
||||
|
||||
/* Task link data structure */
|
||||
typedef struct _tree_link_t {
|
||||
struct dsp_tree_link {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
/* Pointer to sibling task control block */
|
||||
next_scb,
|
||||
@@ -114,10 +114,10 @@ typedef struct _tree_link_t {
|
||||
/* Pointer to local data */
|
||||
this_spb
|
||||
)
|
||||
} tree_link_t;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _task_tree_data_t {
|
||||
struct dsp_task_tree_data {
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
/* Initial tock count; controls task tree execution rate */
|
||||
tock_count_limit,
|
||||
@@ -155,11 +155,10 @@ typedef struct _task_tree_data_t {
|
||||
data_stack_base_ptr
|
||||
)
|
||||
|
||||
} task_tree_data_t;
|
||||
};
|
||||
|
||||
|
||||
|
||||
typedef struct _interval_timer_data_t
|
||||
struct dsp_interval_timer_data
|
||||
{
|
||||
/* These data items have the same relative locations to those */
|
||||
___DSP_DUAL_16BIT_ALLOC(
|
||||
@@ -172,12 +171,12 @@ typedef struct _interval_timer_data_t
|
||||
num_FG_ticks_this_interval,
|
||||
num_intervals
|
||||
)
|
||||
} interval_timer_data_t;
|
||||
};
|
||||
|
||||
|
||||
/* This structure contains extra storage for the task tree
|
||||
Currently, this additional data is related only to a full context save */
|
||||
typedef struct _task_tree_context_block_t {
|
||||
struct dsp_task_tree_context_block {
|
||||
/* Up to 10 values are saved onto the stack. 8 for the task tree, 1 for
|
||||
The access to the context switch (call or interrupt), and 1 spare that
|
||||
users should never use. This last may be required by the system */
|
||||
@@ -238,16 +237,16 @@ typedef struct _task_tree_context_block_t {
|
||||
u32 saveaux2xaux3x;
|
||||
u32 savershouthl;
|
||||
u32 savershoutxmacmode;
|
||||
} task_tree_context_block_t;
|
||||
};
|
||||
|
||||
|
||||
typedef struct _task_tree_control_block_t {
|
||||
hf_save_area_t context;
|
||||
tree_link_t links;
|
||||
task_tree_data_t data;
|
||||
task_tree_context_block_t context_blk;
|
||||
interval_timer_data_t int_timer;
|
||||
} task_tree_control_block_t;
|
||||
struct dsp_task_tree_control_block {
|
||||
struct dsp_hf_save_area context;
|
||||
struct dsp_tree_link links;
|
||||
struct dsp_task_tree_data data;
|
||||
struct dsp_task_tree_context_block context_blk;
|
||||
struct dsp_interval_timer_data int_timer;
|
||||
};
|
||||
|
||||
|
||||
#endif /* __DSP_TASK_TYPES_H__ */
|
||||
|
Reference in New Issue
Block a user