Merge tag 'amd-drm-fixes-5.12-2021-02-24' of https://gitlab.freedesktop.org/agd5f...
[sfrench/cifs-2.6.git] / drivers / gpu / drm / amd / display / amdgpu_dm / amdgpu_dm.h
index f72930c36c224057df29cd6791d5937d3823d915..8bfe901cf237426cbcff64e857a8ed33396f855f 100644 (file)
@@ -92,6 +92,20 @@ struct dm_compressor_info {
        uint64_t gpu_addr;
 };
 
+/**
+ * struct vblank_workqueue - Works to be executed in a separate thread during vblank
+ * @mall_work: work for mall stutter
+ * @dm: amdgpu display manager device
+ * @otg_inst: otg instance of which vblank is being set
+ * @enable: true if enable vblank
+ */
+struct vblank_workqueue {
+       struct work_struct mall_work;
+       struct amdgpu_display_manager *dm;
+       int otg_inst;
+       bool enable;
+};
+
 /**
  * struct amdgpu_dm_backlight_caps - Information about backlight
  *
@@ -243,6 +257,15 @@ struct amdgpu_display_manager {
         */
        struct mutex audio_lock;
 
+       /**
+        * @vblank_work_lock:
+        *
+        * Guards access to deferred vblank work state.
+        */
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+       spinlock_t vblank_lock;
+#endif
+
        /**
         * @audio_component:
         *
@@ -321,6 +344,10 @@ struct amdgpu_display_manager {
        struct hdcp_workqueue *hdcp_workqueue;
 #endif
 
+#if defined(CONFIG_DRM_AMD_DC_DCN)
+       struct vblank_workqueue *vblank_workqueue;
+#endif
+
        struct drm_atomic_state *cached_state;
        struct dc_state *cached_dc_state;