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

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

Merge "pci: msm: Move rpmsg lock after command completion"

parents 723156f0 2e010314
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -6756,8 +6756,8 @@ static int msm_pcie_drv_send_rpmsg(struct msm_pcie_dev_t *pcie_dev,

	mutex_lock(&pcie_drv.rpmsg_lock);
	if (!pcie_drv.rpdev) {
		mutex_unlock(&pcie_drv.rpmsg_lock);
		return -EIO;
		ret = -EIO;
		goto out;
	}

	reinit_completion(&drv_info->completion);
@@ -6775,10 +6775,8 @@ static int msm_pcie_drv_send_rpmsg(struct msm_pcie_dev_t *pcie_dev,
	if (ret) {
		PCIE_ERR(pcie_dev, "PCIe: RC%d: DRV: failed to send rpmsg\n",
			pcie_dev->rc_idx);
		mutex_unlock(&pcie_drv.rpmsg_lock);
		return ret;
		goto out;
	}
	mutex_unlock(&pcie_drv.rpmsg_lock);

	ret = wait_for_completion_timeout(&drv_info->completion,
					msecs_to_jiffies(drv_info->timeout_ms));
@@ -6786,13 +6784,19 @@ static int msm_pcie_drv_send_rpmsg(struct msm_pcie_dev_t *pcie_dev,
		PCIE_ERR(pcie_dev,
			"PCIe: RC%d: DRV: completion timeout for rpmsg\n",
			pcie_dev->rc_idx);
		return -ETIMEDOUT;
		ret = -ETIMEDOUT;
		goto out;
	}

	ret = 0;

	PCIE_DBG(pcie_dev, "PCIe: RC%d: DRV: rpmsg successfully sent\n",
		pcie_dev->rc_idx);

	return 0;
out:
	mutex_unlock(&pcie_drv.rpmsg_lock);

	return ret;
}

static int msm_pcie_drv_resume(struct msm_pcie_dev_t *pcie_dev)