Skip to content

Commit 773d508

Browse files
Zheng Yangrkhuangtao
authored andcommitted
drm: introduce atomic_begin for connector
atomic_begin is used to prepare for update flush. Change-Id: I1d3a2afaea4022c065bda2b4c0746464cc0c1303 Signed-off-by: Zheng Yang <zhengyang@rock-chips.com>
1 parent d534e6c commit 773d508

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

drivers/gpu/drm/drm_atomic_helper.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1558,6 +1558,26 @@ void drm_atomic_helper_commit_planes(struct drm_device *dev,
15581558
struct drm_connector_state *old_conn_state;
15591559
int i;
15601560

1561+
for_each_connector_in_state(old_state, connector, old_conn_state, i) {
1562+
const struct drm_connector_helper_funcs *funcs;
1563+
1564+
if (!connector->state->crtc)
1565+
continue;
1566+
1567+
if (!connector->state->crtc->state->active)
1568+
continue;
1569+
1570+
funcs = connector->helper_private;
1571+
1572+
if (!funcs || !funcs->atomic_begin)
1573+
continue;
1574+
1575+
DRM_DEBUG_ATOMIC("flush beginning [CONNECTOR:%d:%s]\n",
1576+
connector->base.id, connector->name);
1577+
1578+
funcs->atomic_begin(connector, old_conn_state);
1579+
}
1580+
15611581
for_each_crtc_in_state(old_state, crtc, old_crtc_state, i) {
15621582
const struct drm_crtc_helper_funcs *funcs;
15631583

include/drm/drm_crtc_helper.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ struct drm_connector_helper_funcs {
185185
struct drm_encoder *(*best_encoder)(struct drm_connector *connector);
186186
struct drm_encoder *(*atomic_best_encoder)(struct drm_connector *connector,
187187
struct drm_connector_state *connector_state);
188+
void (*atomic_begin)(struct drm_connector *connector,
189+
struct drm_connector_state *conn_state);
188190
void (*atomic_flush)(struct drm_connector *connector,
189191
struct drm_connector_state *conn_state);
190192
};

0 commit comments

Comments
 (0)