mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
video: rockchip: mpp: Add session index
Change-Id: I1b55227b0692e84ee28a1b229b38a1ad118b1e5b Signed-off-by: Herman Chen <herman.chen@rock-chips.com>
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user