Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f0d5c00c authored by Yue Ma's avatar Yue Ma
Browse files

cnss2: Call mhi_device_get_sync() if timeout requested is 0



mhi_device_get_sync() can sleep while waiting for MHI M0 event.
When timeout passed in is 0 for CNSS force wake API, call it
instead of mhi_device_get_sync_atomic() which will only do busy
wait.

Change-Id: I8ba5a3382b4104eb7324c9e7f3fc1ce3c21065f4
Signed-off-by: default avatarYue Ma <yuem@codeaurora.org>
parent 6d869ca4
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -3064,7 +3064,14 @@ int cnss_pci_force_wake_request_sync(struct device *dev, int timeout_us)
	if (test_bit(CNSS_DEV_ERR_NOTIFY, &plat_priv->driver_state))
		return -EAGAIN;

	return mhi_device_get_sync_atomic(mhi_ctrl->mhi_dev, timeout_us);
	if (timeout_us) {
		/* Busy wait for timeout_us */
		return mhi_device_get_sync_atomic(mhi_ctrl->mhi_dev,
						  timeout_us);
	} else {
		/* Sleep wait for mhi_ctrl->timeout_ms */
		return mhi_device_get_sync(mhi_ctrl->mhi_dev, MHI_VOTE_DEVICE);
	}
}
EXPORT_SYMBOL(cnss_pci_force_wake_request_sync);