Venus updates for v6.2
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE4VWMJJfOPMwrWqMPJbVfyBtwNfIFAmNY0QYACgkQJbVfyBtw NfJ6Vg/+MUVkfDYmTRiAkjJpZhS3WJAQbfubP1RUKebRmuS9nd8H7lz1BM+1vRYn puoCiZT6bxFHb7IVKHdPqucj8AwAlgJfyn2CshlhXCbU8upC+01F4iXlz84jZFqF +xA9/HSCPRRO7Ac58u0BRRbGgaYn6hBRR3UgwMaJDXys58d10pyj+JnlJ3Bbq2sC j63Ph9/IFNBWBSPgK2D/jRmKRL40CMFY4UL2Kas/mkvvtUKtxYhHMt47jApZz8Ik bodeHwbY8A1Q8fg3LcDmYQh4Z5N9ShtOBMzNR1t8MPaxcbt4xwpkQh1cwDOswW/8 hZRSuTBFJbR9Uc2xqKb59AIVd0/OQkDNBeXpyOHxNiJ43/mZ0MCPtIUyaUA6Xm2Z h9G7+8bYuY9HBVlp7YecP7pRaFniSC6gs7FQ7+kasO+ZjEsW//laQwQy+B+9SG8H sc6L6E7TEhJFOTa+h3CL0hrbCxS0ubH+rXJzXXBodkI+0Ni4aQ1K1F1w5S3z2DmV 0+EEnrsUoM1F5m4ONznCyq0O0fs1bdc5ISknRHqV+Kgf0paH8sRB3kczlNz7U/Hr IDwAyATAHsK/erHBdCmyGOofCLziuPPfGhYIbRLcL3jKkYmrIy3/gc12Qzt+W3Ms kY6EDZ3lDvteyRLbYLLSPatK4/Wckdq/TqFrwR6NlhIaX8gg01E= =hwbL -----END PGP SIGNATURE----- Merge tag 'tag-venus-for-v6.2' of git://linuxtv.org/svarbanov/media_tree into media_stage Venus updates for v6.2 * tag 'tag-venus-for-v6.2' of git://linuxtv.org/svarbanov/media_tree: venus: pm_helpers: Fix error check in vcodec_domains_get() venus: firmware: Correct assertion of reset bit on remote processor venus: firmware: Correct non-pix start and end addresses venus: firmware: Correct reset bit MAINTAINERS: Change email for Venus driver MAINTAINERS: Add Vikash as VENUS video driver co-maintainer
This commit is contained in:
commit
997149b8bf
@ -17175,7 +17175,8 @@ F: Documentation/devicetree/bindings/thermal/qcom-tsens.yaml
|
||||
F: drivers/thermal/qcom/
|
||||
|
||||
QUALCOMM VENUS VIDEO ACCELERATOR DRIVER
|
||||
M: Stanimir Varbanov <stanimir.varbanov@linaro.org>
|
||||
M: Stanimir Varbanov <stanimir.k.varbanov@gmail.com>
|
||||
M: Vikash Garodia <quic_vgarodia@quicinc.com>
|
||||
L: linux-media@vger.kernel.org
|
||||
L: linux-arm-msm@vger.kernel.org
|
||||
S: Maintained
|
||||
|
@ -38,8 +38,8 @@ static void venus_reset_cpu(struct venus_core *core)
|
||||
writel(fw_size, wrapper_base + WRAPPER_FW_END_ADDR);
|
||||
writel(0, wrapper_base + WRAPPER_CPA_START_ADDR);
|
||||
writel(fw_size, wrapper_base + WRAPPER_CPA_END_ADDR);
|
||||
writel(fw_size, wrapper_base + WRAPPER_NONPIX_START_ADDR);
|
||||
writel(fw_size, wrapper_base + WRAPPER_NONPIX_END_ADDR);
|
||||
writel(0, wrapper_base + WRAPPER_NONPIX_START_ADDR);
|
||||
writel(0, wrapper_base + WRAPPER_NONPIX_END_ADDR);
|
||||
|
||||
if (IS_V6(core)) {
|
||||
/* Bring XTSS out of reset */
|
||||
@ -68,9 +68,11 @@ int venus_set_hw_state(struct venus_core *core, bool resume)
|
||||
venus_reset_cpu(core);
|
||||
} else {
|
||||
if (IS_V6(core))
|
||||
writel(1, core->wrapper_tz_base + WRAPPER_TZ_XTSS_SW_RESET);
|
||||
writel(WRAPPER_XTSS_SW_RESET_BIT,
|
||||
core->wrapper_tz_base + WRAPPER_TZ_XTSS_SW_RESET);
|
||||
else
|
||||
writel(1, core->wrapper_base + WRAPPER_A9SS_SW_RESET);
|
||||
writel(WRAPPER_A9SS_SW_RESET_BIT,
|
||||
core->wrapper_base + WRAPPER_A9SS_SW_RESET);
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -179,17 +181,15 @@ static int venus_shutdown_no_tz(struct venus_core *core)
|
||||
|
||||
if (IS_V6(core)) {
|
||||
/* Assert the reset to XTSS */
|
||||
reg = readl_relaxed(wrapper_tz_base + WRAPPER_TZ_XTSS_SW_RESET);
|
||||
reg = readl(wrapper_tz_base + WRAPPER_TZ_XTSS_SW_RESET);
|
||||
reg |= WRAPPER_XTSS_SW_RESET_BIT;
|
||||
writel_relaxed(reg, wrapper_tz_base + WRAPPER_TZ_XTSS_SW_RESET);
|
||||
writel(reg, wrapper_tz_base + WRAPPER_TZ_XTSS_SW_RESET);
|
||||
} else {
|
||||
/* Assert the reset to ARM9 */
|
||||
reg = readl_relaxed(wrapper_base + WRAPPER_A9SS_SW_RESET);
|
||||
reg = readl(wrapper_base + WRAPPER_A9SS_SW_RESET);
|
||||
reg |= WRAPPER_A9SS_SW_RESET_BIT;
|
||||
writel_relaxed(reg, wrapper_base + WRAPPER_A9SS_SW_RESET);
|
||||
writel(reg, wrapper_base + WRAPPER_A9SS_SW_RESET);
|
||||
}
|
||||
/* Make sure reset is asserted before the mapping is removed */
|
||||
mb();
|
||||
|
||||
iommu = core->fw.iommu_domain;
|
||||
|
||||
|
@ -869,8 +869,8 @@ static int vcodec_domains_get(struct venus_core *core)
|
||||
for (i = 0; i < res->vcodec_pmdomains_num; i++) {
|
||||
pd = dev_pm_domain_attach_by_name(dev,
|
||||
res->vcodec_pmdomains[i]);
|
||||
if (IS_ERR(pd))
|
||||
return PTR_ERR(pd);
|
||||
if (IS_ERR_OR_NULL(pd))
|
||||
return PTR_ERR(pd) ? : -ENODATA;
|
||||
core->pmdomains[i] = pd;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user