Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
973e8616
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看板
提交
973e8616
编写于
10月 31, 2011
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nv50/pm: avoid touching dom6/vdec clocks if perflvl doesn't define it
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
463464eb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
16 deletion
+16
-16
drivers/gpu/drm/nouveau/nv50_pm.c
drivers/gpu/drm/nouveau/nv50_pm.c
+16
-16
未找到文件。
drivers/gpu/drm/nouveau/nv50_pm.c
浏览文件 @
973e8616
...
...
@@ -485,7 +485,8 @@ nv50_pm_clocks_pre(struct drm_device *dev, struct nouveau_pm_level *perflvl)
* clock domains work, i suspect at least some of them can also be
* tied to xpll...
*/
info
->
amast
=
info
->
pdivs
=
0
;
info
->
amast
=
nv_rd32
(
dev
,
0x00c040
);
info
->
pdivs
=
read_div
(
dev
);
if
(
perflvl
->
vdec
)
{
/* see how close we can get using nvclk as a source */
clk
=
calc_div
(
perflvl
->
core
,
perflvl
->
vdec
,
&
P1
);
...
...
@@ -498,12 +499,12 @@ nv50_pm_clocks_pre(struct drm_device *dev, struct nouveau_pm_level *perflvl)
out
=
calc_div
(
out
,
perflvl
->
vdec
,
&
P2
);
/* select whichever gets us closest */
info
->
amast
&=
~
0x00000c00
;
info
->
pdivs
&=
~
0x00000700
;
if
(
abs
((
int
)
perflvl
->
vdec
-
clk
)
<=
abs
((
int
)
perflvl
->
vdec
-
out
))
{
if
(
dev_priv
->
chipset
!=
0x98
)
info
->
amast
|=
0x00000c00
;
else
info
->
amast
|=
0x00000000
;
info
->
pdivs
|=
P1
<<
8
;
}
else
{
info
->
amast
|=
0x00000800
;
...
...
@@ -514,23 +515,22 @@ nv50_pm_clocks_pre(struct drm_device *dev, struct nouveau_pm_level *perflvl)
/* dom6: nfi what this is, but we're limited to various combinations
* of the host clock frequency
*/
if
(
clk_same
(
perflvl
->
dom6
,
read_clk
(
dev
,
clk_src_href
)))
{
info
->
amast
|=
0x00000000
;
info
->
pdivs
|=
read_div
(
dev
)
&
0x00000007
;
}
else
if
(
clk_same
(
perflvl
->
dom6
,
read_clk
(
dev
,
clk_src_hclk
)))
{
info
->
amast
|=
0x08000000
;
info
->
pdivs
|=
read_div
(
dev
)
&
0x00000007
;
}
else
if
(
perflvl
->
dom6
)
{
clk
=
read_clk
(
dev
,
clk_src_hclk
)
*
3
;
clk
=
calc_div
(
clk
,
perflvl
->
dom6
,
&
P1
);
info
->
amast
&=
~
0x0c000000
;
if
(
clk_same
(
perflvl
->
dom6
,
read_clk
(
dev
,
clk_src_href
)))
{
info
->
amast
|=
0x00000000
;
}
else
if
(
clk_same
(
perflvl
->
dom6
,
read_clk
(
dev
,
clk_src_hclk
)))
{
info
->
amast
|=
0x08000000
;
}
else
{
clk
=
read_clk
(
dev
,
clk_src_hclk
)
*
3
;
clk
=
calc_div
(
clk
,
perflvl
->
dom6
,
&
P1
);
info
->
amast
|=
0x0c000000
;
info
->
pdivs
|=
P1
;
info
->
amast
|=
0x0c000000
;
info
->
pdivs
=
(
info
->
pdivs
&
~
0x00000007
)
|
P1
;
}
}
return
info
;
error:
kfree
(
info
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录