Re: [PATCH 1/1] drm/mediatek: Fix errors when reporting rotation capability

From: Shawn Sung (宋孝謙)
Date: Thu Oct 26 2023 - 21:31:14 EST


Hi CK,

On Thu, 2023-10-26 at 08:29 +0000, CK Hu (胡俊光) wrote:
> Hi, Hsiao-chien:
>
> On Thu, 2023-10-26 at 08:27 +0000, Shawn Sung (宋孝謙) wrote:
> > Hi CK,
> >
> > On Thu, 2023-10-26 at 01:53 +0000, CK Hu (胡俊光) wrote:
> > > Hi, Hsiao-chien:
> > >
> > > On Mon, 2023-09-18 at 15:10 +0800, Hsiao Chien Sung wrote:
> > > > For CRTCs that doesn't support rotation should still return
> > > > DRM_MODE_ROTATE_0. Since both OVL and OVL adaptor on MTK chip
> > > > doesn't support rotation, return the capability of the
> > > > hardware accordingly.
> > > >
> > > > Fixes: df4444577118 ("drm/mediatek: Support 180 degree
> > > > rotation")
> > > > Fixes: 84d805753983 ("drm/mediatek: Support reflect-y plane
> > > > rotation")
> > > >
> > > > Signed-off-by: Hsiao Chien Sung <shawn.sung@xxxxxxxxxxxx>
> > > > ---
> > > > drivers/gpu/drm/mediatek/mtk_disp_drv.h | 1 +
> > > > drivers/gpu/drm/mediatek/mtk_disp_ovl.c | 8 +-------
> > > > drivers/gpu/drm/mediatek/mtk_disp_ovl_adaptor.c | 5 +++++
> > > > drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c | 1 +
> > > > drivers/gpu/drm/mediatek/mtk_drm_plane.c | 2 +-
> > > > 5 files changed, 9 insertions(+), 8 deletions(-)
> > > >
> > > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> > > > b/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> > > > index 2254038519e1..f4c7dba8f73d 100644
> > > > --- a/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> > > > +++ b/drivers/gpu/drm/mediatek/mtk_disp_drv.h
> > > > @@ -120,6 +120,7 @@ void
> > > > mtk_ovl_adaptor_register_vblank_cb(struct
> > > > device *dev, void (*vblank_cb)(vo
> > > > void mtk_ovl_adaptor_unregister_vblank_cb(struct device *dev);
> > > > void mtk_ovl_adaptor_enable_vblank(struct device *dev);
> > > > void mtk_ovl_adaptor_disable_vblank(struct device *dev);
> > > > +unsigned int mtk_ovl_adaptor_supported_rotations(struct device
> > > > *dev);
> > > > void mtk_ovl_adaptor_start(struct device *dev);
> > > > void mtk_ovl_adaptor_stop(struct device *dev);
> > > > unsigned int mtk_ovl_adaptor_layer_nr(struct device *dev);
> > > > diff --git a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> > > > b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> > > > index 2bffe4245466..5fd1f6ae41f3 100644
> > > > --- a/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> > > > +++ b/drivers/gpu/drm/mediatek/mtk_disp_ovl.c
> > > > @@ -288,8 +288,7 @@ unsigned int mtk_ovl_layer_nr(struct device
> > > > *dev)
> > > >
> > > > unsigned int mtk_ovl_supported_rotations(struct device *dev)
> > > > {
> > > > - return DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_180 |
> > > > - DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y;
> > > > + return DRM_MODE_ROTATE_0 | DRM_MODE_REFLECT_X |
> > > > DRM_MODE_REFLECT_Y;
> > >
> > > If ovl enable reflect_x and reflect_y at the same time, it is
> > > rotate
> > > 180, right?
> > >
> > > Regards,
> > > CK
> >
> > Yes, if the user do such an operation, the result is equal to 180
> > degrees rotation.
>
> So ovl support rotate 180, why do you remove this capability?
>

Thank you for checking.
Will run IGT test to verify again.

Best,
Shawn