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

Commit b0bd57a9 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "slim-msm: Use non-interruptible method for all QMI wait"

parents c6257456 6d89ada3
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -1689,8 +1689,11 @@ static int msm_slim_qmi_send_power_request(struct msm_slim_ctrl *dev,
	if (rc < 0 || dev->qmi.deferred_resp)
		return rc;

	rc = qmi_txn_wait(temp, SLIM_QMI_RESP_TOUT);
	if (rc < 0) {
	rc = wait_for_completion_timeout(&temp->completion,
					SLIM_QMI_RESP_TOUT);
	qmi_txn_cancel(temp);
	if (!rc) {
		rc = -ETIMEDOUT;
		SLIM_ERR(dev, "%s: QMI TXN wait failed: %d\n", __func__, rc);
		return rc;
	}
@@ -1847,8 +1850,11 @@ int msm_slim_qmi_deferred_status_req(struct msm_slim_ctrl *dev)
		return rc;
	}

	rc = qmi_txn_wait(&txn, SLIM_QMI_RESP_TOUT);
	if (rc < 0) {
	rc = wait_for_completion_timeout(&txn.completion,
					SLIM_QMI_RESP_TOUT);
	qmi_txn_cancel(&txn);
	if (!rc) {
		rc = -ETIMEDOUT;
		SLIM_ERR(dev, "%s: QMI TXN wait failed: %d\n", __func__, rc);
		return rc;
	}
@@ -1861,8 +1867,11 @@ int msm_slim_qmi_deferred_status_req(struct msm_slim_ctrl *dev)
	}

	/* wait for the deferred response */
	rc = qmi_txn_wait(&dev->qmi.deferred_txn, SLIM_QMI_RESP_TOUT);
	if (rc < 0) {
	rc = wait_for_completion_timeout(&dev->qmi.deferred_txn.completion,
					SLIM_QMI_RESP_TOUT);
	qmi_txn_cancel(&dev->qmi.deferred_txn);
	if (!rc) {
		rc = -ETIMEDOUT;
		SLIM_WARN(dev, "slimbus power deferred response not rcvd\n");
		return rc;
	}