diff options
author | Chris Bagwell <chris@cnpbagwell.com> | 2012-03-25 23:26:20 -0700 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2012-03-25 23:32:59 -0700 |
commit | 16bf288c4be67b68c3fcb6561ff145702cb7bd22 (patch) | |
tree | 9ae5f770afa5812ebdb2f2b381cb1477a59f4f85 /drivers/input/tablet/wacom.h | |
parent | d3825d51c3eddb8a3c7d1281f27181aff6db19b8 (diff) |
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.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/input/tablet/wacom.h b/drivers/input/tablet/wacom.h index 0783864a7dc..febbfd9f3a8 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); |