Commit 648fdc3f authored by Brian Masney's avatar Brian Masney Committed by Rob Clark

drm/msm: add dirty framebuffer helper

Use drm_atomic_helper_dirtyfb() as the dirty callback in the
msm_framebuffer_funcs struct. Call drm_plane_enable_fb_damage_clips()
when the planes are initialized in mdp4, mdp5, and dpu1.
Signed-off-by: default avatarBrian Masney <masneyb@onstation.org>
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent f47bee2b
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/dma-buf.h> #include <linux/dma-buf.h>
#include <drm/drm_damage_helper.h>
#include <drm/drm_atomic_uapi.h> #include <drm/drm_atomic_uapi.h>
#include "msm_drv.h" #include "msm_drv.h"
...@@ -1537,6 +1538,8 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, ...@@ -1537,6 +1538,8 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev,
if (ret) if (ret)
DPU_ERROR("failed to install zpos property, rc = %d\n", ret); DPU_ERROR("failed to install zpos property, rc = %d\n", ret);
drm_plane_enable_fb_damage_clips(plane);
/* success! finalize initialization */ /* success! finalize initialization */
drm_plane_helper_add(plane, &dpu_plane_helper_funcs); drm_plane_helper_add(plane, &dpu_plane_helper_funcs);
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
* this program. If not, see <http://www.gnu.org/licenses/>. * this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <drm/drm_damage_helper.h>
#include "mdp4_kms.h" #include "mdp4_kms.h"
#define DOWN_SCALE_MAX 8 #define DOWN_SCALE_MAX 8
...@@ -391,6 +392,8 @@ struct drm_plane *mdp4_plane_init(struct drm_device *dev, ...@@ -391,6 +392,8 @@ struct drm_plane *mdp4_plane_init(struct drm_device *dev,
mdp4_plane_install_properties(plane, &plane->base); mdp4_plane_install_properties(plane, &plane->base);
drm_plane_enable_fb_damage_clips(plane);
return plane; return plane;
fail: fail:
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
* this program. If not, see <http://www.gnu.org/licenses/>. * this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include <drm/drm_damage_helper.h>
#include <drm/drm_print.h> #include <drm/drm_print.h>
#include "mdp5_kms.h" #include "mdp5_kms.h"
...@@ -1099,6 +1100,8 @@ struct drm_plane *mdp5_plane_init(struct drm_device *dev, ...@@ -1099,6 +1100,8 @@ struct drm_plane *mdp5_plane_init(struct drm_device *dev,
mdp5_plane_install_properties(plane, &plane->base); mdp5_plane_install_properties(plane, &plane->base);
drm_plane_enable_fb_damage_clips(plane);
return plane; return plane;
fail: fail:
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
*/ */
#include <drm/drm_crtc.h> #include <drm/drm_crtc.h>
#include <drm/drm_damage_helper.h>
#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_probe_helper.h> #include <drm/drm_probe_helper.h>
...@@ -35,6 +36,7 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev, ...@@ -35,6 +36,7 @@ static struct drm_framebuffer *msm_framebuffer_init(struct drm_device *dev,
static const struct drm_framebuffer_funcs msm_framebuffer_funcs = { static const struct drm_framebuffer_funcs msm_framebuffer_funcs = {
.create_handle = drm_gem_fb_create_handle, .create_handle = drm_gem_fb_create_handle,
.destroy = drm_gem_fb_destroy, .destroy = drm_gem_fb_destroy,
.dirty = drm_atomic_helper_dirtyfb,
}; };
#ifdef CONFIG_DEBUG_FS #ifdef CONFIG_DEBUG_FS
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment