Blame view

include/drm/drm_plane_helper.h 3.11 KB
c103d1cfb   Matt Roper   drm: Add primary ...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  /*
   * Copyright (C) 2011-2013 Intel Corporation
   *
   * Permission is hereby granted, free of charge, to any person obtaining a
   * copy of this software and associated documentation files (the "Software"),
   * to deal in the Software without restriction, including without limitation
   * the rights to use, copy, modify, merge, publish, distribute, sublicense,
   * and/or sell copies of the Software, and to permit persons to whom the
   * Software is furnished to do so, subject to the following conditions:
   *
   * The above copyright notice and this permission notice (including the next
   * paragraph) shall be included in all copies or substantial portions of the
   * Software.
   *
   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
   * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
   * SOFTWARE.
   */
  
  #ifndef DRM_PLANE_HELPER_H
  #define DRM_PLANE_HELPER_H
7daf8d54c   Matt Roper   drm/plane-helper:...
26
  #include <drm/drm_rect.h>
3cb9ae4fd   Daniel Vetter   drm: Move drm_crt...
27
  #include <drm/drm_crtc.h>
092d01dae   Daniel Vetter   drm: Reorganize h...
28
  #include <drm/drm_modeset_helper_vtables.h>
1de72faf1   Daniel Vetter   drm/kms-helpers: ...
29
  #include <drm/drm_modeset_helper.h>
7daf8d54c   Matt Roper   drm/plane-helper:...
30
31
32
33
34
35
36
37
38
  
  /*
   * Drivers that don't allow primary plane scaling may pass this macro in place
   * of the min/max scale parameters of the update checker function.
   *
   * Due to src being in 16.16 fixed point and dest being in integer pixels,
   * 1<<16 represents no scaling.
   */
  #define DRM_PLANE_HELPER_NO_SCALING (1<<16)
df86af913   Ville Syrjälä   drm/plane-helper:...
39
40
41
42
43
  int drm_plane_helper_check_state(struct drm_plane_state *state,
  				 const struct drm_rect *clip,
  				 int min_scale, int max_scale,
  				 bool can_position,
  				 bool can_update_disabled);
b54a0935b   Thierry Reding   drm/plane: Remove...
44
45
46
47
48
49
  int drm_plane_helper_check_update(struct drm_plane *plane,
  				  struct drm_crtc *crtc,
  				  struct drm_framebuffer *fb,
  				  struct drm_rect *src,
  				  struct drm_rect *dest,
  				  const struct drm_rect *clip,
9b8b013dd   Ville Syrjälä   drm: Deal with ro...
50
  				  unsigned int rotation,
b54a0935b   Thierry Reding   drm/plane: Remove...
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  				  int min_scale,
  				  int max_scale,
  				  bool can_position,
  				  bool can_update_disabled,
  				  bool *visible);
  int drm_primary_helper_update(struct drm_plane *plane,
  			      struct drm_crtc *crtc,
  			      struct drm_framebuffer *fb,
  			      int crtc_x, int crtc_y,
  			      unsigned int crtc_w, unsigned int crtc_h,
  			      uint32_t src_x, uint32_t src_y,
  			      uint32_t src_w, uint32_t src_h);
  int drm_primary_helper_disable(struct drm_plane *plane);
  void drm_primary_helper_destroy(struct drm_plane *plane);
c103d1cfb   Matt Roper   drm: Add primary ...
65
  extern const struct drm_plane_funcs drm_primary_helper_funcs;
c103d1cfb   Matt Roper   drm: Add primary ...
66

acf24a395   Daniel Vetter   drm/plane-helper:...
67
68
69
70
71
72
73
  int drm_plane_helper_update(struct drm_plane *plane, struct drm_crtc *crtc,
  			    struct drm_framebuffer *fb,
  			    int crtc_x, int crtc_y,
  			    unsigned int crtc_w, unsigned int crtc_h,
  			    uint32_t src_x, uint32_t src_y,
  			    uint32_t src_w, uint32_t src_h);
  int drm_plane_helper_disable(struct drm_plane *plane);
2f324b42b   Daniel Vetter   drm/crtc-helper: ...
74
75
76
77
  /* For use by drm_crtc_helper.c */
  int drm_plane_helper_commit(struct drm_plane *plane,
  			    struct drm_plane_state *plane_state,
  			    struct drm_framebuffer *old_fb);
c103d1cfb   Matt Roper   drm: Add primary ...
78
  #endif