mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 21:33:00 +00:00
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: Stanimir Varbanov <stanimir.varbanov@linaro.org> Reviewed-by: Tomasz Figa <tfiga@chromium.org> Reviewed-by: Alexandre Courbot <acourbot@chromium.org> Tested-by: Alexandre Courbot <acourbot@chromium.org> Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
parent
5f43f90a99
commit
eb72356e7d
@ -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;
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user