static int xenkbd_resume(struct xenbus_device *dev) { struct xenkbd_info *info = dev_get_drvdata(&dev->dev); xenkbd_disconnect_backend(info); memset(info->page, 0, PAGE_SIZE); return xenkbd_connect_backend(dev, info); }
static int xenkbd_resume(struct xenbus_device *dev) { struct xenkbd_info *info = dev_get_drvdata(&dev->dev); xenkbd_disconnect_backend(info); info->page->in_cons = info->page->in_prod = 0; info->page->out_cons = info->page->out_prod = 0; return xenkbd_connect_backend(dev, info); }
static int xenkbd_remove(struct xenbus_device *dev) { struct xenkbd_info *info = dev_get_drvdata(&dev->dev); xenkbd_disconnect_backend(info); input_unregister_device(info->kbd); input_unregister_device(info->ptr); free_page((unsigned long)info->page); kfree(info); return 0; }