|
@@ -4144,6 +4144,7 @@ static inline int __resume(struct iris_hfi_device *device)
|
|
{
|
|
{
|
|
int rc = 0;
|
|
int rc = 0;
|
|
u32 flags = 0, reg_gdsc, reg_cbcr;
|
|
u32 flags = 0, reg_gdsc, reg_cbcr;
|
|
|
|
+ struct msm_cvp_core *core;
|
|
|
|
|
|
if (!device) {
|
|
if (!device) {
|
|
dprintk(CVP_ERR, "Invalid params: %pK\n", device);
|
|
dprintk(CVP_ERR, "Invalid params: %pK\n", device);
|
|
@@ -4155,6 +4156,8 @@ static inline int __resume(struct iris_hfi_device *device)
|
|
return -EINVAL;
|
|
return -EINVAL;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ core = list_first_entry(&cvp_driver->cores, struct msm_cvp_core, list);
|
|
|
|
+
|
|
dprintk(CVP_PWR, "Resuming from power collapse\n");
|
|
dprintk(CVP_PWR, "Resuming from power collapse\n");
|
|
rc = __iris_power_on(device);
|
|
rc = __iris_power_on(device);
|
|
if (rc) {
|
|
if (rc) {
|
|
@@ -4181,6 +4184,7 @@ static inline int __resume(struct iris_hfi_device *device)
|
|
rc = __boot_firmware(device);
|
|
rc = __boot_firmware(device);
|
|
if (rc) {
|
|
if (rc) {
|
|
dprintk(CVP_ERR, "Failed to reset cvp core\n");
|
|
dprintk(CVP_ERR, "Failed to reset cvp core\n");
|
|
|
|
+ msm_cvp_trigger_ssr(core, SSR_ERR_FATAL);
|
|
goto err_reset_core;
|
|
goto err_reset_core;
|
|
}
|
|
}
|
|
|
|
|