Skip to content

Commit

Permalink
media: venus: hfi_venus: add suspend functionality for Venus 4xx
Browse files Browse the repository at this point in the history
This adds suspend (power collapse) functionality by reusing
the suspend function for Venus 3xx and also enables idle indicator
property for Venus 4xx (where it is disabled by default).

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>
  • Loading branch information
Stanimir Varbanov authored and Mauro Carvalho Chehab committed Jul 25, 2018
1 parent 4dde81d commit 17cd3d1
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion drivers/media/platform/qcom/venus/hfi_venus.c
Original file line number Diff line number Diff line change
Expand Up @@ -879,6 +879,14 @@ static int venus_sys_set_default_properties(struct venus_hfi_device *hdev)
if (ret)
dev_warn(dev, "setting fw debug msg ON failed (%d)\n", ret);

/*
* Idle indicator is disabled by default on some 4xx firmware versions,
* enable it explicitly in order to make suspend functional by checking
* WFI (wait-for-interrupt) bit.
*/
if (IS_V4(hdev->core))
venus_sys_idle_indicator = true;

ret = venus_sys_set_idle_message(hdev, venus_sys_idle_indicator);
if (ret)
dev_warn(dev, "setting idle response ON failed (%d)\n", ret);
Expand Down Expand Up @@ -1533,7 +1541,7 @@ static int venus_suspend_3xx(struct venus_core *core)

static int venus_suspend(struct venus_core *core)
{
if (core->res->hfi_version == HFI_VERSION_3XX)
if (IS_V3(core) || IS_V4(core))
return venus_suspend_3xx(core);

return venus_suspend_1xx(core);
Expand Down

0 comments on commit 17cd3d1

Please sign in to comment.