Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
fe440293
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
fe440293
编写于
1月 20, 2011
作者:
C
Chris Wilson
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'drm-intel-fixes' into drm-intel-next
Apply the SandyBridge stability fixes from -fixes.
上级
417ae147
4efe0708
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
1 deletion
+30
-1
drivers/gpu/drm/i915/i915_reg.h
drivers/gpu/drm/i915/i915_reg.h
+6
-0
drivers/gpu/drm/i915/intel_display.c
drivers/gpu/drm/i915/intel_display.c
+24
-1
未找到文件。
drivers/gpu/drm/i915/i915_reg.h
浏览文件 @
fe440293
...
...
@@ -513,6 +513,10 @@
#define GEN6_BLITTER_SYNC_STATUS (1 << 24)
#define GEN6_BLITTER_USER_INTERRUPT (1 << 22)
#define GEN6_BLITTER_ECOSKPD 0x221d0
#define GEN6_BLITTER_LOCK_SHIFT 16
#define GEN6_BLITTER_FBC_NOTIFY (1<<3)
#define GEN6_BSD_SLEEP_PSMI_CONTROL 0x12050
#define GEN6_BSD_SLEEP_PSMI_CONTROL_RC_ILDL_MESSAGE_MODIFY_MASK (1 << 16)
#define GEN6_BSD_SLEEP_PSMI_CONTROL_RC_ILDL_MESSAGE_DISABLE (1 << 0)
...
...
@@ -2631,6 +2635,8 @@
#define DISPLAY_PORT_PLL_BIOS_2 0x46014
#define PCH_DSPCLK_GATE_D 0x42020
# define DPFCUNIT_CLOCK_GATE_DISABLE (1 << 9)
# define DPFCRUNIT_CLOCK_GATE_DISABLE (1 << 8)
# define DPFDUNIT_CLOCK_GATE_DISABLE (1 << 7)
# define DPARBUNIT_CLOCK_GATE_DISABLE (1 << 5)
...
...
drivers/gpu/drm/i915/intel_display.c
浏览文件 @
fe440293
...
...
@@ -1718,6 +1718,26 @@ static bool g4x_fbc_enabled(struct drm_device *dev)
return
I915_READ
(
DPFC_CONTROL
)
&
DPFC_CTL_EN
;
}
static
void
sandybridge_blit_fbc_update
(
struct
drm_device
*
dev
)
{
struct
drm_i915_private
*
dev_priv
=
dev
->
dev_private
;
u32
blt_ecoskpd
;
/* Make sure blitter notifies FBC of writes */
__gen6_force_wake_get
(
dev_priv
);
blt_ecoskpd
=
I915_READ
(
GEN6_BLITTER_ECOSKPD
);
blt_ecoskpd
|=
GEN6_BLITTER_FBC_NOTIFY
<<
GEN6_BLITTER_LOCK_SHIFT
;
I915_WRITE
(
GEN6_BLITTER_ECOSKPD
,
blt_ecoskpd
);
blt_ecoskpd
|=
GEN6_BLITTER_FBC_NOTIFY
;
I915_WRITE
(
GEN6_BLITTER_ECOSKPD
,
blt_ecoskpd
);
blt_ecoskpd
&=
~
(
GEN6_BLITTER_FBC_NOTIFY
<<
GEN6_BLITTER_LOCK_SHIFT
);
I915_WRITE
(
GEN6_BLITTER_ECOSKPD
,
blt_ecoskpd
);
POSTING_READ
(
GEN6_BLITTER_ECOSKPD
);
__gen6_force_wake_put
(
dev_priv
);
}
static
void
ironlake_enable_fbc
(
struct
drm_crtc
*
crtc
,
unsigned
long
interval
)
{
struct
drm_device
*
dev
=
crtc
->
dev
;
...
...
@@ -1771,6 +1791,7 @@ static void ironlake_enable_fbc(struct drm_crtc *crtc, unsigned long interval)
I915_WRITE
(
SNB_DPFC_CTL_SA
,
SNB_CPU_FENCE_ENABLE
|
dev_priv
->
cfb_fence
);
I915_WRITE
(
DPFC_CPU_FENCE_OFFSET
,
crtc
->
y
);
sandybridge_blit_fbc_update
(
dev
);
}
DRM_DEBUG_KMS
(
"enabled fbc on plane %d
\n
"
,
intel_crtc
->
plane
);
...
...
@@ -6818,7 +6839,9 @@ void intel_enable_clock_gating(struct drm_device *dev)
if
(
IS_GEN5
(
dev
))
{
/* Required for FBC */
dspclk_gate
|=
DPFDUNIT_CLOCK_GATE_DISABLE
;
dspclk_gate
|=
DPFCUNIT_CLOCK_GATE_DISABLE
|
DPFCRUNIT_CLOCK_GATE_DISABLE
|
DPFDUNIT_CLOCK_GATE_DISABLE
;
/* Required for CxSR */
dspclk_gate
|=
DPARBUNIT_CLOCK_GATE_DISABLE
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录