Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
fd3a5225
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看板
提交
fd3a5225
编写于
10月 12, 2012
作者:
B
Ben Skeggs
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm/nv20/fb: fixup compression tag allocation size
Signed-off-by:
N
Ben Skeggs
<
bskeggs@redhat.com
>
上级
fafa0cb3
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
30 deletion
+17
-30
drivers/gpu/drm/nouveau/core/include/subdev/fb.h
drivers/gpu/drm/nouveau/core/include/subdev/fb.h
+2
-0
drivers/gpu/drm/nouveau/core/subdev/fb/nv20.c
drivers/gpu/drm/nouveau/core/subdev/fb/nv20.c
+9
-15
drivers/gpu/drm/nouveau/core/subdev/fb/nv25.c
drivers/gpu/drm/nouveau/core/subdev/fb/nv25.c
+6
-15
未找到文件。
drivers/gpu/drm/nouveau/core/include/subdev/fb.h
浏览文件 @
fd3a5225
...
...
@@ -69,7 +69,9 @@ struct nouveau_fb {
}
type
;
u64
stolen
;
u64
size
;
int
ranks
;
int
parts
;
int
(
*
init
)(
struct
nouveau_fb
*
);
int
(
*
get
)(
struct
nouveau_fb
*
,
u64
size
,
u32
align
,
...
...
drivers/gpu/drm/nouveau/core/subdev/fb/nv20.c
浏览文件 @
fd3a5225
...
...
@@ -41,7 +41,8 @@ nv20_fb_vram_init(struct nouveau_fb *pfb)
case
0x00000200
:
pfb
->
ram
.
type
=
NV_MEM_TYPE_GDDR3
;
break
;
case
0x00000300
:
pfb
->
ram
.
type
=
NV_MEM_TYPE_GDDR2
;
break
;
}
pfb
->
ram
.
size
=
nv_rd32
(
pfb
,
0x10020c
)
&
0xff000000
;
pfb
->
ram
.
size
=
(
nv_rd32
(
pfb
,
0x10020c
)
&
0xff000000
);
pfb
->
ram
.
parts
=
(
nv_rd32
(
pfb
,
0x100200
)
&
0x00000003
)
+
1
;
return
nv_rd32
(
pfb
,
0x100320
);
}
...
...
@@ -63,20 +64,13 @@ static void
nv20_fb_tile_comp
(
struct
nouveau_fb
*
pfb
,
int
i
,
u32
size
,
u32
flags
,
struct
nouveau_fb_tile
*
tile
)
{
int
bpp
=
(
flags
&
2
)
?
32
:
16
;
/* Allocate some of the on-die tag memory, used to store Z
* compression meta-data (most likely just a bitmap determining
* if a given tile is compressed or not).
*/
size
/=
256
;
if
(
!
nouveau_mm_head
(
&
pfb
->
tags
,
1
,
size
,
size
,
1
,
&
tile
->
tag
))
{
/* Enable Z compression */
tile
->
zcomp
=
tile
->
tag
->
offset
;
tile
->
zcomp
|=
0x80000000
;
if
(
bpp
!=
16
)
tile
->
zcomp
|=
0x04000000
;
u32
tiles
=
DIV_ROUND_UP
(
size
,
0x40
);
u32
tags
=
round_up
(
tiles
/
pfb
->
ram
.
parts
,
0x40
);
if
(
!
nouveau_mm_head
(
&
pfb
->
tags
,
1
,
tags
,
tags
,
1
,
&
tile
->
tag
))
{
if
(
!
(
flags
&
2
))
tile
->
zcomp
=
0x00000000
;
/* Z16 */
else
tile
->
zcomp
=
0x04000000
;
/* Z24S8 */
tile
->
zcomp
|=
tile
->
tag
->
offset
;
tile
->
zcomp
|=
0x80000000
;
/* enable */
#ifdef __BIG_ENDIAN
tile
->
zcomp
|=
0x08000000
;
#endif
...
...
drivers/gpu/drm/nouveau/core/subdev/fb/nv25.c
浏览文件 @
fd3a5225
...
...
@@ -34,21 +34,12 @@ static void
nv25_fb_tile_comp
(
struct
nouveau_fb
*
pfb
,
int
i
,
u32
size
,
u32
flags
,
struct
nouveau_fb_tile
*
tile
)
{
int
bpp
=
(
flags
&
2
)
?
32
:
16
;
/* Allocate some of the on-die tag memory, used to store Z
* compression meta-data (most likely just a bitmap determining
* if a given tile is compressed or not).
*/
size
/=
256
;
if
(
!
nouveau_mm_head
(
&
pfb
->
tags
,
1
,
size
,
size
,
1
,
&
tile
->
tag
))
{
/* Enable Z compression */
tile
->
zcomp
=
tile
->
tag
->
offset
;
if
(
bpp
==
16
)
tile
->
zcomp
|=
0x00100000
;
else
tile
->
zcomp
|=
0x00200000
;
u32
tiles
=
DIV_ROUND_UP
(
size
,
0x40
);
u32
tags
=
round_up
(
tiles
/
pfb
->
ram
.
parts
,
0x40
);
if
(
!
nouveau_mm_head
(
&
pfb
->
tags
,
1
,
tags
,
tags
,
1
,
&
tile
->
tag
))
{
if
(
!
(
flags
&
2
))
tile
->
zcomp
=
0x00100000
;
/* Z16 */
else
tile
->
zcomp
=
0x00200000
;
/* Z24S8 */
tile
->
zcomp
|=
tile
->
tag
->
offset
;
#ifdef __BIG_ENDIAN
tile
->
zcomp
|=
0x01000000
;
#endif
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录