Lines Matching refs:csa
81 static inline int check_spu_isolate(struct spu_state *csa, struct spu *spu) in check_spu_isolate() argument
97 static inline void disable_interrupts(struct spu_state *csa, struct spu *spu) in disable_interrupts() argument
111 if (csa) { in disable_interrupts()
112 csa->priv1.int_mask_class0_RW = spu_int_mask_get(spu, 0); in disable_interrupts()
113 csa->priv1.int_mask_class1_RW = spu_int_mask_get(spu, 1); in disable_interrupts()
114 csa->priv1.int_mask_class2_RW = spu_int_mask_get(spu, 2); in disable_interrupts()
134 static inline void set_watchdog_timer(struct spu_state *csa, struct spu *spu) in set_watchdog_timer() argument
147 static inline void inhibit_user_access(struct spu_state *csa, struct spu *spu) in inhibit_user_access() argument
158 static inline void set_switch_pending(struct spu_state *csa, struct spu *spu) in set_switch_pending() argument
167 static inline void save_mfc_cntl(struct spu_state *csa, struct spu *spu) in save_mfc_cntl() argument
182 if (csa) in save_mfc_cntl()
183 csa->priv2.mfc_control_RW = in save_mfc_cntl()
192 if (csa) in save_mfc_cntl()
193 csa->priv2.mfc_control_RW = in save_mfc_cntl()
201 static inline void save_spu_runcntl(struct spu_state *csa, struct spu *spu) in save_spu_runcntl() argument
209 csa->prob.spu_runcntl_RW = in_be32(&prob->spu_runcntl_RW); in save_spu_runcntl()
212 static inline void save_mfc_sr1(struct spu_state *csa, struct spu *spu) in save_mfc_sr1() argument
217 csa->priv1.mfc_sr1_RW = spu_mfc_sr1_get(spu); in save_mfc_sr1()
220 static inline void save_spu_status(struct spu_state *csa, struct spu *spu) in save_spu_status() argument
228 csa->prob.spu_status_R = in_be32(&prob->spu_status_R); in save_spu_status()
240 csa->prob.spu_status_R = SPU_STATUS_RUNNING; in save_spu_status()
242 csa->prob.spu_status_R = in_be32(&prob->spu_status_R); in save_spu_status()
246 static inline void save_mfc_stopped_status(struct spu_state *csa, in save_mfc_stopped_status() argument
259 csa->priv2.mfc_control_RW &= ~mask; in save_mfc_stopped_status()
260 csa->priv2.mfc_control_RW |= in_be64(&priv2->mfc_control_RW) & mask; in save_mfc_stopped_status()
263 static inline void halt_mfc_decr(struct spu_state *csa, struct spu *spu) in halt_mfc_decr() argument
276 static inline void save_timebase(struct spu_state *csa, struct spu *spu) in save_timebase() argument
282 csa->suspend_time = get_cycles(); in save_timebase()
285 static inline void remove_other_spu_access(struct spu_state *csa, in remove_other_spu_access() argument
294 static inline void do_mfc_mssync(struct spu_state *csa, struct spu *spu) in do_mfc_mssync() argument
307 static inline void issue_mfc_tlbie(struct spu_state *csa, struct spu *spu) in issue_mfc_tlbie() argument
319 static inline void handle_pending_interrupts(struct spu_state *csa, in handle_pending_interrupts() argument
333 static inline void save_mfc_queues(struct spu_state *csa, struct spu *spu) in save_mfc_queues() argument
344 csa->priv2.puq[i].mfc_cq_data0_RW = in save_mfc_queues()
346 csa->priv2.puq[i].mfc_cq_data1_RW = in save_mfc_queues()
348 csa->priv2.puq[i].mfc_cq_data2_RW = in save_mfc_queues()
350 csa->priv2.puq[i].mfc_cq_data3_RW = in save_mfc_queues()
354 csa->priv2.spuq[i].mfc_cq_data0_RW = in save_mfc_queues()
356 csa->priv2.spuq[i].mfc_cq_data1_RW = in save_mfc_queues()
358 csa->priv2.spuq[i].mfc_cq_data2_RW = in save_mfc_queues()
360 csa->priv2.spuq[i].mfc_cq_data3_RW = in save_mfc_queues()
366 static inline void save_ppu_querymask(struct spu_state *csa, struct spu *spu) in save_ppu_querymask() argument
374 csa->prob.dma_querymask_RW = in_be32(&prob->dma_querymask_RW); in save_ppu_querymask()
377 static inline void save_ppu_querytype(struct spu_state *csa, struct spu *spu) in save_ppu_querytype() argument
385 csa->prob.dma_querytype_RW = in_be32(&prob->dma_querytype_RW); in save_ppu_querytype()
388 static inline void save_ppu_tagstatus(struct spu_state *csa, struct spu *spu) in save_ppu_tagstatus() argument
398 csa->prob.dma_tagstatus_R = in_be32(&prob->dma_tagstatus_R); in save_ppu_tagstatus()
401 static inline void save_mfc_csr_tsq(struct spu_state *csa, struct spu *spu) in save_mfc_csr_tsq() argument
409 csa->priv2.spu_tag_status_query_RW = in save_mfc_csr_tsq()
413 static inline void save_mfc_csr_cmd(struct spu_state *csa, struct spu *spu) in save_mfc_csr_cmd() argument
421 csa->priv2.spu_cmd_buf1_RW = in_be64(&priv2->spu_cmd_buf1_RW); in save_mfc_csr_cmd()
422 csa->priv2.spu_cmd_buf2_RW = in_be64(&priv2->spu_cmd_buf2_RW); in save_mfc_csr_cmd()
425 static inline void save_mfc_csr_ato(struct spu_state *csa, struct spu *spu) in save_mfc_csr_ato() argument
433 csa->priv2.spu_atomic_status_RW = in_be64(&priv2->spu_atomic_status_RW); in save_mfc_csr_ato()
436 static inline void save_mfc_tclass_id(struct spu_state *csa, struct spu *spu) in save_mfc_tclass_id() argument
442 csa->priv1.mfc_tclass_id_RW = spu_mfc_tclass_id_get(spu); in save_mfc_tclass_id()
445 static inline void set_mfc_tclass_id(struct spu_state *csa, struct spu *spu) in set_mfc_tclass_id() argument
456 static inline void purge_mfc_queue(struct spu_state *csa, struct spu *spu) in purge_mfc_queue() argument
470 static inline void wait_purge_complete(struct spu_state *csa, struct spu *spu) in wait_purge_complete() argument
483 static inline void setup_mfc_sr1(struct spu_state *csa, struct spu *spu) in setup_mfc_sr1() argument
501 static inline void save_spu_npc(struct spu_state *csa, struct spu *spu) in save_spu_npc() argument
508 csa->prob.spu_npc_RW = in_be32(&prob->spu_npc_RW); in save_spu_npc()
511 static inline void save_spu_privcntl(struct spu_state *csa, struct spu *spu) in save_spu_privcntl() argument
518 csa->priv2.spu_privcntl_RW = in_be64(&priv2->spu_privcntl_RW); in save_spu_privcntl()
521 static inline void reset_spu_privcntl(struct spu_state *csa, struct spu *spu) in reset_spu_privcntl() argument
533 static inline void save_spu_lslr(struct spu_state *csa, struct spu *spu) in save_spu_lslr() argument
540 csa->priv2.spu_lslr_RW = in_be64(&priv2->spu_lslr_RW); in save_spu_lslr()
543 static inline void reset_spu_lslr(struct spu_state *csa, struct spu *spu) in reset_spu_lslr() argument
555 static inline void save_spu_cfg(struct spu_state *csa, struct spu *spu) in save_spu_cfg() argument
562 csa->priv2.spu_cfg_RW = in_be64(&priv2->spu_cfg_RW); in save_spu_cfg()
565 static inline void save_pm_trace(struct spu_state *csa, struct spu *spu) in save_pm_trace() argument
573 static inline void save_mfc_rag(struct spu_state *csa, struct spu *spu) in save_mfc_rag() argument
579 csa->priv1.resource_allocation_groupID_RW = in save_mfc_rag()
581 csa->priv1.resource_allocation_enable_RW = in save_mfc_rag()
585 static inline void save_ppu_mb_stat(struct spu_state *csa, struct spu *spu) in save_ppu_mb_stat() argument
592 csa->prob.mb_stat_R = in_be32(&prob->mb_stat_R); in save_ppu_mb_stat()
595 static inline void save_ppu_mb(struct spu_state *csa, struct spu *spu) in save_ppu_mb() argument
602 csa->prob.pu_mb_R = in_be32(&prob->pu_mb_R); in save_ppu_mb()
605 static inline void save_ppuint_mb(struct spu_state *csa, struct spu *spu) in save_ppuint_mb() argument
612 csa->priv2.puint_mb_R = in_be64(&priv2->puint_mb_R); in save_ppuint_mb()
615 static inline void save_ch_part1(struct spu_state *csa, struct spu *spu) in save_ch_part1() argument
626 csa->spu_chnldata_RW[1] = in_be64(&priv2->spu_chnldata_RW); in save_ch_part1()
633 csa->spu_chnldata_RW[idx] = in_be64(&priv2->spu_chnldata_RW); in save_ch_part1()
634 csa->spu_chnlcnt_RW[idx] = in_be64(&priv2->spu_chnlcnt_RW); in save_ch_part1()
641 static inline void save_spu_mb(struct spu_state *csa, struct spu *spu) in save_spu_mb() argument
651 csa->spu_chnlcnt_RW[29] = in_be64(&priv2->spu_chnlcnt_RW); in save_spu_mb()
653 csa->spu_mailbox_data[i] = in_be64(&priv2->spu_chnldata_RW); in save_spu_mb()
659 static inline void save_mfc_cmd(struct spu_state *csa, struct spu *spu) in save_mfc_cmd() argument
668 csa->spu_chnlcnt_RW[21] = in_be64(&priv2->spu_chnlcnt_RW); in save_mfc_cmd()
672 static inline void reset_ch(struct spu_state *csa, struct spu *spu) in reset_ch() argument
692 static inline void resume_mfc_queue(struct spu_state *csa, struct spu *spu) in resume_mfc_queue() argument
703 static inline void setup_mfc_slbs(struct spu_state *csa, struct spu *spu, in setup_mfc_slbs() argument
721 spu_setup_kernel_slbs(spu, csa->lscsa, code, code_size); in setup_mfc_slbs()
724 static inline void set_switch_active(struct spu_state *csa, struct spu *spu) in set_switch_active() argument
736 csa->priv2.mfc_control_RW |= MFC_CNTL_RESTART_DMA_COMMAND; in set_switch_active()
741 static inline void enable_interrupts(struct spu_state *csa, struct spu *spu) in enable_interrupts() argument
798 static inline void save_ls_16kb(struct spu_state *csa, struct spu *spu) in save_ls_16kb() argument
800 unsigned long addr = (unsigned long)&csa->lscsa->ls[0]; in save_ls_16kb()
814 static inline void set_spu_npc(struct spu_state *csa, struct spu *spu) in set_spu_npc() argument
831 static inline void set_signot1(struct spu_state *csa, struct spu *spu) in set_signot1() argument
844 addr64.ull = (u64) csa->lscsa; in set_signot1()
849 static inline void set_signot2(struct spu_state *csa, struct spu *spu) in set_signot2() argument
862 addr64.ull = (u64) csa->lscsa; in set_signot2()
867 static inline void send_save_code(struct spu_state *csa, struct spu *spu) in send_save_code() argument
883 static inline void set_ppu_querymask(struct spu_state *csa, struct spu *spu) in set_ppu_querymask() argument
896 static inline void wait_tag_complete(struct spu_state *csa, struct spu *spu) in wait_tag_complete() argument
919 static inline void wait_spu_stopped(struct spu_state *csa, struct spu *spu) in wait_spu_stopped() argument
938 static inline int check_save_status(struct spu_state *csa, struct spu *spu) in check_save_status() argument
953 static inline void terminate_spu_app(struct spu_state *csa, struct spu *spu) in terminate_spu_app() argument
961 static inline void suspend_mfc_and_halt_decr(struct spu_state *csa, in suspend_mfc_and_halt_decr() argument
975 static inline void wait_suspend_mfc_complete(struct spu_state *csa, in wait_suspend_mfc_complete() argument
989 static inline int suspend_spe(struct spu_state *csa, struct spu *spu) in suspend_spe() argument
1031 static inline void clear_spu_status(struct spu_state *csa, struct spu *spu) in clear_spu_status() argument
1065 static inline void reset_ch_part1(struct spu_state *csa, struct spu *spu) in reset_ch_part1() argument
1090 static inline void reset_ch_part2(struct spu_state *csa, struct spu *spu) in reset_ch_part2() argument
1110 static inline void setup_spu_status_part1(struct spu_state *csa, in setup_spu_status_part1() argument
1136 (csa->prob.spu_status_R >> SPU_STOP_STATUS_SHIFT) & 0xFFFF; in setup_spu_status_part1()
1137 if ((csa->prob.spu_status_R & status_P_I) == status_P_I) { in setup_spu_status_part1()
1143 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_P_I; in setup_spu_status_part1()
1144 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1146 } else if ((csa->prob.spu_status_R & status_P_H) == status_P_H) { in setup_spu_status_part1()
1152 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_P_H; in setup_spu_status_part1()
1153 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1155 } else if ((csa->prob.spu_status_R & status_S_P) == status_S_P) { in setup_spu_status_part1()
1160 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_S_P; in setup_spu_status_part1()
1161 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1163 } else if ((csa->prob.spu_status_R & status_S_I) == status_S_I) { in setup_spu_status_part1()
1168 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_S_I; in setup_spu_status_part1()
1169 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1171 } else if ((csa->prob.spu_status_R & status_P) == status_P) { in setup_spu_status_part1()
1176 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_P; in setup_spu_status_part1()
1177 csa->lscsa->stopped_status.slot[1] = status_code; in setup_spu_status_part1()
1179 } else if ((csa->prob.spu_status_R & status_H) == status_H) { in setup_spu_status_part1()
1184 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_H; in setup_spu_status_part1()
1186 } else if ((csa->prob.spu_status_R & status_S) == status_S) { in setup_spu_status_part1()
1190 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_S; in setup_spu_status_part1()
1192 } else if ((csa->prob.spu_status_R & status_I) == status_I) { in setup_spu_status_part1()
1197 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_I; in setup_spu_status_part1()
1202 static inline void setup_spu_status_part2(struct spu_state *csa, in setup_spu_status_part2() argument
1221 if (!(csa->prob.spu_status_R & mask)) { in setup_spu_status_part2()
1222 csa->lscsa->stopped_status.slot[0] = SPU_STOPPED_STATUS_R; in setup_spu_status_part2()
1226 static inline void restore_mfc_rag(struct spu_state *csa, struct spu *spu) in restore_mfc_rag() argument
1233 csa->priv1.resource_allocation_groupID_RW); in restore_mfc_rag()
1235 csa->priv1.resource_allocation_enable_RW); in restore_mfc_rag()
1238 static inline void send_restore_code(struct spu_state *csa, struct spu *spu) in send_restore_code() argument
1254 static inline void setup_decr(struct spu_state *csa, struct spu *spu) in setup_decr() argument
1263 if (csa->priv2.mfc_control_RW & MFC_CNTL_DECREMENTER_RUNNING) { in setup_decr()
1265 cycles_t delta_time = resume_time - csa->suspend_time; in setup_decr()
1267 csa->lscsa->decr_status.slot[0] = SPU_DECR_STATUS_RUNNING; in setup_decr()
1268 if (csa->lscsa->decr.slot[0] < delta_time) { in setup_decr()
1269 csa->lscsa->decr_status.slot[0] |= in setup_decr()
1273 csa->lscsa->decr.slot[0] -= delta_time; in setup_decr()
1275 csa->lscsa->decr_status.slot[0] = 0; in setup_decr()
1279 static inline void setup_ppu_mb(struct spu_state *csa, struct spu *spu) in setup_ppu_mb() argument
1284 csa->lscsa->ppu_mb.slot[0] = csa->prob.pu_mb_R; in setup_ppu_mb()
1287 static inline void setup_ppuint_mb(struct spu_state *csa, struct spu *spu) in setup_ppuint_mb() argument
1292 csa->lscsa->ppuint_mb.slot[0] = csa->priv2.puint_mb_R; in setup_ppuint_mb()
1295 static inline int check_restore_status(struct spu_state *csa, struct spu *spu) in check_restore_status() argument
1310 static inline void restore_spu_privcntl(struct spu_state *csa, struct spu *spu) in restore_spu_privcntl() argument
1317 out_be64(&priv2->spu_privcntl_RW, csa->priv2.spu_privcntl_RW); in restore_spu_privcntl()
1321 static inline void restore_status_part1(struct spu_state *csa, struct spu *spu) in restore_status_part1() argument
1333 if (csa->prob.spu_status_R & mask) { in restore_status_part1()
1341 static inline void restore_status_part2(struct spu_state *csa, struct spu *spu) in restore_status_part2() argument
1356 if (!(csa->prob.spu_status_R & mask)) { in restore_status_part2()
1368 static inline void restore_ls_16kb(struct spu_state *csa, struct spu *spu) in restore_ls_16kb() argument
1370 unsigned long addr = (unsigned long)&csa->lscsa->ls[0]; in restore_ls_16kb()
1384 static inline void suspend_mfc(struct spu_state *csa, struct spu *spu) in suspend_mfc() argument
1396 static inline void clear_interrupts(struct spu_state *csa, struct spu *spu) in clear_interrupts() argument
1416 static inline void restore_mfc_queues(struct spu_state *csa, struct spu *spu) in restore_mfc_queues() argument
1425 if ((csa->priv2.mfc_control_RW & MFC_CNTL_DMA_QUEUES_EMPTY_MASK) == 0) { in restore_mfc_queues()
1428 csa->priv2.puq[i].mfc_cq_data0_RW); in restore_mfc_queues()
1430 csa->priv2.puq[i].mfc_cq_data1_RW); in restore_mfc_queues()
1432 csa->priv2.puq[i].mfc_cq_data2_RW); in restore_mfc_queues()
1434 csa->priv2.puq[i].mfc_cq_data3_RW); in restore_mfc_queues()
1438 csa->priv2.spuq[i].mfc_cq_data0_RW); in restore_mfc_queues()
1440 csa->priv2.spuq[i].mfc_cq_data1_RW); in restore_mfc_queues()
1442 csa->priv2.spuq[i].mfc_cq_data2_RW); in restore_mfc_queues()
1444 csa->priv2.spuq[i].mfc_cq_data3_RW); in restore_mfc_queues()
1450 static inline void restore_ppu_querymask(struct spu_state *csa, struct spu *spu) in restore_ppu_querymask() argument
1457 out_be32(&prob->dma_querymask_RW, csa->prob.dma_querymask_RW); in restore_ppu_querymask()
1461 static inline void restore_ppu_querytype(struct spu_state *csa, struct spu *spu) in restore_ppu_querytype() argument
1468 out_be32(&prob->dma_querytype_RW, csa->prob.dma_querytype_RW); in restore_ppu_querytype()
1472 static inline void restore_mfc_csr_tsq(struct spu_state *csa, struct spu *spu) in restore_mfc_csr_tsq() argument
1480 csa->priv2.spu_tag_status_query_RW); in restore_mfc_csr_tsq()
1484 static inline void restore_mfc_csr_cmd(struct spu_state *csa, struct spu *spu) in restore_mfc_csr_cmd() argument
1492 out_be64(&priv2->spu_cmd_buf1_RW, csa->priv2.spu_cmd_buf1_RW); in restore_mfc_csr_cmd()
1493 out_be64(&priv2->spu_cmd_buf2_RW, csa->priv2.spu_cmd_buf2_RW); in restore_mfc_csr_cmd()
1497 static inline void restore_mfc_csr_ato(struct spu_state *csa, struct spu *spu) in restore_mfc_csr_ato() argument
1504 out_be64(&priv2->spu_atomic_status_RW, csa->priv2.spu_atomic_status_RW); in restore_mfc_csr_ato()
1507 static inline void restore_mfc_tclass_id(struct spu_state *csa, struct spu *spu) in restore_mfc_tclass_id() argument
1512 spu_mfc_tclass_id_set(spu, csa->priv1.mfc_tclass_id_RW); in restore_mfc_tclass_id()
1516 static inline void set_llr_event(struct spu_state *csa, struct spu *spu) in set_llr_event() argument
1529 ch0_cnt = csa->spu_chnlcnt_RW[0]; in set_llr_event()
1530 ch0_data = csa->spu_chnldata_RW[0]; in set_llr_event()
1531 ch1_data = csa->spu_chnldata_RW[1]; in set_llr_event()
1532 csa->spu_chnldata_RW[0] |= MFC_LLR_LOST_EVENT; in set_llr_event()
1535 csa->spu_chnlcnt_RW[0] = 1; in set_llr_event()
1539 static inline void restore_decr_wrapped(struct spu_state *csa, struct spu *spu) in restore_decr_wrapped() argument
1546 if (!(csa->lscsa->decr_status.slot[0] & SPU_DECR_STATUS_WRAPPED)) in restore_decr_wrapped()
1549 if ((csa->spu_chnlcnt_RW[0] == 0) && in restore_decr_wrapped()
1550 (csa->spu_chnldata_RW[1] & 0x20) && in restore_decr_wrapped()
1551 !(csa->spu_chnldata_RW[0] & 0x20)) in restore_decr_wrapped()
1552 csa->spu_chnlcnt_RW[0] = 1; in restore_decr_wrapped()
1554 csa->spu_chnldata_RW[0] |= 0x20; in restore_decr_wrapped()
1557 static inline void restore_ch_part1(struct spu_state *csa, struct spu *spu) in restore_ch_part1() argument
1570 out_be64(&priv2->spu_chnldata_RW, csa->spu_chnldata_RW[idx]); in restore_ch_part1()
1571 out_be64(&priv2->spu_chnlcnt_RW, csa->spu_chnlcnt_RW[idx]); in restore_ch_part1()
1576 static inline void restore_ch_part2(struct spu_state *csa, struct spu *spu) in restore_ch_part2() argument
1588 ch_counts[1] = csa->spu_chnlcnt_RW[21]; in restore_ch_part2()
1599 static inline void restore_spu_lslr(struct spu_state *csa, struct spu *spu) in restore_spu_lslr() argument
1606 out_be64(&priv2->spu_lslr_RW, csa->priv2.spu_lslr_RW); in restore_spu_lslr()
1610 static inline void restore_spu_cfg(struct spu_state *csa, struct spu *spu) in restore_spu_cfg() argument
1617 out_be64(&priv2->spu_cfg_RW, csa->priv2.spu_cfg_RW); in restore_spu_cfg()
1621 static inline void restore_pm_trace(struct spu_state *csa, struct spu *spu) in restore_pm_trace() argument
1629 static inline void restore_spu_npc(struct spu_state *csa, struct spu *spu) in restore_spu_npc() argument
1636 out_be32(&prob->spu_npc_RW, csa->prob.spu_npc_RW); in restore_spu_npc()
1640 static inline void restore_spu_mb(struct spu_state *csa, struct spu *spu) in restore_spu_mb() argument
1650 out_be64(&priv2->spu_chnlcnt_RW, csa->spu_chnlcnt_RW[29]); in restore_spu_mb()
1652 out_be64(&priv2->spu_chnldata_RW, csa->spu_mailbox_data[i]); in restore_spu_mb()
1657 static inline void check_ppu_mb_stat(struct spu_state *csa, struct spu *spu) in check_ppu_mb_stat() argument
1665 if ((csa->prob.mb_stat_R & 0xFF) == 0) { in check_ppu_mb_stat()
1671 static inline void check_ppuint_mb_stat(struct spu_state *csa, struct spu *spu) in check_ppuint_mb_stat() argument
1679 if ((csa->prob.mb_stat_R & 0xFF0000) == 0) { in check_ppuint_mb_stat()
1687 static inline void restore_mfc_sr1(struct spu_state *csa, struct spu *spu) in restore_mfc_sr1() argument
1692 spu_mfc_sr1_set(spu, csa->priv1.mfc_sr1_RW); in restore_mfc_sr1()
1696 static inline void set_int_route(struct spu_state *csa, struct spu *spu) in set_int_route() argument
1703 static inline void restore_other_spu_access(struct spu_state *csa, in restore_other_spu_access() argument
1711 static inline void restore_spu_runcntl(struct spu_state *csa, struct spu *spu) in restore_spu_runcntl() argument
1719 if (csa->prob.spu_status_R & SPU_STATUS_RUNNING) { in restore_spu_runcntl()
1725 static inline void restore_mfc_cntl(struct spu_state *csa, struct spu *spu) in restore_mfc_cntl() argument
1732 out_be64(&priv2->mfc_control_RW, csa->priv2.mfc_control_RW); in restore_mfc_cntl()
1745 static inline void enable_user_access(struct spu_state *csa, struct spu *spu) in enable_user_access() argument
1755 static inline void reset_switch_active(struct spu_state *csa, struct spu *spu) in reset_switch_active() argument
1763 static inline void reenable_interrupts(struct spu_state *csa, struct spu *spu) in reenable_interrupts() argument
1769 spu_int_mask_set(spu, 0, csa->priv1.int_mask_class0_RW); in reenable_interrupts()
1770 spu_int_mask_set(spu, 1, csa->priv1.int_mask_class1_RW); in reenable_interrupts()
1771 spu_int_mask_set(spu, 2, csa->priv1.int_mask_class2_RW); in reenable_interrupts()
2133 static void init_prob(struct spu_state *csa) in init_prob() argument
2135 csa->spu_chnlcnt_RW[9] = 1; in init_prob()
2136 csa->spu_chnlcnt_RW[21] = 16; in init_prob()
2137 csa->spu_chnlcnt_RW[23] = 1; in init_prob()
2138 csa->spu_chnlcnt_RW[28] = 1; in init_prob()
2139 csa->spu_chnlcnt_RW[30] = 1; in init_prob()
2140 csa->prob.spu_runcntl_RW = SPU_RUNCNTL_STOP; in init_prob()
2141 csa->prob.mb_stat_R = 0x000400; in init_prob()
2144 static void init_priv1(struct spu_state *csa) in init_priv1() argument
2147 csa->priv1.mfc_sr1_RW = MFC_STATE1_LOCAL_STORAGE_DECODE_MASK | in init_priv1()
2153 csa->priv1.int_mask_class0_RW = CLASS0_ENABLE_DMA_ALIGNMENT_INTR | in init_priv1()
2156 csa->priv1.int_mask_class1_RW = CLASS1_ENABLE_SEGMENT_FAULT_INTR | in init_priv1()
2158 csa->priv1.int_mask_class2_RW = CLASS2_ENABLE_SPU_STOP_INTR | in init_priv1()
2163 static void init_priv2(struct spu_state *csa) in init_priv2() argument
2165 csa->priv2.spu_lslr_RW = LS_ADDR_MASK; in init_priv2()
2166 csa->priv2.mfc_control_RW = MFC_CNTL_RESUME_DMA_QUEUE | in init_priv2()
2182 int spu_init_csa(struct spu_state *csa) in spu_init_csa() argument
2186 if (!csa) in spu_init_csa()
2188 memset(csa, 0, sizeof(struct spu_state)); in spu_init_csa()
2190 rc = spu_alloc_lscsa(csa); in spu_init_csa()
2194 spin_lock_init(&csa->register_lock); in spu_init_csa()
2196 init_prob(csa); in spu_init_csa()
2197 init_priv1(csa); in spu_init_csa()
2198 init_priv2(csa); in spu_init_csa()
2203 void spu_fini_csa(struct spu_state *csa) in spu_fini_csa() argument
2205 spu_free_lscsa(csa); in spu_fini_csa()