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

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

Merge "msm: ice: Modify the waiting condition in suspend"

parents dc1050aa da4cb9d4
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -846,18 +846,27 @@ static int qcom_ice_remove(struct platform_device *pdev)
static int  qcom_ice_suspend(struct platform_device *pdev)
{
	struct ice_device *ice_dev;
	int ret = 0;

	ice_dev = (struct ice_device *)platform_get_drvdata(pdev);

	if (!ice_dev)
		return -EINVAL;

	if (atomic_read(&ice_dev->is_ice_busy) != 0)
		wait_event_interruptible_timeout(
	if (atomic_read(&ice_dev->is_ice_busy) != 0) {
		ret = wait_event_interruptible_timeout(
			ice_dev->block_suspend_ice_queue,
			atomic_read(&ice_dev->is_ice_busy) != 0,
			atomic_read(&ice_dev->is_ice_busy) == 0,
			msecs_to_jiffies(1000));

		if (!ret) {
			pr_err("%s: Suspend ICE during an ongoing operation\n",
				 __func__);
			atomic_set(&ice_dev->is_ice_suspended, 0);
			return -ETIME;
		}
	}

	atomic_set(&ice_dev->is_ice_suspended, 1);

	return 0;