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