Commit 63aa5ec6 authored by Thomas Zimmermann's avatar Thomas Zimmermann

drm/mipi-dbi: Initialize default driver functions with macro

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: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarNoralf Trønnes <noralf@tronnes.org>
Tested-by: default avatarJavier 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
parent e06c123e
...@@ -577,10 +577,7 @@ static void ili9341_dbi_enable(struct drm_simple_display_pipe *pipe, ...@@ -577,10 +577,7 @@ static void ili9341_dbi_enable(struct drm_simple_display_pipe *pipe,
} }
static const struct drm_simple_display_pipe_funcs ili9341_dbi_funcs = { static const struct drm_simple_display_pipe_funcs ili9341_dbi_funcs = {
.mode_valid = mipi_dbi_pipe_mode_valid, DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(ili9341_dbi_enable),
.enable = ili9341_dbi_enable,
.disable = mipi_dbi_pipe_disable,
.update = mipi_dbi_pipe_update,
}; };
static const struct drm_display_mode ili9341_dbi_mode = { static const struct drm_display_mode ili9341_dbi_mode = {
......
...@@ -181,10 +181,7 @@ static void yx240qv29_enable(struct drm_simple_display_pipe *pipe, ...@@ -181,10 +181,7 @@ static void yx240qv29_enable(struct drm_simple_display_pipe *pipe,
} }
static const struct drm_simple_display_pipe_funcs hx8357d_pipe_funcs = { static const struct drm_simple_display_pipe_funcs hx8357d_pipe_funcs = {
.mode_valid = mipi_dbi_pipe_mode_valid, DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(yx240qv29_enable),
.enable = yx240qv29_enable,
.disable = mipi_dbi_pipe_disable,
.update = mipi_dbi_pipe_update,
}; };
static const struct drm_display_mode yx350hv15_mode = { static const struct drm_display_mode yx350hv15_mode = {
......
...@@ -100,10 +100,7 @@ static void yx240qv29_enable(struct drm_simple_display_pipe *pipe, ...@@ -100,10 +100,7 @@ static void yx240qv29_enable(struct drm_simple_display_pipe *pipe,
} }
static const struct drm_simple_display_pipe_funcs ili9163_pipe_funcs = { static const struct drm_simple_display_pipe_funcs ili9163_pipe_funcs = {
.mode_valid = mipi_dbi_pipe_mode_valid, DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(yx240qv29_enable),
.enable = yx240qv29_enable,
.disable = mipi_dbi_pipe_disable,
.update = mipi_dbi_pipe_update,
}; };
static const struct drm_display_mode yx240qv29_mode = { static const struct drm_display_mode yx240qv29_mode = {
......
...@@ -137,10 +137,7 @@ static void yx240qv29_enable(struct drm_simple_display_pipe *pipe, ...@@ -137,10 +137,7 @@ static void yx240qv29_enable(struct drm_simple_display_pipe *pipe,
} }
static const struct drm_simple_display_pipe_funcs ili9341_pipe_funcs = { static const struct drm_simple_display_pipe_funcs ili9341_pipe_funcs = {
.mode_valid = mipi_dbi_pipe_mode_valid, DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(yx240qv29_enable),
.enable = yx240qv29_enable,
.disable = mipi_dbi_pipe_disable,
.update = mipi_dbi_pipe_update,
}; };
static const struct drm_display_mode yx240qv29_mode = { static const struct drm_display_mode yx240qv29_mode = {
......
...@@ -150,10 +150,7 @@ static void waveshare_enable(struct drm_simple_display_pipe *pipe, ...@@ -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 = { static const struct drm_simple_display_pipe_funcs waveshare_pipe_funcs = {
.mode_valid = mipi_dbi_pipe_mode_valid, DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(waveshare_enable),
.enable = waveshare_enable,
.disable = mipi_dbi_pipe_disable,
.update = mipi_dbi_pipe_update,
}; };
static const struct drm_display_mode waveshare_mode = { static const struct drm_display_mode waveshare_mode = {
......
...@@ -141,10 +141,7 @@ static void mi0283qt_enable(struct drm_simple_display_pipe *pipe, ...@@ -141,10 +141,7 @@ static void mi0283qt_enable(struct drm_simple_display_pipe *pipe,
} }
static const struct drm_simple_display_pipe_funcs mi0283qt_pipe_funcs = { static const struct drm_simple_display_pipe_funcs mi0283qt_pipe_funcs = {
.mode_valid = mipi_dbi_pipe_mode_valid, DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(mi0283qt_enable),
.enable = mi0283qt_enable,
.disable = mipi_dbi_pipe_disable,
.update = mipi_dbi_pipe_update,
}; };
static const struct drm_display_mode mi0283qt_mode = { static const struct drm_display_mode mi0283qt_mode = {
......
...@@ -212,10 +212,7 @@ static void panel_mipi_dbi_enable(struct drm_simple_display_pipe *pipe, ...@@ -212,10 +212,7 @@ static void panel_mipi_dbi_enable(struct drm_simple_display_pipe *pipe,
} }
static const struct drm_simple_display_pipe_funcs panel_mipi_dbi_pipe_funcs = { static const struct drm_simple_display_pipe_funcs panel_mipi_dbi_pipe_funcs = {
.mode_valid = mipi_dbi_pipe_mode_valid, DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(panel_mipi_dbi_enable),
.enable = panel_mipi_dbi_enable,
.disable = mipi_dbi_pipe_disable,
.update = mipi_dbi_pipe_update,
}; };
DEFINE_DRM_GEM_DMA_FOPS(panel_mipi_dbi_fops); DEFINE_DRM_GEM_DMA_FOPS(panel_mipi_dbi_fops);
......
...@@ -133,10 +133,7 @@ static void st7735r_pipe_enable(struct drm_simple_display_pipe *pipe, ...@@ -133,10 +133,7 @@ static void st7735r_pipe_enable(struct drm_simple_display_pipe *pipe,
} }
static const struct drm_simple_display_pipe_funcs st7735r_pipe_funcs = { static const struct drm_simple_display_pipe_funcs st7735r_pipe_funcs = {
.mode_valid = mipi_dbi_pipe_mode_valid, DRM_MIPI_DBI_SIMPLE_DISPLAY_PIPE_FUNCS(st7735r_pipe_enable),
.enable = st7735r_pipe_enable,
.disable = mipi_dbi_pipe_disable,
.update = mipi_dbi_pipe_update,
}; };
static const struct st7735r_cfg jd_t18003_t01_cfg = { static const struct st7735r_cfg jd_t18003_t01_cfg = {
......
...@@ -207,4 +207,20 @@ void mipi_dbi_debugfs_init(struct drm_minor *minor); ...@@ -207,4 +207,20 @@ void mipi_dbi_debugfs_init(struct drm_minor *minor);
static inline void mipi_dbi_debugfs_init(struct drm_minor *minor) {} static inline void mipi_dbi_debugfs_init(struct drm_minor *minor) {}
#endif #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 */ #endif /* __LINUX_MIPI_DBI_H */
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