aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/i915_drv.h
diff options
context:
space:
mode:
authorWang Xingchao <xingchao.wang@linux.intel.com>2013-05-30 10:07:11 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-06-06 11:32:16 -0400
commita38911a3fede294e2adfd2deea8104dfbbd760c5 (patch)
tree9262c62e16108554fb626cb04189d17e449bb938 /drivers/gpu/drm/i915/i915_drv.h
parent99a2008d0b32d72dfc2a54e7be1eb698dd2e3bd6 (diff)
i915/drm: Add private api for power well usage
Haswell Display audio depends on power well in graphic side, it should request power well before use it and release power well after use. I915 will not shutdown power well if it detects audio is using. This patch protects display audio crash for Intel Haswell C3 stepping board. Signed-off-by: Wang Xingchao <xingchao.wang@linux.intel.com> Reviewed-by: Takashi Iwai <tiwai@suse.de> Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_drv.h')
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 215aa63e3f47..87f7f88b1030 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -740,6 +740,15 @@ struct intel_ilk_power_mgmt {
740 struct drm_i915_gem_object *renderctx; 740 struct drm_i915_gem_object *renderctx;
741}; 741};
742 742
743/* Power well structure for haswell */
744struct i915_power_well {
745 struct drm_device *device;
746 spinlock_t lock;
747 /* power well enable/disable usage count */
748 int count;
749 int i915_request;
750};
751
743struct i915_dri1_state { 752struct i915_dri1_state {
744 unsigned allow_batchbuffer : 1; 753 unsigned allow_batchbuffer : 1;
745 u32 __iomem *gfx_hws_cpu_addr; 754 u32 __iomem *gfx_hws_cpu_addr;
@@ -1099,6 +1108,9 @@ typedef struct drm_i915_private {
1099 * mchdev_lock in intel_pm.c */ 1108 * mchdev_lock in intel_pm.c */
1100 struct intel_ilk_power_mgmt ips; 1109 struct intel_ilk_power_mgmt ips;
1101 1110
1111 /* Haswell power well */
1112 struct i915_power_well power_well;
1113
1102 enum no_fbc_reason no_fbc_reason; 1114 enum no_fbc_reason no_fbc_reason;
1103 1115
1104 struct drm_mm_node *compressed_fb; 1116 struct drm_mm_node *compressed_fb;