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()
140 kbd->phys = info->phys; in xenkbd_probe()
157 info->kbd = kbd; in xenkbd_probe()
164 ptr->phys = info->phys; in xenkbd_probe()
189 info->ptr = ptr; in xenkbd_probe()
191 ret = xenkbd_connect_backend(dev, info); in xenkbd_probe()
207 struct xenkbd_info *info = dev_get_drvdata(&dev->dev); in xenkbd_resume() local
209 xenkbd_disconnect_backend(info); in xenkbd_resume()
210 memset(info->page, 0, PAGE_SIZE); in xenkbd_resume()
211 return xenkbd_connect_backend(dev, info); in xenkbd_resume()
216 struct xenkbd_info *info = dev_get_drvdata(&dev->dev); in xenkbd_remove() local
218 xenkbd_disconnect_backend(info); in xenkbd_remove()
219 if (info->kbd) in xenkbd_remove()
220 input_unregister_device(info->kbd); in xenkbd_remove()
221 if (info->ptr) in xenkbd_remove()
222 input_unregister_device(info->ptr); in xenkbd_remove()
223 free_page((unsigned long)info->page); in xenkbd_remove()
224 kfree(info); in xenkbd_remove()
229 struct xenkbd_info *info) in xenkbd_connect_backend() argument
235 virt_to_mfn(info->page), 0); in xenkbd_connect_backend()
238 info->gref = ret; in xenkbd_connect_backend()
244 0, dev->devicetype, info); in xenkbd_connect_backend()
249 info->irq = ret; in xenkbd_connect_backend()
258 virt_to_mfn(info->page)); in xenkbd_connect_backend()
261 ret = xenbus_printf(xbt, dev->nodename, "page-gref", "%u", info->gref); in xenkbd_connect_backend()
283 unbind_from_irqhandler(info->irq, info); in xenkbd_connect_backend()
284 info->irq = -1; in xenkbd_connect_backend()
288 gnttab_end_foreign_access(info->gref, 0, 0UL); in xenkbd_connect_backend()
289 info->gref = -1; in xenkbd_connect_backend()
293 static void xenkbd_disconnect_backend(struct xenkbd_info *info) in xenkbd_disconnect_backend() argument
295 if (info->irq >= 0) in xenkbd_disconnect_backend()
296 unbind_from_irqhandler(info->irq, info); in xenkbd_disconnect_backend()
297 info->irq = -1; in xenkbd_disconnect_backend()
298 if (info->gref >= 0) in xenkbd_disconnect_backend()
299 gnttab_end_foreign_access(info->gref, 0, 0UL); in xenkbd_disconnect_backend()
300 info->gref = -1; in xenkbd_disconnect_backend()
306 struct xenkbd_info *info = dev_get_drvdata(&dev->dev); in xenkbd_backend_changed() local
319 ret = xenbus_scanf(XBT_NIL, info->xbdev->otherend, in xenkbd_backend_changed()
324 ret = xenbus_printf(XBT_NIL, info->xbdev->nodename, in xenkbd_backend_changed()
343 if (xenbus_scanf(XBT_NIL, info->xbdev->otherend, in xenkbd_backend_changed()
345 input_set_abs_params(info->ptr, ABS_X, 0, val, 0, 0); in xenkbd_backend_changed()
347 if (xenbus_scanf(XBT_NIL, info->xbdev->otherend, in xenkbd_backend_changed()
349 input_set_abs_params(info->ptr, ABS_Y, 0, val, 0, 0); in xenkbd_backend_changed()