Lines Matching refs:vinst

173 static void dump_fifo(struct vas_instance *vinst, void *entry)  in dump_fifo()  argument
175 unsigned long *end = vinst->fault_fifo + vinst->fault_fifo_size; in dump_fifo()
179 pr_err("Fault fifo size %d, Max crbs %d\n", vinst->fault_fifo_size, in dump_fifo()
180 vinst->fault_fifo_size / CRB_SIZE); in dump_fifo()
212 struct vas_instance *vinst = data; in vas_fault_thread_fn() local
241 spin_lock_irqsave(&vinst->fault_lock, flags); in vas_fault_thread_fn()
248 fifo = vinst->fault_fifo + (vinst->fault_crbs * CRB_SIZE); in vas_fault_thread_fn()
253 vinst->fifo_in_progress = 0; in vas_fault_thread_fn()
254 spin_unlock_irqrestore(&vinst->fault_lock, flags); in vas_fault_thread_fn()
258 spin_unlock_irqrestore(&vinst->fault_lock, flags); in vas_fault_thread_fn()
259 vinst->fault_crbs++; in vas_fault_thread_fn()
260 if (vinst->fault_crbs == (vinst->fault_fifo_size / CRB_SIZE)) in vas_fault_thread_fn()
261 vinst->fault_crbs = 0; in vas_fault_thread_fn()
269 vas_return_credit(vinst->fault_win, false); in vas_fault_thread_fn()
272 vinst->vas_id, vinst->fault_fifo, fifo, in vas_fault_thread_fn()
273 vinst->fault_crbs); in vas_fault_thread_fn()
276 window = vas_pswid_to_window(vinst, in vas_fault_thread_fn()
288 dump_fifo(vinst, (void *)entry); in vas_fault_thread_fn()
290 vinst->vas_id, vinst->fault_fifo, fifo, in vas_fault_thread_fn()
292 vinst->fault_crbs); in vas_fault_thread_fn()
308 struct vas_instance *vinst = dev_id; in vas_fault_handler() local
320 spin_lock_irqsave(&vinst->fault_lock, flags); in vas_fault_handler()
322 if (vinst->fifo_in_progress) in vas_fault_handler()
325 vinst->fifo_in_progress = 1; in vas_fault_handler()
327 spin_unlock_irqrestore(&vinst->fault_lock, flags); in vas_fault_handler()
336 int vas_setup_fault_window(struct vas_instance *vinst) in vas_setup_fault_window() argument
340 vinst->fault_fifo_size = VAS_FAULT_WIN_FIFO_SIZE; in vas_setup_fault_window()
341 vinst->fault_fifo = kzalloc(vinst->fault_fifo_size, GFP_KERNEL); in vas_setup_fault_window()
342 if (!vinst->fault_fifo) { in vas_setup_fault_window()
344 vinst->fault_fifo_size); in vas_setup_fault_window()
351 memset(vinst->fault_fifo, FIFO_INVALID_ENTRY, vinst->fault_fifo_size); in vas_setup_fault_window()
354 attr.rx_fifo_size = vinst->fault_fifo_size; in vas_setup_fault_window()
355 attr.rx_fifo = __pa(vinst->fault_fifo); in vas_setup_fault_window()
362 attr.wcreds_max = vinst->fault_fifo_size / CRB_SIZE; in vas_setup_fault_window()
367 vinst->fault_win = vas_rx_win_open(vinst->vas_id, VAS_COP_TYPE_FAULT, in vas_setup_fault_window()
370 if (IS_ERR(vinst->fault_win)) { in vas_setup_fault_window()
372 PTR_ERR(vinst->fault_win)); in vas_setup_fault_window()
373 kfree(vinst->fault_fifo); in vas_setup_fault_window()
374 return PTR_ERR(vinst->fault_win); in vas_setup_fault_window()
378 vinst->fault_win->winid, attr.lnotify_lpid, in vas_setup_fault_window()