Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm: Move simple_display_pipe prepare_fb helper into gem fb helpers

There's nothing tinydrm specific to this, and there's a few more
copies of the same in various other drivers.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Gustavo Padovan <gustavo@padovan.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: David Airlie <airlied@linux.ie>
Cc: David Lechner <david@lechnology.com>
Cc: "Noralf Trønnes" <noralf@tronnes.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Haneen Mohammed <hamohammed.sa@gmail.com>
Cc: Ben Widawsky <ben@bwidawsk.net>
Cc: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
Reviewed-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Acked-by: David Lechner <david@lechnology.com>
Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20180405154449.23038-3-daniel.vetter@ffwll.ch

+31 -24
+19
drivers/gpu/drm/drm_gem_framebuffer_helper.c
··· 22 22 #include <drm/drm_gem.h> 23 23 #include <drm/drm_gem_framebuffer_helper.h> 24 24 #include <drm/drm_modeset_helper.h> 25 + #include <drm/drm_simple_kms_helper.h> 25 26 26 27 /** 27 28 * DOC: overview ··· 265 264 return 0; 266 265 } 267 266 EXPORT_SYMBOL_GPL(drm_gem_fb_prepare_fb); 267 + 268 + /** 269 + * drm_gem_fb_simple_display_pipe_prepare_fb - prepare_fb helper for 270 + * &drm_simple_display_pipe 271 + * @pipe: Simple display pipe 272 + * @plane_state: Plane state 273 + * 274 + * This function uses drm_gem_fb_prepare_fb() to check if the plane FB has a 275 + * &dma_buf attached, extracts the exclusive fence and attaches it to plane 276 + * state for the atomic helper to wait on. Drivers can use this as their 277 + * &drm_simple_display_pipe_funcs.prepare_fb callback. 278 + */ 279 + int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, 280 + struct drm_plane_state *plane_state) 281 + { 282 + return drm_gem_fb_prepare_fb(&pipe->plane, plane_state); 283 + } 284 + EXPORT_SYMBOL(drm_gem_fb_simple_display_pipe_prepare_fb); 268 285 269 286 /** 270 287 * drm_gem_fbdev_fb_create - Create a GEM backed &drm_framebuffer for fbdev
-17
drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c
··· 138 138 } 139 139 EXPORT_SYMBOL(tinydrm_display_pipe_update); 140 140 141 - /** 142 - * tinydrm_display_pipe_prepare_fb - Display pipe prepare_fb helper 143 - * @pipe: Simple display pipe 144 - * @plane_state: Plane state 145 - * 146 - * This function uses drm_gem_fb_prepare_fb() to check if the plane FB has an 147 - * dma-buf attached, extracts the exclusive fence and attaches it to plane 148 - * state for the atomic helper to wait on. Drivers can use this as their 149 - * &drm_simple_display_pipe_funcs->prepare_fb callback. 150 - */ 151 - int tinydrm_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, 152 - struct drm_plane_state *plane_state) 153 - { 154 - return drm_gem_fb_prepare_fb(&pipe->plane, plane_state); 155 - } 156 - EXPORT_SYMBOL(tinydrm_display_pipe_prepare_fb); 157 - 158 141 static int tinydrm_rotate_mode(struct drm_display_mode *mode, 159 142 unsigned int rotation) 160 143 {
+1 -1
drivers/gpu/drm/tinydrm/ili9225.c
··· 354 354 .enable = ili9225_pipe_enable, 355 355 .disable = ili9225_pipe_disable, 356 356 .update = tinydrm_display_pipe_update, 357 - .prepare_fb = tinydrm_display_pipe_prepare_fb, 357 + .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, 358 358 }; 359 359 360 360 static const struct drm_display_mode ili9225_mode = {
+2 -1
drivers/gpu/drm/tinydrm/mi0283qt.c
··· 19 19 20 20 #include <drm/drm_fb_helper.h> 21 21 #include <drm/drm_modeset_helper.h> 22 + #include <drm/drm_gem_framebuffer_helper.h> 22 23 #include <drm/tinydrm/mipi-dbi.h> 23 24 #include <drm/tinydrm/tinydrm-helpers.h> 24 25 #include <video/mipi_display.h> ··· 135 134 .enable = mi0283qt_enable, 136 135 .disable = mipi_dbi_pipe_disable, 137 136 .update = tinydrm_display_pipe_update, 138 - .prepare_fb = tinydrm_display_pipe_prepare_fb, 137 + .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, 139 138 }; 140 139 141 140 static const struct drm_display_mode mi0283qt_mode = {
+1 -1
drivers/gpu/drm/tinydrm/repaper.c
··· 841 841 .enable = repaper_pipe_enable, 842 842 .disable = repaper_pipe_disable, 843 843 .update = tinydrm_display_pipe_update, 844 - .prepare_fb = tinydrm_display_pipe_prepare_fb, 844 + .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, 845 845 }; 846 846 847 847 static const uint32_t repaper_formats[] = {
+1 -1
drivers/gpu/drm/tinydrm/st7586.c
··· 290 290 .enable = st7586_pipe_enable, 291 291 .disable = st7586_pipe_disable, 292 292 .update = tinydrm_display_pipe_update, 293 - .prepare_fb = tinydrm_display_pipe_prepare_fb, 293 + .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, 294 294 }; 295 295 296 296 static const struct drm_display_mode st7586_mode = {
+1 -1
drivers/gpu/drm/tinydrm/st7735r.c
··· 106 106 .enable = jd_t18003_t01_pipe_enable, 107 107 .disable = mipi_dbi_pipe_disable, 108 108 .update = tinydrm_display_pipe_update, 109 - .prepare_fb = tinydrm_display_pipe_prepare_fb, 109 + .prepare_fb = drm_gem_fb_simple_display_pipe_prepare_fb, 110 110 }; 111 111 112 112 static const struct drm_display_mode jd_t18003_t01_mode = {
+3
include/drm/drm_gem_framebuffer_helper.h
··· 10 10 struct drm_mode_fb_cmd2; 11 11 struct drm_plane; 12 12 struct drm_plane_state; 13 + struct drm_simple_display_pipe; 13 14 14 15 struct drm_gem_object *drm_gem_fb_get_obj(struct drm_framebuffer *fb, 15 16 unsigned int plane); ··· 28 27 29 28 int drm_gem_fb_prepare_fb(struct drm_plane *plane, 30 29 struct drm_plane_state *state); 30 + int drm_gem_fb_simple_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, 31 + struct drm_plane_state *plane_state); 31 32 32 33 struct drm_framebuffer * 33 34 drm_gem_fbdev_fb_create(struct drm_device *dev,
+3
include/drm/drm_simple_kms_helper.h
··· 116 116 * Optional, called by &drm_plane_helper_funcs.prepare_fb. Please read 117 117 * the documentation for the &drm_plane_helper_funcs.prepare_fb hook for 118 118 * more details. 119 + * 120 + * Drivers which always have their buffers pinned should use 121 + * drm_gem_fb_simple_display_pipe_prepare_fb() for this hook. 119 122 */ 120 123 int (*prepare_fb)(struct drm_simple_display_pipe *pipe, 121 124 struct drm_plane_state *plane_state);
-2
include/drm/tinydrm/tinydrm.h
··· 95 95 96 96 void tinydrm_display_pipe_update(struct drm_simple_display_pipe *pipe, 97 97 struct drm_plane_state *old_state); 98 - int tinydrm_display_pipe_prepare_fb(struct drm_simple_display_pipe *pipe, 99 - struct drm_plane_state *plane_state); 100 98 int 101 99 tinydrm_display_pipe_init(struct tinydrm_device *tdev, 102 100 const struct drm_simple_display_pipe_funcs *funcs,