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

Commit 5376c05a authored by Priyanka Gujjula's avatar Priyanka Gujjula
Browse files

msm: vidc: Fix for clock reset control failure



Reset control has failed during power collapse.
This change will keep the context during video
power collapse.

Change-Id: Iaa28d03fba84dc2d34292f08155cbe772d854461
Signed-off-by: default avatarPriyanka Gujjula <pgujjula@codeaurora.org>
parent a0772087
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -3877,8 +3877,13 @@ static int __handle_reset_clk(struct msm_vidc_platform_resources *res,

	for (i = 0; i < rst_set->count; i++) {
		rst = rst_set->reset_tbl[i].rst;
		dprintk(VIDC_DBG, "%s reset_state name = %s state %d\n",
			__func__, rst_set->reset_tbl[i].name, state);
		switch (state) {
		case INIT:
			if (rst)
				continue;

			rst = devm_reset_control_get(&res->pdev->dev,
				rst_set->reset_tbl[i].name);
			if (IS_ERR(rst))
@@ -3887,9 +3892,15 @@ static int __handle_reset_clk(struct msm_vidc_platform_resources *res,
			rst_set->reset_tbl[i].rst = rst;
			break;
		case ASSERT:
			if (!rst)
				goto no_init;

			rc = reset_control_assert(rst);
			break;
		case DEASSERT:
			if (!rst)
				goto no_init;

			rc = reset_control_deassert(rst);
			break;
		default:
@@ -3900,6 +3911,10 @@ static int __handle_reset_clk(struct msm_vidc_platform_resources *res,
			return rc;
	}
	return 0;
no_init:
	dprintk(VIDC_ERR, "%s reset_state name = %s failed state %d\n",
		__func__, rst_set->reset_tbl[i].name, state);
	return PTR_ERR(rst);
}

static inline void __disable_unprepare_clks(struct venus_hfi_device *device)