From 927d34f7ac75e7a6a6a3e6d3ba7ad47da8cdbf17 Mon Sep 17 00:00:00 2001 From: Yu SI Date: Wed, 3 Jun 2020 15:31:06 -0700 Subject: [PATCH] msm: cvp: poll on cvp lpi status during power down polling on cvp lpi status check during power down Change-Id: I21129746cd4841af7e7a577946c543146bc9d6fc Signed-off-by: Yu SI --- drivers/media/platform/msm/cvp/cvp_hfi.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/msm/cvp/cvp_hfi.c b/drivers/media/platform/msm/cvp/cvp_hfi.c index 27a317084b5b..80aba17e1c4c 100644 --- a/drivers/media/platform/msm/cvp/cvp_hfi.c +++ b/drivers/media/platform/msm/cvp/cvp_hfi.c @@ -4132,7 +4132,23 @@ static void power_off_iris2(struct iris_hfi_device *device) __write_register(device, CVP_WRAPPER_DEBUG_BRIDGE_LPI_CONTROL, 0x7); - usleep_range(50, 100); + reg_status = 0; + count = 0; + while ((reg_status != 0x7) && count < max_count) { + lpi_status = __read_register(device, + CVP_WRAPPER_DEBUG_BRIDGE_LPI_STATUS); + reg_status = lpi_status & 0x7; + /* Wait for debug bridge lpi status to be set */ + usleep_range(50, 100); + count++; + } + dprintk(CVP_PWR, + "DBLP Set : lpi_status %d reg_status %d (count %d)\n", + lpi_status, reg_status, count); + if (count == max_count) { + dprintk(CVP_WARN, + "DBLP Set: status %x %x\n", reg_status, lpi_status); + } /* HPG 6.1.2 Step 4, debug bridge to lpi release */ __write_register(device,