aboutsummaryrefslogtreecommitdiff
path: root/include/sound/cs46xx_dsp_task_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sound/cs46xx_dsp_task_types.h')
-rw-r--r--include/sound/cs46xx_dsp_task_types.h252
1 files changed, 0 insertions, 252 deletions
diff --git a/include/sound/cs46xx_dsp_task_types.h b/include/sound/cs46xx_dsp_task_types.h
deleted file mode 100644
index 5cf920bfda2..00000000000
--- a/include/sound/cs46xx_dsp_task_types.h
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- * The driver for the Cirrus Logic's Sound Fusion CS46XX based soundcards
- * Copyright (c) by Jaroslav Kysela <perex@perex.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
- *
- *
- * NOTE: comments are copy/paste from cwcemb80.lst
- * provided by Tom Woller at Cirrus (my only
- * documentation about the SP OS running inside
- * the DSP)
- */
-
-#ifndef __CS46XX_DSP_TASK_TYPES_H__
-#define __CS46XX_DSP_TASK_TYPES_H__
-
-#include "cs46xx_dsp_scb_types.h"
-
-/*********************************************************************************************
-Example hierarchy of stream control blocks in the SP
-
-hfgTree
-Ptr____Call (c)
- \
- -------+------ ------------- ------------- ------------- -----
-| SBlaster IF |______\| Foreground |___\| Middlegr'nd |___\| Background |___\| Nul |
-| |Goto /| tree header |g /| tree header |g /| tree header |g /| SCB |r
- -------------- (g) ------------- ------------- ------------- -----
- |c |c |c |c
- | | | |
- \/ ------------- ------------- -------------
- | Foreground |_\ | Middlegr'nd |_\ | Background |_\
- | tree |g/ | tree |g/ | tree |g/
- ------------- ------------- -------------
- |c |c |c
- | | |
- \/ \/ \/
-
-*********************************************************************************************/
-
-#define HFG_FIRST_EXECUTE_MODE 0x0001
-#define HFG_FIRST_EXECUTE_MODE_BIT 0
-#define HFG_CONTEXT_SWITCH_MODE 0x0002
-#define HFG_CONTEXT_SWITCH_MODE_BIT 1
-
-#define MAX_FG_STACK_SIZE 32 /* THESE NEED TO BE COMPUTED PROPERLY */
-#define MAX_MG_STACK_SIZE 16
-#define MAX_BG_STACK_SIZE 9
-#define MAX_HFG_STACK_SIZE 4
-
-#define SLEEP_ACTIVE_INCREMENT 0 /* Enable task tree thread to go to sleep
- This should only ever be used on the Background thread */
-#define STANDARD_ACTIVE_INCREMENT 1 /* Task tree thread normal operation */
-#define SUSPEND_ACTIVE_INCREMENT 2 /* Cause execution to suspend in the task tree thread
- This should only ever be used on the Background thread */
-
-#define HOSTFLAGS_DISABLE_BG_SLEEP 0 /* Host-controlled flag that determines whether we go to sleep
- at the end of BG */
-
-/* Minimal context save area for Hyper Forground */
-struct dsp_hf_save_area {
- u32 r10_save;
- u32 r54_save;
- u32 r98_save;
-
- ___DSP_DUAL_16BIT_ALLOC(
- status_save,
- ind_save
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- rci1_save,
- rci0_save
- )
-
- u32 r32_save;
- u32 r76_save;
- u32 rsd2_save;
-
- ___DSP_DUAL_16BIT_ALLOC(
- rsi2_save, /* See TaskTreeParameterBlock for
- remainder of registers */
- rsa2Save
- )
- /* saved as part of HFG context */
-};
-
-
-/* Task link data structure */
-struct dsp_tree_link {
- ___DSP_DUAL_16BIT_ALLOC(
- /* Pointer to sibling task control block */
- next_scb,
- /* Pointer to child task control block */
- sub_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* Pointer to code entry point */
- entry_point,
- /* Pointer to local data */
- this_spb
- )
-};
-
-
-struct dsp_task_tree_data {
- ___DSP_DUAL_16BIT_ALLOC(
- /* Initial tock count; controls task tree execution rate */
- tock_count_limit,
- /* Tock down counter */
- tock_count
- )
-
- /* Add to ActiveCount when TockCountLimit reached:
- Subtract on task tree termination */
- ___DSP_DUAL_16BIT_ALLOC(
- active_tncrement,
- /* Number of pending activations for task tree */
- active_count
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* BitNumber to enable modification of correct bit in ActiveTaskFlags */
- active_bit,
- /* Pointer to OS location for indicating current activity on task level */
- active_task_flags_ptr
- )
-
- /* Data structure for controlling movement of memory blocks:-
- currently unused */
- ___DSP_DUAL_16BIT_ALLOC(
- mem_upd_ptr,
- /* Data structure for controlling synchronous link update */
- link_upd_ptr
- )
-
- ___DSP_DUAL_16BIT_ALLOC(
- /* Save area for remainder of full context. */
- save_area,
- /* Address of start of local stack for data storage */
- data_stack_base_ptr
- )
-
-};
-
-
-struct dsp_interval_timer_data
-{
- /* These data items have the same relative locations to those */
- ___DSP_DUAL_16BIT_ALLOC(
- interval_timer_period,
- itd_unused
- )
-
- /* used for this data in the SPOS control block for SPOS 1.0 */
- ___DSP_DUAL_16BIT_ALLOC(
- num_FG_ticks_this_interval,
- num_intervals
- )
-};
-
-
-/* This structure contains extra storage for the task tree
- Currently, this additional data is related only to a full context save */
-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 */
- ___DSP_DUAL_16BIT_ALLOC(
- stack1,
- stack0
- )
- ___DSP_DUAL_16BIT_ALLOC(
- stack3,
- stack2
- )
- ___DSP_DUAL_16BIT_ALLOC(
- stack5,
- stack4
- )
- ___DSP_DUAL_16BIT_ALLOC(
- stack7,
- stack6
- )
- ___DSP_DUAL_16BIT_ALLOC(
- stack9,
- stack8
- )
-
- u32 saverfe;
-
- /* Value may be overwriten by stack save algorithm.
- Retain the size of the stack data saved here if used */
- ___DSP_DUAL_16BIT_ALLOC(
- reserved1,
- stack_size
- )
- u32 saverba; /* (HFG) */
- u32 saverdc;
- u32 savers_config_23; /* (HFG) */
- u32 savers_DMA23; /* (HFG) */
- u32 saversa0;
- u32 saversi0;
- u32 saversa1;
- u32 saversi1;
- u32 saversa3;
- u32 saversd0;
- u32 saversd1;
- u32 saversd3;
- u32 savers_config01;
- u32 savers_DMA01;
- u32 saveacc0hl;
- u32 saveacc1hl;
- u32 saveacc0xacc1x;
- u32 saveacc2hl;
- u32 saveacc3hl;
- u32 saveacc2xacc3x;
- u32 saveaux0hl;
- u32 saveaux1hl;
- u32 saveaux0xaux1x;
- u32 saveaux2hl;
- u32 saveaux3hl;
- u32 saveaux2xaux3x;
- u32 savershouthl;
- u32 savershoutxmacmode;
-};
-
-
-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__ */