drm/i915: don't block resume on fb console resume v2
[deliverable/linux.git] / drivers / gpu / drm / i915 / i915_drv.h
index abf87c6977e8c0ed4bf3958b7bae6345b283cddb..f8fa63deb92ca17864e5770d0e1b044f77d3d4d8 100644 (file)
@@ -581,6 +581,27 @@ struct intel_ilk_power_mgmt {
 
        int c_m;
        int r_t;
+
+       struct drm_i915_gem_object *pwrctx;
+       struct drm_i915_gem_object *renderctx;
+};
+
+struct i915_dri1_state {
+       unsigned allow_batchbuffer : 1;
+       u32 __iomem *gfx_hws_cpu_addr;
+
+       unsigned int cpp;
+       int back_offset;
+       int front_offset;
+       int current_page;
+       int page_flipping;
+
+       uint32_t counter;
+};
+
+struct intel_l3_parity {
+       u32 *remap_info;
+       struct work_struct error_work;
 };
 
 typedef struct drm_i915_private {
@@ -617,10 +638,6 @@ typedef struct drm_i915_private {
        uint32_t next_seqno;
 
        drm_dma_handle_t *status_page_dmah;
-       uint32_t counter;
-       struct drm_i915_gem_object *pwrctx;
-       struct drm_i915_gem_object *renderctx;
-
        struct resource mch_res;
 
        atomic_t irq_received;
@@ -748,8 +765,6 @@ typedef struct drm_i915_private {
                /** PPGTT used for aliasing the PPGTT with the GTT */
                struct i915_hw_ppgtt *aliasing_ppgtt;
 
-               u32 *l3_remap_info;
-
                struct shrinker inactive_shrinker;
 
                /**
@@ -827,19 +842,6 @@ typedef struct drm_i915_private {
                u32 object_count;
        } mm;
 
-       /* Old dri1 support infrastructure, beware the dragons ya fools entering
-        * here! */
-       struct {
-               unsigned allow_batchbuffer : 1;
-               u32 __iomem *gfx_hws_cpu_addr;
-
-               unsigned int cpp;
-               int back_offset;
-               int front_offset;
-               int current_page;
-               int page_flipping;
-       } dri1;
-
        /* Kernel Modesetting */
 
        struct sdvo_device_mapping sdvo_mappings[2];
@@ -866,6 +868,8 @@ typedef struct drm_i915_private {
 
        bool mchbar_need_disable;
 
+       struct intel_l3_parity l3_parity;
+
        /* gen6+ rps state */
        struct intel_gen6_power_mgmt rps;
 
@@ -883,16 +887,25 @@ typedef struct drm_i915_private {
        /* list of fbdev register on this device */
        struct intel_fbdev *fbdev;
 
+       /*
+        * The console may be contended at resume, but we don't
+        * want it to block on it.
+        */
+       struct work_struct console_resume_work;
+
        struct backlight_device *backlight;
 
        struct drm_property *broadcast_rgb_property;
        struct drm_property *force_audio_property;
 
-       struct work_struct parity_error_work;
        bool hw_contexts_disabled;
        uint32_t hw_context_size;
 
        struct i915_suspend_saved_registers regfile;
+
+       /* Old dri1 support infrastructure, beware the dragons ya fools entering
+        * here! */
+       struct i915_dri1_state dri1;
 } drm_i915_private_t;
 
 /* Iterate over initialised rings */
@@ -1266,6 +1279,7 @@ extern unsigned long i915_mch_val(struct drm_i915_private *dev_priv);
 extern unsigned long i915_gfx_val(struct drm_i915_private *dev_priv);
 extern void i915_update_gfx_val(struct drm_i915_private *dev_priv);
 
+extern void intel_console_resume(struct work_struct *work);
 
 /* i915_irq.c */
 void i915_hangcheck_elapsed(unsigned long data);
This page took 0.026253 seconds and 5 git commands to generate.