diff options
author | Javier Martinez Canillas <javierm@redhat.com> | 2023-01-02 21:25:42 +0100 |
---|---|---|
committer | Javier Martinez Canillas <javierm@redhat.com> | 2023-01-07 14:22:04 +0100 |
commit | a9015ce593204f487bcb3069c5908155ccc59f30 (patch) | |
tree | cfe309c51283e38f823d03929b036e1edf939e75 /include/drm/drm_mipi_dsi.h | |
parent | 51d3c0e7dc3cf1dd91c34b0f9bdadda310c7ed5b (diff) |
drm/mipi-dsi: Add a mipi_dsi_dcs_write_seq() macro
Many panel drivers define dsi_dcs_write_seq() and dsi_generic_write_seq()
macros to send DCS commands and generic write packets respectively, with
the payload specified as a list of parameters instead of using arrays.
There's already a macro for the former, introduced by commit 2a9e9daf75231
("drm/mipi-dsi: Introduce mipi_dsi_dcs_write_seq macro") so drivers can be
changed to use that. But there isn't one yet for the latter, let's add it.
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230102202542.3494677-2-javierm@redhat.com
Diffstat (limited to 'include/drm/drm_mipi_dsi.h')
-rw-r--r-- | include/drm/drm_mipi_dsi.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/drm/drm_mipi_dsi.h b/include/drm/drm_mipi_dsi.h index e9d1e8a7fc7e..4f503d99f668 100644 --- a/include/drm/drm_mipi_dsi.h +++ b/include/drm/drm_mipi_dsi.h @@ -298,6 +298,24 @@ int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi, u16 *brightness); /** + * mipi_dsi_generic_write_seq - transmit data using a generic write packet + * @dsi: DSI peripheral device + * @seq: buffer containing the payload + */ +#define mipi_dsi_generic_write_seq(dsi, seq...) \ + do { \ + static const u8 d[] = { seq }; \ + struct device *dev = &dsi->dev; \ + int ret; \ + ret = mipi_dsi_generic_write(dsi, d, ARRAY_SIZE(d)); \ + if (ret < 0) { \ + dev_err_ratelimited(dev, "transmit data failed: %d\n", \ + ret); \ + return ret; \ + } \ + } while (0) + +/** * mipi_dsi_dcs_write_seq - transmit a DCS command with payload * @dsi: DSI peripheral device * @cmd: Command |