Merge "msm: sde: Wait for Rotator HW complete if stop streaming timeout"
This commit is contained in:
commit
a9dd7b68c7
3 changed files with 9 additions and 2 deletions
|
@ -1975,7 +1975,7 @@ static void sde_rotator_cancel_request(struct sde_rot_mgr *mgr,
|
|||
devm_kfree(&mgr->pdev->dev, req);
|
||||
}
|
||||
|
||||
static void sde_rotator_cancel_all_requests(struct sde_rot_mgr *mgr,
|
||||
void sde_rotator_cancel_all_requests(struct sde_rot_mgr *mgr,
|
||||
struct sde_rot_file_private *private)
|
||||
{
|
||||
struct sde_rot_entry_container *req, *req_next;
|
||||
|
|
|
@ -428,6 +428,9 @@ int sde_rotator_validate_request(struct sde_rot_mgr *rot_dev,
|
|||
|
||||
int sde_rotator_clk_ctrl(struct sde_rot_mgr *mgr, int enable);
|
||||
|
||||
void sde_rotator_cancel_all_requests(struct sde_rot_mgr *mgr,
|
||||
struct sde_rot_file_private *private);
|
||||
|
||||
static inline void sde_rot_mgr_lock(struct sde_rot_mgr *mgr)
|
||||
{
|
||||
mutex_lock(&mgr->lock);
|
||||
|
|
|
@ -457,11 +457,15 @@ static void sde_rotator_stop_streaming(struct vb2_queue *q)
|
|||
(atomic_read(&ctx->command_pending) == 0),
|
||||
msecs_to_jiffies(rot_dev->streamoff_timeout));
|
||||
mutex_lock(q->lock);
|
||||
if (!ret)
|
||||
if (!ret) {
|
||||
SDEDEV_ERR(rot_dev->dev,
|
||||
"timeout to stream off s:%d t:%d p:%d\n",
|
||||
ctx->session_id, q->type,
|
||||
atomic_read(&ctx->command_pending));
|
||||
sde_rot_mgr_lock(rot_dev->mgr);
|
||||
sde_rotator_cancel_all_requests(rot_dev->mgr, ctx->private);
|
||||
sde_rot_mgr_unlock(rot_dev->mgr);
|
||||
}
|
||||
|
||||
sde_rotator_return_all_buffers(q, VB2_BUF_STATE_ERROR);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue