Changes in v5: - Clarified commit description for WDMA binding compatibles addition explaining why Dimensity 1200 is not compatible with MT8173 - Added missing mediatek,mt8189-dsi compatible in mtk_drm_drv.c - Added fix in mtk_dsi for failing device_reset_optional() producing a possible use-after-free issue
Changes in v4: - WDMA: Delete the .remove() callback from WDMA as not needed anymore - WDMA: Add comments explaining no bus errors will happen if writing to INT_ENABLE, INT_STATUS registers while unpowered or unclocked - Return error in mtk_wdma_wb_atomic_check() error conditions, oops! - DSC: Fix dsc_pad_num calculation (missing parenthesis...) - DSI: Change dsc slice check error to dev_dbg instead to avoid spam - DSI: Correctly cleanup dsi->dsc upon component_add failure - DSI: Make sure the CKTX_CKL_WC register is correctly programmed in DSI w/DSC case Changes in v3: - Changed mtk_dsi DSC implementation to use a different DSI_PS setting function for compressed or uncompressed, as the dsc one is way simpler than the regular one and becomes way shorter - DSC: Fixed missing PPS 19 register write - DSI: Anticipated call to devm_pm_runtime_enable() to before registering the DSI Host interface - DSI: Anticipated installing IRQ handler before registering the dsi host interface, which wasn't a problem before, but now it would be one because the interrupt is being enabled when binding! - DSI: Fixed some possible calculation overflows that may happen in MT8189 and MT8196 because of the higher supported resolutions - WDMA: Use devm variant of pm_runtime_enable() - Change WDMA interrupt handler to allow signaling WB complete even if there is no specific vblank callback installed to avoid very long timeouts (in any case, WB is complete for real even if there is no vblank_cb, just a bit useless without, but still complete) - Fixed WDMA register writes as register id was in function signature for mtk_wdma_ddp_write_dst_addr() but the function itself never used it in DISP_REG_WDMA_DST_ADDRX() macro Changes in v2: - Rebased on next-20260706 This series adds support for: - Display Stream Compression (DSC) for DSI and DisplayPort for both legacy (8188/92/95 and others) and for Kompanio Ultra MT8196 SoCs - Write DMA (WDMA) Engine (for legacy only at this time) as a step to enable Writeback support (coming later with a restructuring of the entire mediatek-drm driver) - Newer MIPI DSI IP revisions, found in MT8189 and MT8196 SoCs AngeloGioacchino Del Regno (11): dt-bindings: display: mediatek: dsc: Add MT8196 compatible drm/mediatek: Implement Display Stream Compression support dt-bindings: display: mediatek: dsi: Document MT8189 and MT8196 drm/mediatek: mtk_dsi: Cleanup encoder if reset fails during bind drm/mediatek: mtk_dsi: Enable interrupt at component bind time drm/mediatek: mtk_dsi: Transfer register offsets to per-SoC const drm/mediatek: mtk_dsi: Add support for MT8189 drm/mediatek: mtk_dsi: Add support for MT8196 drm/mediatek: mtk_dsi: Enable PM Runtime on probe dt-bindings: display: mediatek: wdma: Add compatibles for more SoCs drm/mediatek: Add Write DMA (WDMA) Engine for Writeback support .../display/mediatek/mediatek,dsc.yaml | 4 +- .../display/mediatek/mediatek,dsi.yaml | 2 + .../display/mediatek/mediatek,wdma.yaml | 5 + drivers/gpu/drm/mediatek/Makefile | 2 + drivers/gpu/drm/mediatek/mtk_crtc.c | 21 + drivers/gpu/drm/mediatek/mtk_ddp_comp.c | 64 +- drivers/gpu/drm/mediatek/mtk_ddp_comp.h | 9 + drivers/gpu/drm/mediatek/mtk_disp_drv.h | 29 + drivers/gpu/drm/mediatek/mtk_disp_dsc.c | 455 ++++++++++ drivers/gpu/drm/mediatek/mtk_disp_wdma.c | 628 ++++++++++++++ drivers/gpu/drm/mediatek/mtk_drm_drv.c | 10 + drivers/gpu/drm/mediatek/mtk_drm_drv.h | 2 + drivers/gpu/drm/mediatek/mtk_dsi.c | 801 ++++++++++++++---- 13 files changed, 1842 insertions(+), 190 deletions(-) create mode 100644 drivers/gpu/drm/mediatek/mtk_disp_dsc.c create mode 100644 drivers/gpu/drm/mediatek/mtk_disp_wdma.c -- 2.54.0
