diff options
Diffstat (limited to 'include/sound/cs46xx_dsp_spos.h')
| -rw-r--r-- | include/sound/cs46xx_dsp_spos.h | 233 |
1 files changed, 0 insertions, 233 deletions
diff --git a/include/sound/cs46xx_dsp_spos.h b/include/sound/cs46xx_dsp_spos.h deleted file mode 100644 index 10014cb6242..00000000000 --- a/include/sound/cs46xx_dsp_spos.h +++ /dev/null @@ -1,233 +0,0 @@ -/* - * The driver for the Cirrus Logic's Sound Fusion CS46XX based soundcards - * Copyright (c) by Jaroslav Kysela <perex@suse.cz> - * - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - */ - -#ifndef __CS46XX_DSP_SPOS_H__ -#define __CS46XX_DSP_SPOS_H__ - -#include "cs46xx_dsp_scb_types.h" -#include "cs46xx_dsp_task_types.h" - -#define SYMBOL_CONSTANT 0x0 -#define SYMBOL_SAMPLE 0x1 -#define SYMBOL_PARAMETER 0x2 -#define SYMBOL_CODE 0x3 - -#define SEGTYPE_SP_PROGRAM 0x00000001 -#define SEGTYPE_SP_PARAMETER 0x00000002 -#define SEGTYPE_SP_SAMPLE 0x00000003 -#define SEGTYPE_SP_COEFFICIENT 0x00000004 - -#define DSP_SPOS_UU 0x0deadul /* unused */ -#define DSP_SPOS_DC 0x0badul /* don't care */ -#define DSP_SPOS_DC_DC 0x0bad0badul /* don't care */ -#define DSP_SPOS_UUUU 0xdeadc0edul /* unused */ -#define DSP_SPOS_UUHI 0xdeadul -#define DSP_SPOS_UULO 0xc0edul -#define DSP_SPOS_DCDC 0x0badf1d0ul /* don't care */ -#define DSP_SPOS_DCDCHI 0x0badul -#define DSP_SPOS_DCDCLO 0xf1d0ul - -#define DSP_MAX_TASK_NAME 60 -#define DSP_MAX_SYMBOL_NAME 100 -#define DSP_MAX_SCB_NAME 60 -#define DSP_MAX_SCB_DESC 200 -#define DSP_MAX_TASK_DESC 50 - -#define DSP_MAX_PCM_CHANNELS 32 -#define DSP_MAX_SRC_NR 14 - -#define DSP_PCM_MAIN_CHANNEL 1 -#define DSP_PCM_REAR_CHANNEL 2 -#define DSP_PCM_CENTER_LFE_CHANNEL 3 -#define DSP_PCM_S71_CHANNEL 4 /* surround 7.1 */ -#define DSP_IEC958_CHANNEL 5 - -#define DSP_SPDIF_STATUS_OUTPUT_ENABLED 1 -#define DSP_SPDIF_STATUS_PLAYBACK_OPEN 2 -#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 { - u32 address; - char symbol_name[DSP_MAX_SYMBOL_NAME]; - int symbol_type; - - /* initialized by driver */ - struct _dsp_module_desc_t * module; - int deleted; -} symbol_entry_t; - -typedef struct _symbol_desc_t { - int nsymbols; - - symbol_entry_t * symbols; - - /* initialized by driver */ - int highest_frag_index; -} symbol_desc_t; - - -typedef struct _segment_desc_t { - int segment_type; - u32 offset; - u32 size; - u32 * data; -} segment_desc_t; - -typedef struct _dsp_module_desc_t { - char * module_name; - symbol_desc_t symbol_table; - int nsegments; - segment_desc_t * segments; - - /* initialized by driver */ - u32 overlay_begin_address; - u32 load_address; - int nfixups; -} dsp_module_desc_t; - -typedef struct _dsp_scb_descriptor_t { - 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; - - symbol_entry_t * task_entry; - symbol_entry_t * scb_symbol; - - snd_info_entry_t *proc_info; - int ref_count; - spinlock_t lock; - - int deleted; -} dsp_scb_descriptor_t; - -typedef struct _dsp_task_descriptor_t { - char task_name[DSP_MAX_TASK_NAME]; - int size; - u32 address; - int index; -} dsp_task_descriptor_t; - -typedef struct _pcm_channel_descriptor_t { - 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; - - void * private_data; -} pcm_channel_descriptor_t; - -typedef struct _dsp_spos_instance_t { - symbol_desc_t symbol_table; /* currently availble loaded symbols in SP */ - - int nmodules; - dsp_module_desc_t * modules; /* modules loaded into SP */ - - segment_desc_t code; - - /* Main PCM playback mixer */ - dsp_scb_descriptor_t * master_mix_scb; - u16 dac_volume_right; - u16 dac_volume_left; - - /* Rear/surround PCM playback mixer */ - dsp_scb_descriptor_t * rear_mix_scb; - - /* Center/LFE mixer */ - dsp_scb_descriptor_t * center_lfe_mix_scb; - - int npcm_channels; - int nsrc_scb; - pcm_channel_descriptor_t 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 */ - - /* 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; - - /* 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; - - /* Task's descriptors */ - int ntask; - dsp_task_descriptor_t tasks[DSP_MAX_TASK_DESC]; - snd_info_entry_t * proc_task_info_entry; - - /* SPDIF status */ - int spdif_status_out; - int spdif_status_in; - u16 spdif_input_volume_right; - u16 spdif_input_volume_left; - /* spdif channel status, - left right and user validity bits */ - unsigned int spdif_csuv_default; - unsigned int spdif_csuv_stream; - - /* SPDIF input sample rate converter */ - dsp_scb_descriptor_t * spdif_in_src; - /* SPDIF input asynch. receiver */ - dsp_scb_descriptor_t * asynch_rx_scb; - - /* Capture record mixer SCB */ - dsp_scb_descriptor_t * record_mixer_scb; - - /* CODEC input SCB */ - dsp_scb_descriptor_t * codec_in_scb; - - /* reference snooper */ - dsp_scb_descriptor_t * ref_snoop_scb; - - /* SPDIF output PCM reference */ - dsp_scb_descriptor_t * spdif_pcm_input_scb; - - /* asynch TX task */ - dsp_scb_descriptor_t * asynch_tx_scb; - - /* record sources */ - dsp_scb_descriptor_t * pcm_input; - dsp_scb_descriptor_t * adc_input; - - int spdif_in_sample_rate; -} dsp_spos_instance_t; - -#endif /* __DSP_SPOS_H__ */ |
