lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 18 Sep 2022 12:32:22 +0800 From: Chun-Kuang Hu <chunkuang.hu@...nel.org> To: Allen-KH Cheng <allen-kh.cheng@...iatek.com> Cc: Chun-Kuang Hu <chunkuang.hu@...nel.org>, Philipp Zabel <p.zabel@...gutronix.de>, David Airlie <airlied@...ux.ie>, Daniel Vetter <daniel@...ll.ch>, Matthias Brugger <matthias.bgg@...il.com>, AngeloGioacchino Del Regno <angelogioacchino.delregno@...labora.com>, Project_Global_Chrome_Upstream_Group <Project_Global_Chrome_Upstream_Group@...iatek.com>, DRI Development <dri-devel@...ts.freedesktop.org>, Linux ARM <linux-arm-kernel@...ts.infradead.org>, linux-kernel <linux-kernel@...r.kernel.org>, "moderated list:ARM/Mediatek SoC support" <linux-mediatek@...ts.infradead.org>, Xinlei Lee <xinlei.lee@...iatek.com> Subject: Re: [PATCH v2] drm: mediatek: Fix display vblank timeout when disable dsi Hi, Allen: Allen-KH Cheng <allen-kh.cheng@...iatek.com> 於 2022年9月14日 週三 晚上10:00寫道: > > From: Xinlei Lee <xinlei.lee@...iatek.com> > > Dsi is turned off at bridge.disable, causing crtc to wait for vblank > timeout. It is necessary to add count protection to turn off dsi and > turn off at post_disable. If turn off dsi in post_disable(), you should turn on dsi in pre_enable(). There is another patch fix this problem [1], do you have any comment on that patch? [1] http://lists.infradead.org/pipermail/linux-mediatek/2022-August/046713.html Regards, Chun-Kuang. > > Fixes: cde7e2e35c28 ("drm/mediatek: Separate poweron/poweroff from enable/disable and define new funcs") > Signed-off-by: Xinlei Lee <xinlei.lee@...iatek.com> > Co-developed-by: Allen-KH Cheng <allen-kh.cheng@...iatek.com> > Signed-off-by: Allen-KH Cheng <allen-kh.cheng@...iatek.com> > --- > Change in v1: > * Rebase to kernel/git/chunkuang.hu/linux.git, mediatek-drm-fixes > [Allen-KH Cheng <allen-kh.cheng@...iatek.com>] > --- > --- > drivers/gpu/drm/mediatek/mtk_dsi.c | 15 ++++++--------- > 1 file changed, 6 insertions(+), 9 deletions(-) > > diff --git a/drivers/gpu/drm/mediatek/mtk_dsi.c b/drivers/gpu/drm/mediatek/mtk_dsi.c > index 5b624e0f5b0a..e30f4244c001 100644 > --- a/drivers/gpu/drm/mediatek/mtk_dsi.c > +++ b/drivers/gpu/drm/mediatek/mtk_dsi.c > @@ -768,14 +768,6 @@ static void mtk_dsi_bridge_mode_set(struct drm_bridge *bridge, > drm_display_mode_to_videomode(adjusted, &dsi->vm); > } > > -static void mtk_dsi_bridge_atomic_disable(struct drm_bridge *bridge, > - struct drm_bridge_state *old_bridge_state) > -{ > - struct mtk_dsi *dsi = bridge_to_dsi(bridge); > - > - mtk_output_dsi_disable(dsi); > -} > - > static void mtk_dsi_bridge_atomic_enable(struct drm_bridge *bridge, > struct drm_bridge_state *old_bridge_state) > { > @@ -803,13 +795,15 @@ static void mtk_dsi_bridge_atomic_post_disable(struct drm_bridge *bridge, > { > struct mtk_dsi *dsi = bridge_to_dsi(bridge); > > + if (dsi->refcount == 1) > + mtk_output_dsi_disable(dsi); > + > mtk_dsi_poweroff(dsi); > } > > static const struct drm_bridge_funcs mtk_dsi_bridge_funcs = { > .attach = mtk_dsi_bridge_attach, > .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, > - .atomic_disable = mtk_dsi_bridge_atomic_disable, > .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, > .atomic_enable = mtk_dsi_bridge_atomic_enable, > .atomic_pre_enable = mtk_dsi_bridge_atomic_pre_enable, > @@ -829,6 +823,9 @@ void mtk_dsi_ddp_stop(struct device *dev) > { > struct mtk_dsi *dsi = dev_get_drvdata(dev); > > + if (dsi->refcount == 1) > + mtk_output_dsi_disable(dsi); > + > mtk_dsi_poweroff(dsi); > } > > -- > 2.18.0 >
Powered by blists - more mailing lists