Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
576cc458
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
576cc458
编写于
2月 07, 2008
作者:
R
Roland Scheidegger
提交者:
Dave Airlie
2月 07, 2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
radeon: setup the ring buffer fetcher to be less agressive.
Signed-off-by:
N
Dave Airlie
<
airlied@linux.ie
>
上级
9d5b3ffc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
62 addition
and
3 deletion
+62
-3
drivers/char/drm/radeon_cp.c
drivers/char/drm/radeon_cp.c
+13
-2
drivers/char/drm/radeon_drv.h
drivers/char/drm/radeon_drv.h
+49
-1
未找到文件。
drivers/char/drm/radeon_cp.c
浏览文件 @
576cc458
...
...
@@ -1190,9 +1190,15 @@ static void radeon_cp_init_ring_buffer(struct drm_device * dev,
/* Set ring buffer size */
#ifdef __BIG_ENDIAN
RADEON_WRITE
(
RADEON_CP_RB_CNTL
,
dev_priv
->
ring
.
size_l2qw
|
RADEON_BUF_SWAP_32BIT
);
RADEON_BUF_SWAP_32BIT
|
(
dev_priv
->
ring
.
fetch_size_l2ow
<<
18
)
|
(
dev_priv
->
ring
.
rptr_update_l2qw
<<
8
)
|
dev_priv
->
ring
.
size_l2qw
);
#else
RADEON_WRITE
(
RADEON_CP_RB_CNTL
,
dev_priv
->
ring
.
size_l2qw
);
RADEON_WRITE
(
RADEON_CP_RB_CNTL
,
(
dev_priv
->
ring
.
fetch_size_l2ow
<<
18
)
|
(
dev_priv
->
ring
.
rptr_update_l2qw
<<
8
)
|
dev_priv
->
ring
.
size_l2qw
);
#endif
/* Start with assuming that writeback doesn't work */
...
...
@@ -1663,6 +1669,11 @@ static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init)
dev_priv
->
ring
.
size
=
init
->
ring_size
;
dev_priv
->
ring
.
size_l2qw
=
drm_order
(
init
->
ring_size
/
8
);
dev_priv
->
ring
.
rptr_update
=
/* init->rptr_update */
4096
;
dev_priv
->
ring
.
rptr_update_l2qw
=
drm_order
(
/* init->rptr_update */
4096
/
8
);
dev_priv
->
ring
.
fetch_size
=
/* init->fetch_size */
32
;
dev_priv
->
ring
.
fetch_size_l2ow
=
drm_order
(
/* init->fetch_size */
32
/
16
);
dev_priv
->
ring
.
tail_mask
=
(
dev_priv
->
ring
.
size
/
sizeof
(
u32
))
-
1
;
dev_priv
->
ring
.
high_mark
=
RADEON_RING_HIGH_MARK
;
...
...
drivers/char/drm/radeon_drv.h
浏览文件 @
576cc458
...
...
@@ -166,6 +166,12 @@ typedef struct drm_radeon_ring_buffer {
int
size
;
int
size_l2qw
;
int
rptr_update
;
/* Double Words */
int
rptr_update_l2qw
;
/* log2 Quad Words */
int
fetch_size
;
/* Double Words */
int
fetch_size_l2ow
;
/* log2 Oct Words */
u32
tail
;
u32
tail_mask
;
int
space
;
...
...
@@ -615,9 +621,51 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
# define RADEON_SOFT_RESET_E2 (1 << 5)
# define RADEON_SOFT_RESET_RB (1 << 6)
# define RADEON_SOFT_RESET_HDP (1 << 7)
/*
* 6:0 Available slots in the FIFO
* 8 Host Interface active
* 9 CP request active
* 10 FIFO request active
* 11 Host Interface retry active
* 12 CP retry active
* 13 FIFO retry active
* 14 FIFO pipeline busy
* 15 Event engine busy
* 16 CP command stream busy
* 17 2D engine busy
* 18 2D portion of render backend busy
* 20 3D setup engine busy
* 26 GA engine busy
* 27 CBA 2D engine busy
* 31 2D engine busy or 3D engine busy or FIFO not empty or CP busy or
* command stream queue not empty or Ring Buffer not empty
*/
#define RADEON_RBBM_STATUS 0x0e40
/* Same as the previous RADEON_RBBM_STATUS; this is a mirror of that register. */
/* #define RADEON_RBBM_STATUS 0x1740 */
/* bits 6:0 are dword slots available in the cmd fifo */
# define RADEON_RBBM_FIFOCNT_MASK 0x007f
# define RADEON_RBBM_ACTIVE (1 << 31)
# define RADEON_HIRQ_ON_RBB (1 << 8)
# define RADEON_CPRQ_ON_RBB (1 << 9)
# define RADEON_CFRQ_ON_RBB (1 << 10)
# define RADEON_HIRQ_IN_RTBUF (1 << 11)
# define RADEON_CPRQ_IN_RTBUF (1 << 12)
# define RADEON_CFRQ_IN_RTBUF (1 << 13)
# define RADEON_PIPE_BUSY (1 << 14)
# define RADEON_ENG_EV_BUSY (1 << 15)
# define RADEON_CP_CMDSTRM_BUSY (1 << 16)
# define RADEON_E2_BUSY (1 << 17)
# define RADEON_RB2D_BUSY (1 << 18)
# define RADEON_RB3D_BUSY (1 << 19)
/* not used on r300 */
# define RADEON_VAP_BUSY (1 << 20)
# define RADEON_RE_BUSY (1 << 21)
/* not used on r300 */
# define RADEON_TAM_BUSY (1 << 22)
/* not used on r300 */
# define RADEON_TDM_BUSY (1 << 23)
/* not used on r300 */
# define RADEON_PB_BUSY (1 << 24)
/* not used on r300 */
# define RADEON_TIM_BUSY (1 << 25)
/* not used on r300 */
# define RADEON_GA_BUSY (1 << 26)
# define RADEON_CBA2D_BUSY (1 << 27)
# define RADEON_RBBM_ACTIVE (1 << 31)
#define RADEON_RE_LINE_PATTERN 0x1cd0
#define RADEON_RE_MISC 0x26c4
#define RADEON_RE_TOP_LEFT 0x26c0
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录