Merge tag 'drm-misc-next-fixes-2021-09-09' of git://anongit.freedesktop.org/drm/drm...
[linux-2.6-microblaze.git] / drivers / gpu / drm / tegra / dc.h
index 5e13f1c..f0cb691 100644 (file)
@@ -15,6 +15,8 @@
 
 struct tegra_output;
 
+#define TEGRA_DC_LEGACY_PLANES_NUM     7
+
 struct tegra_dc_state {
        struct drm_crtc_state base;
 
@@ -33,11 +35,22 @@ static inline struct tegra_dc_state *to_dc_state(struct drm_crtc_state *state)
        return NULL;
 }
 
+static inline const struct tegra_dc_state *
+to_const_dc_state(const struct drm_crtc_state *state)
+{
+       return to_dc_state((struct drm_crtc_state *)state);
+}
+
 struct tegra_dc_stats {
        unsigned long frames;
        unsigned long vblank;
        unsigned long underflow;
        unsigned long overflow;
+
+       unsigned long frames_total;
+       unsigned long vblank_total;
+       unsigned long underflow_total;
+       unsigned long overflow_total;
 };
 
 struct tegra_windowgroup_soc {
@@ -66,7 +79,9 @@ struct tegra_dc_soc_info {
        unsigned int num_overlay_formats;
        const u64 *modifiers;
        bool has_win_a_without_filters;
+       bool has_win_b_vfilter_mem_client;
        bool has_win_c_without_vert_filter;
+       bool plane_tiled_memory_bandwidth_x2;
 };
 
 struct tegra_dc {
@@ -152,6 +167,8 @@ int tegra_dc_state_setup_clock(struct tegra_dc *dc,
                               struct drm_crtc_state *crtc_state,
                               struct clk *clk, unsigned long pclk,
                               unsigned int div);
+void tegra_crtc_atomic_post_commit(struct drm_crtc *crtc,
+                                  struct drm_atomic_state *state);
 
 /* from rgb.c */
 int tegra_dc_rgb_probe(struct tegra_dc *dc);