root/drivers/gpu/drm/rcar-du/rcar_du_vsp.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. to_rcar_vsp_plane
  2. to_rcar_vsp_plane_state
  3. rcar_du_vsp_init
  4. rcar_du_vsp_enable
  5. rcar_du_vsp_disable
  6. rcar_du_vsp_atomic_begin
  7. rcar_du_vsp_atomic_flush
  8. rcar_du_vsp_map_fb
  9. rcar_du_vsp_unmap_fb

   1 /* SPDX-License-Identifier: GPL-2.0+ */
   2 /*
   3  * rcar_du_vsp.h  --  R-Car Display Unit VSP-Based Compositor
   4  *
   5  * Copyright (C) 2015 Renesas Electronics Corporation
   6  *
   7  * Contact: Laurent Pinchart (laurent.pinchart@ideasonboard.com)
   8  */
   9 
  10 #ifndef __RCAR_DU_VSP_H__
  11 #define __RCAR_DU_VSP_H__
  12 
  13 #include <drm/drm_plane.h>
  14 
  15 struct drm_framebuffer;
  16 struct rcar_du_format_info;
  17 struct rcar_du_vsp;
  18 struct sg_table;
  19 
  20 struct rcar_du_vsp_plane {
  21         struct drm_plane plane;
  22         struct rcar_du_vsp *vsp;
  23         unsigned int index;
  24 };
  25 
  26 struct rcar_du_vsp {
  27         unsigned int index;
  28         struct device *vsp;
  29         struct rcar_du_device *dev;
  30         struct rcar_du_vsp_plane *planes;
  31         unsigned int num_planes;
  32 };
  33 
  34 static inline struct rcar_du_vsp_plane *to_rcar_vsp_plane(struct drm_plane *p)
  35 {
  36         return container_of(p, struct rcar_du_vsp_plane, plane);
  37 }
  38 
  39 /**
  40  * struct rcar_du_vsp_plane_state - Driver-specific plane state
  41  * @state: base DRM plane state
  42  * @format: information about the pixel format used by the plane
  43  * @sg_tables: scatter-gather tables for the frame buffer memory
  44  */
  45 struct rcar_du_vsp_plane_state {
  46         struct drm_plane_state state;
  47 
  48         const struct rcar_du_format_info *format;
  49         struct sg_table sg_tables[3];
  50 };
  51 
  52 static inline struct rcar_du_vsp_plane_state *
  53 to_rcar_vsp_plane_state(struct drm_plane_state *state)
  54 {
  55         return container_of(state, struct rcar_du_vsp_plane_state, state);
  56 }
  57 
  58 #ifdef CONFIG_DRM_RCAR_VSP
  59 int rcar_du_vsp_init(struct rcar_du_vsp *vsp, struct device_node *np,
  60                      unsigned int crtcs);
  61 void rcar_du_vsp_enable(struct rcar_du_crtc *crtc);
  62 void rcar_du_vsp_disable(struct rcar_du_crtc *crtc);
  63 void rcar_du_vsp_atomic_begin(struct rcar_du_crtc *crtc);
  64 void rcar_du_vsp_atomic_flush(struct rcar_du_crtc *crtc);
  65 int rcar_du_vsp_map_fb(struct rcar_du_vsp *vsp, struct drm_framebuffer *fb,
  66                        struct sg_table sg_tables[3]);
  67 void rcar_du_vsp_unmap_fb(struct rcar_du_vsp *vsp, struct drm_framebuffer *fb,
  68                           struct sg_table sg_tables[3]);
  69 #else
  70 static inline int rcar_du_vsp_init(struct rcar_du_vsp *vsp,
  71                                    struct device_node *np,
  72                                    unsigned int crtcs)
  73 {
  74         return -ENXIO;
  75 }
  76 static inline void rcar_du_vsp_enable(struct rcar_du_crtc *crtc) { };
  77 static inline void rcar_du_vsp_disable(struct rcar_du_crtc *crtc) { };
  78 static inline void rcar_du_vsp_atomic_begin(struct rcar_du_crtc *crtc) { };
  79 static inline void rcar_du_vsp_atomic_flush(struct rcar_du_crtc *crtc) { };
  80 static inline int rcar_du_vsp_map_fb(struct rcar_du_vsp *vsp,
  81                                      struct drm_framebuffer *fb,
  82                                      struct sg_table sg_tables[3])
  83 {
  84         return -ENXIO;
  85 }
  86 static inline void rcar_du_vsp_unmap_fb(struct rcar_du_vsp *vsp,
  87                                         struct drm_framebuffer *fb,
  88                                         struct sg_table sg_tables[3])
  89 {
  90 }
  91 #endif
  92 
  93 #endif /* __RCAR_DU_VSP_H__ */

/* [<][>][^][v][top][bottom][index][help] */