Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
adec9bc3
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看板
提交
adec9bc3
编写于
6月 12, 2014
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/pwr: tidy
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
3d50d4dc
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
133 addition
and
193 deletion
+133
-193
drivers/gpu/drm/nouveau/core/engine/device/gm100.c
drivers/gpu/drm/nouveau/core/engine/device/gm100.c
+1
-1
drivers/gpu/drm/nouveau/core/engine/device/nv50.c
drivers/gpu/drm/nouveau/core/engine/device/nv50.c
+4
-4
drivers/gpu/drm/nouveau/core/engine/device/nvc0.c
drivers/gpu/drm/nouveau/core/engine/device/nvc0.c
+8
-8
drivers/gpu/drm/nouveau/core/engine/device/nve0.c
drivers/gpu/drm/nouveau/core/engine/device/nve0.c
+6
-6
drivers/gpu/drm/nouveau/core/include/subdev/pwr.h
drivers/gpu/drm/nouveau/core/include/subdev/pwr.h
+4
-35
drivers/gpu/drm/nouveau/core/subdev/pwr/base.c
drivers/gpu/drm/nouveau/core/subdev/pwr/base.c
+19
-5
drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c
drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c
+1
-2
drivers/gpu/drm/nouveau/core/subdev/pwr/nv108.c
drivers/gpu/drm/nouveau/core/subdev/pwr/nv108.c
+11
-32
drivers/gpu/drm/nouveau/core/subdev/pwr/nva3.c
drivers/gpu/drm/nouveau/core/subdev/pwr/nva3.c
+15
-36
drivers/gpu/drm/nouveau/core/subdev/pwr/nvc0.c
drivers/gpu/drm/nouveau/core/subdev/pwr/nvc0.c
+11
-32
drivers/gpu/drm/nouveau/core/subdev/pwr/nvd0.c
drivers/gpu/drm/nouveau/core/subdev/pwr/nvd0.c
+11
-32
drivers/gpu/drm/nouveau/core/subdev/pwr/priv.h
drivers/gpu/drm/nouveau/core/subdev/pwr/priv.h
+42
-0
未找到文件。
drivers/gpu/drm/nouveau/core/engine/device/gm100.c
浏览文件 @
adec9bc3
...
...
@@ -78,7 +78,7 @@ gm100_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
#if 0
device->oclass[NVDEV_SUBDEV_PWR ] =
&
nv108_pwr_oclass;
device->oclass[NVDEV_SUBDEV_PWR ] =
nv108_pwr_oclass;
device->oclass[NVDEV_SUBDEV_VOLT ] = &nv40_volt_oclass;
#endif
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
...
...
drivers/gpu/drm/nouveau/core/engine/device/nv50.c
浏览文件 @
adec9bc3
...
...
@@ -350,7 +350,7 @@ nv50_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nv50_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nv50_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nva3_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nva3_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nv50_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nv84_fifo_oclass
;
...
...
@@ -380,7 +380,7 @@ nv50_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nv50_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nv50_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nva3_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nva3_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nv50_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nv84_fifo_oclass
;
...
...
@@ -409,7 +409,7 @@ nv50_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nv50_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nv50_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nva3_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nva3_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nv50_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nv84_fifo_oclass
;
...
...
@@ -438,7 +438,7 @@ nv50_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nv50_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nv50_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nva3_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nva3_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nv50_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nv84_fifo_oclass
;
...
...
drivers/gpu/drm/nouveau/core/engine/device/nvc0.c
浏览文件 @
adec9bc3
...
...
@@ -75,7 +75,7 @@ nvc0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvc0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nvc0_fifo_oclass
;
...
...
@@ -107,7 +107,7 @@ nvc0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvc0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nvc0_fifo_oclass
;
...
...
@@ -139,7 +139,7 @@ nvc0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvc0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nvc0_fifo_oclass
;
...
...
@@ -170,7 +170,7 @@ nvc0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvc0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nvc0_fifo_oclass
;
...
...
@@ -202,7 +202,7 @@ nvc0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvc0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nvc0_fifo_oclass
;
...
...
@@ -234,7 +234,7 @@ nvc0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvc0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nvc0_fifo_oclass
;
...
...
@@ -265,7 +265,7 @@ nvc0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvc0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvc0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nvc0_fifo_oclass
;
...
...
@@ -297,7 +297,7 @@ nvc0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nvc0_fifo_oclass
;
...
...
drivers/gpu/drm/nouveau/core/engine/device/nve0.c
浏览文件 @
adec9bc3
...
...
@@ -75,7 +75,7 @@ nve0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nve0_fifo_oclass
;
...
...
@@ -108,7 +108,7 @@ nve0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nve0_fifo_oclass
;
...
...
@@ -141,7 +141,7 @@ nve0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nve0_fifo_oclass
;
...
...
@@ -191,7 +191,7 @@ nve0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nve0_fifo_oclass
;
...
...
@@ -224,7 +224,7 @@ nve0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nvd0_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nve0_fifo_oclass
;
...
...
@@ -257,7 +257,7 @@ nve0_identify(struct nouveau_device *device)
device
->
oclass
[
NVDEV_SUBDEV_INSTMEM
]
=
nv50_instmem_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VM
]
=
&
nvc0_vmmgr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_BAR
]
=
&
nvc0_bar_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
&
nv108_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_PWR
]
=
nv108_pwr_oclass
;
device
->
oclass
[
NVDEV_SUBDEV_VOLT
]
=
&
nv40_volt_oclass
;
device
->
oclass
[
NVDEV_ENGINE_DMAOBJ
]
=
&
nvd0_dmaeng_oclass
;
device
->
oclass
[
NVDEV_ENGINE_FIFO
]
=
nv108_fifo_oclass
;
...
...
drivers/gpu/drm/nouveau/core/include/subdev/pwr.h
浏览文件 @
adec9bc3
...
...
@@ -7,18 +7,6 @@
struct
nouveau_pwr
{
struct
nouveau_subdev
base
;
struct
{
u32
limit
;
u32
*
data
;
u32
size
;
}
code
;
struct
{
u32
limit
;
u32
*
data
;
u32
size
;
}
data
;
struct
{
u32
base
;
u32
size
;
...
...
@@ -44,29 +32,10 @@ nouveau_pwr(void *obj)
return
(
void
*
)
nv_device
(
obj
)
->
subdev
[
NVDEV_SUBDEV_PWR
];
}
#define nouveau_pwr_create(p, e, o, d) \
nouveau_pwr_create_((p), (e), (o), sizeof(**d), (void **)d)
#define nouveau_pwr_destroy(p) \
nouveau_subdev_destroy(&(p)->base)
#define nouveau_pwr_init(p) ({ \
struct nouveau_pwr *ppwr = (p); \
_nouveau_pwr_init(nv_object(ppwr)); \
})
#define nouveau_pwr_fini(p,s) ({ \
struct nouveau_pwr *ppwr = (p); \
_nouveau_pwr_fini(nv_object(ppwr), (s)); \
})
int
nouveau_pwr_create_
(
struct
nouveau_object
*
,
struct
nouveau_object
*
,
struct
nouveau_oclass
*
,
int
,
void
**
);
#define _nouveau_pwr_dtor _nouveau_subdev_dtor
int
_nouveau_pwr_init
(
struct
nouveau_object
*
);
int
_nouveau_pwr_fini
(
struct
nouveau_object
*
,
bool
);
extern
struct
nouveau_oclass
nva3_pwr_oclass
;
extern
struct
nouveau_oclass
nvc0_pwr_oclass
;
extern
struct
nouveau_oclass
nvd0_pwr_oclass
;
extern
struct
nouveau_oclass
nv108_pwr_oclass
;
extern
struct
nouveau_oclass
*
nva3_pwr_oclass
;
extern
struct
nouveau_oclass
*
nvc0_pwr_oclass
;
extern
struct
nouveau_oclass
*
nvd0_pwr_oclass
;
extern
struct
nouveau_oclass
*
nv108_pwr_oclass
;
/* interface to MEMX process running on PPWR */
struct
nouveau_memx
;
...
...
drivers/gpu/drm/nouveau/core/subdev/pwr/base.c
浏览文件 @
adec9bc3
...
...
@@ -22,9 +22,10 @@
* Authors: Ben Skeggs
*/
#include <subdev/pwr.h>
#include <subdev/timer.h>
#include "priv.h"
static
int
nouveau_pwr_send
(
struct
nouveau_pwr
*
ppwr
,
u32
reply
[
2
],
u32
process
,
u32
message
,
u32
data0
,
u32
data1
)
...
...
@@ -177,6 +178,7 @@ _nouveau_pwr_fini(struct nouveau_object *object, bool suspend)
int
_nouveau_pwr_init
(
struct
nouveau_object
*
object
)
{
const
struct
nvkm_pwr_impl
*
impl
=
(
void
*
)
object
->
oclass
;
struct
nouveau_pwr
*
ppwr
=
(
void
*
)
object
;
int
ret
,
i
;
...
...
@@ -195,15 +197,15 @@ _nouveau_pwr_init(struct nouveau_object *object)
/* upload data segment */
nv_wr32
(
ppwr
,
0x10a1c0
,
0x01000000
);
for
(
i
=
0
;
i
<
ppwr
->
data
.
size
/
4
;
i
++
)
nv_wr32
(
ppwr
,
0x10a1c4
,
ppwr
->
data
.
data
[
i
]);
for
(
i
=
0
;
i
<
impl
->
data
.
size
/
4
;
i
++
)
nv_wr32
(
ppwr
,
0x10a1c4
,
impl
->
data
.
data
[
i
]);
/* upload code segment */
nv_wr32
(
ppwr
,
0x10a180
,
0x01000000
);
for
(
i
=
0
;
i
<
ppwr
->
code
.
size
/
4
;
i
++
)
{
for
(
i
=
0
;
i
<
impl
->
code
.
size
/
4
;
i
++
)
{
if
((
i
&
0x3f
)
==
0
)
nv_wr32
(
ppwr
,
0x10a188
,
i
>>
6
);
nv_wr32
(
ppwr
,
0x10a184
,
ppwr
->
code
.
data
[
i
]);
nv_wr32
(
ppwr
,
0x10a184
,
impl
->
code
.
data
[
i
]);
}
/* start it running */
...
...
@@ -245,3 +247,15 @@ nouveau_pwr_create_(struct nouveau_object *parent,
init_waitqueue_head
(
&
ppwr
->
recv
.
wait
);
return
0
;
}
int
_nouveau_pwr_ctor
(
struct
nouveau_object
*
parent
,
struct
nouveau_object
*
engine
,
struct
nouveau_oclass
*
oclass
,
void
*
data
,
u32
size
,
struct
nouveau_object
**
pobject
)
{
struct
nouveau_pwr
*
ppwr
;
int
ret
=
nouveau_pwr_create
(
parent
,
engine
,
oclass
,
&
ppwr
);
*
pobject
=
nv_object
(
ppwr
);
return
ret
;
}
drivers/gpu/drm/nouveau/core/subdev/pwr/memx.c
浏览文件 @
adec9bc3
#ifndef __NVKM_PWR_MEMX_H__
#define __NVKM_PWR_MEMX_H__
#include <subdev/pwr.h>
#include <subdev/pwr/fuc/os.h>
#include "priv.h"
struct
nouveau_memx
{
struct
nouveau_pwr
*
ppwr
;
...
...
drivers/gpu/drm/nouveau/core/subdev/pwr/nv108.c
浏览文件 @
adec9bc3
...
...
@@ -22,41 +22,20 @@
* Authors: Ben Skeggs
*/
#include <subdev/pwr.h>
#include "priv.h"
#include "fuc/nv108.fuc.h"
struct
nv108_pwr_priv
{
struct
nouveau_pwr
base
;
};
static
int
nv108_pwr_ctor
(
struct
nouveau_object
*
parent
,
struct
nouveau_object
*
engine
,
struct
nouveau_oclass
*
oclass
,
void
*
data
,
u32
size
,
struct
nouveau_object
**
pobject
)
{
struct
nv108_pwr_priv
*
priv
;
int
ret
;
ret
=
nouveau_pwr_create
(
parent
,
engine
,
oclass
,
&
priv
);
*
pobject
=
nv_object
(
priv
);
if
(
ret
)
return
ret
;
priv
->
base
.
code
.
data
=
nv108_pwr_code
;
priv
->
base
.
code
.
size
=
sizeof
(
nv108_pwr_code
);
priv
->
base
.
data
.
data
=
nv108_pwr_data
;
priv
->
base
.
data
.
size
=
sizeof
(
nv108_pwr_data
);
return
0
;
}
struct
nouveau_oclass
nv108_pwr_oclass
=
{
.
handle
=
NV_SUBDEV
(
PWR
,
0x00
),
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
nv108_pwr_ctor
,
struct
nouveau_oclass
*
nv108_pwr_oclass
=
&
(
struct
nvkm_pwr_impl
)
{
.
base
.
handle
=
NV_SUBDEV
(
PWR
,
0x00
),
.
base
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
_nouveau_pwr_ctor
,
.
dtor
=
_nouveau_pwr_dtor
,
.
init
=
_nouveau_pwr_init
,
.
fini
=
_nouveau_pwr_fini
,
},
};
.
code
.
data
=
nv108_pwr_code
,
.
code
.
size
=
sizeof
(
nv108_pwr_code
),
.
data
.
data
=
nv108_pwr_data
,
.
data
.
size
=
sizeof
(
nv108_pwr_data
),
}.
base
;
drivers/gpu/drm/nouveau/core/subdev/pwr/nva3.c
浏览文件 @
adec9bc3
...
...
@@ -22,50 +22,29 @@
* Authors: Ben Skeggs
*/
#include <subdev/pwr.h>
#include "priv.h"
#include "fuc/nva3.fuc.h"
struct
nva3_pwr_priv
{
struct
nouveau_pwr
base
;
};
static
int
nva3_pwr_init
(
struct
nouveau_object
*
object
)
{
struct
nva3_pwr_priv
*
priv
=
(
void
*
)
object
;
nv_mask
(
priv
,
0x022210
,
0x00000001
,
0x00000000
);
nv_mask
(
priv
,
0x022210
,
0x00000001
,
0x00000001
);
return
nouveau_pwr_init
(
&
priv
->
base
);
}
static
int
nva3_pwr_ctor
(
struct
nouveau_object
*
parent
,
struct
nouveau_object
*
engine
,
struct
nouveau_oclass
*
oclass
,
void
*
data
,
u32
size
,
struct
nouveau_object
**
pobject
)
{
struct
nva3_pwr_priv
*
priv
;
int
ret
;
ret
=
nouveau_pwr_create
(
parent
,
engine
,
oclass
,
&
priv
);
*
pobject
=
nv_object
(
priv
);
if
(
ret
)
return
ret
;
priv
->
base
.
code
.
data
=
nva3_pwr_code
;
priv
->
base
.
code
.
size
=
sizeof
(
nva3_pwr_code
);
priv
->
base
.
data
.
data
=
nva3_pwr_data
;
priv
->
base
.
data
.
size
=
sizeof
(
nva3_pwr_data
);
return
0
;
struct
nouveau_pwr
*
ppwr
=
(
void
*
)
object
;
nv_mask
(
ppwr
,
0x022210
,
0x00000001
,
0x00000000
);
nv_mask
(
ppwr
,
0x022210
,
0x00000001
,
0x00000001
);
return
nouveau_pwr_init
(
ppwr
);
}
struct
nouveau_oclass
nva3_pwr_oclass
=
{
.
handle
=
NV_SUBDEV
(
PWR
,
0xa3
),
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
nva3
_pwr_ctor
,
struct
nouveau_oclass
*
nva3_pwr_oclass
=
&
(
struct
nvkm_pwr_impl
)
{
.
base
.
handle
=
NV_SUBDEV
(
PWR
,
0xa3
),
.
base
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
_nouveau
_pwr_ctor
,
.
dtor
=
_nouveau_pwr_dtor
,
.
init
=
nva3_pwr_init
,
.
fini
=
_nouveau_pwr_fini
,
},
};
.
code
.
data
=
nva3_pwr_code
,
.
code
.
size
=
sizeof
(
nva3_pwr_code
),
.
data
.
data
=
nva3_pwr_data
,
.
data
.
size
=
sizeof
(
nva3_pwr_data
),
}.
base
;
drivers/gpu/drm/nouveau/core/subdev/pwr/nvc0.c
浏览文件 @
adec9bc3
...
...
@@ -22,41 +22,20 @@
* Authors: Ben Skeggs
*/
#include <subdev/pwr.h>
#include "priv.h"
#include "fuc/nvc0.fuc.h"
struct
nvc0_pwr_priv
{
struct
nouveau_pwr
base
;
};
static
int
nvc0_pwr_ctor
(
struct
nouveau_object
*
parent
,
struct
nouveau_object
*
engine
,
struct
nouveau_oclass
*
oclass
,
void
*
data
,
u32
size
,
struct
nouveau_object
**
pobject
)
{
struct
nvc0_pwr_priv
*
priv
;
int
ret
;
ret
=
nouveau_pwr_create
(
parent
,
engine
,
oclass
,
&
priv
);
*
pobject
=
nv_object
(
priv
);
if
(
ret
)
return
ret
;
priv
->
base
.
code
.
data
=
nvc0_pwr_code
;
priv
->
base
.
code
.
size
=
sizeof
(
nvc0_pwr_code
);
priv
->
base
.
data
.
data
=
nvc0_pwr_data
;
priv
->
base
.
data
.
size
=
sizeof
(
nvc0_pwr_data
);
return
0
;
}
struct
nouveau_oclass
nvc0_pwr_oclass
=
{
.
handle
=
NV_SUBDEV
(
PWR
,
0xc0
),
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
nvc0_pwr_ctor
,
struct
nouveau_oclass
*
nvc0_pwr_oclass
=
&
(
struct
nvkm_pwr_impl
)
{
.
base
.
handle
=
NV_SUBDEV
(
PWR
,
0xc0
),
.
base
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
_nouveau_pwr_ctor
,
.
dtor
=
_nouveau_pwr_dtor
,
.
init
=
_nouveau_pwr_init
,
.
fini
=
_nouveau_pwr_fini
,
},
};
.
code
.
data
=
nvc0_pwr_code
,
.
code
.
size
=
sizeof
(
nvc0_pwr_code
),
.
data
.
data
=
nvc0_pwr_data
,
.
data
.
size
=
sizeof
(
nvc0_pwr_data
),
}.
base
;
drivers/gpu/drm/nouveau/core/subdev/pwr/nvd0.c
浏览文件 @
adec9bc3
...
...
@@ -22,41 +22,20 @@
* Authors: Ben Skeggs
*/
#include <subdev/pwr.h>
#include "priv.h"
#include "fuc/nvd0.fuc.h"
struct
nvd0_pwr_priv
{
struct
nouveau_pwr
base
;
};
static
int
nvd0_pwr_ctor
(
struct
nouveau_object
*
parent
,
struct
nouveau_object
*
engine
,
struct
nouveau_oclass
*
oclass
,
void
*
data
,
u32
size
,
struct
nouveau_object
**
pobject
)
{
struct
nvd0_pwr_priv
*
priv
;
int
ret
;
ret
=
nouveau_pwr_create
(
parent
,
engine
,
oclass
,
&
priv
);
*
pobject
=
nv_object
(
priv
);
if
(
ret
)
return
ret
;
priv
->
base
.
code
.
data
=
nvd0_pwr_code
;
priv
->
base
.
code
.
size
=
sizeof
(
nvd0_pwr_code
);
priv
->
base
.
data
.
data
=
nvd0_pwr_data
;
priv
->
base
.
data
.
size
=
sizeof
(
nvd0_pwr_data
);
return
0
;
}
struct
nouveau_oclass
nvd0_pwr_oclass
=
{
.
handle
=
NV_SUBDEV
(
PWR
,
0xd0
),
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
nvd0_pwr_ctor
,
struct
nouveau_oclass
*
nvd0_pwr_oclass
=
&
(
struct
nvkm_pwr_impl
)
{
.
base
.
handle
=
NV_SUBDEV
(
PWR
,
0xd0
),
.
base
.
ofuncs
=
&
(
struct
nouveau_ofuncs
)
{
.
ctor
=
_nouveau_pwr_ctor
,
.
dtor
=
_nouveau_pwr_dtor
,
.
init
=
_nouveau_pwr_init
,
.
fini
=
_nouveau_pwr_fini
,
},
};
.
code
.
data
=
nvd0_pwr_code
,
.
code
.
size
=
sizeof
(
nvd0_pwr_code
),
.
data
.
data
=
nvd0_pwr_data
,
.
data
.
size
=
sizeof
(
nvd0_pwr_data
),
}.
base
;
drivers/gpu/drm/nouveau/core/subdev/pwr/priv.h
0 → 100644
浏览文件 @
adec9bc3
#ifndef __NVKM_PWR_PRIV_H__
#define __NVKM_PWR_PRIV_H__
#include <subdev/pwr.h>
#include <subdev/pwr/fuc/os.h>
#define nouveau_pwr_create(p, e, o, d) \
nouveau_pwr_create_((p), (e), (o), sizeof(**d), (void **)d)
#define nouveau_pwr_destroy(p) \
nouveau_subdev_destroy(&(p)->base)
#define nouveau_pwr_init(p) ({ \
struct nouveau_pwr *_ppwr = (p); \
_nouveau_pwr_init(nv_object(_ppwr)); \
})
#define nouveau_pwr_fini(p,s) ({ \
struct nouveau_pwr *_ppwr = (p); \
_nouveau_pwr_fini(nv_object(_ppwr), (s)); \
})
int
nouveau_pwr_create_
(
struct
nouveau_object
*
,
struct
nouveau_object
*
,
struct
nouveau_oclass
*
,
int
,
void
**
);
int
_nouveau_pwr_ctor
(
struct
nouveau_object
*
,
struct
nouveau_object
*
,
struct
nouveau_oclass
*
,
void
*
,
u32
,
struct
nouveau_object
**
);
#define _nouveau_pwr_dtor _nouveau_subdev_dtor
int
_nouveau_pwr_init
(
struct
nouveau_object
*
);
int
_nouveau_pwr_fini
(
struct
nouveau_object
*
,
bool
);
struct
nvkm_pwr_impl
{
struct
nouveau_oclass
base
;
struct
{
u32
*
data
;
u32
size
;
}
code
;
struct
{
u32
*
data
;
u32
size
;
}
data
;
};
#endif
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录