Lines Matching defs:hanwang

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