]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/mediatek: mtk_dsi: Add support for High Speed (HS) mode
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Thu, 8 Jan 2026 10:19:59 +0000 (11:19 +0100)
committerChun-Kuang Hu <chunkuang.hu@kernel.org>
Fri, 16 Jan 2026 23:47:11 +0000 (23:47 +0000)
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>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
Link: https://patchwork.kernel.org/project/dri-devel/patch/20260108101959.14872-1-angelogioacchino.delregno@collabora.com/
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
drivers/gpu/drm/mediatek/mtk_dsi.c

index 0e2bcd5f67b767d92f2697a5b8183f67ee178a38..cad7d1e2641836ac012d682213fa686fb8dd4618 100644 (file)
 #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)
@@ -1080,6 +1081,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;