linux/drivers/staging/imx-drm/ipuv3-plane.h
<<
>>
Prefs
   1#ifndef __IPUV3_PLANE_H__
   2#define __IPUV3_PLANE_H__
   3
   4#include <drm/drm_crtc.h> /* drm_plane */
   5
   6struct drm_plane;
   7struct drm_device;
   8struct ipu_soc;
   9struct drm_crtc;
  10struct drm_framebuffer;
  11
  12struct ipuv3_channel;
  13struct dmfc_channel;
  14struct ipu_dp;
  15
  16struct ipu_plane {
  17        struct drm_plane        base;
  18
  19        struct ipu_soc          *ipu;
  20        struct ipuv3_channel    *ipu_ch;
  21        struct dmfc_channel     *dmfc;
  22        struct ipu_dp           *dp;
  23
  24        int                     dma;
  25        int                     dp_flow;
  26
  27        int                     x;
  28        int                     y;
  29
  30        bool                    enabled;
  31};
  32
  33struct ipu_plane *ipu_plane_init(struct drm_device *dev, struct ipu_soc *ipu,
  34                                 int dma, int dp, unsigned int possible_crtcs,
  35                                 bool priv);
  36
  37/* Init IDMAC, DMFC, DP */
  38int ipu_plane_mode_set(struct ipu_plane *plane, struct drm_crtc *crtc,
  39                       struct drm_display_mode *mode,
  40                       struct drm_framebuffer *fb, int crtc_x, int crtc_y,
  41                       unsigned int crtc_w, unsigned int crtc_h,
  42                       uint32_t src_x, uint32_t src_y, uint32_t src_w,
  43                       uint32_t src_h);
  44
  45void ipu_plane_enable(struct ipu_plane *plane);
  46void ipu_plane_disable(struct ipu_plane *plane);
  47int ipu_plane_set_base(struct ipu_plane *plane, struct drm_framebuffer *fb,
  48                       int x, int y);
  49
  50int ipu_plane_get_resources(struct ipu_plane *plane);
  51void ipu_plane_put_resources(struct ipu_plane *plane);
  52
  53int ipu_plane_irq(struct ipu_plane *plane);
  54
  55#endif
  56