video: rockchip: mpp: Add session index

Change-Id: I1b55227b0692e84ee28a1b229b38a1ad118b1e5b
Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
Herman Chen
2021-03-17 17:15:08 +08:00
committed by Tao Huang
parent e2d8ad5075
commit ffde99e689
2 changed files with 9 additions and 4 deletions

View File

@@ -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);

View File

@@ -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;