Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
04de6a04
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看板
提交
04de6a04
编写于
7月 28, 2011
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nv41/pm: implement a second type of fanspeed pwm
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
9232969e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
36 addition
and
0 deletion
+36
-0
drivers/gpu/drm/nouveau/nouveau_pm.h
drivers/gpu/drm/nouveau/nouveau_pm.h
+2
-0
drivers/gpu/drm/nouveau/nouveau_state.c
drivers/gpu/drm/nouveau/nouveau_state.c
+7
-0
drivers/gpu/drm/nouveau/nv40_pm.c
drivers/gpu/drm/nouveau/nv40_pm.c
+27
-0
未找到文件。
drivers/gpu/drm/nouveau/nouveau_pm.h
浏览文件 @
04de6a04
...
...
@@ -58,6 +58,8 @@ void *nv40_pm_clocks_pre(struct drm_device *, struct nouveau_pm_level *);
void
nv40_pm_clocks_set
(
struct
drm_device
*
,
void
*
);
int
nv40_pm_fanspeed_get
(
struct
drm_device
*
);
int
nv40_pm_fanspeed_set
(
struct
drm_device
*
,
int
percent
);
int
nv41_pm_fanspeed_get
(
struct
drm_device
*
);
int
nv41_pm_fanspeed_set
(
struct
drm_device
*
,
int
percent
);
/* nv50_pm.c */
int
nv50_pm_clock_get
(
struct
drm_device
*
,
u32
id
);
...
...
drivers/gpu/drm/nouveau/nouveau_state.c
浏览文件 @
04de6a04
...
...
@@ -298,6 +298,13 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev)
engine
->
pm
.
fanspeed_get
=
nv40_pm_fanspeed_get
;
engine
->
pm
.
fanspeed_set
=
nv40_pm_fanspeed_set
;
break
;
case
0x42
:
case
0x43
:
case
0x47
:
case
0x4b
:
engine
->
pm
.
fanspeed_get
=
nv41_pm_fanspeed_get
;
engine
->
pm
.
fanspeed_set
=
nv41_pm_fanspeed_set
;
break
;
default:
break
;
}
...
...
drivers/gpu/drm/nouveau/nv40_pm.c
浏览文件 @
04de6a04
...
...
@@ -372,3 +372,30 @@ nv40_pm_fanspeed_set(struct drm_device *dev, int percent)
nv_wr32
(
dev
,
0x0010f0
,
0x80000000
|
(
duty
<<
16
)
|
divs
);
return
0
;
}
int
nv41_pm_fanspeed_get
(
struct
drm_device
*
dev
)
{
u32
reg
=
nv_rd32
(
dev
,
0x0015f4
);
if
(
reg
&
0x80000000
)
{
u32
divs
=
nv_rd32
(
dev
,
0x0015f8
);
u32
duty
=
(
reg
&
0x7fffffff
);
if
(
divs
&&
divs
>=
duty
)
return
((
divs
-
duty
)
*
100
)
/
divs
;
}
return
100
;
}
int
nv41_pm_fanspeed_set
(
struct
drm_device
*
dev
,
int
percent
)
{
struct
drm_nouveau_private
*
dev_priv
=
dev
->
dev_private
;
struct
nouveau_pm_engine
*
pm
=
&
dev_priv
->
engine
.
pm
;
u32
divs
=
pm
->
pwm_divisor
;
u32
duty
=
((
100
-
percent
)
*
divs
)
/
100
;
nv_wr32
(
dev
,
0x0015f8
,
divs
);
nv_wr32
(
dev
,
0x0015f4
,
duty
|
0x80000000
);
return
0
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录