mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-06 19:08:57 +09:00
video: rockchip: mpp: fix share reset_group do not take effect
Some device share one pd, but reset control are different. It should share a reset_group to ensure that one device can not do reset while anothor is running. Signed-off-by: Yandong Lin <yandong.lin@rock-chips.com> Change-Id: I53527a053d0835085522396e2d9ee649d78325a5
This commit is contained in:
@@ -715,10 +715,6 @@ mpp_reset_control_get(struct mpp_dev *mpp, enum MPP_RESET_TYPE type, const char
|
||||
group->resets[type] = rst;
|
||||
group->queue = mpp->queue;
|
||||
}
|
||||
/* if reset not in the same queue, it means different device
|
||||
* may reset in the same time, then rw_sem_on should set true.
|
||||
*/
|
||||
group->rw_sem_on |= (group->queue != mpp->queue) ? true : false;
|
||||
dev_info(mpp->dev, "reset_group->rw_sem_on=%d\n", group->rw_sem_on);
|
||||
up_write(&group->rw_sem);
|
||||
|
||||
@@ -1005,6 +1001,10 @@ static int mpp_attach_service(struct mpp_dev *mpp, struct device *dev)
|
||||
return -ENODEV;
|
||||
} else {
|
||||
mpp->reset_group = mpp->srv->reset_groups[reset_group_node];
|
||||
if (!mpp->reset_group->queue)
|
||||
mpp->reset_group->queue = queue;
|
||||
if (mpp->reset_group->queue != mpp->queue)
|
||||
mpp->reset_group->rw_sem_on = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user