aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/tablet/wacom.h
diff options
context:
space:
mode:
authorChris Bagwell <chris@cnpbagwell.com>2012-03-25 23:26:20 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2012-03-25 23:32:59 -0700
commit16bf288c4be67b68c3fcb6561ff145702cb7bd22 (patch)
tree9ae5f770afa5812ebdb2f2b381cb1477a59f4f85 /drivers/input/tablet/wacom.h
parentInput: wacom - wireless monitor framework (diff)
downloadlinux-dev-16bf288c4be67b68c3fcb6561ff145702cb7bd22.tar.xz
linux-dev-16bf288c4be67b68c3fcb6561ff145702cb7bd22.zip
Input: wacom - create inputs when wireless connect
When a tablet connect or disconnect is detected, schedule work queue to register or unregister related input devices. When a wireless tablet connects, it reports same USB PID used if tablet is connected with USB cable. Use this to update features values, set input capabilities, and then register device. From there, the Pen and Touch interfaces will reuse the existing tablet's IRQ routines. Its possible that 1 receiver is shared with 2 tablets with different PID (small and medium Bamboo for example) so the input is unregister at disconnect to better support this case. Signed-off-by: Chris Bagwell <chris@cnpbagwell.com> Tested-by: Jason Gerecke <killertofu@gmail.com> Acked-by: Ping Cheng <pingc@wacom.com> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/tablet/wacom.h')
-rw-r--r--drivers/input/tablet/wacom.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/input/tablet/wacom.h b/drivers/input/tablet/wacom.h
index 0783864a7dc2..febbfd9f3a84 100644
--- a/drivers/input/tablet/wacom.h
+++ b/drivers/input/tablet/wacom.h
@@ -112,6 +112,7 @@ struct wacom {
struct urb *irq;
struct wacom_wac wacom_wac;
struct mutex lock;
+ struct work_struct work;
bool open;
char phys[32];
struct wacom_led {
@@ -122,6 +123,12 @@ struct wacom {
} led;
};
+static inline void wacom_schedule_work(struct wacom_wac *wacom_wac)
+{
+ struct wacom *wacom = container_of(wacom_wac, struct wacom, wacom_wac);
+ schedule_work(&wacom->work);
+}
+
extern const struct usb_device_id wacom_ids[];
void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len);