Lines Matching refs:csa

95 static inline int check_spu_isolate(struct spu_state *csa, struct spu *spu)  in check_spu_isolate()  argument
111 static inline void disable_interrupts(struct spu_state *csa, struct spu *spu) in disable_interrupts() argument
125 if (csa) { in disable_interrupts()
126 csa->priv1.int_mask_class0_RW = spu_int_mask_get(spu, 0); in disable_interrupts()
127 csa->priv1.int_mask_class1_RW = spu_int_mask_get(spu, 1); in disable_interrupts()
128 csa->priv1.int_mask_class2_RW = spu_int_mask_get(spu, 2); in disable_interrupts()
148 static inline void set_watchdog_timer(struct spu_state *csa, struct spu *spu) in set_watchdog_timer() argument
161 static inline void inhibit_user_access(struct spu_state *csa, struct spu *spu) in inhibit_user_access() argument
172 static inline void set_switch_pending(struct spu_state *csa, struct spu *spu) in set_switch_pending() argument
181 static inline void save_mfc_cntl(struct spu_state *csa, struct spu *spu) in save_mfc_cntl() argument
196 if (csa) in save_mfc_cntl()
197 csa->priv2.mfc_control_RW = in save_mfc_cntl()
206 if (csa) in save_mfc_cntl()
207 csa->priv2.mfc_control_RW = in save_mfc_cntl()
215 static inline void save_spu_runcntl(struct spu_state *csa, struct spu *spu) in save_spu_runcntl() argument
223 csa->prob.spu_runcntl_RW = in_be32(&prob->spu_runcntl_RW); in save_spu_runcntl()
226 static inline void save_mfc_sr1(struct spu_state *csa, struct spu *spu) in save_mfc_sr1() argument
231 csa->priv1.mfc_sr1_RW = spu_mfc_sr1_get(spu); in save_mfc_sr1()
234 static inline void save_spu_status(struct spu_state *csa, struct spu *spu) in save_spu_status() argument
242 csa->prob.spu_status_R = in_be32(&prob->spu_status_R); in save_spu_status()
254 csa->prob.spu_status_R = SPU_STATUS_RUNNING; in save_spu_status()
256 csa->prob.spu_status_R = in_be32(&prob->spu_status_R); in save_spu_status()
260 static inline void save_mfc_stopped_status(struct spu_state *csa, in save_mfc_stopped_status() argument
273 csa->priv2.mfc_control_RW &= ~mask; in save_mfc_stopped_status()
274 csa->priv2.mfc_control_RW |= in_be64(&priv2->mfc_control_RW) & mask; in save_mfc_stopped_status()
277 static inline void halt_mfc_decr(struct spu_state *csa, struct spu *spu) in halt_mfc_decr() argument
290 static inline void save_timebase(struct spu_state *csa, struct spu *spu) in save_timebase() argument
296 csa->suspend_time = get_cycles(); in save_timebase()
299 static inline void remove_other_spu_access(struct spu_state *csa, in remove_other_spu_access() argument
308 static inline void do_mfc_mssync(struct spu_state *csa, struct spu *spu) in do_mfc_mssync() argument
321 static inline void issue_mfc_tlbie(struct spu_state *csa, struct spu *spu) in issue_mfc_tlbie() argument
333 static inline void handle_pending_interrupts(struct spu_state *csa, in handle_pending_interrupts() argument
347 static inline void save_mfc_queues(struct spu_state *csa, struct spu *spu) in save_mfc_queues() argument
358 csa->priv2.puq[i].mfc_cq_data0_RW = in save_mfc_queues()
360 csa->priv2.puq[i].mfc_cq_data1_RW = in save_mfc_queues()
362 csa->priv2.puq[i].mfc_cq_data2_RW = in save_mfc_queues()
364 csa->priv2.puq[i].mfc_cq_data3_RW = in save_mfc_queues()
368 csa->priv2.spuq[i].mfc_cq_data0_RW = in save_mfc_queues()
370 csa->priv2.spuq[i].mfc_cq_data1_RW = in save_mfc_queues()
372 csa->priv2.spuq[i].mfc_cq_data2_RW = in save_mfc_queues()
374 csa->priv2.spuq[i].mfc_cq_data3_RW = in save_mfc_queues()
380 static inline void save_ppu_querymask(struct spu_state *csa, struct spu *spu) in save_ppu_querymask() argument
388 csa->prob.dma_querymask_RW = in_be32(&prob->dma_querymask_RW); in save_ppu_querymask()
391 static inline void save_ppu_querytype(struct spu_state *csa, struct spu *spu) in save_ppu_querytype() argument
399 csa->prob.dma_querytype_RW = in_be32(&prob->dma_querytype_RW); in save_ppu_querytype()
402 static inline void save_ppu_tagstatus(struct spu_state *csa, struct spu *spu) in save_ppu_tagstatus() argument
412 csa->prob.dma_tagstatus_R = in_be32(&prob->dma_tagstatus_R); in save_ppu_tagstatus()
415 static inline void save_mfc_csr_tsq(struct spu_state *csa, struct spu *spu) in save_mfc_csr_tsq() argument
423 csa->priv2.spu_tag_status_query_RW = in save_mfc_csr_tsq()
427 static inline void save_mfc_csr_cmd(struct spu_state *csa, struct spu *spu) in save_mfc_csr_cmd() argument
435 csa->priv2.spu_cmd_buf1_RW = in_be64(&priv2->spu_cmd_buf1_RW); in save_mfc_csr_cmd()
436 csa->priv2.spu_cmd_buf2_RW = in_be64(&priv2->spu_cmd_buf2_RW); in save_mfc_csr_cmd()
439 static inline void save_mfc_csr_ato(struct spu_state *csa, struct spu *spu) in save_mfc_csr_ato() argument
447 csa->priv2.spu_atomic_status_RW = in_be64(&priv2->spu_atomic_status_RW); in save_mfc_csr_ato()
450 static inline void save_mfc_tclass_id(struct spu_state *csa, struct spu *spu) in save_mfc_tclass_id() argument
456 csa->priv1.mfc_tclass_id_RW = spu_mfc_tclass_id_get(spu); in save_mfc_tclass_id()
459 static inline void set_mfc_tclass_id(struct spu_state *csa, struct spu *spu) in set_mfc_tclass_id() argument
470 static inline void purge_mfc_queue(struct spu_state *csa, struct spu *spu) in purge_mfc_queue() argument
484 static inline void wait_purge_complete(struct spu_state *csa, struct spu *spu) in wait_purge_complete() argument
497 static inline void setup_mfc_sr1(struct spu_state *csa, struct spu *spu) in setup_mfc_sr1() argument
515 static inline void save_spu_npc(struct spu_state *csa, struct spu *spu) in save_spu_npc() argument
522 csa->prob.spu_npc_RW = in_be32(&prob->spu_npc_RW); in save_spu_npc()
525 static inline void save_spu_privcntl(struct spu_state *csa, struct spu *spu) in save_spu_privcntl() argument
532 csa->priv2.spu_privcntl_RW = in_be64(&priv2->spu_privcntl_RW); in save_spu_privcntl()
535 static inline void reset_spu_privcntl(struct spu_state *csa, struct spu *spu) in reset_spu_privcntl() argument
547 static inline void save_spu_lslr(struct spu_state *csa, struct spu *spu) in save_spu_lslr() argument
554 csa->priv2.spu_lslr_RW = in_be64(&priv2->spu_lslr_RW); in save_spu_lslr()
557 static inline void reset_spu_lslr(struct spu_state *csa, struct spu *spu) in reset_spu_lslr() argument
569 static inline void save_spu_cfg(struct spu_state *csa, struct spu *spu) in save_spu_cfg() argument
576 csa->priv2.spu_cfg_RW = in_be64(&priv2->spu_cfg_RW); in save_spu_cfg()
579 static inline void save_pm_trace(struct spu_state *csa, struct spu *spu) in save_pm_trace() argument
587 static inline void save_mfc_rag(struct spu_state *csa, struct spu *spu) in save_mfc_rag() argument
593 csa->priv1.resource_allocation_groupID_RW = in save_mfc_rag()
595 csa->priv1.resource_allocation_enable_RW = in save_mfc_rag()
599 static inline void save_ppu_mb_stat(struct spu_state *csa, struct spu *spu) in save_ppu_mb_stat() argument
606 csa->prob.mb_stat_R = in_be32(&prob->mb_stat_R); in save_ppu_mb_stat()
609 static inline void save_ppu_mb(struct spu_state *csa, struct spu *spu) in save_ppu_mb() argument
616 csa->prob.pu_mb_R = in_be32(&prob->pu_mb_R); in save_ppu_mb()
619 static inline void save_ppuint_mb(struct spu_state *csa, struct spu *spu) in save_ppuint_mb() argument
626 csa->priv2.puint_mb_R = in_be64(&priv2->puint_mb_R); in save_ppuint_mb()
629 static inline void save_ch_part1(struct spu_state *csa, struct spu *spu) in save_ch_part1() argument
640 csa->spu_chnldata_RW[1] = in_be64(&priv2->spu_chnldata_RW); in save_ch_part1()
647 csa->spu_chnldata_RW[idx] = in_be64(&priv2->spu_chnldata_RW); in save_ch_part1()
648 csa->spu_chnlcnt_RW[idx] = in_be64(&priv2->spu_chnlcnt_RW); in save_ch_part1()
655 static inline void save_spu_mb(struct spu_state *csa, struct spu *spu) in save_spu_mb() argument
665 csa->spu_chnlcnt_RW[29] = in_be64(&priv2->spu_chnlcnt_RW); in save_spu_mb()
667 csa->spu_mailbox_data[i] = in_be64(&priv2->spu_chnldata_RW); in save_spu_mb()
673 static inline void save_mfc_cmd(struct spu_state *csa, struct spu *spu) in save_mfc_cmd() argument
682 csa->spu_chnlcnt_RW[21] = in_be64(&priv2->spu_chnlcnt_RW); in save_mfc_cmd()
686 static inline void reset_ch(struct spu_state *csa, struct spu *spu) in reset_ch() argument
706 static inline void resume_mfc_queue(struct spu_state *csa, struct spu *spu) in resume_mfc_queue() argument
717 static inline void setup_mfc_slbs(struct spu_state *csa, struct spu *spu, in setup_mfc_slbs() argument
735 spu_setup_kernel_slbs(spu, csa->lscsa, code, code_size); in setup_mfc_slbs()
738 static inline void set_switch_active(struct spu_state *csa, struct spu *spu) in set_switch_active() argument
750 csa->priv2.mfc_control_RW |= MFC_CNTL_RESTART_DMA_COMMAND; in set_switch_active()
755 static inline void enable_interrupts(struct spu_state *csa, struct spu *spu) in enable_interrupts() argument
812 static inline void save_ls_16kb(struct spu_state *csa, struct spu *spu) in save_ls_16kb() argument
814 unsigned long addr = (unsigned long)&csa->lscsa->ls[0]; in save_ls_16kb()
828 static inline void set_spu_npc(struct spu_state *csa, struct spu *spu) in set_spu_npc() argument
845 static inline void set_signot1(struct spu_state *csa, struct spu *spu) in set_signot1() argument
858 addr64.ull = (u64) csa->lscsa; in set_signot1()
863 static inline void set_signot2(struct spu_state *csa, struct spu *spu) in set_signot2() argument
876 addr64.ull = (u64) csa->lscsa; in set_signot2()
881 static inline void send_save_code(struct spu_state *csa, struct spu *spu) in send_save_code() argument
897 static inline void set_ppu_querymask(struct spu_state *csa, struct spu *spu) in set_ppu_querymask() argument
910 static inline void wait_tag_complete(struct spu_state *csa, struct spu *spu) in wait_tag_complete() argument
933 static inline void wait_spu_stopped(struct spu_state *csa, struct spu *spu) in wait_spu_stopped() argument
952 static inline int check_save_status(struct spu_state *csa, struct spu *spu) in check_save_status() argument
967 static inline void terminate_spu_app(struct spu_state *csa, struct spu *spu) in terminate_spu_app() argument
975 static inline void suspend_mfc_and_halt_decr(struct spu_state *csa, in suspend_mfc_and_halt_decr() argument
989 static inline void wait_suspend_mfc_complete(struct spu_state *csa, in wait_suspend_mfc_complete() argument
1003 static inline int suspend_spe(struct spu_state *csa, struct spu *spu) in suspend_spe() argument
1045 static inline void clear_spu_status(struct spu_state *csa, struct spu *spu) in clear_spu_status() argument
1079 static inline void reset_ch_part1(struct spu_state *csa, struct spu *spu) in reset_ch_part1() argument
1104 static inline void reset_ch_part2(struct spu_state *csa, struct spu *spu) in reset_ch_part2() argument
1124 static inline void setup_spu_status_part1(struct spu_state *csa, in setup_spu_status_part1() argument
1150 (csa->prob.spu_status_R >> SPU_STOP_STATUS_SHIFT) & 0xFFFF; in setup_spu_status_part1()
1151 if ((csa->prob.spu_status_R & status_P_I) == status_P_I) { in setup_spu_status_part1()
1157 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_P_I; in setup_spu_status_part1()
1158 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1160 } else if ((csa->prob.spu_status_R & status_P_H) == status_P_H) { in setup_spu_status_part1()
1166 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_P_H; in setup_spu_status_part1()
1167 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1169 } else if ((csa->prob.spu_status_R & status_S_P) == status_S_P) { in setup_spu_status_part1()
1174 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_S_P; in setup_spu_status_part1()
1175 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1177 } else if ((csa->prob.spu_status_R & status_S_I) == status_S_I) { in setup_spu_status_part1()
1182 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_S_I; in setup_spu_status_part1()
1183 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1185 } else if ((csa->prob.spu_status_R & status_P) == status_P) { in setup_spu_status_part1()
1190 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_P; in setup_spu_status_part1()
1191 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1193 } else if ((csa->prob.spu_status_R & status_H) == status_H) { in setup_spu_status_part1()
1198 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_H; in setup_spu_status_part1()
1200 } else if ((csa->prob.spu_status_R & status_S) == status_S) { in setup_spu_status_part1()
1204 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_S; in setup_spu_status_part1()
1206 } else if ((csa->prob.spu_status_R & status_I) == status_I) { in setup_spu_status_part1()
1211 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_I; in setup_spu_status_part1()
1216 static inline void setup_spu_status_part2(struct spu_state *csa, in setup_spu_status_part2() argument
1235 if (!(csa->prob.spu_status_R & mask)) { in setup_spu_status_part2()
1236 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_R; in setup_spu_status_part2()
1240 static inline void restore_mfc_rag(struct spu_state *csa, struct spu *spu) in restore_mfc_rag() argument
1247 csa->priv1.resource_allocation_groupID_RW); in restore_mfc_rag()
1249 csa->priv1.resource_allocation_enable_RW); in restore_mfc_rag()
1252 static inline void send_restore_code(struct spu_state *csa, struct spu *spu) in send_restore_code() argument
1268 static inline void setup_decr(struct spu_state *csa, struct spu *spu) in setup_decr() argument
1277 if (csa->priv2.mfc_control_RW & MFC_CNTL_DECREMENTER_RUNNING) { in setup_decr()
1279 cycles_t delta_time = resume_time - csa->suspend_time; in setup_decr()
1281 csa->lscsa->decr_status.slot[0] = SPU_DECR_STATUS_RUNNING; in setup_decr()
1282 if (csa->lscsa->decr.slot[0] < delta_time) { in setup_decr()
1283 csa->lscsa->decr_status.slot[0] |= in setup_decr()
1287 csa->lscsa->decr.slot[0] -= delta_time; in setup_decr()
1289 csa->lscsa->decr_status.slot[0] = 0; in setup_decr()
1293 static inline void setup_ppu_mb(struct spu_state *csa, struct spu *spu) in setup_ppu_mb() argument
1298 csa->lscsa->ppu_mb.slot[0] = csa->prob.pu_mb_R; in setup_ppu_mb()
1301 static inline void setup_ppuint_mb(struct spu_state *csa, struct spu *spu) in setup_ppuint_mb() argument
1306 csa->lscsa->ppuint_mb.slot[0] = csa->priv2.puint_mb_R; in setup_ppuint_mb()
1309 static inline int check_restore_status(struct spu_state *csa, struct spu *spu) in check_restore_status() argument
1324 static inline void restore_spu_privcntl(struct spu_state *csa, struct spu *spu) in restore_spu_privcntl() argument
1331 out_be64(&priv2->spu_privcntl_RW, csa->priv2.spu_privcntl_RW); in restore_spu_privcntl()
1335 static inline void restore_status_part1(struct spu_state *csa, struct spu *spu) in restore_status_part1() argument
1347 if (csa->prob.spu_status_R & mask) { in restore_status_part1()
1355 static inline void restore_status_part2(struct spu_state *csa, struct spu *spu) in restore_status_part2() argument
1370 if (!(csa->prob.spu_status_R & mask)) { in restore_status_part2()
1382 static inline void restore_ls_16kb(struct spu_state *csa, struct spu *spu) in restore_ls_16kb() argument
1384 unsigned long addr = (unsigned long)&csa->lscsa->ls[0]; in restore_ls_16kb()
1398 static inline void suspend_mfc(struct spu_state *csa, struct spu *spu) in suspend_mfc() argument
1410 static inline void clear_interrupts(struct spu_state *csa, struct spu *spu) in clear_interrupts() argument
1430 static inline void restore_mfc_queues(struct spu_state *csa, struct spu *spu) in restore_mfc_queues() argument
1439 if ((csa->priv2.mfc_control_RW & MFC_CNTL_DMA_QUEUES_EMPTY_MASK) == 0) { in restore_mfc_queues()
1442 csa->priv2.puq[i].mfc_cq_data0_RW); in restore_mfc_queues()
1444 csa->priv2.puq[i].mfc_cq_data1_RW); in restore_mfc_queues()
1446 csa->priv2.puq[i].mfc_cq_data2_RW); in restore_mfc_queues()
1448 csa->priv2.puq[i].mfc_cq_data3_RW); in restore_mfc_queues()
1452 csa->priv2.spuq[i].mfc_cq_data0_RW); in restore_mfc_queues()
1454 csa->priv2.spuq[i].mfc_cq_data1_RW); in restore_mfc_queues()
1456 csa->priv2.spuq[i].mfc_cq_data2_RW); in restore_mfc_queues()
1458 csa->priv2.spuq[i].mfc_cq_data3_RW); in restore_mfc_queues()
1464 static inline void restore_ppu_querymask(struct spu_state *csa, struct spu *spu) in restore_ppu_querymask() argument
1471 out_be32(&prob->dma_querymask_RW, csa->prob.dma_querymask_RW); in restore_ppu_querymask()
1475 static inline void restore_ppu_querytype(struct spu_state *csa, struct spu *spu) in restore_ppu_querytype() argument
1482 out_be32(&prob->dma_querytype_RW, csa->prob.dma_querytype_RW); in restore_ppu_querytype()
1486 static inline void restore_mfc_csr_tsq(struct spu_state *csa, struct spu *spu) in restore_mfc_csr_tsq() argument
1494 csa->priv2.spu_tag_status_query_RW); in restore_mfc_csr_tsq()
1498 static inline void restore_mfc_csr_cmd(struct spu_state *csa, struct spu *spu) in restore_mfc_csr_cmd() argument
1506 out_be64(&priv2->spu_cmd_buf1_RW, csa->priv2.spu_cmd_buf1_RW); in restore_mfc_csr_cmd()
1507 out_be64(&priv2->spu_cmd_buf2_RW, csa->priv2.spu_cmd_buf2_RW); in restore_mfc_csr_cmd()
1511 static inline void restore_mfc_csr_ato(struct spu_state *csa, struct spu *spu) in restore_mfc_csr_ato() argument
1518 out_be64(&priv2->spu_atomic_status_RW, csa->priv2.spu_atomic_status_RW); in restore_mfc_csr_ato()
1521 static inline void restore_mfc_tclass_id(struct spu_state *csa, struct spu *spu) in restore_mfc_tclass_id() argument
1526 spu_mfc_tclass_id_set(spu, csa->priv1.mfc_tclass_id_RW); in restore_mfc_tclass_id()
1530 static inline void set_llr_event(struct spu_state *csa, struct spu *spu) in set_llr_event() argument
1543 ch0_cnt = csa->spu_chnlcnt_RW[0]; in set_llr_event()
1544 ch0_data = csa->spu_chnldata_RW[0]; in set_llr_event()
1545 ch1_data = csa->spu_chnldata_RW[1]; in set_llr_event()
1546 csa->spu_chnldata_RW[0] |= MFC_LLR_LOST_EVENT; in set_llr_event()
1549 csa->spu_chnlcnt_RW[0] = 1; in set_llr_event()
1553 static inline void restore_decr_wrapped(struct spu_state *csa, struct spu *spu) in restore_decr_wrapped() argument
1560 if (!(csa->lscsa->decr_status.slot[0] & SPU_DECR_STATUS_WRAPPED)) in restore_decr_wrapped()
1563 if ((csa->spu_chnlcnt_RW[0] == 0) && in restore_decr_wrapped()
1564 (csa->spu_chnldata_RW[1] & 0x20) && in restore_decr_wrapped()
1565 !(csa->spu_chnldata_RW[0] & 0x20)) in restore_decr_wrapped()
1566 csa->spu_chnlcnt_RW[0] = 1; in restore_decr_wrapped()
1568 csa->spu_chnldata_RW[0] |= 0x20; in restore_decr_wrapped()
1571 static inline void restore_ch_part1(struct spu_state *csa, struct spu *spu) in restore_ch_part1() argument
1584 out_be64(&priv2->spu_chnldata_RW, csa->spu_chnldata_RW[idx]); in restore_ch_part1()
1585 out_be64(&priv2->spu_chnlcnt_RW, csa->spu_chnlcnt_RW[idx]); in restore_ch_part1()
1590 static inline void restore_ch_part2(struct spu_state *csa, struct spu *spu) in restore_ch_part2() argument
1602 ch_counts[1] = csa->spu_chnlcnt_RW[21]; in restore_ch_part2()
1613 static inline void restore_spu_lslr(struct spu_state *csa, struct spu *spu) in restore_spu_lslr() argument
1620 out_be64(&priv2->spu_lslr_RW, csa->priv2.spu_lslr_RW); in restore_spu_lslr()
1624 static inline void restore_spu_cfg(struct spu_state *csa, struct spu *spu) in restore_spu_cfg() argument
1631 out_be64(&priv2->spu_cfg_RW, csa->priv2.spu_cfg_RW); in restore_spu_cfg()
1635 static inline void restore_pm_trace(struct spu_state *csa, struct spu *spu) in restore_pm_trace() argument
1643 static inline void restore_spu_npc(struct spu_state *csa, struct spu *spu) in restore_spu_npc() argument
1650 out_be32(&prob->spu_npc_RW, csa->prob.spu_npc_RW); in restore_spu_npc()
1654 static inline void restore_spu_mb(struct spu_state *csa, struct spu *spu) in restore_spu_mb() argument
1664 out_be64(&priv2->spu_chnlcnt_RW, csa->spu_chnlcnt_RW[29]); in restore_spu_mb()
1666 out_be64(&priv2->spu_chnldata_RW, csa->spu_mailbox_data[i]); in restore_spu_mb()
1671 static inline void check_ppu_mb_stat(struct spu_state *csa, struct spu *spu) in check_ppu_mb_stat() argument
1680 if ((csa->prob.mb_stat_R & 0xFF) == 0) { in check_ppu_mb_stat()
1686 static inline void check_ppuint_mb_stat(struct spu_state *csa, struct spu *spu) in check_ppuint_mb_stat() argument
1695 if ((csa->prob.mb_stat_R & 0xFF0000) == 0) { in check_ppuint_mb_stat()
1703 static inline void restore_mfc_sr1(struct spu_state *csa, struct spu *spu) in restore_mfc_sr1() argument
1708 spu_mfc_sr1_set(spu, csa->priv1.mfc_sr1_RW); in restore_mfc_sr1()
1712 static inline void set_int_route(struct spu_state *csa, struct spu *spu) in set_int_route() argument
1719 static inline void restore_other_spu_access(struct spu_state *csa, in restore_other_spu_access() argument
1727 static inline void restore_spu_runcntl(struct spu_state *csa, struct spu *spu) in restore_spu_runcntl() argument
1735 if (csa->prob.spu_status_R & SPU_STATUS_RUNNING) { in restore_spu_runcntl()
1741 static inline void restore_mfc_cntl(struct spu_state *csa, struct spu *spu) in restore_mfc_cntl() argument
1748 out_be64(&priv2->mfc_control_RW, csa->priv2.mfc_control_RW); in restore_mfc_cntl()
1761 static inline void enable_user_access(struct spu_state *csa, struct spu *spu) in enable_user_access() argument
1771 static inline void reset_switch_active(struct spu_state *csa, struct spu *spu) in reset_switch_active() argument
1779 static inline void reenable_interrupts(struct spu_state *csa, struct spu *spu) in reenable_interrupts() argument
1785 spu_int_mask_set(spu, 0, csa->priv1.int_mask_class0_RW); in reenable_interrupts()
1786 spu_int_mask_set(spu, 1, csa->priv1.int_mask_class1_RW); in reenable_interrupts()
1787 spu_int_mask_set(spu, 2, csa->priv1.int_mask_class2_RW); in reenable_interrupts()
2149 static void init_prob(struct spu_state *csa) in init_prob() argument
2151 csa->spu_chnlcnt_RW[9] = 1; in init_prob()
2152 csa->spu_chnlcnt_RW[21] = 16; in init_prob()
2153 csa->spu_chnlcnt_RW[23] = 1; in init_prob()
2154 csa->spu_chnlcnt_RW[28] = 1; in init_prob()
2155 csa->spu_chnlcnt_RW[30] = 1; in init_prob()
2156 csa->prob.spu_runcntl_RW = SPU_RUNCNTL_STOP; in init_prob()
2157 csa->prob.mb_stat_R = 0x000400; in init_prob()
2160 static void init_priv1(struct spu_state *csa) in init_priv1() argument
2163 csa->priv1.mfc_sr1_RW = MFC_STATE1_LOCAL_STORAGE_DECODE_MASK | in init_priv1()
2169 csa->priv1.int_mask_class0_RW = CLASS0_ENABLE_DMA_ALIGNMENT_INTR | in init_priv1()
2172 csa->priv1.int_mask_class1_RW = CLASS1_ENABLE_SEGMENT_FAULT_INTR | in init_priv1()
2174 csa->priv1.int_mask_class2_RW = CLASS2_ENABLE_SPU_STOP_INTR | in init_priv1()
2179 static void init_priv2(struct spu_state *csa) in init_priv2() argument
2181 csa->priv2.spu_lslr_RW = LS_ADDR_MASK; in init_priv2()
2182 csa->priv2.mfc_control_RW = MFC_CNTL_RESUME_DMA_QUEUE | in init_priv2()
2198 int spu_init_csa(struct spu_state *csa) in spu_init_csa() argument
2202 if (!csa) in spu_init_csa()
2204 memset(csa, 0, sizeof(struct spu_state)); in spu_init_csa()
2206 rc = spu_alloc_lscsa(csa); in spu_init_csa()
2210 spin_lock_init(&csa->register_lock); in spu_init_csa()
2212 init_prob(csa); in spu_init_csa()
2213 init_priv1(csa); in spu_init_csa()
2214 init_priv2(csa); in spu_init_csa()
2219 void spu_fini_csa(struct spu_state *csa) in spu_fini_csa() argument
2221 spu_free_lscsa(csa); in spu_fini_csa()