Lines Matching refs:aiptek

288 struct aiptek {  struct
414 struct aiptek *aiptek = urb->context; in aiptek_irq() local
415 unsigned char *data = aiptek->data; in aiptek_irq()
416 struct input_dev *inputdev = aiptek->inputdev; in aiptek_irq()
417 struct usb_interface *intf = aiptek->intf; in aiptek_irq()
442 if (aiptek->inDelay == 1 && time_after(aiptek->endDelay, jiffies)) { in aiptek_irq()
446 aiptek->inDelay = 0; in aiptek_irq()
447 aiptek->eventCount++; in aiptek_irq()
454 if (aiptek->curSetting.coordinateMode == in aiptek_irq()
456 aiptek->diagnostic = in aiptek_irq()
471 left = (data[1] & aiptek->curSetting.mouseButtonLeft >> 2) != 0 ? 1 : 0; in aiptek_irq()
472 right = (data[1] & aiptek->curSetting.mouseButtonRight >> 2) != 0 ? 1 : 0; in aiptek_irq()
473 middle = (data[1] & aiptek->curSetting.mouseButtonMiddle >> 2) != 0 ? 1 : 0; in aiptek_irq()
487 if (aiptek->curSetting.wheel != AIPTEK_WHEEL_DISABLE) { in aiptek_irq()
489 aiptek->curSetting.wheel); in aiptek_irq()
490 aiptek->curSetting.wheel = AIPTEK_WHEEL_DISABLE; in aiptek_irq()
492 if (aiptek->lastMacro != -1) { in aiptek_irq()
494 macroKeyEvents[aiptek->lastMacro], 0); in aiptek_irq()
495 aiptek->lastMacro = -1; in aiptek_irq()
504 if (aiptek->curSetting.coordinateMode == AIPTEK_COORDINATE_RELATIVE_MODE) { in aiptek_irq()
505 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_SENDING_ABSOLUTE_IN_RELATIVE; in aiptek_irq()
507 (aiptek->curSetting.pointerMode)) { in aiptek_irq()
508 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_TOOL_DISALLOWED; in aiptek_irq()
522 bs = (data[5] & aiptek->curSetting.stylusButtonLower) != 0 ? 1 : 0; in aiptek_irq()
523 pck = (data[5] & aiptek->curSetting.stylusButtonUpper) != 0 ? 1 : 0; in aiptek_irq()
533 if (aiptek->previousToolMode != in aiptek_irq()
534 aiptek->curSetting.toolMode) { in aiptek_irq()
536 aiptek->previousToolMode, 0); in aiptek_irq()
538 aiptek->curSetting.toolMode, in aiptek_irq()
540 aiptek->previousToolMode = in aiptek_irq()
541 aiptek->curSetting.toolMode; in aiptek_irq()
553 if (aiptek->curSetting.xTilt != in aiptek_irq()
557 aiptek->curSetting.xTilt); in aiptek_irq()
559 if (aiptek->curSetting.yTilt != AIPTEK_TILT_DISABLE) { in aiptek_irq()
562 aiptek->curSetting.yTilt); in aiptek_irq()
568 if (aiptek->curSetting.wheel != in aiptek_irq()
572 aiptek->curSetting.wheel); in aiptek_irq()
573 aiptek->curSetting.wheel = AIPTEK_WHEEL_DISABLE; in aiptek_irq()
577 if (aiptek->lastMacro != -1) { in aiptek_irq()
579 macroKeyEvents[aiptek->lastMacro], 0); in aiptek_irq()
580 aiptek->lastMacro = -1; in aiptek_irq()
589 if (aiptek->curSetting.coordinateMode == AIPTEK_COORDINATE_RELATIVE_MODE) { in aiptek_irq()
590 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_SENDING_ABSOLUTE_IN_RELATIVE; in aiptek_irq()
592 (aiptek->curSetting.pointerMode)) { in aiptek_irq()
593 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_TOOL_DISALLOWED; in aiptek_irq()
602 left = (data[5] & aiptek->curSetting.mouseButtonLeft) != 0 ? 1 : 0; in aiptek_irq()
603 right = (data[5] & aiptek->curSetting.mouseButtonRight) != 0 ? 1 : 0; in aiptek_irq()
604 middle = (data[5] & aiptek->curSetting.mouseButtonMiddle) != 0 ? 1 : 0; in aiptek_irq()
610 if (aiptek->previousToolMode != in aiptek_irq()
611 aiptek->curSetting.toolMode) { in aiptek_irq()
613 aiptek->previousToolMode, 0); in aiptek_irq()
615 aiptek->curSetting.toolMode, in aiptek_irq()
617 aiptek->previousToolMode = in aiptek_irq()
618 aiptek->curSetting.toolMode; in aiptek_irq()
632 if (aiptek->curSetting.wheel != AIPTEK_WHEEL_DISABLE) { in aiptek_irq()
635 aiptek->curSetting.wheel); in aiptek_irq()
636 aiptek->curSetting.wheel = AIPTEK_WHEEL_DISABLE; in aiptek_irq()
640 if (aiptek->lastMacro != -1) { in aiptek_irq()
642 macroKeyEvents[aiptek->lastMacro], 0); in aiptek_irq()
643 aiptek->lastMacro = -1; in aiptek_irq()
657 bs = (data[1] & aiptek->curSetting.stylusButtonLower) != 0 ? 1 : 0; in aiptek_irq()
658 pck = (data[1] & aiptek->curSetting.stylusButtonUpper) != 0 ? 1 : 0; in aiptek_irq()
667 if (aiptek->previousToolMode != in aiptek_irq()
668 aiptek->curSetting.toolMode) { in aiptek_irq()
670 aiptek->previousToolMode, 0); in aiptek_irq()
672 aiptek->curSetting.toolMode, in aiptek_irq()
674 aiptek->previousToolMode = in aiptek_irq()
675 aiptek->curSetting.toolMode; in aiptek_irq()
679 if (aiptek->lastMacro != -1 && aiptek->lastMacro != macro) { in aiptek_irq()
680 input_report_key(inputdev, macroKeyEvents[aiptek->lastMacro], 0); in aiptek_irq()
681 aiptek->lastMacro = -1; in aiptek_irq()
684 if (macro != -1 && macro != aiptek->lastMacro) { in aiptek_irq()
686 aiptek->lastMacro = macro; in aiptek_irq()
699 left = (data[1]& aiptek->curSetting.mouseButtonLeft) != 0 ? 1 : 0; in aiptek_irq()
700 right = (data[1] & aiptek->curSetting.mouseButtonRight) != 0 ? 1 : 0; in aiptek_irq()
701 middle = (data[1] & aiptek->curSetting.mouseButtonMiddle) != 0 ? 1 : 0; in aiptek_irq()
708 if (aiptek->previousToolMode != in aiptek_irq()
709 aiptek->curSetting.toolMode) { in aiptek_irq()
711 aiptek->previousToolMode, 0); in aiptek_irq()
713 aiptek->curSetting.toolMode, 1); in aiptek_irq()
714 aiptek->previousToolMode = aiptek->curSetting.toolMode; in aiptek_irq()
718 if (aiptek->lastMacro != -1 && aiptek->lastMacro != macro) { in aiptek_irq()
719 input_report_key(inputdev, macroKeyEvents[aiptek->lastMacro], 0); in aiptek_irq()
720 aiptek->lastMacro = -1; in aiptek_irq()
723 if (macro != -1 && macro != aiptek->lastMacro) { in aiptek_irq()
725 aiptek->lastMacro = macro; in aiptek_irq()
752 if (aiptek->previousToolMode != in aiptek_irq()
753 aiptek->curSetting.toolMode) { in aiptek_irq()
755 aiptek->previousToolMode, 0); in aiptek_irq()
757 aiptek->curSetting.toolMode, in aiptek_irq()
759 aiptek->previousToolMode = in aiptek_irq()
760 aiptek->curSetting.toolMode; in aiptek_irq()
783 if (aiptek->previousJitterable != jitterable && in aiptek_irq()
784 aiptek->curSetting.jitterDelay != 0 && aiptek->inDelay != 1) { in aiptek_irq()
785 aiptek->endDelay = jiffies + in aiptek_irq()
786 ((aiptek->curSetting.jitterDelay * HZ) / 1000); in aiptek_irq()
787 aiptek->inDelay = 1; in aiptek_irq()
789 aiptek->previousJitterable = jitterable; in aiptek_irq()
827 struct aiptek *aiptek = input_get_drvdata(inputdev); in aiptek_open() local
829 aiptek->urb->dev = interface_to_usbdev(aiptek->intf); in aiptek_open()
830 if (usb_submit_urb(aiptek->urb, GFP_KERNEL) != 0) in aiptek_open()
841 struct aiptek *aiptek = input_get_drvdata(inputdev); in aiptek_close() local
843 usb_kill_urb(aiptek->urb); in aiptek_close()
851 aiptek_set_report(struct aiptek *aiptek, in aiptek_set_report() argument
855 struct usb_device *udev = interface_to_usbdev(aiptek->intf); in aiptek_set_report()
862 aiptek->ifnum, buffer, size, 5000); in aiptek_set_report()
866 aiptek_get_report(struct aiptek *aiptek, in aiptek_get_report() argument
870 struct usb_device *udev = interface_to_usbdev(aiptek->intf); in aiptek_get_report()
877 aiptek->ifnum, buffer, size, 5000); in aiptek_get_report()
884 aiptek_command(struct aiptek *aiptek, unsigned char command, unsigned char data) in aiptek_command() argument
899 aiptek_set_report(aiptek, 3, 2, buf, sizeof_buf)) != sizeof_buf) { in aiptek_command()
900 dev_dbg(&aiptek->intf->dev, in aiptek_command()
914 aiptek_query(struct aiptek *aiptek, unsigned char command, unsigned char data) in aiptek_query() argument
928 if (aiptek_command(aiptek, command, data) != 0) { in aiptek_query()
932 msleep(aiptek->curSetting.programmableDelay); in aiptek_query()
935 aiptek_get_report(aiptek, 3, 2, buf, sizeof_buf)) != sizeof_buf) { in aiptek_query()
936 dev_dbg(&aiptek->intf->dev, in aiptek_query()
951 static int aiptek_program_tablet(struct aiptek *aiptek) in aiptek_program_tablet() argument
955 if ((ret = aiptek_command(aiptek, 0x18, 0x04)) < 0) in aiptek_program_tablet()
959 if ((ret = aiptek_query(aiptek, 0x02, 0x00)) < 0) in aiptek_program_tablet()
961 aiptek->features.modelCode = ret & 0xff; in aiptek_program_tablet()
964 if ((ret = aiptek_query(aiptek, 0x03, 0x00)) < 0) in aiptek_program_tablet()
966 aiptek->features.odmCode = ret; in aiptek_program_tablet()
969 if ((ret = aiptek_query(aiptek, 0x04, 0x00)) < 0) in aiptek_program_tablet()
971 aiptek->features.firmwareCode = ret; in aiptek_program_tablet()
974 if ((ret = aiptek_query(aiptek, 0x01, 0x00)) < 0) in aiptek_program_tablet()
976 input_set_abs_params(aiptek->inputdev, ABS_X, 0, ret - 1, 0, 0); in aiptek_program_tablet()
979 if ((ret = aiptek_query(aiptek, 0x01, 0x01)) < 0) in aiptek_program_tablet()
981 input_set_abs_params(aiptek->inputdev, ABS_Y, 0, ret - 1, 0, 0); in aiptek_program_tablet()
984 if ((ret = aiptek_query(aiptek, 0x08, 0x00)) < 0) in aiptek_program_tablet()
986 input_set_abs_params(aiptek->inputdev, ABS_PRESSURE, 0, ret - 1, 0, 0); in aiptek_program_tablet()
991 if (aiptek->curSetting.coordinateMode == in aiptek_program_tablet()
994 if ((ret = aiptek_command(aiptek, 0x10, 0x01)) < 0) { in aiptek_program_tablet()
999 if ((ret = aiptek_command(aiptek, 0x10, 0x00)) < 0) { in aiptek_program_tablet()
1005 if ((ret = aiptek_command(aiptek, 0x11, 0x02)) < 0) in aiptek_program_tablet()
1009 if ((ret = aiptek_command(aiptek, 0x17, 0x00)) < 0) in aiptek_program_tablet()
1014 if ((ret = aiptek_command(aiptek, 0x12, 0xff)) < 0) in aiptek_program_tablet()
1019 aiptek->diagnostic = AIPTEK_DIAGNOSTIC_NA; in aiptek_program_tablet()
1020 aiptek->eventCount = 0; in aiptek_program_tablet()
1037 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletSize() local
1040 input_abs_get_max(aiptek->inputdev, ABS_X) + 1, in show_tabletSize()
1041 input_abs_get_max(aiptek->inputdev, ABS_Y) + 1); in show_tabletSize()
1065 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletPointerMode() local
1069 aiptek->curSetting.pointerMode)); in show_tabletPointerMode()
1075 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletPointerMode() local
1081 aiptek->newSetting.pointerMode = new_mode; in store_tabletPointerMode()
1102 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletCoordinateMode() local
1106 aiptek->curSetting.coordinateMode)); in show_tabletCoordinateMode()
1112 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletCoordinateMode() local
1118 aiptek->newSetting.coordinateMode = new_mode; in store_tabletCoordinateMode()
1144 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletToolMode() local
1148 aiptek->curSetting.toolMode)); in show_tabletToolMode()
1154 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletToolMode() local
1160 aiptek->newSetting.toolMode = new_mode; in store_tabletToolMode()
1174 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletXtilt() local
1176 if (aiptek->curSetting.xTilt == AIPTEK_TILT_DISABLE) { in show_tabletXtilt()
1180 aiptek->curSetting.xTilt); in show_tabletXtilt()
1187 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletXtilt() local
1196 aiptek->newSetting.xTilt = AIPTEK_TILT_DISABLE; in store_tabletXtilt()
1201 aiptek->newSetting.xTilt = x; in store_tabletXtilt()
1216 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletYtilt() local
1218 if (aiptek->curSetting.yTilt == AIPTEK_TILT_DISABLE) { in show_tabletYtilt()
1222 aiptek->curSetting.yTilt); in show_tabletYtilt()
1229 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletYtilt() local
1238 aiptek->newSetting.yTilt = AIPTEK_TILT_DISABLE; in store_tabletYtilt()
1243 aiptek->newSetting.yTilt = y; in store_tabletYtilt()
1258 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletJitterDelay() local
1260 return snprintf(buf, PAGE_SIZE, "%d\n", aiptek->curSetting.jitterDelay); in show_tabletJitterDelay()
1266 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletJitterDelay() local
1273 aiptek->newSetting.jitterDelay = j; in store_tabletJitterDelay()
1287 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletProgrammableDelay() local
1290 aiptek->curSetting.programmableDelay); in show_tabletProgrammableDelay()
1296 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletProgrammableDelay() local
1303 aiptek->newSetting.programmableDelay = d; in store_tabletProgrammableDelay()
1317 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletEventsReceived() local
1319 return snprintf(buf, PAGE_SIZE, "%ld\n", aiptek->eventCount); in show_tabletEventsReceived()
1330 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletDiagnosticMessage() local
1333 switch (aiptek->diagnostic) { in show_tabletDiagnosticMessage()
1347 if (aiptek->curSetting.pointerMode == in show_tabletDiagnosticMessage()
1376 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletStylusUpper() local
1380 aiptek->curSetting.stylusButtonUpper)); in show_tabletStylusUpper()
1386 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletStylusUpper() local
1392 aiptek->newSetting.stylusButtonUpper = new_button; in store_tabletStylusUpper()
1407 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletStylusLower() local
1411 aiptek->curSetting.stylusButtonLower)); in show_tabletStylusLower()
1417 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletStylusLower() local
1423 aiptek->newSetting.stylusButtonLower = new_button; in store_tabletStylusLower()
1445 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletMouseLeft() local
1449 aiptek->curSetting.mouseButtonLeft)); in show_tabletMouseLeft()
1455 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletMouseLeft() local
1461 aiptek->newSetting.mouseButtonLeft = new_button; in store_tabletMouseLeft()
1475 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletMouseMiddle() local
1479 aiptek->curSetting.mouseButtonMiddle)); in show_tabletMouseMiddle()
1485 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletMouseMiddle() local
1491 aiptek->newSetting.mouseButtonMiddle = new_button; in store_tabletMouseMiddle()
1505 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletMouseRight() local
1509 aiptek->curSetting.mouseButtonRight)); in show_tabletMouseRight()
1515 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletMouseRight() local
1521 aiptek->newSetting.mouseButtonRight = new_button; in store_tabletMouseRight()
1535 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletWheel() local
1537 if (aiptek->curSetting.wheel == AIPTEK_WHEEL_DISABLE) { in show_tabletWheel()
1541 aiptek->curSetting.wheel); in show_tabletWheel()
1548 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletWheel() local
1555 aiptek->newSetting.wheel = w; in store_tabletWheel()
1578 struct aiptek *aiptek = dev_get_drvdata(dev); in store_tabletExecute() local
1583 memcpy(&aiptek->curSetting, &aiptek->newSetting, in store_tabletExecute()
1586 if (aiptek_program_tablet(aiptek) < 0) in store_tabletExecute()
1601 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletODMCode() local
1603 return snprintf(buf, PAGE_SIZE, "0x%04x\n", aiptek->features.odmCode); in show_tabletODMCode()
1614 struct aiptek *aiptek = dev_get_drvdata(dev); in show_tabletModelCode() local
1616 return snprintf(buf, PAGE_SIZE, "0x%04x\n", aiptek->features.modelCode); in show_tabletModelCode()
1627 struct aiptek *aiptek = dev_get_drvdata(dev); in show_firmwareCode() local
1630 aiptek->features.firmwareCode); in show_firmwareCode()
1672 struct aiptek *aiptek; in aiptek_probe() local
1693 aiptek = kzalloc(sizeof(struct aiptek), GFP_KERNEL); in aiptek_probe()
1695 if (!aiptek || !inputdev) { in aiptek_probe()
1701 aiptek->data = usb_alloc_coherent(usbdev, AIPTEK_PACKET_LENGTH, in aiptek_probe()
1702 GFP_KERNEL, &aiptek->data_dma); in aiptek_probe()
1703 if (!aiptek->data) { in aiptek_probe()
1708 aiptek->urb = usb_alloc_urb(0, GFP_KERNEL); in aiptek_probe()
1709 if (!aiptek->urb) { in aiptek_probe()
1714 aiptek->inputdev = inputdev; in aiptek_probe()
1715 aiptek->intf = intf; in aiptek_probe()
1716 aiptek->ifnum = intf->cur_altsetting->desc.bInterfaceNumber; in aiptek_probe()
1717 aiptek->inDelay = 0; in aiptek_probe()
1718 aiptek->endDelay = 0; in aiptek_probe()
1719 aiptek->previousJitterable = 0; in aiptek_probe()
1720 aiptek->lastMacro = -1; in aiptek_probe()
1728 aiptek->curSetting.pointerMode = AIPTEK_POINTER_EITHER_MODE; in aiptek_probe()
1729 aiptek->curSetting.coordinateMode = AIPTEK_COORDINATE_ABSOLUTE_MODE; in aiptek_probe()
1730 aiptek->curSetting.toolMode = AIPTEK_TOOL_BUTTON_PEN_MODE; in aiptek_probe()
1731 aiptek->curSetting.xTilt = AIPTEK_TILT_DISABLE; in aiptek_probe()
1732 aiptek->curSetting.yTilt = AIPTEK_TILT_DISABLE; in aiptek_probe()
1733 aiptek->curSetting.mouseButtonLeft = AIPTEK_MOUSE_LEFT_BUTTON; in aiptek_probe()
1734 aiptek->curSetting.mouseButtonMiddle = AIPTEK_MOUSE_MIDDLE_BUTTON; in aiptek_probe()
1735 aiptek->curSetting.mouseButtonRight = AIPTEK_MOUSE_RIGHT_BUTTON; in aiptek_probe()
1736 aiptek->curSetting.stylusButtonUpper = AIPTEK_STYLUS_UPPER_BUTTON; in aiptek_probe()
1737 aiptek->curSetting.stylusButtonLower = AIPTEK_STYLUS_LOWER_BUTTON; in aiptek_probe()
1738 aiptek->curSetting.jitterDelay = jitterDelay; in aiptek_probe()
1739 aiptek->curSetting.programmableDelay = programmableDelay; in aiptek_probe()
1743 aiptek->newSetting = aiptek->curSetting; in aiptek_probe()
1752 usb_make_path(usbdev, aiptek->features.usbPath, in aiptek_probe()
1753 sizeof(aiptek->features.usbPath)); in aiptek_probe()
1754 strlcat(aiptek->features.usbPath, "/input0", in aiptek_probe()
1755 sizeof(aiptek->features.usbPath)); in aiptek_probe()
1761 inputdev->phys = aiptek->features.usbPath; in aiptek_probe()
1765 input_set_drvdata(inputdev, aiptek); in aiptek_probe()
1815 usb_fill_int_urb(aiptek->urb, in aiptek_probe()
1819 aiptek->data, 8, aiptek_irq, aiptek, in aiptek_probe()
1822 aiptek->urb->transfer_dma = aiptek->data_dma; in aiptek_probe()
1823 aiptek->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; in aiptek_probe()
1837 aiptek->curSetting.programmableDelay = speeds[i]; in aiptek_probe()
1838 (void)aiptek_program_tablet(aiptek); in aiptek_probe()
1839 if (input_abs_get_max(aiptek->inputdev, ABS_X) > 0) { in aiptek_probe()
1842 aiptek->curSetting.programmableDelay); in aiptek_probe()
1858 usb_set_intfdata(intf, aiptek); in aiptek_probe()
1871 err = input_register_device(aiptek->inputdev); in aiptek_probe()
1880 fail3: usb_free_urb(aiptek->urb); in aiptek_probe()
1881 fail2: usb_free_coherent(usbdev, AIPTEK_PACKET_LENGTH, aiptek->data, in aiptek_probe()
1882 aiptek->data_dma); in aiptek_probe()
1885 kfree(aiptek); in aiptek_probe()
1894 struct aiptek *aiptek = usb_get_intfdata(intf); in aiptek_disconnect() local
1899 if (aiptek != NULL) { in aiptek_disconnect()
1902 usb_kill_urb(aiptek->urb); in aiptek_disconnect()
1903 input_unregister_device(aiptek->inputdev); in aiptek_disconnect()
1905 usb_free_urb(aiptek->urb); in aiptek_disconnect()
1908 aiptek->data, aiptek->data_dma); in aiptek_disconnect()
1909 kfree(aiptek); in aiptek_disconnect()