mtk_drm_plane.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /*
  2. * Copyright (c) 2015 MediaTek Inc.
  3. * Author: CK Hu <ck.hu@mediatek.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. */
  14. #ifndef _MTK_DRM_PLANE_H_
  15. #define _MTK_DRM_PLANE_H_
  16. #include <drm/drm_crtc.h>
  17. #include <linux/types.h>
  18. struct mtk_drm_plane {
  19. struct drm_plane base;
  20. unsigned int idx;
  21. };
  22. struct mtk_plane_pending_state {
  23. bool config;
  24. bool enable;
  25. dma_addr_t addr;
  26. unsigned int pitch;
  27. unsigned int format;
  28. unsigned int x;
  29. unsigned int y;
  30. unsigned int width;
  31. unsigned int height;
  32. bool dirty;
  33. };
  34. struct mtk_plane_state {
  35. struct drm_plane_state base;
  36. struct mtk_plane_pending_state pending;
  37. };
  38. static inline struct mtk_drm_plane *to_mtk_plane(struct drm_plane *plane)
  39. {
  40. return container_of(plane, struct mtk_drm_plane, base);
  41. }
  42. static inline struct mtk_plane_state *
  43. to_mtk_plane_state(struct drm_plane_state *state)
  44. {
  45. return container_of(state, struct mtk_plane_state, base);
  46. }
  47. int mtk_plane_init(struct drm_device *dev, struct mtk_drm_plane *mtk_plane,
  48. unsigned long possible_crtcs, enum drm_plane_type type,
  49. unsigned int zpos);
  50. #endif