diff options
author | Wang Xingchao <xingchao.wang@linux.intel.com> | 2013-05-30 10:07:11 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2013-06-06 11:32:16 -0400 |
commit | a38911a3fede294e2adfd2deea8104dfbbd760c5 (patch) | |
tree | 9262c62e16108554fb626cb04189d17e449bb938 /drivers/gpu/drm/i915/i915_drv.h | |
parent | 99a2008d0b32d72dfc2a54e7be1eb698dd2e3bd6 (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.h | 12 |
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 */ | ||
744 | struct 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 | |||
743 | struct i915_dri1_state { | 752 | struct 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; |