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:
Yandong Lin
2023-05-17 14:56:35 +08:00
parent 7b61a88574
commit 4ae0e6cdb3

View File

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