Message ID | 8c001c8e70d93d64d3ee6bf7dc5078d2783d4e32.1734300345.git.daniel@makrotopia.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drm/mediatek: only touch DISP_REG_OVL_PITCH_MSB if AFBC is supported | expand |
Il 15/12/24 23:09, Daniel Golle ha scritto: > Touching DISP_REG_OVL_PITCH_MSB leads to video overlay on MT2701, MT7623N > and probably other older SoCs being broken. > > Only touching it on hardware which actually supports AFBC like it was > before commit c410fa9b07c3 ("drm/mediatek: Add AFBC support to Mediatek > DRM driver") fixes it. > > Fixes: c410fa9b07c3 ("drm/mediatek: Add AFBC support to Mediatek DRM driver") > Cc: stable@vger.kernel.org > Signed-off-by: Daniel Golle <daniel@makrotopia.org> > --- > drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > index f731d4fbe8b6..321b40a387cd 100644 > --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c > @@ -545,7 +545,7 @@ void mtk_ovl_layer_config(struct device *dev, unsigned int idx, > &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_PITCH_MSB(idx)); > mtk_ddp_write_relaxed(cmdq_pkt, hdr_pitch, &ovl->cmdq_reg, ovl->regs, > DISP_REG_OVL_HDR_PITCH(ovl, idx)); > - } else { > + } else if (ovl->data->supports_afbc) { > mtk_ddp_write_relaxed(cmdq_pkt, > overlay_pitch.split_pitch.msb, > &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_PITCH_MSB(idx)); At this point you should just move the block over a new function.... if (ovl->data->supports_afbc) mtk_ovl_afbc_layer_config(ovl, cmdq_pkt, idx, is_afbc); static void mtk_ovl_afbc_layer_config( .... ) { if (is_afbc) { ..... } else { ..... } } Cheers, Angelo
diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c index f731d4fbe8b6..321b40a387cd 100644 --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c @@ -545,7 +545,7 @@ void mtk_ovl_layer_config(struct device *dev, unsigned int idx, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_PITCH_MSB(idx)); mtk_ddp_write_relaxed(cmdq_pkt, hdr_pitch, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_HDR_PITCH(ovl, idx)); - } else { + } else if (ovl->data->supports_afbc) { mtk_ddp_write_relaxed(cmdq_pkt, overlay_pitch.split_pitch.msb, &ovl->cmdq_reg, ovl->regs, DISP_REG_OVL_PITCH_MSB(idx));
Touching DISP_REG_OVL_PITCH_MSB leads to video overlay on MT2701, MT7623N and probably other older SoCs being broken. Only touching it on hardware which actually supports AFBC like it was before commit c410fa9b07c3 ("drm/mediatek: Add AFBC support to Mediatek DRM driver") fixes it. Fixes: c410fa9b07c3 ("drm/mediatek: Add AFBC support to Mediatek DRM driver") Cc: stable@vger.kernel.org Signed-off-by: Daniel Golle <daniel@makrotopia.org> --- drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)