hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
....@@ -114,8 +114,6 @@
114114 {
115115 struct rockchip_drm_fb *rockchip_fb;
116116 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;
119117 int ret = 0;
120118 int i;
121119
....@@ -141,9 +139,6 @@
141139 rk_obj = to_rockchip_obj(obj[i]);
142140 rockchip_fb->dma_addr[i] = rk_obj->dma_addr;
143141 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;
147142 }
148143 #ifndef MODULE
149144 } else if (logo) {
....@@ -366,6 +361,24 @@
366361 }
367362 }
368363
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
+
369382 static void
370383 rockchip_atomic_helper_commit_tail_rpm(struct drm_atomic_state *old_state)
371384 {
....@@ -381,6 +394,8 @@
381394 DRM_PLANE_COMMIT_ACTIVE_ONLY);
382395
383396 rockchip_drm_psr_inhibit_put_state(old_state);
397
+
398
+ drm_atomic_helper_connector_commit(dev, old_state);
384399
385400 drm_atomic_helper_commit_hw_done(old_state);
386401
....@@ -445,6 +460,8 @@
445460
446461 rockchip_drm_psr_inhibit_put_state(state);
447462
463
+ drm_atomic_helper_connector_commit(dev, state);
464
+
448465 drm_atomic_helper_commit_hw_done(state);
449466
450467 rockchip_drm_atomic_helper_wait_for_vblanks(dev, state);