Merge "msm: vidc: do not set video state to DEINIT very early"

This commit is contained in:
Linux Build Service Account 2019-04-29 15:11:08 -07:00 committed by Gerrit - the friendly Code Review server
commit aa5bbc972f

View file

@ -1682,7 +1682,7 @@ static int __iface_cmdq_write_relaxed(struct venus_hfi_device *device,
__strict_check(device); __strict_check(device);
if (!__core_in_valid_state(device)) { if (!__core_in_valid_state(device)) {
dprintk(VIDC_DBG, "%s - fw not in init state\n", __func__); dprintk(VIDC_ERR, "%s - fw not in init state\n", __func__);
result = -EINVAL; result = -EINVAL;
goto err_q_null; goto err_q_null;
} }
@ -3408,8 +3408,6 @@ static void __process_sys_error(struct venus_hfi_device *device)
{ {
struct hfi_sfr_struct *vsfr = NULL; struct hfi_sfr_struct *vsfr = NULL;
__set_state(device, VENUS_STATE_DEINIT);
/* Once SYS_ERROR received from HW, it is safe to halt the AXI. /* Once SYS_ERROR received from HW, it is safe to halt the AXI.
* With SYS_ERROR, Venus FW may have crashed and HW might be * With SYS_ERROR, Venus FW may have crashed and HW might be
* active and causing unnecessary transactions. Hence it is * active and causing unnecessary transactions. Hence it is
@ -3656,6 +3654,10 @@ static int __response_handler(struct venus_hfi_device *device)
"Too many packets in message queue to handle at once, deferring read\n"); "Too many packets in message queue to handle at once, deferring read\n");
break; break;
} }
/* do not read packets after sys error packet */
if (info->response_type == HAL_SYS_ERROR)
break;
} }
if (requeue_pm_work && device->res->sw_power_collapsible) { if (requeue_pm_work && device->res->sw_power_collapsible) {