[PATCH] drm/mediatek: mtk_dsi: Add support for High Speed (HS) mode

AngeloGioacchino Del Regno posted 1 patch 1 month ago
drivers/gpu/drm/mediatek/mtk_dsi.c | 4 ++++
1 file changed, 4 insertions(+)
[PATCH] drm/mediatek: mtk_dsi: Add support for High Speed (HS) mode
Posted by AngeloGioacchino Del Regno 1 month ago
Up until now, the MediaTek DSI Controller has always been working
in Low Power Mode (LPM), as this driver has always ignored the
MIPI_DSI_MSG_USE_LPM flag hence never setting HS mode.

In the current state of the driver the only thing that is needed
to add support for DSI High Speed (HS) transmit is to simply set
the "HSTX" config bit in the configuration register.

Check if flag MIPI_DSI_MSG_USE_LPM is set and, if not, set HSTX.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
---
 drivers/gpu/drm/mediatek/mtk_dsi.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
index e4953d5cb6a8..a90cae9512c5 100644
--- a/drivers/gpu/drm/mediatek/mtk_dsi.c
+++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
@@ -155,6 +155,7 @@
 #define SHORT_PACKET			0
 #define LONG_PACKET			2
 #define BTA				BIT(2)
+#define HSTX				BIT(3)
 #define DATA_ID				GENMASK(15, 8)
 #define DATA_0				GENMASK(23, 16)
 #define DATA_1				GENMASK(31, 24)
@@ -1177,6 +1178,9 @@ static void mtk_dsi_cmdq(struct mtk_dsi *dsi, const struct mipi_dsi_msg *msg)
 	else
 		config = (msg->tx_len > 2) ? LONG_PACKET : SHORT_PACKET;
 
+	if (!(msg->flags & MIPI_DSI_MSG_USE_LPM))
+		config |= HSTX;
+
 	if (msg->tx_len > 2) {
 		cmdq_size = 1 + (msg->tx_len + 3) / 4;
 		cmdq_off = 4;
-- 
2.52.0
Re: [PATCH] drm/mediatek: mtk_dsi: Add support for High Speed (HS) mode
Posted by Chun-Kuang Hu 3 weeks, 2 days ago
Hi, Angelo:

AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> 於
2026年1月8日週四 上午10:20寫道:
>
> Up until now, the MediaTek DSI Controller has always been working
> in Low Power Mode (LPM), as this driver has always ignored the
> MIPI_DSI_MSG_USE_LPM flag hence never setting HS mode.
>
> In the current state of the driver the only thing that is needed
> to add support for DSI High Speed (HS) transmit is to simply set
> the "HSTX" config bit in the configuration register.
>
> Check if flag MIPI_DSI_MSG_USE_LPM is set and, if not, set HSTX.

Applied to mediatek-drm-next [1], thanks.

[1] https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux.git/log/?h=mediatek-drm-next

Regards,
Chun-Kuang.

>
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_dsi.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index e4953d5cb6a8..a90cae9512c5 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -155,6 +155,7 @@
>  #define SHORT_PACKET                   0
>  #define LONG_PACKET                    2
>  #define BTA                            BIT(2)
> +#define HSTX                           BIT(3)
>  #define DATA_ID                                GENMASK(15, 8)
>  #define DATA_0                         GENMASK(23, 16)
>  #define DATA_1                         GENMASK(31, 24)
> @@ -1177,6 +1178,9 @@ static void mtk_dsi_cmdq(struct mtk_dsi *dsi, const struct mipi_dsi_msg *msg)
>         else
>                 config = (msg->tx_len > 2) ? LONG_PACKET : SHORT_PACKET;
>
> +       if (!(msg->flags & MIPI_DSI_MSG_USE_LPM))
> +               config |= HSTX;
> +
>         if (msg->tx_len > 2) {
>                 cmdq_size = 1 + (msg->tx_len + 3) / 4;
>                 cmdq_off = 4;
> --
> 2.52.0
>
Re: [PATCH] drm/mediatek: mtk_dsi: Add support for High Speed (HS) mode
Posted by CK Hu (胡俊光) 3 weeks, 2 days ago
On Thu, 2026-01-08 at 11:19 +0100, AngeloGioacchino Del Regno wrote:
> Up until now, the MediaTek DSI Controller has always been working
> in Low Power Mode (LPM), as this driver has always ignored the
> MIPI_DSI_MSG_USE_LPM flag hence never setting HS mode.
> 
> In the current state of the driver the only thing that is needed
> to add support for DSI High Speed (HS) transmit is to simply set
> the "HSTX" config bit in the configuration register.
> 
> Check if flag MIPI_DSI_MSG_USE_LPM is set and, if not, set HSTX.

Reviewed-by: CK Hu <ck.hu@mediatek.com>

> 
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
> ---
>  drivers/gpu/drm/mediatek/mtk_dsi.c | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c
> index e4953d5cb6a8..a90cae9512c5 100644
> --- a/drivers/gpu/drm/mediatek/mtk_dsi.c
> +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c
> @@ -155,6 +155,7 @@
>  #define SHORT_PACKET			0
>  #define LONG_PACKET			2
>  #define BTA				BIT(2)
> +#define HSTX				BIT(3)
>  #define DATA_ID				GENMASK(15, 8)
>  #define DATA_0				GENMASK(23, 16)
>  #define DATA_1				GENMASK(31, 24)
> @@ -1177,6 +1178,9 @@ static void mtk_dsi_cmdq(struct mtk_dsi *dsi, const struct mipi_dsi_msg *msg)
>  	else
>  		config = (msg->tx_len > 2) ? LONG_PACKET : SHORT_PACKET;
>  
> +	if (!(msg->flags & MIPI_DSI_MSG_USE_LPM))
> +		config |= HSTX;
> +
>  	if (msg->tx_len > 2) {
>  		cmdq_size = 1 + (msg->tx_len + 3) / 4;
>  		cmdq_off = 4;

Re: [PATCH] drm/mediatek: mtk_dsi: Add support for High Speed (HS) mode
Posted by Gary Bisson 1 month ago
On Thu, Jan 08, 2026 at 11:19:59AM +0100, AngeloGioacchino Del Regno wrote:
> Up until now, the MediaTek DSI Controller has always been working
> in Low Power Mode (LPM), as this driver has always ignored the
> MIPI_DSI_MSG_USE_LPM flag hence never setting HS mode.
> 
> In the current state of the driver the only thing that is needed
> to add support for DSI High Speed (HS) transmit is to simply set
> the "HSTX" config bit in the configuration register.
> 
> Check if flag MIPI_DSI_MSG_USE_LPM is set and, if not, set HSTX.
> 
> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>

Tested-by: Gary Bisson <bisson.gary@gmail.com>

This patch was needed for the TI SN65DSI83 DSI to LVDS bridge to work as
it requires HS mode.

Regards,
Gary