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

Commit eb72356e authored by Stanimir Varbanov's avatar Stanimir Varbanov Committed by Mauro Carvalho Chehab
Browse files

media: venus: hfi_venus: add halt AXI support for Venus 4xx



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

Signed-off-by: default avatarStanimir Varbanov <stanimir.varbanov@linaro.org>
Reviewed-by: default avatarTomasz Figa <tfiga@chromium.org>
Reviewed-by: default avatarAlexandre Courbot <acourbot@chromium.org>
Tested-by: default avatarAlexandre Courbot <acourbot@chromium.org>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 5f43f90a
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -532,6 +532,24 @@ static int venus_halt_axi(struct venus_hfi_device *hdev)
	u32 val;
	int ret;

	if (IS_V4(hdev->core)) {
		val = venus_readl(hdev, WRAPPER_CPU_AXI_HALT);
		val |= WRAPPER_CPU_AXI_HALT_HALT;
		venus_writel(hdev, WRAPPER_CPU_AXI_HALT, val);

		ret = readl_poll_timeout(base + WRAPPER_CPU_AXI_HALT_STATUS,
					 val,
					 val & WRAPPER_CPU_AXI_HALT_STATUS_IDLE,
					 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;
+2 −0
Original line number Diff line number Diff line
@@ -104,7 +104,9 @@

#define WRAPPER_CPU_CLOCK_CONFIG		(WRAPPER_BASE + 0x2000)
#define WRAPPER_CPU_AXI_HALT			(WRAPPER_BASE + 0x2008)
#define WRAPPER_CPU_AXI_HALT_HALT		BIT(16)
#define WRAPPER_CPU_AXI_HALT_STATUS		(WRAPPER_BASE + 0x200c)
#define WRAPPER_CPU_AXI_HALT_STATUS_IDLE	BIT(24)

#define WRAPPER_CPU_CGC_DIS			(WRAPPER_BASE + 0x2010)
#define WRAPPER_CPU_STATUS			(WRAPPER_BASE + 0x2014)