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

Commit eddcb311 authored by Zhiqiang Tu's avatar Zhiqiang Tu Committed by Gerrit - the friendly Code Review server
Browse files

clk: msm: Fix signal interrupt issue for virtual clock



Virtual clock operations returned error when received signal.
Uninterruptible flag is added in receiving response to avoid
being interrupted by signal.

Change-Id: Id3b5b56432751ec5b49c36a028444c0360fe811f
Signed-off-by: default avatarZhiqiang Tu <ztu@codeaurora.org>
parent 785f45b6
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -77,7 +77,7 @@ static int virtclk_front_get_id(struct clk *clk)
	}

	ret = habmm_socket_recv(handle, &rsp, &rsp_size,
			UINT_MAX, 0);
			UINT_MAX, HABMM_SOCKET_RECV_FLAGS_UNINTERRUPTIBLE);
	if (ret) {
		pr_err("%s: habmm socket receive failed (%d)\n", clk->dbg_name,
				ret);
@@ -132,7 +132,8 @@ static int virtclk_front_prepare(struct clk *clk)
		goto err_out;
	}

	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX, 0);
	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX,
			HABMM_SOCKET_RECV_FLAGS_UNINTERRUPTIBLE);
	if (ret) {
		pr_err("%s: habmm socket receive failed (%d)\n", clk->dbg_name,
				ret);
@@ -185,7 +186,8 @@ static void virtclk_front_unprepare(struct clk *clk)
		goto err_out;
	}

	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX, 0);
	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX,
			HABMM_SOCKET_RECV_FLAGS_UNINTERRUPTIBLE);
	if (ret) {
		pr_err("%s: habmm socket receive failed (%d)\n", clk->dbg_name,
				ret);
@@ -236,7 +238,8 @@ static int virtclk_front_reset(struct clk *clk, enum clk_reset_action action)
		goto err_out;
	}

	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX, 0);
	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX,
			HABMM_SOCKET_RECV_FLAGS_UNINTERRUPTIBLE);
	if (ret) {
		pr_err("%s: habmm socket receive failed (%d)\n", clk->dbg_name,
				ret);
@@ -290,7 +293,8 @@ static int virtclk_front_set_rate(struct clk *clk, unsigned long rate)
		goto err_out;
	}

	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX, 0);
	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX,
			HABMM_SOCKET_RECV_FLAGS_UNINTERRUPTIBLE);
	if (ret) {
		pr_err("%s: habmm socket receive failed (%d)\n", clk->dbg_name,
				ret);
@@ -362,7 +366,8 @@ static unsigned long virtclk_front_get_rate(struct clk *clk)
		goto err_out;
	}

	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX, 0);
	ret = habmm_socket_recv(handle, &rsp, &rsp_size, UINT_MAX,
			HABMM_SOCKET_RECV_FLAGS_UNINTERRUPTIBLE);
	if (ret) {
		ret = 0;
		pr_err("%s: habmm socket receive failed (%d)\n", clk->dbg_name,