All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
To: stanimir.varbanov@linaro.org, agross@kernel.org,
	bjorn.andersson@linaro.org, mchehab@kernel.org,
	linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org
Cc: bryan.odonoghue@linaro.org, dikshita@codeaurora.org,
	jonathan@marek.ca, vgarodia@codeaurora.org
Subject: [PATCH 13/25] media: venus: hfi: Add a 6xx boot logic
Date: Mon, 22 Feb 2021 16:02:48 +0000	[thread overview]
Message-ID: <20210222160300.1811121-14-bryan.odonoghue@linaro.org> (raw)
In-Reply-To: <20210222160300.1811121-1-bryan.odonoghue@linaro.org>

From: Dikshita Agarwal <dikshita@codeaurora.org>

This patch adds a 6xx specific boot logic. The goal is to share as much
code as possible between 3xx, 4xx and 6xx silicon.

We need to do a different write to WRAPPER_INTR_MASK with an additional
write to CPU_CS_H2XSOFTINTEN_V6 and CPU_CS_X2RPMh_V6.

The other writes are the same for 6xx and non-6xx silicon albeit at
different absolute relative locations to the base of the venus address
space.

Signed-off-by: Dikshita Agarwal <dikshita@codeaurora.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
 drivers/media/platform/qcom/venus/hfi_venus.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/media/platform/qcom/venus/hfi_venus.c b/drivers/media/platform/qcom/venus/hfi_venus.c
index f95cdd3d530c..5f9c8aa84cd0 100644
--- a/drivers/media/platform/qcom/venus/hfi_venus.c
+++ b/drivers/media/platform/qcom/venus/hfi_venus.c
@@ -442,14 +442,21 @@ static int venus_boot_core(struct venus_hfi_device *hdev)
 {
 	struct device *dev = hdev->core->dev;
 	static const unsigned int max_tries = 100;
-	u32 ctrl_status = 0;
+	u32 ctrl_status = 0, mask_val;
 	unsigned int count = 0;
 	void __iomem *cpu_cs_base = hdev->core->cpu_cs_base;
 	void __iomem *wrapper_base = hdev->core->wrapper_base;
 	int ret = 0;
 
 	writel(BIT(VIDC_CTRL_INIT_CTRL_SHIFT), cpu_cs_base + VIDC_CTRL_INIT);
-	writel(WRAPPER_INTR_MASK_A2HVCODEC_MASK, wrapper_base + WRAPPER_INTR_MASK);
+	if (IS_V6(hdev->core)) {
+		mask_val = readl(wrapper_base + WRAPPER_INTR_MASK);
+		mask_val &= ~(WRAPPER_INTR_MASK_A2HWD_BASK_V6 |
+			      WRAPPER_INTR_MASK_A2HCPU_MASK);
+	} else {
+		mask_val = WRAPPER_INTR_MASK_A2HVCODEC_MASK;
+	}
+	writel(mask_val, wrapper_base + WRAPPER_INTR_MASK);
 	writel(1, cpu_cs_base + CPU_CS_SCIACMDARG3);
 
 	while (!ctrl_status && count < max_tries) {
@@ -467,6 +474,9 @@ static int venus_boot_core(struct venus_hfi_device *hdev)
 	if (count >= max_tries)
 		ret = -ETIMEDOUT;
 
+	if (IS_V6(hdev->core))
+		writel(0x0, cpu_cs_base + CPU_CS_X2RPMH_V6);
+
 	return ret;
 }
 
-- 
2.29.2


  parent reply	other threads:[~2021-02-22 16:05 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-22 16:02 [PATCH 00/25] media: venus: Enable 6xx support Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 01/25] media: venus: Update v6 buffer descriptors Bryan O'Donoghue
2021-02-23 13:11   ` Stanimir Varbanov
2021-02-22 16:02 ` [PATCH 02/25] media: venus: core,pm: Add handling for resets Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 03/25] media: venus: core: add sm8250 DT compatible and resource data Bryan O'Donoghue
2021-02-23 13:48   ` Stanimir Varbanov
2021-02-22 16:02 ` [PATCH 04/25] media: venus: core,pm: Vote for min clk freq during venus boot Bryan O'Donoghue
2021-02-23 13:25   ` Stanimir Varbanov
2021-03-06 15:01     ` Stanimir Varbanov
2021-03-06 16:48       ` Bryan O'Donoghue
2021-03-07 10:44         ` Stanimir Varbanov
2021-03-10 17:33       ` Bryan O'Donoghue
2021-03-10 22:02         ` Stanimir Varbanov
2021-02-22 16:02 ` [PATCH 05/25] media: venus: core: Add io base variables for each block Bryan O'Donoghue
2021-02-23 13:28   ` Stanimir Varbanov
2021-02-22 16:02 ` [PATCH 06/25] media: venus: hfi,pm,firmware: Convert to block relative addressing Bryan O'Donoghue
2021-02-23 13:31   ` Stanimir Varbanov
2021-02-22 16:02 ` [PATCH 07/25] media: venus: hfi: Define block offsets for V6 hardware Bryan O'Donoghue
2021-02-23 13:32   ` Stanimir Varbanov
2021-02-22 16:02 ` [PATCH 08/25] media: venus: hfi: Define additional 6xx registers Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 09/25] media: venus: core: Add differentiator IS_V6(core) Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 10/25] media: venus: core: Add an io base for TZ wrapper regs Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 11/25] media: venus: core: Add an io base for AON regs Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 12/25] media: venus: core: Hook to V6 base registers when appropriate Bryan O'Donoghue
2021-02-22 16:02 ` Bryan O'Donoghue [this message]
2021-02-22 16:02 ` [PATCH 14/25] media: venus: hfi: Add 6xx interrupt support Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 15/25] media: venus: hfi: Read WRAPPER_TZ_CPU_STATUS_V6 on 6xx Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 16/25] media: venus: hfi, vdec: v6 Add IS_V6() to existing IS_V4() if locations Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 17/25] media: venus: pm: Hook 6xx pm ops into 4xx pm ops Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 18/25] media: venus: hfi: Add 6xx AXI halt logic Bryan O'Donoghue
2021-02-25  7:29   ` Stanimir Varbanov
2021-02-22 16:02 ` [PATCH 19/25] media: venus: pm: Toggle 6xx wrapper power in vcodec_control Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 20/25] media: venus: firmware: Do not toggle WRAPPER_A9SS_SW_RESET on 6xx Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 21/25] media: venus: helpers: Add internal buffer list for v6 Bryan O'Donoghue
2021-02-25  7:57   ` Stanimir Varbanov
2021-02-22 16:02 ` [PATCH 22/25] media: venus: helpers, hfi, vdec: Set actual plane constraints to FW Bryan O'Donoghue
2021-02-25  8:00   ` Stanimir Varbanov
2021-03-12  2:58     ` Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 23/25] media: venus: hfi: Increase plat_buf_v6 o/p buffer count Bryan O'Donoghue
2021-02-22 16:02 ` [PATCH 24/25] media: venus: helper: Decide work mode Bryan O'Donoghue
2021-02-22 16:03 ` [PATCH 25/25] media: venus: vdec: Fix decoder cmd STOP issue Bryan O'Donoghue
2021-02-26 10:25   ` Stanimir Varbanov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210222160300.1811121-14-bryan.odonoghue@linaro.org \
    --to=bryan.odonoghue@linaro.org \
    --cc=agross@kernel.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=dikshita@codeaurora.org \
    --cc=jonathan@marek.ca \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=stanimir.varbanov@linaro.org \
    --cc=vgarodia@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.