mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
drm/rockchip: Introduce connector commit
In order to achieve seamless HDR switching, avmute must be unmuted after VOP atomic flush. So we introduce connector commit. Signed-off-by: Algea Cao <algea.cao@rock-chips.com> Change-Id: Ibf11da67c4388f50d8fa34aa5b4902a45ef89f6f
This commit is contained in:
@@ -172,6 +172,24 @@ static int rockchip_drm_bandwidth_atomic_check(struct drm_device *dev,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void drm_atomic_helper_connector_commit(struct drm_device *dev,
|
||||||
|
struct drm_atomic_state *old_state)
|
||||||
|
{
|
||||||
|
struct drm_connector *connector;
|
||||||
|
struct drm_connector_state *new_conn_state;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for_each_new_connector_in_state(old_state, connector, new_conn_state, i) {
|
||||||
|
const struct drm_connector_helper_funcs *funcs;
|
||||||
|
|
||||||
|
funcs = connector->helper_private;
|
||||||
|
if (!funcs->atomic_commit)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
funcs->atomic_commit(connector, new_conn_state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rockchip_drm_atomic_helper_commit_tail_rpm - commit atomic update to hardware
|
* rockchip_drm_atomic_helper_commit_tail_rpm - commit atomic update to hardware
|
||||||
* @old_state: new modeset state to be committed
|
* @old_state: new modeset state to be committed
|
||||||
@@ -202,6 +220,8 @@ static void rockchip_drm_atomic_helper_commit_tail_rpm(struct drm_atomic_state *
|
|||||||
|
|
||||||
drm_atomic_helper_fake_vblank(old_state);
|
drm_atomic_helper_fake_vblank(old_state);
|
||||||
|
|
||||||
|
drm_atomic_helper_connector_commit(dev, old_state);
|
||||||
|
|
||||||
drm_atomic_helper_commit_hw_done(old_state);
|
drm_atomic_helper_commit_hw_done(old_state);
|
||||||
|
|
||||||
drm_atomic_helper_wait_for_vblanks(dev, old_state);
|
drm_atomic_helper_wait_for_vblanks(dev, old_state);
|
||||||
|
|||||||
Reference in New Issue
Block a user