Lines Matching refs:vinst

29 static int vas_irq_fault_window_setup(struct vas_instance *vinst)  in vas_irq_fault_window_setup()  argument
34 snprintf(devname, sizeof(devname), "vas-%d", vinst->vas_id); in vas_irq_fault_window_setup()
35 rc = request_threaded_irq(vinst->virq, vas_fault_handler, in vas_irq_fault_window_setup()
36 vas_fault_thread_fn, 0, devname, vinst); in vas_irq_fault_window_setup()
40 vinst->vas_id, vinst->virq, rc); in vas_irq_fault_window_setup()
44 rc = vas_setup_fault_window(vinst); in vas_irq_fault_window_setup()
46 free_irq(vinst->virq, vinst); in vas_irq_fault_window_setup()
55 struct vas_instance *vinst; in init_vas_instance() local
79 vinst = kzalloc(sizeof(*vinst), GFP_KERNEL); in init_vas_instance()
80 if (!vinst) in init_vas_instance()
83 INIT_LIST_HEAD(&vinst->node); in init_vas_instance()
84 ida_init(&vinst->ida); in init_vas_instance()
85 mutex_init(&vinst->mutex); in init_vas_instance()
86 vinst->vas_id = vasid; in init_vas_instance()
87 vinst->pdev = pdev; in init_vas_instance()
90 vinst->hvwc_bar_start = res->start; in init_vas_instance()
93 vinst->uwc_bar_start = res->start; in init_vas_instance()
96 vinst->paste_base_addr = res->start; in init_vas_instance()
104 vinst->paste_win_id_shift = 63 - res->end; in init_vas_instance()
109 vinst->vas_id, chipid); in init_vas_instance()
113 vinst->virq = irq_create_mapping(NULL, hwirq); in init_vas_instance()
114 if (!vinst->virq) { in init_vas_instance()
116 vinst->vas_id, hwirq); in init_vas_instance()
120 xd = irq_get_handler_data(vinst->virq); in init_vas_instance()
123 vinst->vas_id, vinst->virq); in init_vas_instance()
127 vinst->irq_port = xd->trig_page; in init_vas_instance()
129 pdev->name, vasid, vinst->paste_base_addr, in init_vas_instance()
130 vinst->paste_win_id_shift, vinst->virq, in init_vas_instance()
131 vinst->irq_port); in init_vas_instance()
139 list_add(&vinst->node, &vas_instances); in init_vas_instance()
142 spin_lock_init(&vinst->fault_lock); in init_vas_instance()
147 if (vinst->virq) { in init_vas_instance()
148 rc = vas_irq_fault_window_setup(vinst); in init_vas_instance()
155 vinst->virq = 0; in init_vas_instance()
158 vas_instance_init_dbgdir(vinst); in init_vas_instance()
160 dev_set_drvdata(&pdev->dev, vinst); in init_vas_instance()
165 kfree(vinst); in init_vas_instance()
177 struct vas_instance *vinst; in find_vas_instance() local
185 vinst = list_entry(ent, struct vas_instance, node); in find_vas_instance()
186 if (vinst->vas_id == vasid) { in find_vas_instance()
188 return vinst; in find_vas_instance()