Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
bd2f2037
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bd2f2037
编写于
2月 08, 2011
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nvc0: support for sw methods + enable page flipping
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
d7117e0d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
23 addition
and
7 deletion
+23
-7
drivers/gpu/drm/nouveau/nouveau_display.c
drivers/gpu/drm/nouveau/nouveau_display.c
+7
-3
drivers/gpu/drm/nouveau/nouveau_state.c
drivers/gpu/drm/nouveau/nouveau_state.c
+1
-1
drivers/gpu/drm/nouveau/nvc0_graph.c
drivers/gpu/drm/nouveau/nvc0_graph.c
+15
-3
未找到文件。
drivers/gpu/drm/nouveau/nouveau_display.c
浏览文件 @
bd2f2037
...
...
@@ -224,6 +224,7 @@ nouveau_page_flip_emit(struct nouveau_channel *chan,
struct
nouveau_page_flip_state
*
s
,
struct
nouveau_fence
**
pfence
)
{
struct
drm_nouveau_private
*
dev_priv
=
chan
->
dev
->
dev_private
;
struct
drm_device
*
dev
=
chan
->
dev
;
unsigned
long
flags
;
int
ret
;
...
...
@@ -243,9 +244,12 @@ nouveau_page_flip_emit(struct nouveau_channel *chan,
if
(
ret
)
goto
fail
;
BEGIN_RING
(
chan
,
NvSubSw
,
NV_SW_PAGE_FLIP
,
1
);
OUT_RING
(
chan
,
0
);
FIRE_RING
(
chan
);
if
(
dev_priv
->
card_type
<
NV_C0
)
BEGIN_RING
(
chan
,
NvSubSw
,
NV_SW_PAGE_FLIP
,
1
);
else
BEGIN_NVC0
(
chan
,
2
,
NvSubM2MF
,
0x0500
,
1
);
OUT_RING
(
chan
,
0
);
FIRE_RING
(
chan
);
ret
=
nouveau_fence_new
(
chan
,
pfence
,
true
);
if
(
ret
)
...
...
drivers/gpu/drm/nouveau/nouveau_state.c
浏览文件 @
bd2f2037
...
...
@@ -1118,7 +1118,7 @@ int nouveau_ioctl_getparam(struct drm_device *dev, void *data,
getparam
->
value
=
1
;
break
;
case
NOUVEAU_GETPARAM_HAS_PAGEFLIP
:
getparam
->
value
=
(
dev_priv
->
card_type
<
NV_C0
)
?
1
:
0
;
getparam
->
value
=
1
;
break
;
case
NOUVEAU_GETPARAM_GRAPH_UNITS
:
/* NV40 and NV50 versions are quite different, but register
...
...
drivers/gpu/drm/nouveau/nvc0_graph.c
浏览文件 @
bd2f2037
...
...
@@ -298,6 +298,14 @@ nvc0_graph_takedown(struct drm_device *dev)
nvc0_graph_destroy
(
dev
);
}
static
int
nvc0_graph_mthd_page_flip
(
struct
nouveau_channel
*
chan
,
u32
class
,
u32
mthd
,
u32
data
)
{
nouveau_finish_page_flip
(
chan
,
NULL
);
return
0
;
}
static
int
nvc0_graph_create
(
struct
drm_device
*
dev
)
{
...
...
@@ -395,6 +403,7 @@ nvc0_graph_create(struct drm_device *dev)
nouveau_irq_register
(
dev
,
25
,
nvc0_runk140_isr
);
NVOBJ_CLASS
(
dev
,
0x902d
,
GR
);
/* 2D */
NVOBJ_CLASS
(
dev
,
0x9039
,
GR
);
/* M2MF */
NVOBJ_MTHD
(
dev
,
0x9039
,
0x0500
,
nvc0_graph_mthd_page_flip
);
NVOBJ_CLASS
(
dev
,
0x9097
,
GR
);
/* 3D */
NVOBJ_CLASS
(
dev
,
0x90c0
,
GR
);
/* COMPUTE */
return
0
;
...
...
@@ -728,9 +737,12 @@ nvc0_graph_isr(struct drm_device *dev)
u32
class
=
nv_rd32
(
dev
,
0x404200
+
(
subc
*
4
));
if
(
stat
&
0x00000010
)
{
NV_INFO
(
dev
,
"PGRAPH: ILLEGAL_MTHD ch %d [0x%010llx] subc %d "
"class 0x%04x mthd 0x%04x data 0x%08x
\n
"
,
chid
,
inst
,
subc
,
class
,
mthd
,
data
);
if
(
nouveau_gpuobj_mthd_call2
(
dev
,
chid
,
class
,
mthd
,
data
))
{
NV_INFO
(
dev
,
"PGRAPH: ILLEGAL_MTHD ch %d [0x%010llx] "
"subc %d class 0x%04x mthd 0x%04x "
"data 0x%08x
\n
"
,
chid
,
inst
,
subc
,
class
,
mthd
,
data
);
}
nv_wr32
(
dev
,
0x400100
,
0x00000010
);
stat
&=
~
0x00000010
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录