Lines Matching refs:pdata

90 	struct hv_uio_private_data *pdata = info->priv;  in hv_uio_irqcontrol()  local
91 struct hv_device *dev = pdata->device; in hv_uio_irqcontrol()
112 struct hv_uio_private_data *pdata; in hv_uio_channel_cb() local
123 pdata = hv_get_drvdata(hv_dev); in hv_uio_channel_cb()
124 uio_event_notify(&pdata->info); in hv_uio_channel_cb()
134 struct hv_uio_private_data *pdata = hv_get_drvdata(hv_dev); in hv_uio_rescind() local
140 pdata->info.irq = 0; in hv_uio_rescind()
143 uio_event_notify(&pdata->info); in hv_uio_rescind()
198 hv_uio_cleanup(struct hv_device *dev, struct hv_uio_private_data *pdata) in hv_uio_cleanup() argument
200 if (pdata->send_gpadl.gpadl_handle) { in hv_uio_cleanup()
201 vmbus_teardown_gpadl(dev->channel, &pdata->send_gpadl); in hv_uio_cleanup()
202 if (!pdata->send_gpadl.decrypted) in hv_uio_cleanup()
203 vfree(pdata->send_buf); in hv_uio_cleanup()
206 if (pdata->recv_gpadl.gpadl_handle) { in hv_uio_cleanup()
207 vmbus_teardown_gpadl(dev->channel, &pdata->recv_gpadl); in hv_uio_cleanup()
208 if (!pdata->recv_gpadl.decrypted) in hv_uio_cleanup()
209 vfree(pdata->recv_buf); in hv_uio_cleanup()
217 struct hv_uio_private_data *pdata in hv_uio_open() local
219 struct hv_device *dev = pdata->device; in hv_uio_open()
222 if (atomic_inc_return(&pdata->refcnt) != 1) in hv_uio_open()
233 atomic_dec(&pdata->refcnt); in hv_uio_open()
242 struct hv_uio_private_data *pdata in hv_uio_release() local
244 struct hv_device *dev = pdata->device; in hv_uio_release()
247 if (atomic_dec_and_test(&pdata->refcnt)) in hv_uio_release()
258 struct hv_uio_private_data *pdata; in hv_uio_probe() local
269 pdata = devm_kzalloc(&dev->device, sizeof(*pdata), GFP_KERNEL); in hv_uio_probe()
270 if (!pdata) in hv_uio_probe()
280 pdata->info.name = "uio_hv_generic"; in hv_uio_probe()
281 pdata->info.version = DRIVER_VERSION; in hv_uio_probe()
282 pdata->info.irqcontrol = hv_uio_irqcontrol; in hv_uio_probe()
283 pdata->info.open = hv_uio_open; in hv_uio_probe()
284 pdata->info.release = hv_uio_release; in hv_uio_probe()
285 pdata->info.irq = UIO_IRQ_CUSTOM; in hv_uio_probe()
286 atomic_set(&pdata->refcnt, 0); in hv_uio_probe()
289 pdata->info.mem[TXRX_RING_MAP].name = "txrx_rings"; in hv_uio_probe()
291 pdata->info.mem[TXRX_RING_MAP].addr in hv_uio_probe()
293 pdata->info.mem[TXRX_RING_MAP].size in hv_uio_probe()
295 pdata->info.mem[TXRX_RING_MAP].memtype = UIO_MEM_IOVA; in hv_uio_probe()
297 pdata->info.mem[INT_PAGE_MAP].name = "int_page"; in hv_uio_probe()
298 pdata->info.mem[INT_PAGE_MAP].addr in hv_uio_probe()
300 pdata->info.mem[INT_PAGE_MAP].size = HV_HYP_PAGE_SIZE; in hv_uio_probe()
301 pdata->info.mem[INT_PAGE_MAP].memtype = UIO_MEM_LOGICAL; in hv_uio_probe()
303 pdata->info.mem[MON_PAGE_MAP].name = "monitor_page"; in hv_uio_probe()
304 pdata->info.mem[MON_PAGE_MAP].addr in hv_uio_probe()
306 pdata->info.mem[MON_PAGE_MAP].size = HV_HYP_PAGE_SIZE; in hv_uio_probe()
307 pdata->info.mem[MON_PAGE_MAP].memtype = UIO_MEM_LOGICAL; in hv_uio_probe()
310 pdata->recv_buf = vzalloc(RECV_BUFFER_SIZE); in hv_uio_probe()
311 if (!pdata->recv_buf) { in hv_uio_probe()
316 ret = vmbus_establish_gpadl(channel, pdata->recv_buf, in hv_uio_probe()
317 RECV_BUFFER_SIZE, &pdata->recv_gpadl); in hv_uio_probe()
319 if (!pdata->recv_gpadl.decrypted) in hv_uio_probe()
320 vfree(pdata->recv_buf); in hv_uio_probe()
325 snprintf(pdata->recv_name, sizeof(pdata->recv_name), in hv_uio_probe()
326 "recv:%u", pdata->recv_gpadl.gpadl_handle); in hv_uio_probe()
327 pdata->info.mem[RECV_BUF_MAP].name = pdata->recv_name; in hv_uio_probe()
328 pdata->info.mem[RECV_BUF_MAP].addr = (uintptr_t)pdata->recv_buf; in hv_uio_probe()
329 pdata->info.mem[RECV_BUF_MAP].size = RECV_BUFFER_SIZE; in hv_uio_probe()
330 pdata->info.mem[RECV_BUF_MAP].memtype = UIO_MEM_VIRTUAL; in hv_uio_probe()
332 pdata->send_buf = vzalloc(SEND_BUFFER_SIZE); in hv_uio_probe()
333 if (!pdata->send_buf) { in hv_uio_probe()
338 ret = vmbus_establish_gpadl(channel, pdata->send_buf, in hv_uio_probe()
339 SEND_BUFFER_SIZE, &pdata->send_gpadl); in hv_uio_probe()
341 if (!pdata->send_gpadl.decrypted) in hv_uio_probe()
342 vfree(pdata->send_buf); in hv_uio_probe()
346 snprintf(pdata->send_name, sizeof(pdata->send_name), in hv_uio_probe()
347 "send:%u", pdata->send_gpadl.gpadl_handle); in hv_uio_probe()
348 pdata->info.mem[SEND_BUF_MAP].name = pdata->send_name; in hv_uio_probe()
349 pdata->info.mem[SEND_BUF_MAP].addr = (uintptr_t)pdata->send_buf; in hv_uio_probe()
350 pdata->info.mem[SEND_BUF_MAP].size = SEND_BUFFER_SIZE; in hv_uio_probe()
351 pdata->info.mem[SEND_BUF_MAP].memtype = UIO_MEM_VIRTUAL; in hv_uio_probe()
354 pdata->info.priv = pdata; in hv_uio_probe()
355 pdata->device = dev; in hv_uio_probe()
357 ret = uio_register_device(&dev->device, &pdata->info); in hv_uio_probe()
376 hv_set_drvdata(dev, pdata); in hv_uio_probe()
381 hv_uio_cleanup(dev, pdata); in hv_uio_probe()
391 struct hv_uio_private_data *pdata = hv_get_drvdata(dev); in hv_uio_remove() local
393 if (!pdata) in hv_uio_remove()
397 uio_unregister_device(&pdata->info); in hv_uio_remove()
398 hv_uio_cleanup(dev, pdata); in hv_uio_remove()