Lines Matching refs:info

55 	struct xenkbd_info *info = dev_id;  in input_handler()  local
56 struct xenkbd_page *page = info->page; in input_handler()
68 dev = info->ptr; in input_handler()
79 if (test_bit(event->key.keycode, info->kbd->keybit)) in input_handler()
80 dev = info->kbd; in input_handler()
81 if (test_bit(event->key.keycode, info->ptr->keybit)) in input_handler()
82 dev = info->ptr; in input_handler()
103 notify_remote_via_irq(info->irq); in input_handler()
112 struct xenkbd_info *info; in xenkbd_probe() local
115 info = kzalloc(sizeof(*info), GFP_KERNEL); in xenkbd_probe()
116 if (!info) { in xenkbd_probe()
120 dev_set_drvdata(&dev->dev, info); in xenkbd_probe()
121 info->xbdev = dev; in xenkbd_probe()
122 info->irq = -1; in xenkbd_probe()
123 info->gref = -1; in xenkbd_probe()
124 snprintf(info->phys, sizeof(info->phys), "xenbus/%s", dev->nodename); in xenkbd_probe()
126 info->page = (void *)__get_free_page(GFP_KERNEL | __GFP_ZERO); in xenkbd_probe()
127 if (!info->page) in xenkbd_probe()
146 kbd->phys = info->phys; in xenkbd_probe()
163 info->kbd = kbd; in xenkbd_probe()
170 ptr->phys = info->phys; in xenkbd_probe()
195 info->ptr = ptr; in xenkbd_probe()
197 ret = xenkbd_connect_backend(dev, info); in xenkbd_probe()
213 struct xenkbd_info *info = dev_get_drvdata(&dev->dev); in xenkbd_resume() local
215 xenkbd_disconnect_backend(info); in xenkbd_resume()
216 memset(info->page, 0, PAGE_SIZE); in xenkbd_resume()
217 return xenkbd_connect_backend(dev, info); in xenkbd_resume()
222 struct xenkbd_info *info = dev_get_drvdata(&dev->dev); in xenkbd_remove() local
224 xenkbd_disconnect_backend(info); in xenkbd_remove()
225 if (info->kbd) in xenkbd_remove()
226 input_unregister_device(info->kbd); in xenkbd_remove()
227 if (info->ptr) in xenkbd_remove()
228 input_unregister_device(info->ptr); in xenkbd_remove()
229 free_page((unsigned long)info->page); in xenkbd_remove()
230 kfree(info); in xenkbd_remove()
235 struct xenkbd_info *info) in xenkbd_connect_backend() argument
241 virt_to_gfn(info->page), 0); in xenkbd_connect_backend()
244 info->gref = ret; in xenkbd_connect_backend()
250 0, dev->devicetype, info); in xenkbd_connect_backend()
255 info->irq = ret; in xenkbd_connect_backend()
264 virt_to_gfn(info->page)); in xenkbd_connect_backend()
267 ret = xenbus_printf(xbt, dev->nodename, "page-gref", "%u", info->gref); in xenkbd_connect_backend()
289 unbind_from_irqhandler(info->irq, info); in xenkbd_connect_backend()
290 info->irq = -1; in xenkbd_connect_backend()
294 gnttab_end_foreign_access(info->gref, 0, 0UL); in xenkbd_connect_backend()
295 info->gref = -1; in xenkbd_connect_backend()
299 static void xenkbd_disconnect_backend(struct xenkbd_info *info) in xenkbd_disconnect_backend() argument
301 if (info->irq >= 0) in xenkbd_disconnect_backend()
302 unbind_from_irqhandler(info->irq, info); in xenkbd_disconnect_backend()
303 info->irq = -1; in xenkbd_disconnect_backend()
304 if (info->gref >= 0) in xenkbd_disconnect_backend()
305 gnttab_end_foreign_access(info->gref, 0, 0UL); in xenkbd_disconnect_backend()
306 info->gref = -1; in xenkbd_disconnect_backend()
312 struct xenkbd_info *info = dev_get_drvdata(&dev->dev); in xenkbd_backend_changed() local
325 ret = xenbus_scanf(XBT_NIL, info->xbdev->otherend, in xenkbd_backend_changed()
330 ret = xenbus_printf(XBT_NIL, info->xbdev->nodename, in xenkbd_backend_changed()
349 if (xenbus_scanf(XBT_NIL, info->xbdev->otherend, in xenkbd_backend_changed()
351 input_set_abs_params(info->ptr, ABS_X, 0, val, 0, 0); in xenkbd_backend_changed()
353 if (xenbus_scanf(XBT_NIL, info->xbdev->otherend, in xenkbd_backend_changed()
355 input_set_abs_params(info->ptr, ABS_Y, 0, val, 0, 0); in xenkbd_backend_changed()