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

From: CK Hu (胡俊光)
Date: Thu Oct 26 2023 - 04:29:54 EST


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?

>
> Regards,
> Shawn