hanwang 107 drivers/input/tablet/hanwang.c static void hanwang_parse_packet(struct hanwang *hanwang) hanwang 109 drivers/input/tablet/hanwang.c unsigned char *data = hanwang->data; hanwang 110 drivers/input/tablet/hanwang.c struct input_dev *input_dev = hanwang->dev; hanwang 111 drivers/input/tablet/hanwang.c struct usb_device *dev = hanwang->usbdev; hanwang 112 drivers/input/tablet/hanwang.c enum hanwang_tablet_type type = hanwang->features->type; hanwang 117 drivers/input/tablet/hanwang.c hanwang->current_tool = BTN_TOOL_PEN; hanwang 118 drivers/input/tablet/hanwang.c hanwang->current_id = STYLUS_DEVICE_ID; hanwang 126 drivers/input/tablet/hanwang.c hanwang->current_id = 0; hanwang 128 drivers/input/tablet/hanwang.c hanwang->current_tool, 0); hanwang 134 drivers/input/tablet/hanwang.c hanwang->current_id = 0; hanwang 136 drivers/input/tablet/hanwang.c hanwang->current_tool, 0); hanwang 144 drivers/input/tablet/hanwang.c hanwang->current_id = STYLUS_DEVICE_ID; hanwang 145 drivers/input/tablet/hanwang.c hanwang->current_tool = BTN_TOOL_PEN; hanwang 150 drivers/input/tablet/hanwang.c hanwang->current_id = ERASER_DEVICE_ID; hanwang 151 drivers/input/tablet/hanwang.c hanwang->current_tool = BTN_TOOL_RUBBER; hanwang 155 drivers/input/tablet/hanwang.c hanwang->current_id = 0; hanwang 198 drivers/input/tablet/hanwang.c input_report_abs(input_dev, ABS_MISC, hanwang->current_id); hanwang 200 drivers/input/tablet/hanwang.c hanwang->features->pid); hanwang 205 drivers/input/tablet/hanwang.c hanwang->current_id = PAD_DEVICE_ID; hanwang 240 drivers/input/tablet/hanwang.c input_report_abs(input_dev, ABS_MISC, hanwang->current_id); hanwang 254 drivers/input/tablet/hanwang.c struct hanwang *hanwang = urb->context; hanwang 255 drivers/input/tablet/hanwang.c struct usb_device *dev = hanwang->usbdev; hanwang 261 drivers/input/tablet/hanwang.c hanwang_parse_packet(hanwang); hanwang 284 drivers/input/tablet/hanwang.c struct hanwang *hanwang = input_get_drvdata(dev); hanwang 286 drivers/input/tablet/hanwang.c hanwang->irq->dev = hanwang->usbdev; hanwang 287 drivers/input/tablet/hanwang.c if (usb_submit_urb(hanwang->irq, GFP_KERNEL)) hanwang 295 drivers/input/tablet/hanwang.c struct hanwang *hanwang = input_get_drvdata(dev); hanwang 297 drivers/input/tablet/hanwang.c usb_kill_urb(hanwang->irq); hanwang 300 drivers/input/tablet/hanwang.c static bool get_features(struct usb_device *dev, struct hanwang *hanwang) hanwang 307 drivers/input/tablet/hanwang.c hanwang->features = &features_array[i]; hanwang 320 drivers/input/tablet/hanwang.c struct hanwang *hanwang; hanwang 328 drivers/input/tablet/hanwang.c hanwang = kzalloc(sizeof(struct hanwang), GFP_KERNEL); hanwang 330 drivers/input/tablet/hanwang.c if (!hanwang || !input_dev) { hanwang 335 drivers/input/tablet/hanwang.c if (!get_features(dev, hanwang)) { hanwang 340 drivers/input/tablet/hanwang.c hanwang->data = usb_alloc_coherent(dev, hanwang->features->pkg_len, hanwang 341 drivers/input/tablet/hanwang.c GFP_KERNEL, &hanwang->data_dma); hanwang 342 drivers/input/tablet/hanwang.c if (!hanwang->data) { hanwang 347 drivers/input/tablet/hanwang.c hanwang->irq = usb_alloc_urb(0, GFP_KERNEL); hanwang 348 drivers/input/tablet/hanwang.c if (!hanwang->irq) { hanwang 353 drivers/input/tablet/hanwang.c hanwang->usbdev = dev; hanwang 354 drivers/input/tablet/hanwang.c hanwang->dev = input_dev; hanwang 356 drivers/input/tablet/hanwang.c usb_make_path(dev, hanwang->phys, sizeof(hanwang->phys)); hanwang 357 drivers/input/tablet/hanwang.c strlcat(hanwang->phys, "/input0", sizeof(hanwang->phys)); hanwang 359 drivers/input/tablet/hanwang.c strlcpy(hanwang->name, hanwang->features->name, sizeof(hanwang->name)); hanwang 360 drivers/input/tablet/hanwang.c input_dev->name = hanwang->name; hanwang 361 drivers/input/tablet/hanwang.c input_dev->phys = hanwang->phys; hanwang 365 drivers/input/tablet/hanwang.c input_set_drvdata(input_dev, hanwang); hanwang 383 drivers/input/tablet/hanwang.c 0, hanwang->features->max_x, 4, 0); hanwang 385 drivers/input/tablet/hanwang.c 0, hanwang->features->max_y, 4, 0); hanwang 387 drivers/input/tablet/hanwang.c 0, hanwang->features->max_tilt_x, 0, 0); hanwang 389 drivers/input/tablet/hanwang.c 0, hanwang->features->max_tilt_y, 0, 0); hanwang 391 drivers/input/tablet/hanwang.c 0, hanwang->features->max_pressure, 0, 0); hanwang 394 drivers/input/tablet/hanwang.c usb_fill_int_urb(hanwang->irq, dev, hanwang 396 drivers/input/tablet/hanwang.c hanwang->data, hanwang->features->pkg_len, hanwang 397 drivers/input/tablet/hanwang.c hanwang_irq, hanwang, endpoint->bInterval); hanwang 398 drivers/input/tablet/hanwang.c hanwang->irq->transfer_dma = hanwang->data_dma; hanwang 399 drivers/input/tablet/hanwang.c hanwang->irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; hanwang 401 drivers/input/tablet/hanwang.c error = input_register_device(hanwang->dev); hanwang 405 drivers/input/tablet/hanwang.c usb_set_intfdata(intf, hanwang); hanwang 409 drivers/input/tablet/hanwang.c fail3: usb_free_urb(hanwang->irq); hanwang 410 drivers/input/tablet/hanwang.c fail2: usb_free_coherent(dev, hanwang->features->pkg_len, hanwang 411 drivers/input/tablet/hanwang.c hanwang->data, hanwang->data_dma); hanwang 413 drivers/input/tablet/hanwang.c kfree(hanwang); hanwang 420 drivers/input/tablet/hanwang.c struct hanwang *hanwang = usb_get_intfdata(intf); hanwang 422 drivers/input/tablet/hanwang.c input_unregister_device(hanwang->dev); hanwang 423 drivers/input/tablet/hanwang.c usb_free_urb(hanwang->irq); hanwang 425 drivers/input/tablet/hanwang.c hanwang->features->pkg_len, hanwang->data, hanwang 426 drivers/input/tablet/hanwang.c hanwang->data_dma); hanwang 427 drivers/input/tablet/hanwang.c kfree(hanwang);