|
36 | 36 | #include <linux/pm_runtime.h> |
37 | 37 | #include <drm/drm_crtc_helper.h> |
38 | 38 | #include <drm/drm_damage_helper.h> |
| 39 | +#include <drm/drm_drv.h> |
39 | 40 | #include <drm/drm_edid.h> |
40 | 41 | #include <drm/drm_gem_framebuffer_helper.h> |
41 | 42 | #include <drm/drm_fb_helper.h> |
@@ -491,6 +492,11 @@ bool amdgpu_display_ddc_probe(struct amdgpu_connector *amdgpu_connector, |
491 | 492 | static const struct drm_framebuffer_funcs amdgpu_fb_funcs = { |
492 | 493 | .destroy = drm_gem_fb_destroy, |
493 | 494 | .create_handle = drm_gem_fb_create_handle, |
| 495 | +}; |
| 496 | + |
| 497 | +static const struct drm_framebuffer_funcs amdgpu_fb_funcs_atomic = { |
| 498 | + .destroy = drm_gem_fb_destroy, |
| 499 | + .create_handle = drm_gem_fb_create_handle, |
494 | 500 | .dirty = drm_atomic_helper_dirtyfb, |
495 | 501 | }; |
496 | 502 |
|
@@ -1111,7 +1117,10 @@ int amdgpu_display_gem_fb_verify_and_init( |
1111 | 1117 | if (ret) |
1112 | 1118 | goto err; |
1113 | 1119 |
|
1114 | | - ret = drm_framebuffer_init(dev, &rfb->base, &amdgpu_fb_funcs); |
| 1120 | + if (drm_drv_uses_atomic_modeset(dev)) |
| 1121 | + ret = drm_framebuffer_init(dev, &rfb->base, &amdgpu_fb_funcs_atomic); |
| 1122 | + else |
| 1123 | + ret = drm_framebuffer_init(dev, &rfb->base, &amdgpu_fb_funcs); |
1115 | 1124 | if (ret) |
1116 | 1125 | goto err; |
1117 | 1126 |
|
|
0 commit comments