Bluetooth: hci_qca: Refactor error handling in qca_suspend()
authorMatthias Kaehlcke <mka@chromium.org>
Fri, 5 Jun 2020 18:46:11 +0000 (11:46 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 8 Jun 2020 08:14:26 +0000 (10:14 +0200)
If waiting for IBS sleep times out jump to the error handler, this is
easier to read than multiple 'if' branches and a fall through to the
error handler.

Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
Reviewed-by: Abhishek Pandit-Subedi <abhishekpandit@chromium.org>
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
drivers/bluetooth/hci_qca.c

index d073cc2..28c34a1 100644 (file)
@@ -2107,18 +2107,16 @@ static int __maybe_unused qca_suspend(struct device *dev)
        /* Wait for HCI_IBS_SLEEP_IND sent by device to indicate its Tx is going
         * to sleep, so that the packet does not wake the system later.
         */
-
        ret = wait_event_interruptible_timeout(qca->suspend_wait_q,
                        qca->rx_ibs_state == HCI_IBS_RX_ASLEEP,
                        msecs_to_jiffies(IBS_BTSOC_TX_IDLE_TIMEOUT_MS));
-
-       if (ret > 0) {
-               qca_wq_serial_tx_clock_vote_off(&qca->ws_tx_vote_off);
-               return 0;
+       if (ret == 0) {
+               ret = -ETIMEDOUT;
+               goto error;
        }
 
-       if (ret == 0)
-               ret = -ETIMEDOUT;
+       qca_wq_serial_tx_clock_vote_off(&qca->ws_tx_vote_off);
+       return 0;
 
 error:
        clear_bit(QCA_SUSPENDING, &qca->flags);