| .. | .. |
|---|
| 114 | 114 | { |
|---|
| 115 | 115 | struct rockchip_drm_fb *rockchip_fb; |
|---|
| 116 | 116 | struct rockchip_gem_object *rk_obj; |
|---|
| 117 | | - struct rockchip_drm_private *private = dev->dev_private; |
|---|
| 118 | | - struct drm_fb_helper *fb_helper = private->fbdev_helper; |
|---|
| 119 | 117 | int ret = 0; |
|---|
| 120 | 118 | int i; |
|---|
| 121 | 119 | |
|---|
| .. | .. |
|---|
| 141 | 139 | rk_obj = to_rockchip_obj(obj[i]); |
|---|
| 142 | 140 | rockchip_fb->dma_addr[i] = rk_obj->dma_addr; |
|---|
| 143 | 141 | rockchip_fb->kvaddr[i] = rk_obj->kvaddr; |
|---|
| 144 | | - private->fbdev_bo = &rk_obj->base; |
|---|
| 145 | | - if (fb_helper && fb_helper->fbdev && rk_obj->kvaddr) |
|---|
| 146 | | - fb_helper->fbdev->screen_base = rk_obj->kvaddr; |
|---|
| 147 | 142 | } |
|---|
| 148 | 143 | #ifndef MODULE |
|---|
| 149 | 144 | } else if (logo) { |
|---|
| .. | .. |
|---|
| 366 | 361 | } |
|---|
| 367 | 362 | } |
|---|
| 368 | 363 | |
|---|
| 364 | +static void drm_atomic_helper_connector_commit(struct drm_device *dev, |
|---|
| 365 | + struct drm_atomic_state *old_state) |
|---|
| 366 | +{ |
|---|
| 367 | + struct drm_connector *connector; |
|---|
| 368 | + struct drm_connector_state *new_conn_state; |
|---|
| 369 | + int i; |
|---|
| 370 | + |
|---|
| 371 | + for_each_new_connector_in_state(old_state, connector, new_conn_state, i) { |
|---|
| 372 | + const struct drm_connector_helper_funcs *funcs; |
|---|
| 373 | + |
|---|
| 374 | + funcs = connector->helper_private; |
|---|
| 375 | + if (!funcs->atomic_commit) |
|---|
| 376 | + continue; |
|---|
| 377 | + |
|---|
| 378 | + funcs->atomic_commit(connector, new_conn_state); |
|---|
| 379 | + } |
|---|
| 380 | +} |
|---|
| 381 | + |
|---|
| 369 | 382 | static void |
|---|
| 370 | 383 | rockchip_atomic_helper_commit_tail_rpm(struct drm_atomic_state *old_state) |
|---|
| 371 | 384 | { |
|---|
| .. | .. |
|---|
| 381 | 394 | DRM_PLANE_COMMIT_ACTIVE_ONLY); |
|---|
| 382 | 395 | |
|---|
| 383 | 396 | rockchip_drm_psr_inhibit_put_state(old_state); |
|---|
| 397 | + |
|---|
| 398 | + drm_atomic_helper_connector_commit(dev, old_state); |
|---|
| 384 | 399 | |
|---|
| 385 | 400 | drm_atomic_helper_commit_hw_done(old_state); |
|---|
| 386 | 401 | |
|---|
| .. | .. |
|---|
| 445 | 460 | |
|---|
| 446 | 461 | rockchip_drm_psr_inhibit_put_state(state); |
|---|
| 447 | 462 | |
|---|
| 463 | + drm_atomic_helper_connector_commit(dev, state); |
|---|
| 464 | + |
|---|
| 448 | 465 | drm_atomic_helper_commit_hw_done(state); |
|---|
| 449 | 466 | |
|---|
| 450 | 467 | rockchip_drm_atomic_helper_wait_for_vblanks(dev, state); |
|---|