Lines Matching defs:hanwang

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