macintosh/adb-iop: Implement sending -> idle state transition
authorFinn Thain <fthain@telegraphics.com.au>
Sat, 30 May 2020 23:17:03 +0000 (09:17 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 26 Jul 2020 13:34:24 +0000 (23:34 +1000)
On leaving the 'sending' state, proceed to the 'idle' state if no reply is
expected. Drop redundant test for adb_iop_state == sending && current_req.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Tested-by: Stan Johnson <userm57@yahoo.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/6991996dd4aaf0b52cfd650172bf0f6fbe37a452.1590880623.git.fthain@telegraphics.com.au
drivers/macintosh/adb-iop.c

index f22792c..8594e4f 100644 (file)
@@ -77,15 +77,14 @@ static void adb_iop_done(void)
 
 static void adb_iop_complete(struct iop_msg *msg)
 {
-       struct adb_request *req;
        unsigned long flags;
 
        local_irq_save(flags);
 
-       req = current_req;
-       if ((adb_iop_state == sending) && req && req->reply_expected) {
+       if (current_req->reply_expected)
                adb_iop_state = awaiting_reply;
-       }
+       else
+               adb_iop_done();
 
        local_irq_restore(flags);
 }