Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
8be21a64
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看板
提交
8be21a64
编写于
7月 18, 2012
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nouveau: pull nouveau_bo definitions into their own header
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
017e6e29
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
97 addition
and
90 deletion
+97
-90
drivers/gpu/drm/nouveau/nouveau_bo.h
drivers/gpu/drm/nouveau/nouveau_bo.h
+92
-0
drivers/gpu/drm/nouveau/nouveau_channel.c
drivers/gpu/drm/nouveau/nouveau_channel.c
+4
-0
drivers/gpu/drm/nouveau/nouveau_drv.c
drivers/gpu/drm/nouveau/nouveau_drv.c
+0
-4
drivers/gpu/drm/nouveau/nouveau_drv.h
drivers/gpu/drm/nouveau/nouveau_drv.h
+1
-86
未找到文件。
drivers/gpu/drm/nouveau/nouveau_bo.h
0 → 100644
浏览文件 @
8be21a64
#ifndef __NOUVEAU_BO_H__
#define __NOUVEAU_BO_H__
struct
nouveau_channel
;
struct
nouveau_vma
;
struct
nouveau_tile_reg
{
bool
used
;
struct
nouveau_fence
*
fence
;
};
struct
nouveau_bo
{
struct
ttm_buffer_object
bo
;
struct
ttm_placement
placement
;
u32
valid_domains
;
u32
placements
[
3
];
u32
busy_placements
[
3
];
struct
ttm_bo_kmap_obj
kmap
;
struct
list_head
head
;
/* protected by ttm_bo_reserve() */
struct
drm_file
*
reserved_by
;
struct
list_head
entry
;
int
pbbo_index
;
bool
validate_mapped
;
struct
list_head
vma_list
;
unsigned
page_shift
;
u32
tile_mode
;
u32
tile_flags
;
struct
nouveau_tile_reg
*
tile
;
struct
drm_gem_object
*
gem
;
int
pin_refcnt
;
struct
ttm_bo_kmap_obj
dma_buf_vmap
;
int
vmapping_count
;
};
static
inline
struct
nouveau_bo
*
nouveau_bo
(
struct
ttm_buffer_object
*
bo
)
{
return
container_of
(
bo
,
struct
nouveau_bo
,
bo
);
}
static
inline
int
nouveau_bo_ref
(
struct
nouveau_bo
*
ref
,
struct
nouveau_bo
**
pnvbo
)
{
struct
nouveau_bo
*
prev
;
if
(
!
pnvbo
)
return
-
EINVAL
;
prev
=
*
pnvbo
;
*
pnvbo
=
ref
?
nouveau_bo
(
ttm_bo_reference
(
&
ref
->
bo
))
:
NULL
;
if
(
prev
)
{
struct
ttm_buffer_object
*
bo
=
&
prev
->
bo
;
ttm_bo_unref
(
&
bo
);
}
return
0
;
}
extern
struct
ttm_bo_driver
nouveau_bo_driver
;
void
nouveau_bo_move_init
(
struct
nouveau_channel
*
);
int
nouveau_bo_new
(
struct
drm_device
*
,
int
size
,
int
align
,
u32
flags
,
u32
tile_mode
,
u32
tile_flags
,
struct
sg_table
*
sg
,
struct
nouveau_bo
**
);
int
nouveau_bo_pin
(
struct
nouveau_bo
*
,
u32
flags
);
int
nouveau_bo_unpin
(
struct
nouveau_bo
*
);
int
nouveau_bo_map
(
struct
nouveau_bo
*
);
void
nouveau_bo_unmap
(
struct
nouveau_bo
*
);
void
nouveau_bo_placement_set
(
struct
nouveau_bo
*
,
u32
type
,
u32
busy
);
u16
nouveau_bo_rd16
(
struct
nouveau_bo
*
,
unsigned
index
);
void
nouveau_bo_wr16
(
struct
nouveau_bo
*
,
unsigned
index
,
u16
val
);
u32
nouveau_bo_rd32
(
struct
nouveau_bo
*
,
unsigned
index
);
void
nouveau_bo_wr32
(
struct
nouveau_bo
*
,
unsigned
index
,
u32
val
);
void
nouveau_bo_fence
(
struct
nouveau_bo
*
,
struct
nouveau_fence
*
);
int
nouveau_bo_validate
(
struct
nouveau_bo
*
,
bool
interruptible
,
bool
no_wait_reserve
,
bool
no_wait_gpu
);
struct
nouveau_vma
*
nouveau_bo_vma_find
(
struct
nouveau_bo
*
,
struct
nouveau_vm
*
);
int
nouveau_bo_vma_add
(
struct
nouveau_bo
*
,
struct
nouveau_vm
*
,
struct
nouveau_vma
*
);
void
nouveau_bo_vma_del
(
struct
nouveau_bo
*
,
struct
nouveau_vma
*
);
#endif
drivers/gpu/drm/nouveau/nouveau_channel.c
浏览文件 @
8be21a64
...
...
@@ -32,6 +32,10 @@
#include "nouveau_fence.h"
#include "nouveau_software.h"
MODULE_PARM_DESC
(
vram_pushbuf
,
"Force DMA push buffers to be in VRAM"
);
int
nouveau_vram_pushbuf
;
module_param_named
(
vram_pushbuf
,
nouveau_vram_pushbuf
,
int
,
0400
);
static
int
nouveau_channel_pushbuf_init
(
struct
nouveau_channel
*
chan
)
{
...
...
drivers/gpu/drm/nouveau/nouveau_drv.c
浏览文件 @
8be21a64
...
...
@@ -43,10 +43,6 @@ MODULE_PARM_DESC(modeset, "Enable kernel modesetting");
int
nouveau_modeset
=
-
1
;
module_param_named
(
modeset
,
nouveau_modeset
,
int
,
0400
);
MODULE_PARM_DESC
(
vram_pushbuf
,
"Force DMA push buffers to be in VRAM"
);
int
nouveau_vram_pushbuf
;
module_param_named
(
vram_pushbuf
,
nouveau_vram_pushbuf
,
int
,
0400
);
MODULE_PARM_DESC
(
vram_notify
,
"Force DMA notifiers to be in VRAM"
);
int
nouveau_vram_notify
=
0
;
module_param_named
(
vram_notify
,
nouveau_vram_notify
,
int
,
0400
);
...
...
drivers/gpu/drm/nouveau/nouveau_drv.h
浏览文件 @
8be21a64
...
...
@@ -104,49 +104,11 @@ struct nouveau_mem;
#define NOUVEAU_MAX_CHANNEL_NR 4096
#define NOUVEAU_MAX_TILE_NR 15
struct
nouveau_tile_reg
{
bool
used
;
struct
nouveau_fence
*
fence
;
};
struct
nouveau_bo
{
struct
ttm_buffer_object
bo
;
struct
ttm_placement
placement
;
u32
valid_domains
;
u32
placements
[
3
];
u32
busy_placements
[
3
];
struct
ttm_bo_kmap_obj
kmap
;
struct
list_head
head
;
/* protected by ttm_bo_reserve() */
struct
drm_file
*
reserved_by
;
struct
list_head
entry
;
int
pbbo_index
;
bool
validate_mapped
;
struct
list_head
vma_list
;
unsigned
page_shift
;
uint32_t
tile_mode
;
uint32_t
tile_flags
;
struct
nouveau_tile_reg
*
tile
;
struct
drm_gem_object
*
gem
;
int
pin_refcnt
;
struct
ttm_bo_kmap_obj
dma_buf_vmap
;
int
vmapping_count
;
};
#include "nouveau_bo.h"
#define nouveau_bo_tile_layout(nvbo) \
((nvbo)->tile_flags & NOUVEAU_GEM_TILE_LAYOUT_MASK)
static
inline
struct
nouveau_bo
*
nouveau_bo
(
struct
ttm_buffer_object
*
bo
)
{
return
container_of
(
bo
,
struct
nouveau_bo
,
bo
);
}
static
inline
struct
nouveau_bo
*
nouveau_gem_object
(
struct
drm_gem_object
*
gem
)
{
...
...
@@ -591,25 +553,6 @@ nouveau_bdev(struct ttm_bo_device *bd)
return
container_of
(
bd
,
struct
drm_nouveau_private
,
ttm
.
bdev
);
}
static
inline
int
nouveau_bo_ref
(
struct
nouveau_bo
*
ref
,
struct
nouveau_bo
**
pnvbo
)
{
struct
nouveau_bo
*
prev
;
if
(
!
pnvbo
)
return
-
EINVAL
;
prev
=
*
pnvbo
;
*
pnvbo
=
ref
?
nouveau_bo
(
ttm_bo_reference
(
&
ref
->
bo
))
:
NULL
;
if
(
prev
)
{
struct
ttm_buffer_object
*
bo
=
&
prev
->
bo
;
ttm_bo_unref
(
&
bo
);
}
return
0
;
}
/* nouveau_drv.c */
extern
int
nouveau_modeset
;
extern
int
nouveau_duallink
;
...
...
@@ -931,34 +874,6 @@ void nvd0_display_flip_stop(struct drm_crtc *);
int
nvd0_display_flip_next
(
struct
drm_crtc
*
,
struct
drm_framebuffer
*
,
struct
nouveau_channel
*
,
u32
swap_interval
);
/* nouveau_bo.c */
extern
struct
ttm_bo_driver
nouveau_bo_driver
;
extern
void
nouveau_bo_move_init
(
struct
nouveau_channel
*
);
extern
int
nouveau_bo_new
(
struct
drm_device
*
,
int
size
,
int
align
,
uint32_t
flags
,
uint32_t
tile_mode
,
uint32_t
tile_flags
,
struct
sg_table
*
sg
,
struct
nouveau_bo
**
);
extern
int
nouveau_bo_pin
(
struct
nouveau_bo
*
,
uint32_t
flags
);
extern
int
nouveau_bo_unpin
(
struct
nouveau_bo
*
);
extern
int
nouveau_bo_map
(
struct
nouveau_bo
*
);
extern
void
nouveau_bo_unmap
(
struct
nouveau_bo
*
);
extern
void
nouveau_bo_placement_set
(
struct
nouveau_bo
*
,
uint32_t
type
,
uint32_t
busy
);
extern
u16
nouveau_bo_rd16
(
struct
nouveau_bo
*
nvbo
,
unsigned
index
);
extern
void
nouveau_bo_wr16
(
struct
nouveau_bo
*
nvbo
,
unsigned
index
,
u16
val
);
extern
u32
nouveau_bo_rd32
(
struct
nouveau_bo
*
nvbo
,
unsigned
index
);
extern
void
nouveau_bo_wr32
(
struct
nouveau_bo
*
nvbo
,
unsigned
index
,
u32
val
);
extern
void
nouveau_bo_fence
(
struct
nouveau_bo
*
,
struct
nouveau_fence
*
);
extern
int
nouveau_bo_validate
(
struct
nouveau_bo
*
,
bool
interruptible
,
bool
no_wait_reserve
,
bool
no_wait_gpu
);
extern
struct
nouveau_vma
*
nouveau_bo_vma_find
(
struct
nouveau_bo
*
,
struct
nouveau_vm
*
);
extern
int
nouveau_bo_vma_add
(
struct
nouveau_bo
*
,
struct
nouveau_vm
*
,
struct
nouveau_vma
*
);
extern
void
nouveau_bo_vma_del
(
struct
nouveau_bo
*
,
struct
nouveau_vma
*
);
/* nouveau_gem.c */
extern
int
nouveau_gem_new
(
struct
drm_device
*
,
int
size
,
int
align
,
uint32_t
domain
,
uint32_t
tile_mode
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录