Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
0cdab21f
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
0cdab21f
编写于
12月 05, 2010
作者:
C
Chris Wilson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/i915: Uncouple render/power ctx before suspending
Signed-off-by:
N
Chris Wilson
<
chris@chris-wilson.co.uk
>
上级
9b3826bf
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
36 addition
and
26 deletion
+36
-26
drivers/gpu/drm/i915/i915_suspend.c
drivers/gpu/drm/i915/i915_suspend.c
+3
-1
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_display.c
+31
-24
drivers/gpu/drm/i915/intel_drv.h
drivers/gpu/drm/i915/intel_drv.h
+2
-1
未找到文件。
drivers/gpu/drm/i915/i915_suspend.c
浏览文件 @
0cdab21f
...
...
@@ -820,6 +820,8 @@ int i915_save_state(struct drm_device *dev)
if
(
HAS_PCH_SPLIT
(
dev
))
ironlake_disable_drps
(
dev
);
intel_disable_clock_gating
(
dev
);
/* Cache mode state */
dev_priv
->
saveCACHE_MODE_0
=
I915_READ
(
CACHE_MODE_0
);
...
...
@@ -863,7 +865,7 @@ int i915_restore_state(struct drm_device *dev)
}
/* Clock gating state */
intel_
init
_clock_gating
(
dev
);
intel_
enable
_clock_gating
(
dev
);
if
(
HAS_PCH_SPLIT
(
dev
))
{
ironlake_enable_drps
(
dev
);
...
...
drivers/gpu/drm/i915/intel_display.c
浏览文件 @
0cdab21f
...
...
@@ -5828,7 +5828,7 @@ void intel_init_emon(struct drm_device *dev)
dev_priv
->
corr
=
(
lcfuse
&
LCFUSE_HIV_MASK
);
}
void
intel_
init
_clock_gating
(
struct
drm_device
*
dev
)
void
intel_
enable
_clock_gating
(
struct
drm_device
*
dev
)
{
struct
drm_i915_private
*
dev_priv
=
dev
->
dev_private
;
...
...
@@ -5985,6 +5985,33 @@ void intel_init_clock_gating(struct drm_device *dev)
}
}
void
intel_disable_clock_gating
(
struct
drm_device
*
dev
)
{
struct
drm_i915_private
*
dev_priv
=
dev
->
dev_private
;
if
(
dev_priv
->
renderctx
)
{
struct
drm_i915_gem_object
*
obj
=
dev_priv
->
renderctx
;
I915_WRITE
(
CCID
,
0
);
POSTING_READ
(
CCID
);
i915_gem_object_unpin
(
obj
);
drm_gem_object_unreference
(
&
obj
->
base
);
dev_priv
->
renderctx
=
NULL
;
}
if
(
dev_priv
->
pwrctx
)
{
struct
drm_i915_gem_object
*
obj
=
dev_priv
->
pwrctx
;
I915_WRITE
(
PWRCTXA
,
0
);
POSTING_READ
(
PWRCTXA
);
i915_gem_object_unpin
(
obj
);
drm_gem_object_unreference
(
&
obj
->
base
);
dev_priv
->
pwrctx
=
NULL
;
}
}
/* Set up chip specific display functions */
static
void
intel_init_display
(
struct
drm_device
*
dev
)
{
...
...
@@ -6211,7 +6238,7 @@ void intel_modeset_init(struct drm_device *dev)
intel_setup_outputs
(
dev
);
intel_
init
_clock_gating
(
dev
);
intel_
enable
_clock_gating
(
dev
);
/* Just disable it once at startup */
i915_disable_vga
(
dev
);
...
...
@@ -6252,31 +6279,11 @@ void intel_modeset_cleanup(struct drm_device *dev)
if
(
dev_priv
->
display
.
disable_fbc
)
dev_priv
->
display
.
disable_fbc
(
dev
);
if
(
dev_priv
->
renderctx
)
{
struct
drm_i915_gem_object
*
obj
=
dev_priv
->
renderctx
;
I915_WRITE
(
CCID
,
obj
->
gtt_offset
&~
CCID_EN
);
POSTING_READ
(
CCID
);
i915_gem_object_unpin
(
obj
);
drm_gem_object_unreference
(
&
obj
->
base
);
dev_priv
->
renderctx
=
NULL
;
}
if
(
dev_priv
->
pwrctx
)
{
struct
drm_i915_gem_object
*
obj
=
dev_priv
->
pwrctx
;
I915_WRITE
(
PWRCTXA
,
obj
->
gtt_offset
&~
PWRCTX_EN
);
POSTING_READ
(
PWRCTXA
);
i915_gem_object_unpin
(
obj
);
drm_gem_object_unreference
(
&
obj
->
base
);
dev_priv
->
pwrctx
=
NULL
;
}
if
(
IS_IRONLAKE_M
(
dev
))
ironlake_disable_drps
(
dev
);
intel_disable_clock_gating
(
dev
);
mutex_unlock
(
&
dev
->
struct_mutex
);
/* Disable the irq before mode object teardown, for the irq might
...
...
drivers/gpu/drm/i915/intel_drv.h
浏览文件 @
0cdab21f
...
...
@@ -294,7 +294,8 @@ extern void intel_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
u16
blue
,
int
regno
);
extern
void
intel_crtc_fb_gamma_get
(
struct
drm_crtc
*
crtc
,
u16
*
red
,
u16
*
green
,
u16
*
blue
,
int
regno
);
extern
void
intel_init_clock_gating
(
struct
drm_device
*
dev
);
extern
void
intel_enable_clock_gating
(
struct
drm_device
*
dev
);
extern
void
intel_disable_clock_gating
(
struct
drm_device
*
dev
);
extern
void
ironlake_enable_drps
(
struct
drm_device
*
dev
);
extern
void
ironlake_disable_drps
(
struct
drm_device
*
dev
);
extern
void
intel_init_emon
(
struct
drm_device
*
dev
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录