Lines Matching refs:vinst

29 static void dump_fifo(struct vas_instance *vinst, void *entry)  in dump_fifo()  argument
31 unsigned long *end = vinst->fault_fifo + vinst->fault_fifo_size; in dump_fifo()
35 pr_err("Fault fifo size %d, Max crbs %d\n", vinst->fault_fifo_size, in dump_fifo()
36 vinst->fault_fifo_size / CRB_SIZE); in dump_fifo()
68 struct vas_instance *vinst = data; in vas_fault_thread_fn() local
97 spin_lock_irqsave(&vinst->fault_lock, flags); in vas_fault_thread_fn()
104 fifo = vinst->fault_fifo + (vinst->fault_crbs * CRB_SIZE); in vas_fault_thread_fn()
109 vinst->fifo_in_progress = 0; in vas_fault_thread_fn()
110 spin_unlock_irqrestore(&vinst->fault_lock, flags); in vas_fault_thread_fn()
114 spin_unlock_irqrestore(&vinst->fault_lock, flags); in vas_fault_thread_fn()
115 vinst->fault_crbs++; in vas_fault_thread_fn()
116 if (vinst->fault_crbs == (vinst->fault_fifo_size / CRB_SIZE)) in vas_fault_thread_fn()
117 vinst->fault_crbs = 0; in vas_fault_thread_fn()
125 vas_return_credit(vinst->fault_win, false); in vas_fault_thread_fn()
128 vinst->vas_id, vinst->fault_fifo, fifo, in vas_fault_thread_fn()
129 vinst->fault_crbs); in vas_fault_thread_fn()
132 window = vas_pswid_to_window(vinst, in vas_fault_thread_fn()
144 dump_fifo(vinst, (void *)entry); in vas_fault_thread_fn()
146 vinst->vas_id, vinst->fault_fifo, fifo, in vas_fault_thread_fn()
148 vinst->fault_crbs); in vas_fault_thread_fn()
171 struct vas_instance *vinst = dev_id; in vas_fault_handler() local
183 spin_lock_irqsave(&vinst->fault_lock, flags); in vas_fault_handler()
185 if (vinst->fifo_in_progress) in vas_fault_handler()
188 vinst->fifo_in_progress = 1; in vas_fault_handler()
190 spin_unlock_irqrestore(&vinst->fault_lock, flags); in vas_fault_handler()
199 int vas_setup_fault_window(struct vas_instance *vinst) in vas_setup_fault_window() argument
204 vinst->fault_fifo_size = VAS_FAULT_WIN_FIFO_SIZE; in vas_setup_fault_window()
205 vinst->fault_fifo = kzalloc(vinst->fault_fifo_size, GFP_KERNEL); in vas_setup_fault_window()
206 if (!vinst->fault_fifo) { in vas_setup_fault_window()
208 vinst->fault_fifo_size); in vas_setup_fault_window()
215 memset(vinst->fault_fifo, FIFO_INVALID_ENTRY, vinst->fault_fifo_size); in vas_setup_fault_window()
218 attr.rx_fifo_size = vinst->fault_fifo_size; in vas_setup_fault_window()
219 attr.rx_fifo = __pa(vinst->fault_fifo); in vas_setup_fault_window()
226 attr.wcreds_max = vinst->fault_fifo_size / CRB_SIZE; in vas_setup_fault_window()
231 win = vas_rx_win_open(vinst->vas_id, VAS_COP_TYPE_FAULT, &attr); in vas_setup_fault_window()
234 kfree(vinst->fault_fifo); in vas_setup_fault_window()
238 vinst->fault_win = container_of(win, struct pnv_vas_window, vas_win); in vas_setup_fault_window()
241 vinst->fault_win->vas_win.winid, attr.lnotify_lpid, in vas_setup_fault_window()