From ffde99e6898fe77f9ac0f304e3a9121a4d0a4f5b Mon Sep 17 00:00:00 2001 From: Herman Chen Date: Wed, 17 Mar 2021 17:15:08 +0800 Subject: [PATCH] video: rockchip: mpp: Add session index Change-Id: I1b55227b0692e84ee28a1b229b38a1ad118b1e5b Signed-off-by: Herman Chen --- drivers/video/rockchip/mpp/mpp_common.c | 11 +++++++---- drivers/video/rockchip/mpp/mpp_common.h | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/video/rockchip/mpp/mpp_common.c b/drivers/video/rockchip/mpp/mpp_common.c index e9d51f42a398..2853d5ce91c0 100644 --- a/drivers/video/rockchip/mpp/mpp_common.c +++ b/drivers/video/rockchip/mpp/mpp_common.c @@ -674,14 +674,15 @@ static int mpp_wait_result(struct mpp_session *session, } } else { atomic_inc(&task->abort_request); - mpp_err("timeout, pid %d session %p count %d cur_task %p index %d.\n", - session->pid, session, + mpp_err("timeout, pid %d session %p:%d count %d cur_task %p index %d.\n", + session->pid, session, session->index, atomic_read(&session->task_count), task, task->task_index); /* if twice and return timeout, otherwise, re-wait */ if (atomic_read(&task->abort_request) > 1) { - mpp_err("session %p, task %p index %d abort wait twice!\n", - session, task, task->task_index); + mpp_err("session %p:%d, task %p index %d abort wait twice!\n", + session, session->index, + task, task->task_index); ret = -ETIMEDOUT; } else { return mpp_wait_result(session, msgs); @@ -937,6 +938,7 @@ static int mpp_process_request(struct mpp_session *session, session->dma = mpp_dma_session_create(mpp->dev); session->dma->max_buffers = mpp->session_max_buffers; session->mpp = mpp; + session->index = atomic_fetch_inc(&mpp->session_index); if (mpp->dev_ops->init_session) { ret = mpp->dev_ops->init_session(session); if (ret) @@ -1643,6 +1645,7 @@ int mpp_dev_probe(struct mpp_dev *mpp, mpp->dev_ops = mpp->var->dev_ops; atomic_set(&mpp->reset_request, 0); + atomic_set(&mpp->session_index, 0); atomic_set(&mpp->task_count, 0); atomic_set(&mpp->task_index, 0); diff --git a/drivers/video/rockchip/mpp/mpp_common.h b/drivers/video/rockchip/mpp/mpp_common.h index 121f2d9e7af3..1d93a59a4b54 100644 --- a/drivers/video/rockchip/mpp/mpp_common.h +++ b/drivers/video/rockchip/mpp/mpp_common.h @@ -285,6 +285,7 @@ struct mpp_dev { struct mpp_iommu_info *iommu_info; atomic_t reset_request; + atomic_t session_index; atomic_t task_count; atomic_t task_index; /* task for work queue */ @@ -304,6 +305,7 @@ struct mpp_task; struct mpp_session { enum MPP_DEVICE_TYPE device_type; + u32 index; /* the session related device private data */ struct mpp_service *srv; struct mpp_dev *mpp;