|
@@ -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);
|
|
@@ -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);
|