Lines Matching refs:vinst

29 static int vas_irq_fault_window_setup(struct vas_instance *vinst)
33 rc = request_threaded_irq(vinst->virq, vas_fault_handler,
34 vas_fault_thread_fn, 0, vinst->name, vinst);
38 vinst->vas_id, vinst->virq, rc);
42 rc = vas_setup_fault_window(vinst);
44 free_irq(vinst->virq, vinst);
53 struct vas_instance *vinst;
77 vinst = kzalloc(sizeof(*vinst), GFP_KERNEL);
78 if (!vinst)
81 vinst->name = kasprintf(GFP_KERNEL, "vas-%d", vasid);
82 if (!vinst->name) {
83 kfree(vinst);
87 INIT_LIST_HEAD(&vinst->node);
88 ida_init(&vinst->ida);
89 mutex_init(&vinst->mutex);
90 vinst->vas_id = vasid;
91 vinst->pdev = pdev;
94 vinst->hvwc_bar_start = res->start;
97 vinst->uwc_bar_start = res->start;
100 vinst->paste_base_addr = res->start;
108 vinst->paste_win_id_shift = 63 - res->end;
113 vinst->vas_id, chipid);
117 vinst->virq = irq_create_mapping(NULL, hwirq);
118 if (!vinst->virq) {
120 vinst->vas_id, hwirq);
124 xd = irq_get_handler_data(vinst->virq);
127 vinst->vas_id, vinst->virq);
131 vinst->irq_port = xd->trig_page;
133 pdev->name, vasid, vinst->paste_base_addr,
134 vinst->paste_win_id_shift, vinst->virq,
135 vinst->irq_port);
143 list_add(&vinst->node, &vas_instances);
146 spin_lock_init(&vinst->fault_lock);
151 if (vinst->virq) {
152 rc = vas_irq_fault_window_setup(vinst);
155 * So if vinst->virq is NULL, tx_win_open returns -ENODEV
159 vinst->virq = 0;
162 vas_instance_init_dbgdir(vinst);
164 dev_set_drvdata(&pdev->dev, vinst);
169 kfree(vinst->name);
170 kfree(vinst);
182 struct vas_instance *vinst;
190 vinst = list_entry(ent, struct vas_instance, node);
191 if (vinst->vas_id == vasid) {
193 return vinst;