sound/pci/cs46xx/cs46xx_dsp_task_types.h

Source file repositories/reference/linux-study-clean/sound/pci/cs46xx/cs46xx_dsp_task_types.h

File Facts

System
Linux kernel
Corpus path
sound/pci/cs46xx/cs46xx_dsp_task_types.h
Extension
.h
Size
6599 bytes
Lines
238
Domain
Driver Families
Bucket
sound/pci
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

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 */

Annotation

Implementation Notes