Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
1545085a
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看板
提交
1545085a
编写于
2月 08, 2007
作者:
T
Thomas Hellstrom
提交者:
Dave Airlie
2月 08, 2007
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
drm: Allow for 44 bit user-tokens (or drm_file offsets)
上级
756db73d
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
14 addition
and
13 deletion
+14
-13
drivers/char/drm/drm_bufs.c
drivers/char/drm/drm_bufs.c
+5
-4
drivers/char/drm/drm_proc.c
drivers/char/drm/drm_proc.c
+2
-2
drivers/char/drm/drm_vm.c
drivers/char/drm/drm_vm.c
+7
-7
未找到文件。
drivers/char/drm/drm_bufs.c
浏览文件 @
1545085a
...
...
@@ -79,14 +79,14 @@ static int drm_map_handle(drm_device_t *dev, drm_hash_item_t *hash,
if
(
!
use_hashed_handle
)
{
int
ret
;
hash
->
key
=
user_token
;
hash
->
key
=
user_token
>>
PAGE_SHIFT
;
ret
=
drm_ht_insert_item
(
&
dev
->
map_hash
,
hash
);
if
(
ret
!=
-
EINVAL
)
return
ret
;
}
return
drm_ht_just_insert_please
(
&
dev
->
map_hash
,
hash
,
user_token
,
32
-
PAGE_SHIFT
-
3
,
PAGE_SHIFT
,
DRM_MAP_HASH_OFFSE
T
);
0
,
DRM_MAP_HASH_OFFSET
>>
PAGE_SHIF
T
);
}
/**
...
...
@@ -262,7 +262,7 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset,
return
ret
;
}
list
->
user_token
=
list
->
hash
.
key
;
list
->
user_token
=
list
->
hash
.
key
<<
PAGE_SHIFT
;
mutex_unlock
(
&
dev
->
struct_mutex
);
*
maplist
=
list
;
...
...
@@ -347,7 +347,8 @@ int drm_rmmap_locked(drm_device_t *dev, drm_local_map_t *map)
if
(
r_list
->
map
==
map
)
{
list_del
(
list
);
drm_ht_remove_key
(
&
dev
->
map_hash
,
r_list
->
user_token
);
drm_ht_remove_key
(
&
dev
->
map_hash
,
r_list
->
user_token
>>
PAGE_SHIFT
);
drm_free
(
list
,
sizeof
(
*
list
),
DRM_MEM_MAPS
);
break
;
}
...
...
drivers/char/drm/drm_proc.c
浏览文件 @
1545085a
...
...
@@ -500,7 +500,7 @@ static int drm__vma_info(char *buf, char **start, off_t offset, int request,
for
(
pt
=
dev
->
vmalist
;
pt
;
pt
=
pt
->
next
)
{
if
(
!
(
vma
=
pt
->
vma
))
continue
;
DRM_PROC_PRINT
(
"
\n
%5d 0x%08lx-0x%08lx %c%c%c%c%c%c 0x%08lx"
,
DRM_PROC_PRINT
(
"
\n
%5d 0x%08lx-0x%08lx %c%c%c%c%c%c 0x%08lx
000
"
,
pt
->
pid
,
vma
->
vm_start
,
vma
->
vm_end
,
...
...
@@ -510,7 +510,7 @@ static int drm__vma_info(char *buf, char **start, off_t offset, int request,
vma
->
vm_flags
&
VM_MAYSHARE
?
's'
:
'p'
,
vma
->
vm_flags
&
VM_LOCKED
?
'l'
:
'-'
,
vma
->
vm_flags
&
VM_IO
?
'i'
:
'-'
,
vma
->
vm_pgoff
<<
PAGE_SHIFT
);
vma
->
vm_pgoff
);
#if defined(__i386__)
pgprot
=
pgprot_val
(
vma
->
vm_page_prot
);
...
...
drivers/char/drm/drm_vm.c
浏览文件 @
1545085a
...
...
@@ -70,7 +70,7 @@ static __inline__ struct page *drm_do_vm_nopage(struct vm_area_struct *vma,
if
(
!
dev
->
agp
||
!
dev
->
agp
->
cant_use_aperture
)
goto
vm_nopage_error
;
if
(
drm_ht_find_item
(
&
dev
->
map_hash
,
vma
->
vm_pgoff
<<
PAGE_SHIFT
,
&
hash
))
if
(
drm_ht_find_item
(
&
dev
->
map_hash
,
vma
->
vm_pgoff
,
&
hash
))
goto
vm_nopage_error
;
r_list
=
drm_hash_entry
(
hash
,
drm_map_list_t
,
hash
);
...
...
@@ -463,8 +463,8 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma)
lock_kernel
();
dev
=
priv
->
head
->
dev
;
dma
=
dev
->
dma
;
DRM_DEBUG
(
"start = 0x%lx, end = 0x%lx, offset = 0x%lx
\n
"
,
vma
->
vm_start
,
vma
->
vm_end
,
vma
->
vm_pgoff
<<
PAGE_SHIFT
);
DRM_DEBUG
(
"start = 0x%lx, end = 0x%lx,
page
offset = 0x%lx
\n
"
,
vma
->
vm_start
,
vma
->
vm_end
,
vma
->
vm_pgoff
);
/* Length must match exact page count */
if
(
!
dma
||
(
length
>>
PAGE_SHIFT
)
!=
dma
->
page_count
)
{
...
...
@@ -537,8 +537,8 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma)
unsigned
long
offset
=
0
;
drm_hash_item_t
*
hash
;
DRM_DEBUG
(
"start = 0x%lx, end = 0x%lx, offset = 0x%lx
\n
"
,
vma
->
vm_start
,
vma
->
vm_end
,
vma
->
vm_pgoff
<<
PAGE_SHIFT
);
DRM_DEBUG
(
"start = 0x%lx, end = 0x%lx,
page
offset = 0x%lx
\n
"
,
vma
->
vm_start
,
vma
->
vm_end
,
vma
->
vm_pgoff
);
if
(
!
priv
->
authenticated
)
return
-
EACCES
;
...
...
@@ -547,7 +547,7 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma)
* the AGP mapped at physical address 0
* --BenH.
*/
if
(
!
(
vma
->
vm_pgoff
<<
PAGE_SHIFT
)
if
(
!
vma
->
vm_pgoff
#if __OS_HAS_AGP
&&
(
!
dev
->
agp
||
dev
->
agp
->
agp_info
.
device
->
vendor
!=
PCI_VENDOR_ID_APPLE
)
...
...
@@ -555,7 +555,7 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma)
)
return
drm_mmap_dma
(
filp
,
vma
);
if
(
drm_ht_find_item
(
&
dev
->
map_hash
,
vma
->
vm_pgoff
<<
PAGE_SHIFT
,
&
hash
))
{
if
(
drm_ht_find_item
(
&
dev
->
map_hash
,
vma
->
vm_pgoff
,
&
hash
))
{
DRM_ERROR
(
"Could not find map
\n
"
);
return
-
EINVAL
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录