Commit 2a9e9daf authored by Joel Selvaraj's avatar Joel Selvaraj Committed by Sam Ravnborg
Browse files

drm/mipi-dsi: Introduce mipi_dsi_dcs_write_seq macro



A helper macro that can be used to simplify sending DCS commands.
It is useful in scenarios like panel initialization which can sometimes
involve sending lot of DCS commands.

Signed-off-by: default avatarJoel Selvaraj <jo@jsfamily.in>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/BY5PR02MB700952493EEB6F0E77DC8416D9DF9@BY5PR02MB7009.namprd02.prod.outlook.com
parent c5ec5fa3
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -295,6 +295,23 @@ int mipi_dsi_dcs_set_display_brightness(struct mipi_dsi_device *dsi,
int mipi_dsi_dcs_get_display_brightness(struct mipi_dsi_device *dsi,
					u16 *brightness);

/**
 * mipi_dsi_dcs_write_seq - transmit a DCS command with payload
 * @dsi: DSI peripheral device
 * @cmd: Command
 * @seq: buffer containing data to be transmitted
 */
#define mipi_dsi_dcs_write_seq(dsi, cmd, seq...) do {				\
		static const u8 d[] = { cmd, seq };				\
		struct device *dev = &dsi->dev;	\
		int ret;						\
		ret = mipi_dsi_dcs_write_buffer(dsi, d, ARRAY_SIZE(d));	\
		if (ret < 0) {						\
			dev_err_ratelimited(dev, "sending command %#02x failed: %d\n", cmd, ret); \
			return ret;						\
		}						\
	} while (0)

/**
 * struct mipi_dsi_driver - DSI driver
 * @driver: device driver model driver