From ac15f4dcbc3740d6638397f6fd51bbbcc74046e7 Mon Sep 17 00:00:00 2001 From: vhaudiquet Date: Sun, 30 Aug 2026 20:07:22 +0200 Subject: [PATCH] krane: rotate the console 270 degrees clockwise for landscape use The BOE TV101WUM-NL6 panel is mounted rotated 270 degrees in the krane chassis (rotation property on the panel node in the upstream DT). With the keyboard attached the tablet is used in landscape, so set video rot=1 and enable CONFIG_CONSOLE_ROTATION: the uclass then binds the rotated vidconsole1 driver, which writes glyphs rotated by 90 degrees clockwise into the native 1200x1920 portrait scanout and uses the swapped console geometry (240 columns x 75 rows). The framebuffer geometry and the depthcharge scanout path are unchanged; only the console text placement rotates. --- configs/mt8183_kukui_krane_defconfig | 1 + drivers/video/mt8183_scanout.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/configs/mt8183_kukui_krane_defconfig b/configs/mt8183_kukui_krane_defconfig index 8c76f5ad6c9..f14aa5d5cf3 100644 --- a/configs/mt8183_kukui_krane_defconfig +++ b/configs/mt8183_kukui_krane_defconfig @@ -68,6 +68,7 @@ CONFIG_VIDEO_MT8183_SCANOUT=y CONFIG_MMC_MTK=y CONFIG_PHY=y CONFIG_PHY_MTK_TPHY=y +CONFIG_CONSOLE_ROTATION=y CONFIG_USB=y CONFIG_DM_USB=y CONFIG_USB_XHCI_HCD=y diff --git a/drivers/video/mt8183_scanout.c b/drivers/video/mt8183_scanout.c index dc342b93e2c..78a3b763754 100644 --- a/drivers/video/mt8183_scanout.c +++ b/drivers/video/mt8183_scanout.c @@ -204,6 +204,19 @@ static int mt8183_scanout_probe(struct udevice *dev) uc_priv->ysize = fb.y_resolution; uc_priv->line_length = fb.bytes_per_line; + /* + * The BOE TV101WUM-NL6 panel is mounted rotated 270 degrees in + * the krane chassis (see the panel node's "rotation" property in + * the upstream DT). The keyboard-covered landscape orientation + * therefore needs the console rotated; the uclass then binds the + * rotated vidconsole3 text driver, which writes glyphs rotated + * by 270 degrees clockwise into the native 1200x1920 portrait + * scanout and swaps the console geometry (240x75 columns/rows + * on this panel). rot=1 (90 degrees) was tried first and read + * upside down on the device (R35). + */ + uc_priv->rot = 3; + printf("Video: MT8183 scanout %dx%d@32bpp at %llx\n", uc_priv->xsize, uc_priv->ysize, (unsigned long long)plat->base);