drm/mipi-dbi: Initialize default driver functions with macro
authorThomas Zimmermann <tzimmermann@suse.de>
Fri, 2 Dec 2022 12:56:40 +0000 (13:56 +0100)
committerThomas Zimmermann <tzimmermann@suse.de>
Mon, 5 Dec 2022 12:36:16 +0000 (13:36 +0100)
Introduce DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS to initialize MIPI-DBI
helpers to default values and convert drivers. The prepare_fb function
set by some drivers is called implicitly by simple-kms helpers, so leave
it out.

Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: Noralf Trønnes <noralf@tronnes.org>
Tested-by: Javier Martinez Canillas <javierm@redhat.com>
Tested-by: Noralf Trønnes <noralf@tronnes.org> # drm/tiny/mi0283qt
Link: https://patchwork.freedesktop.org/patch/msgid/20221202125644.7917-5-tzimmermann@suse.de
drivers/gpu/drm/panel/panel-ilitek-ili9341.c
drivers/gpu/drm/tiny/hx8357d.c
drivers/gpu/drm/tiny/ili9163.c
drivers/gpu/drm/tiny/ili9341.c
drivers/gpu/drm/tiny/ili9486.c
drivers/gpu/drm/tiny/mi0283qt.c
drivers/gpu/drm/tiny/panel-mipi-dbi.c
drivers/gpu/drm/tiny/st7735r.c
include/drm/drm_mipi_dbi.h

