Merge "msm: vidc: pm qos stability fixes for video driver"

This commit is contained in:
Linux Build Service Account 2016-07-13 15:44:50 -07:00 committed by Gerrit - the friendly Code Review server
commit a4e4aba7e4

View file

@ -2218,9 +2218,14 @@ static int venus_hfi_core_init(void *device)
if (rc || __iface_cmdq_write(dev, &version_pkt)) if (rc || __iface_cmdq_write(dev, &version_pkt))
dprintk(VIDC_WARN, "Failed to send image version pkt to f/w\n"); dprintk(VIDC_WARN, "Failed to send image version pkt to f/w\n");
if (dev->res->pm_qos_latency_us) if (dev->res->pm_qos_latency_us) {
#ifdef CONFIG_SMP
dev->qos.type = PM_QOS_REQ_AFFINE_IRQ;
dev->qos.irq = dev->hal_data->irq;
#endif
pm_qos_add_request(&dev->qos, PM_QOS_CPU_DMA_LATENCY, pm_qos_add_request(&dev->qos, PM_QOS_CPU_DMA_LATENCY,
dev->res->pm_qos_latency_us); dev->res->pm_qos_latency_us);
}
mutex_unlock(&dev->lock); mutex_unlock(&dev->lock);
return rc; return rc;
@ -2244,7 +2249,8 @@ static int venus_hfi_core_release(void *dev)
mutex_lock(&device->lock); mutex_lock(&device->lock);
if (device->res->pm_qos_latency_us) if (device->res->pm_qos_latency_us &&
pm_qos_request_active(&device->qos))
pm_qos_remove_request(&device->qos); pm_qos_remove_request(&device->qos);
__set_state(device, VENUS_STATE_DEINIT); __set_state(device, VENUS_STATE_DEINIT);
__unload_fw(device); __unload_fw(device);
@ -4208,7 +4214,8 @@ static inline int __suspend(struct venus_hfi_device *device)
dprintk(VIDC_DBG, "Entering power collapse\n"); dprintk(VIDC_DBG, "Entering power collapse\n");
if (device->res->pm_qos_latency_us) if (device->res->pm_qos_latency_us &&
pm_qos_request_active(&device->qos))
pm_qos_remove_request(&device->qos); pm_qos_remove_request(&device->qos);
rc = __tzbsp_set_video_state(TZBSP_VIDEO_STATE_SUSPEND); rc = __tzbsp_set_video_state(TZBSP_VIDEO_STATE_SUSPEND);
@ -4270,9 +4277,14 @@ static inline int __resume(struct venus_hfi_device *device)
*/ */
__set_threshold_registers(device); __set_threshold_registers(device);
if (device->res->pm_qos_latency_us) if (device->res->pm_qos_latency_us) {
#ifdef CONFIG_SMP
device->qos.type = PM_QOS_REQ_AFFINE_IRQ;
device->qos.irq = device->hal_data->irq;
#endif
pm_qos_add_request(&device->qos, PM_QOS_CPU_DMA_LATENCY, pm_qos_add_request(&device->qos, PM_QOS_CPU_DMA_LATENCY,
device->res->pm_qos_latency_us); device->res->pm_qos_latency_us);
}
dprintk(VIDC_INFO, "Resumed from power collapse\n"); dprintk(VIDC_INFO, "Resumed from power collapse\n");
exit: exit:
device->skip_pc_count = 0; device->skip_pc_count = 0;