Commit c2b27ef6 authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: iforce - wait for command completion when closing the device

We need to wait for the command to disable FF effects to complete before
continuing with closing the device.
Tested-by: default avatarJohannes Ebke <johannes.ebke@physik.uni-muenchen.de>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent 70f94413
...@@ -228,6 +228,9 @@ static void iforce_close(struct input_dev *dev) ...@@ -228,6 +228,9 @@ static void iforce_close(struct input_dev *dev)
/* Disable force feedback playback */ /* Disable force feedback playback */
iforce_send_packet(iforce, FF_CMD_ENABLE, "\001"); iforce_send_packet(iforce, FF_CMD_ENABLE, "\001");
/* Wait for the command to complete */
wait_event_interruptible(iforce->wait,
!test_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags));
} }
switch (iforce->bus) { switch (iforce->bus) {
......
...@@ -109,6 +109,7 @@ static void iforce_usb_out(struct urb *urb) ...@@ -109,6 +109,7 @@ static void iforce_usb_out(struct urb *urb)
struct iforce *iforce = urb->context; struct iforce *iforce = urb->context;
if (urb->status) { if (urb->status) {
clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags);
dbg("urb->status %d, exiting", urb->status); dbg("urb->status %d, exiting", urb->status);
return; return;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment