Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
01891690
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看板
提交
01891690
编写于
11月 28, 2013
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nve0/fb/gddr5: punt all 10f910/914 accesses through ram_train
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
d394fb12
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
12 deletion
+9
-12
drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c
drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c
+9
-12
未找到文件。
drivers/gpu/drm/nouveau/core/subdev/fb/ramnve0.c
浏览文件 @
01891690
...
...
@@ -140,15 +140,15 @@ struct nve0_ram {
* GDDR5
******************************************************************************/
static
void
nve0_ram_train
(
struct
nve0_ramfuc
*
fuc
,
u32
ma
gic
)
nve0_ram_train
(
struct
nve0_ramfuc
*
fuc
,
u32
ma
sk
,
u32
data
)
{
struct
nve0_ram
*
ram
=
container_of
(
fuc
,
typeof
(
*
ram
),
fuc
);
u32
addr
=
0x110974
,
i
;
ram_mask
(
fuc
,
0x10f910
,
0xbc0e0000
,
magic
);
ram_mask
(
fuc
,
0x10f914
,
0xbc0e0000
,
magic
);
ram_mask
(
fuc
,
0x10f910
,
mask
,
data
);
ram_mask
(
fuc
,
0x10f914
,
mask
,
data
);
for
(
i
=
0
;
(
magic
&
0x80000000
)
&&
i
<
ram
->
parts
;
addr
+=
0x1000
,
i
++
)
{
for
(
i
=
0
;
(
data
&
0x80000000
)
&&
i
<
ram
->
parts
;
addr
+=
0x1000
,
i
++
)
{
if
(
ram
->
pmask
&
(
1
<<
i
))
continue
;
ram_wait
(
fuc
,
addr
,
0x0000000f
,
0x00000000
,
500000
);
...
...
@@ -280,8 +280,7 @@ nve0_ram_calc_gddr5(struct nouveau_fb *pfb, u32 freq)
ram_mask
(
fuc
,
0x10f200
,
0x00000800
,
0x00000000
);
ram_mask
(
fuc
,
0x10f914
,
0x01020000
,
0x000c0000
);
ram_mask
(
fuc
,
0x10f910
,
0x01020000
,
0x000c0000
);
nve0_ram_train
(
fuc
,
0x01020000
,
0x000c0000
);
ram_wr32
(
fuc
,
0x10f210
,
0x00000000
);
/* REFRESH_AUTO = 0 */
ram_nsec
(
fuc
,
1000
);
...
...
@@ -548,7 +547,7 @@ nve0_ram_calc_gddr5(struct nouveau_fb *pfb, u32 freq)
if
((
nv_ro08
(
bios
,
ramcfg
+
0x08
)
&
0x10
)
&&
(
ram
->
mode
==
2
)
/*XXX*/
)
{
u32
temp
=
ram_mask
(
fuc
,
0x10f294
,
0xff000000
,
0x24000000
);
nve0_ram_train
(
fuc
,
0xa4010000
);
/*XXX*/
nve0_ram_train
(
fuc
,
0x
bc0e0000
,
0x
a4010000
);
/*XXX*/
ram_nsec
(
fuc
,
1000
);
ram_wr32
(
fuc
,
0x10f294
,
temp
);
}
...
...
@@ -603,7 +602,7 @@ nve0_ram_calc_gddr5(struct nouveau_fb *pfb, u32 freq)
}
else
{
data
=
0xa40e0000
;
}
nve0_ram_train
(
fuc
,
data
);
nve0_ram_train
(
fuc
,
0xbc0e0000
,
data
);
ram_nsec
(
fuc
,
1000
);
if
(
ram
->
mode
==
2
)
{
/*XXX*/
...
...
@@ -620,10 +619,8 @@ nve0_ram_calc_gddr5(struct nouveau_fb *pfb, u32 freq)
ram_mask
(
fuc
,
0x10f830
,
0x01000000
,
0x00000000
);
}
if
(
nv_ro08
(
bios
,
ramcfg
+
0x07
)
&
0x02
)
{
ram_mask
(
fuc
,
0x10f910
,
0x80020000
,
0x01000000
);
ram_mask
(
fuc
,
0x10f914
,
0x80020000
,
0x01000000
);
}
if
(
nv_ro08
(
bios
,
ramcfg
+
0x07
)
&
0x02
)
nve0_ram_train
(
fuc
,
0x80020000
,
0x01000000
);
ram_wr32
(
fuc
,
0x62c000
,
0x0f0f0f00
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录