Skip to content

Commit 9882a40

Browse files
adalessandroChun-Kuang Hu
authored andcommitted
drm/mediatek: Disable AFBC support on Mediatek DRM driver
Commit c410fa9 ("drm/mediatek: Add AFBC support to Mediatek DRM driver") added AFBC support to Mediatek DRM and enabled the 32x8/split/sparse modifier. However, this is currently broken on Mediatek MT8188 (Genio 700 EVK platform); tested using upstream Kernel and Mesa (v25.2.1), AFBC is used by default since Mesa v25.0. Kernel trace reports vblank timeouts constantly, and the render is garbled: ``` [CRTC:62:crtc-0] vblank wait timed out WARNING: CPU: 7 PID: 70 at drivers/gpu/drm/drm_atomic_helper.c:1835 drm_atomic_helper_wait_for_vblanks.part.0+0x24c/0x27c [...] Hardware name: MediaTek Genio-700 EVK (DT) Workqueue: events_unbound commit_work pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : drm_atomic_helper_wait_for_vblanks.part.0+0x24c/0x27c lr : drm_atomic_helper_wait_for_vblanks.part.0+0x24c/0x27c sp : ffff80008337bca0 x29: ffff80008337bcd0 x28: 0000000000000061 x27: 0000000000000000 x26: 0000000000000001 x25: 0000000000000000 x24: ffff0000c9dcc000 x23: 0000000000000001 x22: 0000000000000000 x21: ffff0000c66f2f80 x20: ffff0000c0d7d880 x19: 0000000000000000 x18: 000000000000000a x17: 000000040044ffff x16: 005000f2b5503510 x15: 0000000000000000 x14: 0000000000000000 x13: 74756f2064656d69 x12: 742074696177206b x11: 0000000000000058 x10: 0000000000000018 x9 : ffff800082396a70 x8 : 0000000000057fa8 x7 : 0000000000000cce x6 : ffff8000823eea70 x5 : ffff0001fef5f408 x4 : ffff80017ccee000 x3 : ffff0000c12cb480 x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff0000c12cb480 Call trace: drm_atomic_helper_wait_for_vblanks.part.0+0x24c/0x27c (P) drm_atomic_helper_commit_tail_rpm+0x64/0x80 commit_tail+0xa4/0x1a4 commit_work+0x14/0x20 process_one_work+0x150/0x290 worker_thread+0x2d0/0x3ec kthread+0x12c/0x210 ret_from_fork+0x10/0x20 ---[ end trace 0000000000000000 ]--- ``` Until this gets fixed upstream, disable AFBC support on this platform, as it's currently broken with upstream Mesa. Fixes: c410fa9 ("drm/mediatek: Add AFBC support to Mediatek DRM driver") Cc: [email protected] Signed-off-by: Ariel D'Alessandro <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Reviewed-by: CK Hu <[email protected]> Reviewed-by: Macpaul Lin <[email protected]> Link: https://patchwork.kernel.org/project/dri-devel/patch/[email protected]/ Signed-off-by: Chun-Kuang Hu <[email protected]>
1 parent 926d002 commit 9882a40

1 file changed

Lines changed: 1 addition & 23 deletions

File tree

drivers/gpu/drm/mediatek/mtk_plane.c

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@
2121

2222
static const u64 modifiers[] = {
2323
DRM_FORMAT_MOD_LINEAR,
24-
DRM_FORMAT_MOD_ARM_AFBC(AFBC_FORMAT_MOD_BLOCK_SIZE_32x8 |
25-
AFBC_FORMAT_MOD_SPLIT |
26-
AFBC_FORMAT_MOD_SPARSE),
2724
DRM_FORMAT_MOD_INVALID,
2825
};
2926

@@ -71,26 +68,7 @@ static bool mtk_plane_format_mod_supported(struct drm_plane *plane,
7168
uint32_t format,
7269
uint64_t modifier)
7370
{
74-
if (modifier == DRM_FORMAT_MOD_LINEAR)
75-
return true;
76-
77-
if (modifier != DRM_FORMAT_MOD_ARM_AFBC(
78-
AFBC_FORMAT_MOD_BLOCK_SIZE_32x8 |
79-
AFBC_FORMAT_MOD_SPLIT |
80-
AFBC_FORMAT_MOD_SPARSE))
81-
return false;
82-
83-
if (format != DRM_FORMAT_XRGB8888 &&
84-
format != DRM_FORMAT_ARGB8888 &&
85-
format != DRM_FORMAT_BGRX8888 &&
86-
format != DRM_FORMAT_BGRA8888 &&
87-
format != DRM_FORMAT_ABGR8888 &&
88-
format != DRM_FORMAT_XBGR8888 &&
89-
format != DRM_FORMAT_RGB888 &&
90-
format != DRM_FORMAT_BGR888)
91-
return false;
92-
93-
return true;
71+
return modifier == DRM_FORMAT_MOD_LINEAR;
9472
}
9573

9674
static void mtk_plane_destroy_state(struct drm_plane *plane,

0 commit comments

Comments
 (0)