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

From: Shawn Sung (宋孝謙)
Date: Thu Oct 26 2023 - 04:28:00 EST


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.

Regards,
Shawn