Symbol: hanwang
drivers/input/tablet/hanwang.c
104
static void hanwang_parse_packet(struct hanwang *hanwang)
drivers/input/tablet/hanwang.c
106
unsigned char *data = hanwang->data;
drivers/input/tablet/hanwang.c
107
struct input_dev *input_dev = hanwang->dev;
drivers/input/tablet/hanwang.c
108
struct usb_device *dev = hanwang->usbdev;
drivers/input/tablet/hanwang.c
109
enum hanwang_tablet_type type = hanwang->features->type;
drivers/input/tablet/hanwang.c
114
hanwang->current_tool = BTN_TOOL_PEN;
drivers/input/tablet/hanwang.c
115
hanwang->current_id = STYLUS_DEVICE_ID;
drivers/input/tablet/hanwang.c
123
hanwang->current_id = 0;
drivers/input/tablet/hanwang.c
125
hanwang->current_tool, 0);
drivers/input/tablet/hanwang.c
131
hanwang->current_id = 0;
drivers/input/tablet/hanwang.c
133
hanwang->current_tool, 0);
drivers/input/tablet/hanwang.c
141
hanwang->current_id = STYLUS_DEVICE_ID;
drivers/input/tablet/hanwang.c
142
hanwang->current_tool = BTN_TOOL_PEN;
drivers/input/tablet/hanwang.c
147
hanwang->current_id = ERASER_DEVICE_ID;
drivers/input/tablet/hanwang.c
148
hanwang->current_tool = BTN_TOOL_RUBBER;
drivers/input/tablet/hanwang.c
152
hanwang->current_id = 0;
drivers/input/tablet/hanwang.c
195
input_report_abs(input_dev, ABS_MISC, hanwang->current_id);
drivers/input/tablet/hanwang.c
197
hanwang->features->pid);
drivers/input/tablet/hanwang.c
202
hanwang->current_id = PAD_DEVICE_ID;
drivers/input/tablet/hanwang.c
237
input_report_abs(input_dev, ABS_MISC, hanwang->current_id);
drivers/input/tablet/hanwang.c
251
struct hanwang *hanwang = urb->context;
drivers/input/tablet/hanwang.c
252
struct usb_device *dev = hanwang->usbdev;
drivers/input/tablet/hanwang.c
258
hanwang_parse_packet(hanwang);
drivers/input/tablet/hanwang.c
281
struct hanwang *hanwang = input_get_drvdata(dev);
drivers/input/tablet/hanwang.c
283
hanwang->irq->dev = hanwang->usbdev;
drivers/input/tablet/hanwang.c
284
if (usb_submit_urb(hanwang->irq, GFP_KERNEL))
drivers/input/tablet/hanwang.c
292
struct hanwang *hanwang = input_get_drvdata(dev);
drivers/input/tablet/hanwang.c
294
usb_kill_urb(hanwang->irq);
drivers/input/tablet/hanwang.c
297
static bool get_features(struct usb_device *dev, struct hanwang *hanwang)
drivers/input/tablet/hanwang.c
304
hanwang->features = &features_array[i];
drivers/input/tablet/hanwang.c
317
struct hanwang *hanwang;
drivers/input/tablet/hanwang.c
325
hanwang = kzalloc_obj(*hanwang);
drivers/input/tablet/hanwang.c
327
if (!hanwang || !input_dev) {
drivers/input/tablet/hanwang.c
332
if (!get_features(dev, hanwang)) {
drivers/input/tablet/hanwang.c
337
hanwang->data = usb_alloc_coherent(dev, hanwang->features->pkg_len,
drivers/input/tablet/hanwang.c
338
GFP_KERNEL, &hanwang->data_dma);
drivers/input/tablet/hanwang.c
339
if (!hanwang->data) {
drivers/input/tablet/hanwang.c
344
hanwang->irq = usb_alloc_urb(0, GFP_KERNEL);
drivers/input/tablet/hanwang.c
345
if (!hanwang->irq) {
drivers/input/tablet/hanwang.c
350
hanwang->usbdev = dev;
drivers/input/tablet/hanwang.c
351
hanwang->dev = input_dev;
drivers/input/tablet/hanwang.c
353
usb_make_path(dev, hanwang->phys, sizeof(hanwang->phys));
drivers/input/tablet/hanwang.c
354
strlcat(hanwang->phys, "/input0", sizeof(hanwang->phys));
drivers/input/tablet/hanwang.c
356
strscpy(hanwang->name, hanwang->features->name, sizeof(hanwang->name));
drivers/input/tablet/hanwang.c
357
input_dev->name = hanwang->name;
drivers/input/tablet/hanwang.c
358
input_dev->phys = hanwang->phys;
drivers/input/tablet/hanwang.c
362
input_set_drvdata(input_dev, hanwang);
drivers/input/tablet/hanwang.c
380
0, hanwang->features->max_x, 4, 0);
drivers/input/tablet/hanwang.c
382
0, hanwang->features->max_y, 4, 0);
drivers/input/tablet/hanwang.c
384
0, hanwang->features->max_tilt_x, 0, 0);
drivers/input/tablet/hanwang.c
386
0, hanwang->features->max_tilt_y, 0, 0);
drivers/input/tablet/hanwang.c
388
0, hanwang->features->max_pressure, 0, 0);
drivers/input/tablet/hanwang.c
391
usb_fill_int_urb(hanwang->irq, dev,
drivers/input/tablet/hanwang.c
393
hanwang->data, hanwang->features->pkg_len,
drivers/input/tablet/hanwang.c
394
hanwang_irq, hanwang, endpoint->bInterval);
drivers/input/tablet/hanwang.c
395
hanwang->irq->transfer_dma = hanwang->data_dma;
drivers/input/tablet/hanwang.c
396
hanwang->irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
drivers/input/tablet/hanwang.c
398
error = input_register_device(hanwang->dev);
drivers/input/tablet/hanwang.c
402
usb_set_intfdata(intf, hanwang);
drivers/input/tablet/hanwang.c
406
fail3: usb_free_urb(hanwang->irq);
drivers/input/tablet/hanwang.c
407
fail2: usb_free_coherent(dev, hanwang->features->pkg_len,
drivers/input/tablet/hanwang.c
408
hanwang->data, hanwang->data_dma);
drivers/input/tablet/hanwang.c
410
kfree(hanwang);
drivers/input/tablet/hanwang.c
417
struct hanwang *hanwang = usb_get_intfdata(intf);
drivers/input/tablet/hanwang.c
419
input_unregister_device(hanwang->dev);
drivers/input/tablet/hanwang.c
420
usb_free_urb(hanwang->irq);
drivers/input/tablet/hanwang.c
422
hanwang->features->pkg_len, hanwang->data,
drivers/input/tablet/hanwang.c
423
hanwang->data_dma);
drivers/input/tablet/hanwang.c
424
kfree(hanwang);