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

Shawn Sung (宋孝謙) Shawn.Sung at mediatek.com
Thu Oct 26 08:27:36 UTC 2023


An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20231026/bb933137/attachment.htm>
-------------- next part --------------
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 at mediatek.com>
> > ---
> >  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 


More information about the dri-devel mailing list