Lines Matching full:scb
61 struct dsp_scb_descriptor * scb = scb_info->scb_desc; in cs46xx_dsp_proc_scb_info_read() local
67 snd_iprintf(buffer,"%04x %s:\n",scb->address,scb->scb_name); in cs46xx_dsp_proc_scb_info_read()
74 snd_iprintf(buffer,"%08x ",readl(dst + (scb->address + j) * sizeof(u32))); in cs46xx_dsp_proc_scb_info_read()
79 if (scb->parent_scb_ptr != NULL) { in cs46xx_dsp_proc_scb_info_read()
81 scb->parent_scb_ptr->scb_name, in cs46xx_dsp_proc_scb_info_read()
82 scb->parent_scb_ptr->address); in cs46xx_dsp_proc_scb_info_read()
86 scb->sub_list_ptr->scb_name, in cs46xx_dsp_proc_scb_info_read()
87 scb->sub_list_ptr->address, in cs46xx_dsp_proc_scb_info_read()
88 scb->next_scb_ptr->scb_name, in cs46xx_dsp_proc_scb_info_read()
89 scb->next_scb_ptr->address, in cs46xx_dsp_proc_scb_info_read()
90 scb->task_entry->symbol_name, in cs46xx_dsp_proc_scb_info_read()
91 scb->task_entry->address); in cs46xx_dsp_proc_scb_info_read()
93 snd_iprintf(buffer,"index [%d] ref_count [%d]\n",scb->index,scb->ref_count); in cs46xx_dsp_proc_scb_info_read()
98 static void _dsp_unlink_scb (struct snd_cs46xx *chip, struct dsp_scb_descriptor * scb) in _dsp_unlink_scb() argument
102 if ( scb->parent_scb_ptr ) { in _dsp_unlink_scb()
103 /* unlink parent SCB */ in _dsp_unlink_scb()
104 if (snd_BUG_ON(scb->parent_scb_ptr->sub_list_ptr != scb && in _dsp_unlink_scb()
105 scb->parent_scb_ptr->next_scb_ptr != scb)) in _dsp_unlink_scb()
108 if (scb->parent_scb_ptr->sub_list_ptr == scb) { in _dsp_unlink_scb()
110 if (scb->next_scb_ptr == ins->the_null_scb) { in _dsp_unlink_scb()
112 scb->parent_scb_ptr->sub_list_ptr = scb->sub_list_ptr; in _dsp_unlink_scb()
114 if (scb->sub_list_ptr != ins->the_null_scb) { in _dsp_unlink_scb()
115 scb->sub_list_ptr->parent_scb_ptr = scb->parent_scb_ptr; in _dsp_unlink_scb()
117 scb->sub_list_ptr = ins->the_null_scb; in _dsp_unlink_scb()
120 scb->parent_scb_ptr->sub_list_ptr = scb->next_scb_ptr; in _dsp_unlink_scb()
122 if (scb->next_scb_ptr != ins->the_null_scb) { in _dsp_unlink_scb()
124 scb->next_scb_ptr->parent_scb_ptr = scb->parent_scb_ptr; in _dsp_unlink_scb()
126 scb->next_scb_ptr = ins->the_null_scb; in _dsp_unlink_scb()
129 scb->parent_scb_ptr->next_scb_ptr = scb->next_scb_ptr; in _dsp_unlink_scb()
131 if (scb->next_scb_ptr != ins->the_null_scb) { in _dsp_unlink_scb()
133 scb->next_scb_ptr->parent_scb_ptr = scb->parent_scb_ptr; in _dsp_unlink_scb()
135 scb->next_scb_ptr = ins->the_null_scb; in _dsp_unlink_scb()
139 cs46xx_dsp_spos_update_scb(chip,scb->parent_scb_ptr); in _dsp_unlink_scb()
142 cs46xx_dsp_spos_update_scb(chip,scb); in _dsp_unlink_scb()
144 scb->parent_scb_ptr = NULL; in _dsp_unlink_scb()
160 void cs46xx_dsp_remove_scb (struct snd_cs46xx *chip, struct dsp_scb_descriptor * scb) in cs46xx_dsp_remove_scb() argument
166 if (snd_BUG_ON(scb->index < 0 || in cs46xx_dsp_remove_scb()
167 scb->index >= ins->nscb || in cs46xx_dsp_remove_scb()
168 (ins->scbs + scb->index) != scb)) in cs46xx_dsp_remove_scb()
172 /* can't remove a SCB with childs before in cs46xx_dsp_remove_scb()
174 if (snd_BUG_ON(scb->sub_list_ptr != ins->the_null_scb || in cs46xx_dsp_remove_scb()
175 scb->next_scb_ptr != ins->the_null_scb)) in cs46xx_dsp_remove_scb()
180 _dsp_unlink_scb (chip,scb); in cs46xx_dsp_remove_scb()
183 cs46xx_dsp_proc_free_scb_desc(scb); in cs46xx_dsp_remove_scb()
184 if (snd_BUG_ON(!scb->scb_symbol)) in cs46xx_dsp_remove_scb()
186 remove_symbol (chip,scb->scb_symbol); in cs46xx_dsp_remove_scb()
188 ins->scbs[scb->index].deleted = 1; in cs46xx_dsp_remove_scb()
190 kfree(ins->scbs[scb->index].data); in cs46xx_dsp_remove_scb()
191 ins->scbs[scb->index].data = NULL; in cs46xx_dsp_remove_scb()
194 if (scb->index < ins->scb_highest_frag_index) in cs46xx_dsp_remove_scb()
195 ins->scb_highest_frag_index = scb->index; in cs46xx_dsp_remove_scb()
197 if (scb->index == ins->nscb - 1) { in cs46xx_dsp_remove_scb()
207 for(i = scb->index + 1;i < ins->nscb; ++i) { in cs46xx_dsp_remove_scb()
215 void cs46xx_dsp_proc_free_scb_desc (struct dsp_scb_descriptor * scb) in cs46xx_dsp_proc_free_scb_desc() argument
217 if (scb->proc_info) { in cs46xx_dsp_proc_free_scb_desc()
218 struct proc_scb_info * scb_info = scb->proc_info->private_data; in cs46xx_dsp_proc_free_scb_desc()
223 scb->scb_name); in cs46xx_dsp_proc_free_scb_desc()
225 snd_info_free_entry(scb->proc_info); in cs46xx_dsp_proc_free_scb_desc()
226 scb->proc_info = NULL; in cs46xx_dsp_proc_free_scb_desc()
233 struct dsp_scb_descriptor * scb) in cs46xx_dsp_proc_register_scb_desc() argument
241 scb->proc_info == NULL) { in cs46xx_dsp_proc_register_scb_desc()
243 entry = snd_info_create_card_entry(ins->snd_card, scb->scb_name, in cs46xx_dsp_proc_register_scb_desc()
254 scb_info->scb_desc = scb; in cs46xx_dsp_proc_register_scb_desc()
259 scb->proc_info = entry; in cs46xx_dsp_proc_register_scb_desc()
271 struct dsp_scb_descriptor * scb; in _dsp_create_generic_scb() local
285 dev_dbg(chip->card->dev, "dsp_spos: creating SCB <%s>\n", name); in _dsp_create_generic_scb()
287 scb = cs46xx_dsp_create_scb(chip,name,scb_data,dest); in _dsp_create_generic_scb()
290 scb->sub_list_ptr = ins->the_null_scb; in _dsp_create_generic_scb()
291 scb->next_scb_ptr = ins->the_null_scb; in _dsp_create_generic_scb()
293 scb->parent_scb_ptr = parent_scb; in _dsp_create_generic_scb()
294 scb->task_entry = task_entry; in _dsp_create_generic_scb()
297 /* update parent SCB */ in _dsp_create_generic_scb()
298 if (scb->parent_scb_ptr) { in _dsp_create_generic_scb()
301 "scb->parent_scb_ptr = %s\n", in _dsp_create_generic_scb()
302 scb->parent_scb_ptr->scb_name); in _dsp_create_generic_scb()
304 "scb->parent_scb_ptr->next_scb_ptr = %s\n", in _dsp_create_generic_scb()
305 scb->parent_scb_ptr->next_scb_ptr->scb_name); in _dsp_create_generic_scb()
307 "scb->parent_scb_ptr->sub_list_ptr = %s\n", in _dsp_create_generic_scb()
308 scb->parent_scb_ptr->sub_list_ptr->scb_name); in _dsp_create_generic_scb()
310 /* link to parent SCB */ in _dsp_create_generic_scb()
312 if (snd_BUG_ON(scb->parent_scb_ptr->next_scb_ptr != in _dsp_create_generic_scb()
316 scb->parent_scb_ptr->next_scb_ptr = scb; in _dsp_create_generic_scb()
319 if (snd_BUG_ON(scb->parent_scb_ptr->sub_list_ptr != in _dsp_create_generic_scb()
323 scb->parent_scb_ptr->sub_list_ptr = scb; in _dsp_create_generic_scb()
331 cs46xx_dsp_spos_update_scb(chip,scb->parent_scb_ptr); in _dsp_create_generic_scb()
337 cs46xx_dsp_proc_register_scb_desc (chip,scb); in _dsp_create_generic_scb()
339 return scb; in _dsp_create_generic_scb()
366 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_timing_master_scb() local
389 scb = cs46xx_dsp_create_generic_scb(chip,"TimingMasterSCBInst",(u32 *)&timing_master_scb, in cs46xx_dsp_create_timing_master_scb()
393 return scb; in cs46xx_dsp_create_timing_master_scb()
403 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_codec_out_scb() local
424 0,child_scb_addr /* COreserved - need child scb to work with rom code */ in cs46xx_dsp_create_codec_out_scb()
428 scb = cs46xx_dsp_create_generic_scb(chip,codec_name,(u32 *)&codec_out_scb, in cs46xx_dsp_create_codec_out_scb()
432 return scb; in cs46xx_dsp_create_codec_out_scb()
442 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_codec_in_scb() local
470 0x80008000 /* ??clw cwcgame.scb has 0 */ in cs46xx_dsp_create_codec_in_scb()
473 scb = cs46xx_dsp_create_generic_scb(chip,codec_name,(u32 *)&codec_input_scb, in cs46xx_dsp_create_codec_in_scb()
476 return scb; in cs46xx_dsp_create_codec_in_scb()
488 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_pcm_reader_scb() local
495 PlayAC: Play Audio Data Conversion - SCB loc: 2nd dword, mask: 0x0000F000L in cs46xx_dsp_create_pcm_reader_scb()
512 HostBuffAddr: Host Buffer Physical Byte Address - SCB loc:3rd dword, Mask: 0xFFFFFFFFL in cs46xx_dsp_create_pcm_reader_scb()
540 /* Sublist pointer & next stream control block (SCB) link. */ in cs46xx_dsp_create_pcm_reader_scb()
575 scb = _dsp_create_generic_scb(chip,scb_name,(u32 *)&pcm_reader_scb, in cs46xx_dsp_create_pcm_reader_scb()
579 return scb; in cs46xx_dsp_create_pcm_reader_scb()
595 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_src_task_scb() local
674 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&src_task_scb, in cs46xx_dsp_create_src_task_scb()
678 scb = _dsp_create_generic_scb(chip,scb_name,(u32 *)&src_task_scb, in cs46xx_dsp_create_src_task_scb()
686 return scb; in cs46xx_dsp_create_src_task_scb()
695 struct dsp_scb_descriptor * scb;
732 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&filter_scb,
736 return scb;
746 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_mix_only_scb() local
773 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&master_mix_scb, in cs46xx_dsp_create_mix_only_scb()
776 return scb; in cs46xx_dsp_create_mix_only_scb()
786 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_mix_to_ostream_scb() local
825 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&mix2_ostream_scb, in cs46xx_dsp_create_mix_to_ostream_scb()
830 return scb; in cs46xx_dsp_create_mix_to_ostream_scb()
843 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_vari_decimate_scb() local
870 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&vari_decimate_scb, in cs46xx_dsp_create_vari_decimate_scb()
874 return scb; in cs46xx_dsp_create_vari_decimate_scb()
885 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_pcm_serial_input_scb() local
914 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&pcm_serial_input_scb, in cs46xx_dsp_create_pcm_serial_input_scb()
917 return scb; in cs46xx_dsp_create_pcm_serial_input_scb()
929 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_asynch_fg_tx_scb() local
935 0,hfg_scb_address, /* Point to HFG task SCB */ in cs46xx_dsp_create_asynch_fg_tx_scb()
960 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&asynch_fg_tx_scb, in cs46xx_dsp_create_asynch_fg_tx_scb()
964 return scb; in cs46xx_dsp_create_asynch_fg_tx_scb()
976 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_asynch_fg_rx_scb() local
982 0,hfg_scb_address, /* Point to HFG task SCB */ in cs46xx_dsp_create_asynch_fg_rx_scb()
1009 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&asynch_fg_rx_scb, in cs46xx_dsp_create_asynch_fg_rx_scb()
1013 return scb; in cs46xx_dsp_create_asynch_fg_rx_scb()
1026 struct dsp_scb_descriptor * scb;
1052 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&output_snoop_scb,
1055 return scb;
1065 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_spio_write_scb() local
1089 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&spio_write_scb, in cs46xx_dsp_create_spio_write_scb()
1093 return scb; in cs46xx_dsp_create_spio_write_scb()
1103 struct dsp_scb_descriptor * scb; in cs46xx_dsp_create_magic_snoop_scb() local
1125 scb = cs46xx_dsp_create_generic_scb(chip,scb_name,(u32 *)&magic_snoop_scb, in cs46xx_dsp_create_magic_snoop_scb()
1129 return scb; in cs46xx_dsp_create_magic_snoop_scb()
1136 struct dsp_scb_descriptor * scb = from; in find_next_free_scb() local
1138 while (scb->next_scb_ptr != ins->the_null_scb) { in find_next_free_scb()
1139 if (snd_BUG_ON(!scb->next_scb_ptr)) in find_next_free_scb()
1142 scb = scb->next_scb_ptr; in find_next_free_scb()
1145 return scb; in find_next_free_scb()
1267 /* search for a already created SRC SCB with the same sample rate */ in cs46xx_dsp_create_pcm_channel()
1311 /* we need to create a new SRC SCB */ in cs46xx_dsp_create_pcm_channel()
1357 NULL, /* parent SCB ptr */ in cs46xx_dsp_create_pcm_channel()
1545 /* update SCB entry in DSP RAM */ in cs46xx_dsp_pcm_link()
1548 /* update parent SCB entry */ in cs46xx_dsp_pcm_link()
1590 /* mute SCB */ in cs46xx_src_unlink()