# --- T2-COPYRIGHT-BEGIN --- # t2/package/*/linux/hotfix-ast-bigendian.patch # Copyright (C) 2025 The T2 SDE Project # SPDX-License-Identifier: GPL-2.0 or patched project license # --- T2-COPYRIGHT-END --- diff -urN /srv/t2/src.linux.sparc64.251130.134420.19457/linux-6.17/drivers/gpu/drm/ast/ast_mode.c linux-6.17/drivers/gpu/drm/ast/ast_mode.c --- linux-6.17/drivers/gpu/drm/ast/ast_mode.c 2025-09-28 23:39:22.000000000 +0200 +++ linux-6.17/drivers/gpu/drm/ast/ast_mode.c 2025-11-30 13:44:02.286167417 +0100 @@ -708,6 +708,20 @@ ast_set_dclk_reg(ast, adjusted_mode, vmode); ast_set_crtthd_reg(ast); ast_set_sync_reg(ast, adjusted_mode, vmode); + +#ifdef __BIG_ENDIAN + /* Big-endian byte-swapping */ + switch (ast_crtc_state->format->format) { + case DRM_FORMAT_RGB565: + ast_set_index_reg_mask(ast, AST_IO_VGACRI, AST_IO_VGACRA2, 0x3f, 0x40); + break; + case DRM_FORMAT_XRGB8888: + ast_set_index_reg_mask(ast, AST_IO_VGACRI, AST_IO_VGACRA2, 0x3f, 0x80); + break; + default: + break; + } +#endif } static int ast_crtc_helper_atomic_check(struct drm_crtc *crtc, diff -urN /srv/t2/src.linux.sparc64.251130.134420.19457/linux-6.17/drivers/gpu/drm/ast/ast_reg.h linux-6.17/drivers/gpu/drm/ast/ast_reg.h --- linux-6.17/drivers/gpu/drm/ast/ast_reg.h 2025-09-28 23:39:22.000000000 +0200 +++ linux-6.17/drivers/gpu/drm/ast/ast_reg.h 2025-11-30 13:15:34.812579282 +0100 @@ -74,4 +74,10 @@ #define AST_IO_VGAIR1_R (0x5A) #define AST_IO_VGAIR1_VREFRESH BIT(3) +/* + * PCI Control + */ + +#define AST_IO_VGACRA2 (0xA2) /* PCI control & big-endian */ + #endif