mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
NFC: port100: Make port100_abort_cmd() synchronous
This patch makes the abort_cmd function synchronous. This allows the caller to immediately send a new command after abort_cmd() returns. Signed-off-by: Thierry Escande <[email protected]> Signed-off-by: Samuel Ortiz <[email protected]>
This commit is contained in:
parent
b74584c1a6
commit
a52bd7d275
1 changed files with 10 additions and 1 deletions
|
|
@ -472,6 +472,7 @@ struct port100 {
|
|||
struct port100_cmd *cmd;
|
||||
|
||||
bool cmd_cancel;
|
||||
struct completion cmd_cancel_done;
|
||||
};
|
||||
|
||||
struct port100_cmd {
|
||||
|
|
@ -728,6 +729,8 @@ static int port100_send_ack(struct port100 *dev)
|
|||
|
||||
mutex_lock(&dev->out_urb_lock);
|
||||
|
||||
init_completion(&dev->cmd_cancel_done);
|
||||
|
||||
usb_kill_urb(dev->out_urb);
|
||||
|
||||
dev->out_urb->transfer_buffer = ack_frame;
|
||||
|
|
@ -742,6 +745,9 @@ static int port100_send_ack(struct port100 *dev)
|
|||
|
||||
mutex_unlock(&dev->out_urb_lock);
|
||||
|
||||
if (!rc)
|
||||
wait_for_completion(&dev->cmd_cancel_done);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
@ -921,7 +927,10 @@ static void port100_send_complete(struct urb *urb)
|
|||
{
|
||||
struct port100 *dev = urb->context;
|
||||
|
||||
dev->cmd_cancel = false;
|
||||
if (dev->cmd_cancel) {
|
||||
dev->cmd_cancel = false;
|
||||
complete(&dev->cmd_cancel_done);
|
||||
}
|
||||
|
||||
switch (urb->status) {
|
||||
case 0:
|
||||
|
|
|
|||
Loading…
Reference in a new issue