Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
71370e62
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看板
提交
71370e62
编写于
11月 01, 2017
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau/imem: remove now-unused wrapper for backend objects
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
03edf1b3
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
2 addition
and
170 deletion
+2
-170
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c
+2
-162
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
+0
-1
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c
+0
-1
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c
+0
-1
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
+0
-1
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h
+0
-4
未找到文件。
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/base.c
浏览文件 @
71370e62
...
...
@@ -28,148 +28,6 @@
/******************************************************************************
* instmem object base implementation
*****************************************************************************/
#define nvkm_instobj(p) container_of((p), struct nvkm_instobj, memory)
static
enum
nvkm_memory_target
nvkm_instobj_target
(
struct
nvkm_memory
*
memory
)
{
memory
=
nvkm_instobj
(
memory
)
->
parent
;
return
nvkm_memory_target
(
memory
);
}
static
u64
nvkm_instobj_addr
(
struct
nvkm_memory
*
memory
)
{
memory
=
nvkm_instobj
(
memory
)
->
parent
;
return
nvkm_memory_addr
(
memory
);
}
static
u64
nvkm_instobj_size
(
struct
nvkm_memory
*
memory
)
{
memory
=
nvkm_instobj
(
memory
)
->
parent
;
return
nvkm_memory_size
(
memory
);
}
static
void
nvkm_instobj_release
(
struct
nvkm_memory
*
memory
)
{
struct
nvkm_instobj
*
iobj
=
nvkm_instobj
(
memory
);
nvkm_bar_flush
(
iobj
->
imem
->
subdev
.
device
->
bar
);
}
static
void
__iomem
*
nvkm_instobj_acquire
(
struct
nvkm_memory
*
memory
)
{
return
nvkm_instobj
(
memory
)
->
map
;
}
static
u32
nvkm_instobj_rd32
(
struct
nvkm_memory
*
memory
,
u64
offset
)
{
return
ioread32_native
(
nvkm_instobj
(
memory
)
->
map
+
offset
);
}
static
void
nvkm_instobj_wr32
(
struct
nvkm_memory
*
memory
,
u64
offset
,
u32
data
)
{
iowrite32_native
(
data
,
nvkm_instobj
(
memory
)
->
map
+
offset
);
}
static
void
nvkm_instobj_map
(
struct
nvkm_memory
*
memory
,
struct
nvkm_vma
*
vma
,
u64
offset
)
{
memory
=
nvkm_instobj
(
memory
)
->
parent
;
nvkm_memory_map
(
memory
,
vma
,
offset
);
}
static
void
*
nvkm_instobj_dtor_old
(
struct
nvkm_memory
*
memory
)
{
struct
nvkm_instobj
*
iobj
=
nvkm_instobj
(
memory
);
spin_lock
(
&
iobj
->
imem
->
lock
);
list_del
(
&
iobj
->
head
);
spin_unlock
(
&
iobj
->
imem
->
lock
);
nvkm_memory_del
(
&
iobj
->
parent
);
return
iobj
;
}
static
const
struct
nvkm_memory_func
nvkm_instobj_func
=
{
.
dtor
=
nvkm_instobj_dtor_old
,
.
target
=
nvkm_instobj_target
,
.
addr
=
nvkm_instobj_addr
,
.
size
=
nvkm_instobj_size
,
.
acquire
=
nvkm_instobj_acquire
,
.
release
=
nvkm_instobj_release
,
.
map
=
nvkm_instobj_map
,
};
static
const
struct
nvkm_memory_ptrs
nvkm_instobj_ptrs
=
{
.
rd32
=
nvkm_instobj_rd32
,
.
wr32
=
nvkm_instobj_wr32
,
};
static
void
nvkm_instobj_boot
(
struct
nvkm_memory
*
memory
,
struct
nvkm_vm
*
vm
)
{
memory
=
nvkm_instobj
(
memory
)
->
parent
;
nvkm_memory_boot
(
memory
,
vm
);
}
static
void
nvkm_instobj_release_slow
(
struct
nvkm_memory
*
memory
)
{
struct
nvkm_instobj
*
iobj
=
nvkm_instobj
(
memory
);
nvkm_instobj_release
(
memory
);
nvkm_done
(
iobj
->
parent
);
}
static
void
__iomem
*
nvkm_instobj_acquire_slow
(
struct
nvkm_memory
*
memory
)
{
struct
nvkm_instobj
*
iobj
=
nvkm_instobj
(
memory
);
iobj
->
map
=
nvkm_kmap
(
iobj
->
parent
);
if
(
iobj
->
map
)
{
memory
->
func
=
&
nvkm_instobj_func
;
memory
->
ptrs
=
&
nvkm_instobj_ptrs
;
}
return
iobj
->
map
;
}
static
u32
nvkm_instobj_rd32_slow
(
struct
nvkm_memory
*
memory
,
u64
offset
)
{
struct
nvkm_instobj
*
iobj
=
nvkm_instobj
(
memory
);
return
nvkm_ro32
(
iobj
->
parent
,
offset
);
}
static
void
nvkm_instobj_wr32_slow
(
struct
nvkm_memory
*
memory
,
u64
offset
,
u32
data
)
{
struct
nvkm_instobj
*
iobj
=
nvkm_instobj
(
memory
);
return
nvkm_wo32
(
iobj
->
parent
,
offset
,
data
);
}
static
const
struct
nvkm_memory_func
nvkm_instobj_func_slow
=
{
.
dtor
=
nvkm_instobj_dtor_old
,
.
target
=
nvkm_instobj_target
,
.
addr
=
nvkm_instobj_addr
,
.
size
=
nvkm_instobj_size
,
.
boot
=
nvkm_instobj_boot
,
.
acquire
=
nvkm_instobj_acquire_slow
,
.
release
=
nvkm_instobj_release_slow
,
.
map
=
nvkm_instobj_map
,
};
static
const
struct
nvkm_memory_ptrs
nvkm_instobj_ptrs_slow
=
{
.
rd32
=
nvkm_instobj_rd32_slow
,
.
wr32
=
nvkm_instobj_wr32_slow
,
};
void
nvkm_instobj_dtor
(
struct
nvkm_instmem
*
imem
,
struct
nvkm_instobj
*
iobj
)
{
...
...
@@ -183,7 +41,6 @@ nvkm_instobj_ctor(const struct nvkm_memory_func *func,
struct
nvkm_instmem
*
imem
,
struct
nvkm_instobj
*
iobj
)
{
nvkm_memory_ctor
(
func
,
&
iobj
->
memory
);
iobj
->
parent
=
&
iobj
->
memory
;
iobj
->
suspend
=
NULL
;
spin_lock
(
&
imem
->
lock
);
list_add_tail
(
&
iobj
->
head
,
&
imem
->
list
);
...
...
@@ -196,7 +53,6 @@ nvkm_instobj_new(struct nvkm_instmem *imem, u32 size, u32 align, bool zero,
{
struct
nvkm_subdev
*
subdev
=
&
imem
->
subdev
;
struct
nvkm_memory
*
memory
=
NULL
;
struct
nvkm_instobj
*
iobj
;
u32
offset
;
int
ret
;
...
...
@@ -209,22 +65,6 @@ nvkm_instobj_new(struct nvkm_instmem *imem, u32 size, u32 align, bool zero,
nvkm_trace
(
subdev
,
"new %08x %08x %d: %010llx %010llx
\n
"
,
size
,
align
,
zero
,
nvkm_memory_addr
(
memory
),
nvkm_memory_size
(
memory
));
if
(
!
imem
->
func
->
persistent
)
{
if
(
!
(
iobj
=
kzalloc
(
sizeof
(
*
iobj
),
GFP_KERNEL
)))
{
ret
=
-
ENOMEM
;
goto
done
;
}
nvkm_memory_ctor
(
&
nvkm_instobj_func_slow
,
&
iobj
->
memory
);
iobj
->
memory
.
ptrs
=
&
nvkm_instobj_ptrs_slow
;
iobj
->
parent
=
memory
;
iobj
->
imem
=
imem
;
spin_lock
(
&
iobj
->
imem
->
lock
);
list_add_tail
(
&
iobj
->
head
,
&
imem
->
list
);
spin_unlock
(
&
iobj
->
imem
->
lock
);
memory
=
&
iobj
->
memory
;
}
if
(
!
imem
->
func
->
zero
&&
zero
)
{
void
__iomem
*
map
=
nvkm_kmap
(
memory
);
if
(
unlikely
(
!
map
))
{
...
...
@@ -271,7 +111,7 @@ nvkm_instmem_fini(struct nvkm_subdev *subdev, bool suspend)
if
(
suspend
)
{
list_for_each_entry
(
iobj
,
&
imem
->
list
,
head
)
{
struct
nvkm_memory
*
memory
=
iobj
->
parent
;
struct
nvkm_memory
*
memory
=
&
iobj
->
memory
;
u64
size
=
nvkm_memory_size
(
memory
);
iobj
->
suspend
=
vmalloc
(
size
);
...
...
@@ -304,7 +144,7 @@ nvkm_instmem_init(struct nvkm_subdev *subdev)
list_for_each_entry
(
iobj
,
&
imem
->
list
,
head
)
{
if
(
iobj
->
suspend
)
{
struct
nvkm_memory
*
memory
=
iobj
->
parent
;
struct
nvkm_memory
*
memory
=
&
iobj
->
memory
;
u64
size
=
nvkm_memory_size
(
memory
);
for
(
i
=
0
;
i
<
size
;
i
+=
4
)
nvkm_wo32
(
memory
,
i
,
iobj
->
suspend
[
i
/
4
]);
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/gk20a.c
浏览文件 @
71370e62
...
...
@@ -558,7 +558,6 @@ static const struct nvkm_instmem_func
gk20a_instmem
=
{
.
dtor
=
gk20a_instmem_dtor
,
.
memory_new
=
gk20a_instobj_new
,
.
persistent
=
true
,
.
zero
=
false
,
};
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv04.c
浏览文件 @
71370e62
...
...
@@ -214,7 +214,6 @@ nv04_instmem = {
.
rd32
=
nv04_instmem_rd32
,
.
wr32
=
nv04_instmem_wr32
,
.
memory_new
=
nv04_instobj_new
,
.
persistent
=
true
,
.
zero
=
false
,
};
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv40.c
浏览文件 @
71370e62
...
...
@@ -232,7 +232,6 @@ nv40_instmem = {
.
rd32
=
nv40_instmem_rd32
,
.
wr32
=
nv40_instmem_wr32
,
.
memory_new
=
nv40_instobj_new
,
.
persistent
=
true
,
.
zero
=
false
,
};
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/nv50.c
浏览文件 @
71370e62
...
...
@@ -374,7 +374,6 @@ static const struct nvkm_instmem_func
nv50_instmem
=
{
.
fini
=
nv50_instmem_fini
,
.
memory_new
=
nv50_instobj_new
,
.
persistent
=
true
,
.
zero
=
false
,
};
...
...
drivers/gpu/drm/nouveau/nvkm/subdev/instmem/priv.h
浏览文件 @
71370e62
...
...
@@ -11,7 +11,6 @@ struct nvkm_instmem_func {
void
(
*
wr32
)(
struct
nvkm_instmem
*
,
u32
addr
,
u32
data
);
int
(
*
memory_new
)(
struct
nvkm_instmem
*
,
u32
size
,
u32
align
,
bool
zero
,
struct
nvkm_memory
**
);
bool
persistent
;
bool
zero
;
};
...
...
@@ -22,11 +21,8 @@ void nvkm_instmem_ctor(const struct nvkm_instmem_func *, struct nvkm_device *,
struct
nvkm_instobj
{
struct
nvkm_memory
memory
;
struct
nvkm_memory
*
parent
;
struct
nvkm_instmem
*
imem
;
struct
list_head
head
;
u32
*
suspend
;
void
__iomem
*
map
;
};
void
nvkm_instobj_ctor
(
const
struct
nvkm_memory_func
*
func
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录