[v2,07/29] venus: hfi_venus: add halt AXI support for Venus 4xx

Message ID 20180515075859.17217-8-stanimir.varbanov@linaro.org
State New
Headers show
Series
  • [v2,01/29] venus: hfi_msgs: correct pointer increment
Related show

Commit Message

Stanimir Varbanov May 15, 2018, 7:58 a.m.
Add AXI halt support for version 4xx by using venus wrapper
registers.

Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>

---
 drivers/media/platform/qcom/venus/hfi_venus.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

-- 
2.14.1

Comments

Stanimir Varbanov May 21, 2018, 12:17 p.m. | #1
Hi Tomasz,

On 05/18/2018 05:23 PM, Tomasz Figa wrote:
> On Tue, May 15, 2018 at 5:12 PM Stanimir Varbanov <

> stanimir.varbanov@linaro.org> wrote:

> 

>> Add AXI halt support for version 4xx by using venus wrapper

>> registers.

> 

>> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>

>> ---

>>   drivers/media/platform/qcom/venus/hfi_venus.c | 17 +++++++++++++++++

>>   1 file changed, 17 insertions(+)

> 

>> diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c

> b/drivers/media/platform/qcom/venus/hfi_venus.c

>> index 734ce11b0ed0..53546174aab8 100644

>> --- a/drivers/media/platform/qcom/venus/hfi_venus.c

>> +++ b/drivers/media/platform/qcom/venus/hfi_venus.c

>> @@ -532,6 +532,23 @@ static int venus_halt_axi(struct venus_hfi_device

> *hdev)

>>          u32 val;

>>          int ret;

> 

>> +       if (hdev->core->res->hfi_version == HFI_VERSION_4XX) {

>> +               val = venus_readl(hdev, WRAPPER_CPU_AXI_HALT);

>> +               val |= BIT(16);

> 

> Can we have the bit defined?

> 

>> +               venus_writel(hdev, WRAPPER_CPU_AXI_HALT, val);

>> +

>> +               ret = readl_poll_timeout(base +

> WRAPPER_CPU_AXI_HALT_STATUS,

>> +                                        val, val & BIT(24),

> 

> Ditto.


Sure will add defines.

-- 
regards,
Stan

Patch

diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/platform/qcom/venus/hfi_venus.c
index 734ce11b0ed0..53546174aab8 100644
--- a/drivers/media/platform/qcom/venus/hfi_venus.c
+++ b/drivers/media/platform/qcom/venus/hfi_venus.c
@@ -532,6 +532,23 @@  static int venus_halt_axi(struct venus_hfi_device *hdev)
 	u32 val;
 	int ret;
 
+	if (hdev->core->res->hfi_version == HFI_VERSION_4XX) {
+		val = venus_readl(hdev, WRAPPER_CPU_AXI_HALT);
+		val |= BIT(16);
+		venus_writel(hdev, WRAPPER_CPU_AXI_HALT, val);
+
+		ret = readl_poll_timeout(base + WRAPPER_CPU_AXI_HALT_STATUS,
+					 val, val & BIT(24),
+					 POLL_INTERVAL_US,
+					 VBIF_AXI_HALT_ACK_TIMEOUT_US);
+		if (ret) {
+			dev_err(dev, "AXI bus port halt timeout\n");
+			return ret;
+		}
+
+		return 0;
+	}
+
 	/* Halt AXI and AXI IMEM VBIF Access */
 	val = venus_readl(hdev, VBIF_AXI_HALT_CTRL0);
 	val |= VBIF_AXI_HALT_CTRL0_HALT_REQ;