1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright © 2020 Intel Corporation
4 */
5
6#ifndef _I9XX_PLANE_H_
7#define _I9XX_PLANE_H_
8
9#include <linux/types.h>
10
11enum pipe;
12struct drm_framebuffer;
13struct intel_crtc;
14struct intel_display;
15struct intel_initial_plane_config;
16struct intel_plane;
17struct intel_plane_state;
18
19#ifdef I915
20unsigned int i965_plane_max_stride(struct intel_plane *plane,
21 u32 pixel_format, u64 modifier,
22 unsigned int rotation);
23unsigned int vlv_plane_min_alignment(struct intel_plane *plane,
24 const struct drm_framebuffer *fb,
25 int colot_plane);
26int i9xx_check_plane_surface(struct intel_plane_state *plane_state);
27u32 i965_plane_surf_offset(const struct intel_plane_state *plane_state);
28
29struct intel_plane *
30intel_primary_plane_create(struct intel_display *display, enum pipe pipe);
31
32void i9xx_get_initial_plane_config(struct intel_crtc *crtc,
33 struct intel_initial_plane_config *plane_config);
34bool i9xx_fixup_initial_plane_config(struct intel_crtc *crtc,
35 const struct intel_initial_plane_config *plane_config);
36#else
37static inline unsigned int i965_plane_max_stride(struct intel_plane *plane,
38 u32 pixel_format, u64 modifier,
39 unsigned int rotation)
40{
41 return 0;
42}
43static inline int i9xx_check_plane_surface(struct intel_plane_state *plane_state)
44{
45 return 0;
46}
47static inline struct intel_plane *
48intel_primary_plane_create(struct intel_display *display, int pipe)
49{
50 return NULL;
51}
52static inline void i9xx_get_initial_plane_config(struct intel_crtc *crtc,
53 struct intel_initial_plane_config *plane_config)
54{
55}
56static inline bool i9xx_fixup_initial_plane_config(struct intel_crtc *crtc,
57 const struct intel_initial_plane_config *plane_config)
58{
59 return false;
60}
61#endif
62
63#endif
64