wacom_sys.c (97f9afa4f9cc5e88e092e47ebd17ebf3f764a582) | wacom_sys.c (b62f6465ce1fcbfe4459eb9fd67566ced2a27994) |
---|---|
1/* 2 * drivers/input/tablet/wacom_sys.c 3 * 4 * USB Wacom tablet support - system specific code 5 */ 6 7/* 8 * This program is free software; you can redistribute it and/or modify --- 1383 unchanged lines hidden (view full) --- 1392 input_free_device(wacom->wacom_wac.touch_input); 1393 } 1394 if (wacom->wacom_wac.pad_input) { 1395 if (wacom->wacom_wac.pad_registered) 1396 input_unregister_device(wacom->wacom_wac.pad_input); 1397 else 1398 input_free_device(wacom->wacom_wac.pad_input); 1399 } | 1/* 2 * drivers/input/tablet/wacom_sys.c 3 * 4 * USB Wacom tablet support - system specific code 5 */ 6 7/* 8 * This program is free software; you can redistribute it and/or modify --- 1383 unchanged lines hidden (view full) --- 1392 input_free_device(wacom->wacom_wac.touch_input); 1393 } 1394 if (wacom->wacom_wac.pad_input) { 1395 if (wacom->wacom_wac.pad_registered) 1396 input_unregister_device(wacom->wacom_wac.pad_input); 1397 else 1398 input_free_device(wacom->wacom_wac.pad_input); 1399 } |
1400 kobject_put(wacom->remote_dir); | |
1401 wacom->wacom_wac.pen_input = NULL; 1402 wacom->wacom_wac.touch_input = NULL; 1403 wacom->wacom_wac.pad_input = NULL; 1404 wacom->wacom_wac.pen_registered = false; 1405 wacom->wacom_wac.touch_registered = false; 1406 wacom->wacom_wac.pad_registered = false; 1407 wacom_destroy_leds(wacom); 1408} --- 66 unchanged lines hidden (view full) --- 1475 error = input_register_device(pad_input_dev); 1476 if (error) 1477 goto fail_register_pad_input; 1478 wacom_wac->pad_registered = true; 1479 1480 error = wacom_initialize_leds(wacom); 1481 if (error) 1482 goto fail_leds; | 1400 wacom->wacom_wac.pen_input = NULL; 1401 wacom->wacom_wac.touch_input = NULL; 1402 wacom->wacom_wac.pad_input = NULL; 1403 wacom->wacom_wac.pen_registered = false; 1404 wacom->wacom_wac.touch_registered = false; 1405 wacom->wacom_wac.pad_registered = false; 1406 wacom_destroy_leds(wacom); 1407} --- 66 unchanged lines hidden (view full) --- 1474 error = input_register_device(pad_input_dev); 1475 if (error) 1476 goto fail_register_pad_input; 1477 wacom_wac->pad_registered = true; 1478 1479 error = wacom_initialize_leds(wacom); 1480 if (error) 1481 goto fail_leds; |
1483 1484 error = wacom_initialize_remote(wacom); 1485 if (error) 1486 goto fail_remote; | |
1487 } 1488 1489 return 0; 1490 | 1482 } 1483 1484 return 0; 1485 |
1491fail_remote: 1492 wacom_destroy_leds(wacom); | |
1493fail_leds: 1494 input_unregister_device(pad_input_dev); 1495 pad_input_dev = NULL; 1496 wacom_wac->pad_registered = false; 1497fail_register_pad_input: 1498 if (touch_input_dev) 1499 input_unregister_device(touch_input_dev); 1500 wacom_wac->touch_input = NULL; --- 180 unchanged lines hidden (view full) --- 1681 if (error) 1682 goto fail_battery; 1683 } 1684 1685 error = wacom_register_inputs(wacom); 1686 if (error) 1687 goto fail_register_inputs; 1688 | 1486fail_leds: 1487 input_unregister_device(pad_input_dev); 1488 pad_input_dev = NULL; 1489 wacom_wac->pad_registered = false; 1490fail_register_pad_input: 1491 if (touch_input_dev) 1492 input_unregister_device(touch_input_dev); 1493 wacom_wac->touch_input = NULL; --- 180 unchanged lines hidden (view full) --- 1674 if (error) 1675 goto fail_battery; 1676 } 1677 1678 error = wacom_register_inputs(wacom); 1679 if (error) 1680 goto fail_register_inputs; 1681 |
1682 if (wacom->wacom_wac.features.device_type & WACOM_DEVICETYPE_PAD) { 1683 error = wacom_initialize_remote(wacom); 1684 if (error) 1685 goto fail_remote; 1686 } 1687 |
|
1689 if (features->type == HID_GENERIC) 1690 connect_mask |= HID_CONNECT_DRIVER; 1691 1692 /* Regular HID work starts now */ 1693 error = hid_hw_start(hdev, connect_mask); 1694 if (error) { 1695 hid_err(hdev, "hw start failed\n"); 1696 goto fail_hw_start; 1697 } 1698 1699 if (!wireless) { 1700 /* Note that if query fails it is not a hard failure */ 1701 wacom_query_tablet_data(hdev, features); 1702 } 1703 1704 /* touch only Bamboo doesn't support pen */ 1705 if ((features->type == BAMBOO_TOUCH) && 1706 (features->device_type & WACOM_DEVICETYPE_PEN)) { 1707 error = -ENODEV; | 1688 if (features->type == HID_GENERIC) 1689 connect_mask |= HID_CONNECT_DRIVER; 1690 1691 /* Regular HID work starts now */ 1692 error = hid_hw_start(hdev, connect_mask); 1693 if (error) { 1694 hid_err(hdev, "hw start failed\n"); 1695 goto fail_hw_start; 1696 } 1697 1698 if (!wireless) { 1699 /* Note that if query fails it is not a hard failure */ 1700 wacom_query_tablet_data(hdev, features); 1701 } 1702 1703 /* touch only Bamboo doesn't support pen */ 1704 if ((features->type == BAMBOO_TOUCH) && 1705 (features->device_type & WACOM_DEVICETYPE_PEN)) { 1706 error = -ENODEV; |
1708 goto fail_hw_start; | 1707 goto fail_quirks; |
1709 } 1710 1711 /* pen only Bamboo neither support touch nor pad */ 1712 if ((features->type == BAMBOO_PEN) && 1713 ((features->device_type & WACOM_DEVICETYPE_TOUCH) || 1714 (features->device_type & WACOM_DEVICETYPE_PAD))) { 1715 error = -ENODEV; | 1708 } 1709 1710 /* pen only Bamboo neither support touch nor pad */ 1711 if ((features->type == BAMBOO_PEN) && 1712 ((features->device_type & WACOM_DEVICETYPE_TOUCH) || 1713 (features->device_type & WACOM_DEVICETYPE_PAD))) { 1714 error = -ENODEV; |
1716 goto fail_hw_start; | 1715 goto fail_quirks; |
1717 } 1718 1719 if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) 1720 error = hid_hw_open(hdev); 1721 1722 if ((wacom_wac->features.type == INTUOSHT || 1723 wacom_wac->features.type == INTUOSHT2) && 1724 (wacom_wac->features.device_type & WACOM_DEVICETYPE_TOUCH)) { 1725 wacom_wac->shared->type = wacom_wac->features.type; 1726 wacom_wac->shared->touch_input = wacom_wac->touch_input; 1727 } 1728 1729 return 0; 1730 | 1716 } 1717 1718 if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) 1719 error = hid_hw_open(hdev); 1720 1721 if ((wacom_wac->features.type == INTUOSHT || 1722 wacom_wac->features.type == INTUOSHT2) && 1723 (wacom_wac->features.device_type & WACOM_DEVICETYPE_TOUCH)) { 1724 wacom_wac->shared->type = wacom_wac->features.type; 1725 wacom_wac->shared->touch_input = wacom_wac->touch_input; 1726 } 1727 1728 return 0; 1729 |
1731fail_hw_start: | 1730fail_quirks: |
1732 hid_hw_stop(hdev); | 1731 hid_hw_stop(hdev); |
1733fail_register_inputs: | 1732fail_hw_start: 1733 kobject_put(wacom->remote_dir); 1734fail_remote: |
1734 wacom_clean_inputs(wacom); | 1735 wacom_clean_inputs(wacom); |
1736fail_register_inputs: |
|
1735 wacom_destroy_battery(wacom); 1736fail_battery: 1737 wacom_remove_shared_data(wacom); 1738fail_shared_data: 1739fail_parsed: 1740fail_allocate_inputs: 1741 wacom_clean_inputs(wacom); 1742 return error; --- 162 unchanged lines hidden (view full) --- 1905 struct wacom_features *features = &wacom_wac->features; 1906 1907 if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) 1908 hid_hw_close(hdev); 1909 1910 hid_hw_stop(hdev); 1911 1912 cancel_work_sync(&wacom->work); | 1737 wacom_destroy_battery(wacom); 1738fail_battery: 1739 wacom_remove_shared_data(wacom); 1740fail_shared_data: 1741fail_parsed: 1742fail_allocate_inputs: 1743 wacom_clean_inputs(wacom); 1744 return error; --- 162 unchanged lines hidden (view full) --- 1907 struct wacom_features *features = &wacom_wac->features; 1908 1909 if (features->device_type & WACOM_DEVICETYPE_WL_MONITOR) 1910 hid_hw_close(hdev); 1911 1912 hid_hw_stop(hdev); 1913 1914 cancel_work_sync(&wacom->work); |
1915 kobject_put(wacom->remote_dir); |
|
1913 wacom_clean_inputs(wacom); 1914 if (hdev->bus == BUS_BLUETOOTH) 1915 device_remove_file(&hdev->dev, &dev_attr_speed); 1916 wacom_destroy_battery(wacom); 1917 wacom_remove_shared_data(wacom); 1918 1919 hid_set_drvdata(hdev, NULL); 1920 kfree(wacom); --- 43 unchanged lines hidden --- | 1916 wacom_clean_inputs(wacom); 1917 if (hdev->bus == BUS_BLUETOOTH) 1918 device_remove_file(&hdev->dev, &dev_attr_speed); 1919 wacom_destroy_battery(wacom); 1920 wacom_remove_shared_data(wacom); 1921 1922 hid_set_drvdata(hdev, NULL); 1923 kfree(wacom); --- 43 unchanged lines hidden --- |