Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 816379b2 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm/msm/dsi-staging: support unicasting mipi cmds to dsi ctrls" into msm-4.9

parents 105b26c7 1fde2284
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1105,7 +1105,7 @@ static ssize_t dsi_host_transfer(struct mipi_dsi_host *host,
		goto error_disable_clks;
	}

	if (display->ctrl_count > 1) {
	if (display->ctrl_count > 1 && !(msg->flags & MIPI_DSI_MSG_UNICAST)) {
		rc = dsi_display_broadcast_cmd(display, msg);
		if (rc) {
			pr_err("[%s] cmd broadcast failed, rc=%d\n",
@@ -1113,7 +1113,10 @@ static ssize_t dsi_host_transfer(struct mipi_dsi_host *host,
			goto error_disable_cmd_engine;
		}
	} else {
		rc = dsi_ctrl_cmd_transfer(display->ctrl[0].ctrl, msg,
		int ctrl_idx = (msg->flags & MIPI_DSI_MSG_UNICAST) ?
				msg->ctrl : 0;

		rc = dsi_ctrl_cmd_transfer(display->ctrl[ctrl_idx].ctrl, msg,
					  DSI_CTRL_CMD_FIFO_STORE);
		if (rc) {
			pr_err("[%s] cmd transfer failed, rc=%d\n",
+1 −0
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ struct dsi_panel_cmd_set {
	enum dsi_cmd_set_type type;
	enum dsi_cmd_set_state state;
	u32 count;
	int ctrl_idx;
	struct dsi_cmd_desc *cmds;
};

+4 −0
Original line number Diff line number Diff line
@@ -21,12 +21,15 @@ struct mipi_dsi_device;
#define MIPI_DSI_MSG_REQ_ACK	BIT(0)
/* use Low Power Mode to transmit message */
#define MIPI_DSI_MSG_USE_LPM	BIT(1)
/* read mipi_dsi_msg.ctrl and unicast to only that ctrls */
#define MIPI_DSI_MSG_UNICAST	BIT(2)

/**
 * struct mipi_dsi_msg - read/write DSI buffer
 * @channel: virtual channel id
 * @type: payload data type
 * @flags: flags controlling this message transmission
 * @ctrl: ctrl index to transmit on
 * @tx_len: length of @tx_buf
 * @tx_buf: data to be written
 * @rx_len: length of @rx_buf
@@ -36,6 +39,7 @@ struct mipi_dsi_msg {
	u8 channel;
	u8 type;
	u16 flags;
	u32 ctrl;

	size_t tx_len;
	const void *tx_buf;