index be088983aa7c78f3a82f56a485bf8f17bf9f0479..3fdf884b3257fcdcfc853c4149808a2c8aeb15b6 100644 (file)
@@ -577,10 +577,7 @@ out_exit:
 }
 
 static const struct drm_simple_display_pipe_funcs ili9341_dbi_funcs = {
-       .mode_valid = mipi_dbi_pipe_mode_valid,
-       .enable = ili9341_dbi_enable,
-       .disable = mipi_dbi_pipe_disable,
-       .update = mipi_dbi_pipe_update,
+       DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(ili9341_dbi_enable),
 };
 
 static const struct drm_display_mode ili9341_dbi_mode = {
index 9f634f720817b84d642e9b30ab9e76aab8d2d3e4..cdc4486e059b5b8ea3ef7aca9b5854b711854281 100644 (file)
@@ -181,10 +181,7 @@ out_exit:
 }
 
 static const struct drm_simple_display_pipe_funcs hx8357d_pipe_funcs = {
-       .mode_valid = mipi_dbi_pipe_mode_valid,
-       .enable = yx240qv29_enable,
-       .disable = mipi_dbi_pipe_disable,
-       .update = mipi_dbi_pipe_update,
+       DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(yx240qv29_enable),
 };
 
 static const struct drm_display_mode yx350hv15_mode = {
index 835ed12792d56d3ccb39c951d7f4134c24aaca02..bc4384d410fccb2eadbd1a4929f5f3c11c2d320c 100644 (file)
@@ -100,10 +100,7 @@ out_exit:
 }
 
 static const struct drm_simple_display_pipe_funcs ili9163_pipe_funcs = {
-       .mode_valid = mipi_dbi_pipe_mode_valid,
-       .enable = yx240qv29_enable,
-       .disable = mipi_dbi_pipe_disable,
-       .update = mipi_dbi_pipe_update,
+       DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(yx240qv29_enable),
 };
 
 static const struct drm_display_mode yx240qv29_mode = {
index 420f6005a9568b13554927ad85e2346f0729f3ba..47b61c3bf145702daa8e17e6f70d1df25f6731ba 100644 (file)
@@ -137,10 +137,7 @@ out_exit:
 }
 
 static const struct drm_simple_display_pipe_funcs ili9341_pipe_funcs = {
-       .mode_valid = mipi_dbi_pipe_mode_valid,
-       .enable = yx240qv29_enable,
-       .disable = mipi_dbi_pipe_disable,
-       .update = mipi_dbi_pipe_update,
+       DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(yx240qv29_enable),
 };
 
 static const struct drm_display_mode yx240qv29_mode = {
index 1bb847466b107a4653463b6f028c765e98af98f6..9f735d84d85d42e67efed57e0a01f06254e0f816 100644 (file)
@@ -150,10 +150,7 @@ static void waveshare_enable(struct drm_simple_display_pipe *pipe,
 }
 
 static const struct drm_simple_display_pipe_funcs waveshare_pipe_funcs = {
-       .mode_valid = mipi_dbi_pipe_mode_valid,
-       .enable = waveshare_enable,
-       .disable = mipi_dbi_pipe_disable,
-       .update = mipi_dbi_pipe_update,
+       DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(waveshare_enable),
 };
 
 static const struct drm_display_mode waveshare_mode = {
index 47df2b5a3048f07186aad8e1ff72043f5a38c574..01ff43c8ac3ff80737c6798a8a3722fe068615fc 100644 (file)
@@ -141,10 +141,7 @@ out_exit:
 }
 
 static const struct drm_simple_display_pipe_funcs mi0283qt_pipe_funcs = {
-       .mode_valid = mipi_dbi_pipe_mode_valid,
-       .enable = mi0283qt_enable,
-       .disable = mipi_dbi_pipe_disable,
-       .update = mipi_dbi_pipe_update,
+       DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(mi0283qt_enable),
 };
 
 static const struct drm_display_mode mi0283qt_mode = {
index 03a7d569cd5683a3bc3c4538084c1f181f45c8f3..2ed23ded519979faa746eaac5c18e4387e4e2d73 100644 (file)
@@ -212,10 +212,7 @@ out_exit:
 }
 
 static const struct drm_simple_display_pipe_funcs panel_mipi_dbi_pipe_funcs = {
-       .mode_valid = mipi_dbi_pipe_mode_valid,
-       .enable = panel_mipi_dbi_enable,
-       .disable = mipi_dbi_pipe_disable,
-       .update = mipi_dbi_pipe_update,
+       DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(panel_mipi_dbi_enable),
 };
 
 DEFINE_DRM_GEM_DMA_FOPS(panel_mipi_dbi_fops);
index 15d9cf283c66a24e2a90eabfc43301a74817ef0e..477eb36fbb70d90954dd62323ec39c44c3e8c4a6 100644 (file)
@@ -133,10 +133,7 @@ out_exit:
 }
 
 static const struct drm_simple_display_pipe_funcs st7735r_pipe_funcs = {
-       .mode_valid     = mipi_dbi_pipe_mode_valid,
-       .enable         = st7735r_pipe_enable,
-       .disable        = mipi_dbi_pipe_disable,
-       .update         = mipi_dbi_pipe_update,
+       DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(st7735r_pipe_enable),
 };
 
 static const struct st7735r_cfg jd_t18003_t01_cfg = {
index 14eaecb1825c172806909c0d3527f3b817772d2a..8c4ea7956d61d5f45a3ee068a2d369e9ee1e7047 100644 (file)
@@ -207,4 +207,20 @@ void mipi_dbi_debugfs_init(struct drm_minor *minor);
 static inline void mipi_dbi_debugfs_init(struct drm_minor *minor) {}
 #endif
 
+/**
+ * DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS - Initializes struct drm_simple_display_pipe_funcs
+ *                                          for MIPI-DBI devices
+ * @enable_: Enable-callback implementation
+ *
+ * This macro initializes struct drm_simple_display_pipe_funcs with default
+ * values for MIPI-DBI-based devices. The only callback that depends on the
+ * hardware is @enable, for which the driver has to provide an implementation.
+ * MIPI-based drivers are encouraged to use this macro for initialization.
+ */
+#define DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(enable_) \
+       .mode_valid = mipi_dbi_pipe_mode_valid, \
+       .enable = (enable_), \
+       .disable = mipi_dbi_pipe_disable, \
+       .update = mipi_dbi_pipe_update
+
 #endif /* __LINUX_MIPI_DBI_H */