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);