Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
b970be7c
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
b970be7c
编写于
9月 08, 2010
作者:
C
Chris Wilson
浏览文件
操作
浏览文件
下载
差异文件
Merge remote branch 'airlied/drm-core-next' into HEAD
上级
c3add4b6
cbc60ca0
变更
25
隐藏空白更改
内联
并排
Showing
25 changed file
with
19 addition
and
385 deletion
+19
-385
drivers/gpu/drm/Makefile
drivers/gpu/drm/Makefile
+1
-1
drivers/gpu/drm/drm_agpsupport.c
drivers/gpu/drm/drm_agpsupport.c
+4
-36
drivers/gpu/drm/drm_context.c
drivers/gpu/drm/drm_context.c
+0
-8
drivers/gpu/drm/drm_drawable.c
drivers/gpu/drm/drm_drawable.c
+0
-198
drivers/gpu/drm/drm_drv.c
drivers/gpu/drm/drm_drv.c
+3
-7
drivers/gpu/drm/drm_gem.c
drivers/gpu/drm/drm_gem.c
+1
-3
drivers/gpu/drm/drm_lock.c
drivers/gpu/drm/drm_lock.c
+3
-28
drivers/gpu/drm/drm_memory.c
drivers/gpu/drm/drm_memory.c
+4
-10
drivers/gpu/drm/drm_proc.c
drivers/gpu/drm/drm_proc.c
+0
-13
drivers/gpu/drm/drm_scatter.c
drivers/gpu/drm/drm_scatter.c
+0
-2
drivers/gpu/drm/drm_stub.c
drivers/gpu/drm/drm_stub.c
+0
-4
drivers/gpu/drm/drm_vm.c
drivers/gpu/drm/drm_vm.c
+2
-11
drivers/gpu/drm/i810/i810_drv.c
drivers/gpu/drm/i810/i810_drv.c
+0
-2
drivers/gpu/drm/i830/i830_drv.c
drivers/gpu/drm/i830/i830_drv.c
+0
-2
drivers/gpu/drm/i915/i915_drv.c
drivers/gpu/drm/i915/i915_drv.c
+0
-2
drivers/gpu/drm/mga/mga_drv.c
drivers/gpu/drm/mga/mga_drv.c
+0
-2
drivers/gpu/drm/nouveau/nouveau_drv.c
drivers/gpu/drm/nouveau/nouveau_drv.c
+0
-2
drivers/gpu/drm/r128/r128_drv.c
drivers/gpu/drm/r128/r128_drv.c
+0
-2
drivers/gpu/drm/radeon/radeon_drv.c
drivers/gpu/drm/radeon/radeon_drv.c
+0
-4
drivers/gpu/drm/savage/savage_drv.c
drivers/gpu/drm/savage/savage_drv.c
+0
-2
drivers/gpu/drm/sis/sis_drv.c
drivers/gpu/drm/sis/sis_drv.c
+0
-3
drivers/gpu/drm/tdfx/tdfx_drv.c
drivers/gpu/drm/tdfx/tdfx_drv.c
+0
-2
drivers/gpu/drm/via/via_drv.c
drivers/gpu/drm/via/via_drv.c
+0
-2
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+0
-2
include/drm/drmP.h
include/drm/drmP.h
+1
-37
未找到文件。
drivers/gpu/drm/Makefile
浏览文件 @
b970be7c
...
...
@@ -5,7 +5,7 @@
ccflags-y
:=
-Iinclude
/drm
drm-y
:=
drm_auth.o drm_buffer.o drm_bufs.o drm_cache.o
\
drm_context.o drm_dma.o
drm_drawable.o
\
drm_context.o drm_dma.o
\
drm_drv.o drm_fops.o drm_gem.o drm_ioctl.o drm_irq.o
\
drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o
\
drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o
\
...
...
drivers/gpu/drm/drm_agpsupport.c
浏览文件 @
b970be7c
...
...
@@ -193,7 +193,7 @@ int drm_agp_enable_ioctl(struct drm_device *dev, void *data,
* \return zero on success or a negative number on failure.
*
* Verifies the AGP device is present and has been acquired, allocates the
* memory via a
lloc_agp
() and creates a drm_agp_mem entry for it.
* memory via a
gp_allocate_memory
() and creates a drm_agp_mem entry for it.
*/
int
drm_agp_alloc
(
struct
drm_device
*
dev
,
struct
drm_agp_buffer
*
request
)
{
...
...
@@ -211,7 +211,7 @@ int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request)
pages
=
(
request
->
size
+
PAGE_SIZE
-
1
)
/
PAGE_SIZE
;
type
=
(
u32
)
request
->
type
;
if
(
!
(
memory
=
drm_alloc_agp
(
dev
,
pages
,
type
)))
{
if
(
!
(
memory
=
agp_allocate_memory
(
dev
->
agp
->
bridge
,
pages
,
type
)))
{
kfree
(
entry
);
return
-
ENOMEM
;
}
...
...
@@ -423,38 +423,6 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev)
return
head
;
}
/** Calls agp_allocate_memory() */
DRM_AGP_MEM
*
drm_agp_allocate_memory
(
struct
agp_bridge_data
*
bridge
,
size_t
pages
,
u32
type
)
{
return
agp_allocate_memory
(
bridge
,
pages
,
type
);
}
/** Calls agp_free_memory() */
int
drm_agp_free_memory
(
DRM_AGP_MEM
*
handle
)
{
if
(
!
handle
)
return
0
;
agp_free_memory
(
handle
);
return
1
;
}
/** Calls agp_bind_memory() */
int
drm_agp_bind_memory
(
DRM_AGP_MEM
*
handle
,
off_t
start
)
{
if
(
!
handle
)
return
-
EINVAL
;
return
agp_bind_memory
(
handle
,
start
);
}
/** Calls agp_unbind_memory() */
int
drm_agp_unbind_memory
(
DRM_AGP_MEM
*
handle
)
{
if
(
!
handle
)
return
-
EINVAL
;
return
agp_unbind_memory
(
handle
);
}
/**
* Binds a collection of pages into AGP memory at the given offset, returning
* the AGP memory structure containing them.
...
...
@@ -474,7 +442,7 @@ drm_agp_bind_pages(struct drm_device *dev,
DRM_DEBUG
(
"
\n
"
);
mem
=
drm_
agp_allocate_memory
(
dev
->
agp
->
bridge
,
num_pages
,
mem
=
agp_allocate_memory
(
dev
->
agp
->
bridge
,
num_pages
,
type
);
if
(
mem
==
NULL
)
{
DRM_ERROR
(
"Failed to allocate memory for %ld pages
\n
"
,
...
...
@@ -487,7 +455,7 @@ drm_agp_bind_pages(struct drm_device *dev,
mem
->
page_count
=
num_pages
;
mem
->
is_flushed
=
true
;
ret
=
drm_
agp_bind_memory
(
mem
,
gtt_offset
/
PAGE_SIZE
);
ret
=
agp_bind_memory
(
mem
,
gtt_offset
/
PAGE_SIZE
);
if
(
ret
!=
0
)
{
DRM_ERROR
(
"Failed to bind AGP memory: %d
\n
"
,
ret
);
agp_free_memory
(
mem
);
...
...
drivers/gpu/drm/drm_context.c
浏览文件 @
b970be7c
...
...
@@ -333,14 +333,6 @@ int drm_addctx(struct drm_device *dev, void *data,
return
-
ENOMEM
;
}
if
(
ctx
->
handle
!=
DRM_KERNEL_CONTEXT
)
{
if
(
dev
->
driver
->
context_ctor
)
if
(
!
dev
->
driver
->
context_ctor
(
dev
,
ctx
->
handle
))
{
DRM_DEBUG
(
"Running out of ctxs or memory.
\n
"
);
return
-
ENOMEM
;
}
}
ctx_entry
=
kmalloc
(
sizeof
(
*
ctx_entry
),
GFP_KERNEL
);
if
(
!
ctx_entry
)
{
DRM_DEBUG
(
"out of memory
\n
"
);
...
...
drivers/gpu/drm/drm_drawable.c
已删除
100644 → 0
浏览文件 @
c3add4b6
/**
* \file drm_drawable.c
* IOCTLs for drawables
*
* \author Rickard E. (Rik) Faith <faith@valinux.com>
* \author Gareth Hughes <gareth@valinux.com>
* \author Michel Dänzer <michel@tungstengraphics.com>
*/
/*
* Created: Tue Feb 2 08:37:54 1999 by faith@valinux.com
*
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
* Copyright 2006 Tungsten Graphics, Inc., Bismarck, North Dakota.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
#include "drmP.h"
/**
* Allocate drawable ID and memory to store information about it.
*/
int
drm_adddraw
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
)
{
unsigned
long
irqflags
;
struct
drm_draw
*
draw
=
data
;
int
new_id
=
0
;
int
ret
;
again:
if
(
idr_pre_get
(
&
dev
->
drw_idr
,
GFP_KERNEL
)
==
0
)
{
DRM_ERROR
(
"Out of memory expanding drawable idr
\n
"
);
return
-
ENOMEM
;
}
spin_lock_irqsave
(
&
dev
->
drw_lock
,
irqflags
);
ret
=
idr_get_new_above
(
&
dev
->
drw_idr
,
NULL
,
1
,
&
new_id
);
if
(
ret
==
-
EAGAIN
)
{
spin_unlock_irqrestore
(
&
dev
->
drw_lock
,
irqflags
);
goto
again
;
}
spin_unlock_irqrestore
(
&
dev
->
drw_lock
,
irqflags
);
draw
->
handle
=
new_id
;
DRM_DEBUG
(
"%d
\n
"
,
draw
->
handle
);
return
0
;
}
/**
* Free drawable ID and memory to store information about it.
*/
int
drm_rmdraw
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
)
{
struct
drm_draw
*
draw
=
data
;
unsigned
long
irqflags
;
struct
drm_drawable_info
*
info
;
spin_lock_irqsave
(
&
dev
->
drw_lock
,
irqflags
);
info
=
drm_get_drawable_info
(
dev
,
draw
->
handle
);
if
(
info
==
NULL
)
{
spin_unlock_irqrestore
(
&
dev
->
drw_lock
,
irqflags
);
return
-
EINVAL
;
}
kfree
(
info
->
rects
);
kfree
(
info
);
idr_remove
(
&
dev
->
drw_idr
,
draw
->
handle
);
spin_unlock_irqrestore
(
&
dev
->
drw_lock
,
irqflags
);
DRM_DEBUG
(
"%d
\n
"
,
draw
->
handle
);
return
0
;
}
int
drm_update_drawable_info
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
)
{
struct
drm_update_draw
*
update
=
data
;
unsigned
long
irqflags
;
struct
drm_clip_rect
*
rects
;
struct
drm_drawable_info
*
info
;
int
err
;
info
=
idr_find
(
&
dev
->
drw_idr
,
update
->
handle
);
if
(
!
info
)
{
info
=
kzalloc
(
sizeof
(
*
info
),
GFP_KERNEL
);
if
(
!
info
)
return
-
ENOMEM
;
if
(
IS_ERR
(
idr_replace
(
&
dev
->
drw_idr
,
info
,
update
->
handle
)))
{
DRM_ERROR
(
"No such drawable %d
\n
"
,
update
->
handle
);
kfree
(
info
);
return
-
EINVAL
;
}
}
switch
(
update
->
type
)
{
case
DRM_DRAWABLE_CLIPRECTS
:
if
(
update
->
num
==
0
)
rects
=
NULL
;
else
if
(
update
->
num
!=
info
->
num_rects
)
{
rects
=
kmalloc
(
update
->
num
*
sizeof
(
struct
drm_clip_rect
),
GFP_KERNEL
);
}
else
rects
=
info
->
rects
;
if
(
update
->
num
&&
!
rects
)
{
DRM_ERROR
(
"Failed to allocate cliprect memory
\n
"
);
err
=
-
ENOMEM
;
goto
error
;
}
if
(
update
->
num
&&
DRM_COPY_FROM_USER
(
rects
,
(
struct
drm_clip_rect
__user
*
)
(
unsigned
long
)
update
->
data
,
update
->
num
*
sizeof
(
*
rects
)))
{
DRM_ERROR
(
"Failed to copy cliprects from userspace
\n
"
);
err
=
-
EFAULT
;
goto
error
;
}
spin_lock_irqsave
(
&
dev
->
drw_lock
,
irqflags
);
if
(
rects
!=
info
->
rects
)
{
kfree
(
info
->
rects
);
}
info
->
rects
=
rects
;
info
->
num_rects
=
update
->
num
;
spin_unlock_irqrestore
(
&
dev
->
drw_lock
,
irqflags
);
DRM_DEBUG
(
"Updated %d cliprects for drawable %d
\n
"
,
info
->
num_rects
,
update
->
handle
);
break
;
default:
DRM_ERROR
(
"Invalid update type %d
\n
"
,
update
->
type
);
return
-
EINVAL
;
}
return
0
;
error:
if
(
rects
!=
info
->
rects
)
kfree
(
rects
);
return
err
;
}
/**
* Caller must hold the drawable spinlock!
*/
struct
drm_drawable_info
*
drm_get_drawable_info
(
struct
drm_device
*
dev
,
drm_drawable_t
id
)
{
return
idr_find
(
&
dev
->
drw_idr
,
id
);
}
EXPORT_SYMBOL
(
drm_get_drawable_info
);
static
int
drm_drawable_free
(
int
idr
,
void
*
p
,
void
*
data
)
{
struct
drm_drawable_info
*
info
=
p
;
if
(
info
)
{
kfree
(
info
->
rects
);
kfree
(
info
);
}
return
0
;
}
void
drm_drawable_free_all
(
struct
drm_device
*
dev
)
{
idr_for_each
(
&
dev
->
drw_idr
,
drm_drawable_free
,
NULL
);
idr_remove_all
(
&
dev
->
drw_idr
);
}
drivers/gpu/drm/drm_drv.c
浏览文件 @
b970be7c
...
...
@@ -91,8 +91,8 @@ static struct drm_ioctl_desc drm_ioctls[] = {
DRM_IOCTL_DEF
(
DRM_IOCTL_NEW_CTX
,
drm_newctx
,
DRM_AUTH
|
DRM_MASTER
|
DRM_ROOT_ONLY
),
DRM_IOCTL_DEF
(
DRM_IOCTL_RES_CTX
,
drm_resctx
,
DRM_AUTH
),
DRM_IOCTL_DEF
(
DRM_IOCTL_ADD_DRAW
,
drm_
adddraw
,
DRM_AUTH
|
DRM_MASTER
|
DRM_ROOT_ONLY
),
DRM_IOCTL_DEF
(
DRM_IOCTL_RM_DRAW
,
drm_
rmdraw
,
DRM_AUTH
|
DRM_MASTER
|
DRM_ROOT_ONLY
),
DRM_IOCTL_DEF
(
DRM_IOCTL_ADD_DRAW
,
drm_
noop
,
DRM_AUTH
|
DRM_MASTER
|
DRM_ROOT_ONLY
),
DRM_IOCTL_DEF
(
DRM_IOCTL_RM_DRAW
,
drm_
noop
,
DRM_AUTH
|
DRM_MASTER
|
DRM_ROOT_ONLY
),
DRM_IOCTL_DEF
(
DRM_IOCTL_LOCK
,
drm_lock
,
DRM_AUTH
),
DRM_IOCTL_DEF
(
DRM_IOCTL_UNLOCK
,
drm_unlock
,
DRM_AUTH
),
...
...
@@ -127,7 +127,7 @@ static struct drm_ioctl_desc drm_ioctls[] = {
DRM_IOCTL_DEF
(
DRM_IOCTL_MODESET_CTL
,
drm_modeset_ctl
,
0
),
DRM_IOCTL_DEF
(
DRM_IOCTL_UPDATE_DRAW
,
drm_
update_drawable_info
,
DRM_AUTH
|
DRM_MASTER
|
DRM_ROOT_ONLY
),
DRM_IOCTL_DEF
(
DRM_IOCTL_UPDATE_DRAW
,
drm_
noop
,
DRM_AUTH
|
DRM_MASTER
|
DRM_ROOT_ONLY
),
DRM_IOCTL_DEF
(
DRM_IOCTL_GEM_CLOSE
,
drm_gem_close_ioctl
,
DRM_UNLOCKED
),
DRM_IOCTL_DEF
(
DRM_IOCTL_GEM_FLINK
,
drm_gem_flink_ioctl
,
DRM_AUTH
|
DRM_UNLOCKED
),
...
...
@@ -180,10 +180,6 @@ int drm_lastclose(struct drm_device * dev)
mutex_lock
(
&
dev
->
struct_mutex
);
/* Free drawable information memory */
drm_drawable_free_all
(
dev
);
del_timer
(
&
dev
->
timer
);
/* Clear AGP information */
if
(
drm_core_has_AGP
(
dev
)
&&
dev
->
agp
&&
!
drm_core_check_feature
(
dev
,
DRIVER_MODESET
))
{
...
...
drivers/gpu/drm/drm_gem.c
浏览文件 @
b970be7c
...
...
@@ -474,9 +474,7 @@ drm_gem_object_free_unlocked(struct kref *kref)
struct
drm_gem_object
*
obj
=
(
struct
drm_gem_object
*
)
kref
;
struct
drm_device
*
dev
=
obj
->
dev
;
if
(
dev
->
driver
->
gem_free_object_unlocked
!=
NULL
)
dev
->
driver
->
gem_free_object_unlocked
(
obj
);
else
if
(
dev
->
driver
->
gem_free_object
!=
NULL
)
{
if
(
dev
->
driver
->
gem_free_object
!=
NULL
)
{
mutex_lock
(
&
dev
->
struct_mutex
);
dev
->
driver
->
gem_free_object
(
obj
);
mutex_unlock
(
&
dev
->
struct_mutex
);
...
...
drivers/gpu/drm/drm_lock.c
浏览文件 @
b970be7c
...
...
@@ -37,6 +37,8 @@
static
int
drm_notifier
(
void
*
priv
);
static
int
drm_lock_take
(
struct
drm_lock_data
*
lock_data
,
unsigned
int
context
);
/**
* Lock ioctl.
*
...
...
@@ -124,9 +126,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
block_all_signals
(
drm_notifier
,
&
dev
->
sigdata
,
&
dev
->
sigmask
);
}
if
(
dev
->
driver
->
dma_ready
&&
(
lock
->
flags
&
_DRM_LOCK_READY
))
dev
->
driver
->
dma_ready
(
dev
);
if
(
dev
->
driver
->
dma_quiescent
&&
(
lock
->
flags
&
_DRM_LOCK_QUIESCENT
))
{
if
(
dev
->
driver
->
dma_quiescent
(
dev
))
{
...
...
@@ -136,12 +135,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
}
}
if
(
dev
->
driver
->
kernel_context_switch
&&
dev
->
last_context
!=
lock
->
context
)
{
dev
->
driver
->
kernel_context_switch
(
dev
,
dev
->
last_context
,
lock
->
context
);
}
return
0
;
}
...
...
@@ -159,7 +152,6 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
int
drm_unlock
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
)
{
struct
drm_lock
*
lock
=
data
;
struct
drm_master
*
master
=
file_priv
->
master
;
if
(
lock
->
context
==
DRM_KERNEL_CONTEXT
)
{
DRM_ERROR
(
"Process %d using kernel context %d
\n
"
,
...
...
@@ -169,17 +161,6 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
atomic_inc
(
&
dev
->
counts
[
_DRM_STAT_UNLOCKS
]);
/* kernel_context_switch isn't used by any of the x86 drm
* modules but is required by the Sparc driver.
*/
if
(
dev
->
driver
->
kernel_context_switch_unlock
)
dev
->
driver
->
kernel_context_switch_unlock
(
dev
);
else
{
if
(
drm_lock_free
(
&
master
->
lock
,
lock
->
context
))
{
/* FIXME: Should really bail out here. */
}
}
unblock_all_signals
();
return
0
;
}
...
...
@@ -193,6 +174,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
*
* Attempt to mark the lock as held by the given context, via the \p cmpxchg instruction.
*/
static
int
drm_lock_take
(
struct
drm_lock_data
*
lock_data
,
unsigned
int
context
)
{
...
...
@@ -229,7 +211,6 @@ int drm_lock_take(struct drm_lock_data *lock_data,
}
return
0
;
}
EXPORT_SYMBOL
(
drm_lock_take
);
/**
* This takes a lock forcibly and hands it to context. Should ONLY be used
...
...
@@ -297,7 +278,6 @@ int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context)
wake_up_interruptible
(
&
lock_data
->
lock_queue
);
return
0
;
}
EXPORT_SYMBOL
(
drm_lock_free
);
/**
* If we get here, it means that the process has called DRM_IOCTL_LOCK
...
...
@@ -360,7 +340,6 @@ void drm_idlelock_take(struct drm_lock_data *lock_data)
}
spin_unlock_bh
(
&
lock_data
->
spinlock
);
}
EXPORT_SYMBOL
(
drm_idlelock_take
);
void
drm_idlelock_release
(
struct
drm_lock_data
*
lock_data
)
{
...
...
@@ -380,8 +359,6 @@ void drm_idlelock_release(struct drm_lock_data *lock_data)
}
spin_unlock_bh
(
&
lock_data
->
spinlock
);
}
EXPORT_SYMBOL
(
drm_idlelock_release
);
int
drm_i_have_hw_lock
(
struct
drm_device
*
dev
,
struct
drm_file
*
file_priv
)
{
...
...
@@ -390,5 +367,3 @@ int drm_i_have_hw_lock(struct drm_device *dev, struct drm_file *file_priv)
_DRM_LOCK_IS_HELD
(
master
->
lock
.
hw_lock
->
lock
)
&&
master
->
lock
.
file_priv
==
file_priv
);
}
EXPORT_SYMBOL
(
drm_i_have_hw_lock
);
drivers/gpu/drm/drm_memory.c
浏览文件 @
b970be7c
...
...
@@ -99,29 +99,23 @@ static void *agp_remap(unsigned long offset, unsigned long size,
return
addr
;
}
/** Wrapper around agp_allocate_memory() */
DRM_AGP_MEM
*
drm_alloc_agp
(
struct
drm_device
*
dev
,
int
pages
,
u32
type
)
{
return
drm_agp_allocate_memory
(
dev
->
agp
->
bridge
,
pages
,
type
);
}
/** Wrapper around agp_free_memory() */
int
drm_free_agp
(
DRM_AGP_MEM
*
handle
,
int
pages
)
void
drm_free_agp
(
DRM_AGP_MEM
*
handle
,
int
pages
)
{
return
drm_agp_free_memory
(
handle
)
?
0
:
-
EINVAL
;
agp_free_memory
(
handle
)
;
}
EXPORT_SYMBOL
(
drm_free_agp
);
/** Wrapper around agp_bind_memory() */
int
drm_bind_agp
(
DRM_AGP_MEM
*
handle
,
unsigned
int
start
)
{
return
drm_
agp_bind_memory
(
handle
,
start
);
return
agp_bind_memory
(
handle
,
start
);
}
/** Wrapper around agp_unbind_memory() */
int
drm_unbind_agp
(
DRM_AGP_MEM
*
handle
)
{
return
drm_
agp_unbind_memory
(
handle
);
return
agp_unbind_memory
(
handle
);
}
EXPORT_SYMBOL
(
drm_unbind_agp
);
...
...
drivers/gpu/drm/drm_proc.c
浏览文件 @
b970be7c
...
...
@@ -151,7 +151,6 @@ int drm_proc_create_files(struct drm_info_list *files, int count,
int
drm_proc_init
(
struct
drm_minor
*
minor
,
int
minor_id
,
struct
proc_dir_entry
*
root
)
{
struct
drm_device
*
dev
=
minor
->
dev
;
char
name
[
64
];
int
ret
;
...
...
@@ -172,14 +171,6 @@ int drm_proc_init(struct drm_minor *minor, int minor_id,
return
ret
;
}
if
(
dev
->
driver
->
proc_init
)
{
ret
=
dev
->
driver
->
proc_init
(
minor
);
if
(
ret
)
{
DRM_ERROR
(
"DRM: Driver failed to initialize "
"/proc/dri.
\n
"
);
return
ret
;
}
}
return
0
;
}
...
...
@@ -216,15 +207,11 @@ int drm_proc_remove_files(struct drm_info_list *files, int count,
*/
int
drm_proc_cleanup
(
struct
drm_minor
*
minor
,
struct
proc_dir_entry
*
root
)
{
struct
drm_device
*
dev
=
minor
->
dev
;
char
name
[
64
];
if
(
!
root
||
!
minor
->
proc_root
)
return
0
;
if
(
dev
->
driver
->
proc_cleanup
)
dev
->
driver
->
proc_cleanup
(
minor
);
drm_proc_remove_files
(
drm_proc_list
,
DRM_PROC_ENTRIES
,
minor
);
sprintf
(
name
,
"%d"
,
minor
->
index
);
...
...
drivers/gpu/drm/drm_scatter.c
浏览文件 @
b970be7c
...
...
@@ -184,8 +184,6 @@ int drm_sg_alloc(struct drm_device *dev, struct drm_scatter_gather * request)
drm_sg_cleanup
(
entry
);
return
-
ENOMEM
;
}
EXPORT_SYMBOL
(
drm_sg_alloc
);
int
drm_sg_alloc_ioctl
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
)
...
...
drivers/gpu/drm/drm_stub.c
浏览文件 @
b970be7c
...
...
@@ -240,14 +240,10 @@ int drm_fill_in_dev(struct drm_device *dev,
INIT_LIST_HEAD
(
&
dev
->
vblank_event_list
);
spin_lock_init
(
&
dev
->
count_lock
);
spin_lock_init
(
&
dev
->
drw_lock
);
spin_lock_init
(
&
dev
->
event_lock
);
init_timer
(
&
dev
->
timer
);
mutex_init
(
&
dev
->
struct_mutex
);
mutex_init
(
&
dev
->
ctxlist_mutex
);
idr_init
(
&
dev
->
drw_idr
);
if
(
drm_ht_create
(
&
dev
->
map_hash
,
12
))
{
return
-
ENOMEM
;
}
...
...
drivers/gpu/drm/drm_vm.c
浏览文件 @
b970be7c
...
...
@@ -515,14 +515,7 @@ static int drm_mmap_dma(struct file *filp, struct vm_area_struct *vma)
return
0
;
}
resource_size_t
drm_core_get_map_ofs
(
struct
drm_local_map
*
map
)
{
return
map
->
offset
;
}
EXPORT_SYMBOL
(
drm_core_get_map_ofs
);
resource_size_t
drm_core_get_reg_ofs
(
struct
drm_device
*
dev
)
static
resource_size_t
drm_core_get_reg_ofs
(
struct
drm_device
*
dev
)
{
#ifdef __alpha__
return
dev
->
hose
->
dense_mem_base
-
dev
->
hose
->
mem_space
->
start
;
...
...
@@ -531,8 +524,6 @@ resource_size_t drm_core_get_reg_ofs(struct drm_device *dev)
#endif
}
EXPORT_SYMBOL
(
drm_core_get_reg_ofs
);
/**
* mmap DMA memory.
*
...
...
@@ -619,7 +610,7 @@ int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma)
#endif
case
_DRM_FRAME_BUFFER
:
case
_DRM_REGISTERS
:
offset
=
d
ev
->
driver
->
get_reg_ofs
(
dev
);
offset
=
d
rm_core_
get_reg_ofs
(
dev
);
vma
->
vm_flags
|=
VM_IO
;
/* not in core dump */
vma
->
vm_page_prot
=
drm_io_prot
(
map
->
type
,
vma
);
#if !defined(__arm__)
...
...
drivers/gpu/drm/i810/i810_drv.c
浏览文件 @
b970be7c
...
...
@@ -52,8 +52,6 @@ static struct drm_driver driver = {
.
device_is_agp
=
i810_driver_device_is_agp
,
.
reclaim_buffers_locked
=
i810_driver_reclaim_buffers_locked
,
.
dma_quiescent
=
i810_driver_dma_quiescent
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
i810_ioctls
,
.
fops
=
{
.
owner
=
THIS_MODULE
,
...
...
drivers/gpu/drm/i830/i830_drv.c
浏览文件 @
b970be7c
...
...
@@ -57,8 +57,6 @@ static struct drm_driver driver = {
.
device_is_agp
=
i830_driver_device_is_agp
,
.
reclaim_buffers_locked
=
i830_driver_reclaim_buffers_locked
,
.
dma_quiescent
=
i830_driver_dma_quiescent
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
#if USE_IRQS
.
irq_preinstall
=
i830_driver_irq_preinstall
,
.
irq_postinstall
=
i830_driver_irq_postinstall
,
...
...
drivers/gpu/drm/i915/i915_drv.c
浏览文件 @
b970be7c
...
...
@@ -523,8 +523,6 @@ static struct drm_driver driver = {
.
irq_uninstall
=
i915_driver_irq_uninstall
,
.
irq_handler
=
i915_driver_irq_handler
,
.
reclaim_buffers
=
drm_core_reclaim_buffers
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
master_create
=
i915_master_create
,
.
master_destroy
=
i915_master_destroy
,
#if defined(CONFIG_DEBUG_FS)
...
...
drivers/gpu/drm/mga/mga_drv.c
浏览文件 @
b970be7c
...
...
@@ -60,8 +60,6 @@ static struct drm_driver driver = {
.
irq_uninstall
=
mga_driver_irq_uninstall
,
.
irq_handler
=
mga_driver_irq_handler
,
.
reclaim_buffers
=
drm_core_reclaim_buffers
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
mga_ioctls
,
.
dma_ioctl
=
mga_dma_buffers
,
.
fops
=
{
...
...
drivers/gpu/drm/nouveau/nouveau_drv.c
浏览文件 @
b970be7c
...
...
@@ -379,8 +379,6 @@ static struct drm_driver driver = {
.
irq_uninstall
=
nouveau_irq_uninstall
,
.
irq_handler
=
nouveau_irq_handler
,
.
reclaim_buffers
=
drm_core_reclaim_buffers
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
nouveau_ioctls
,
.
fops
=
{
.
owner
=
THIS_MODULE
,
...
...
drivers/gpu/drm/r128/r128_drv.c
浏览文件 @
b970be7c
...
...
@@ -56,8 +56,6 @@ static struct drm_driver driver = {
.
irq_uninstall
=
r128_driver_irq_uninstall
,
.
irq_handler
=
r128_driver_irq_handler
,
.
reclaim_buffers
=
drm_core_reclaim_buffers
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
r128_ioctls
,
.
dma_ioctl
=
r128_cce_buffers
,
.
fops
=
{
...
...
drivers/gpu/drm/radeon/radeon_drv.c
浏览文件 @
b970be7c
...
...
@@ -203,8 +203,6 @@ static struct drm_driver driver_old = {
.
irq_uninstall
=
radeon_driver_irq_uninstall
,
.
irq_handler
=
radeon_driver_irq_handler
,
.
reclaim_buffers
=
drm_core_reclaim_buffers
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
radeon_ioctls
,
.
dma_ioctl
=
radeon_cp_buffers
,
.
fops
=
{
...
...
@@ -290,8 +288,6 @@ static struct drm_driver kms_driver = {
.
irq_uninstall
=
radeon_driver_irq_uninstall_kms
,
.
irq_handler
=
radeon_driver_irq_handler_kms
,
.
reclaim_buffers
=
drm_core_reclaim_buffers
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
radeon_ioctls_kms
,
.
gem_init_object
=
radeon_gem_object_init
,
.
gem_free_object
=
radeon_gem_object_free
,
...
...
drivers/gpu/drm/savage/savage_drv.c
浏览文件 @
b970be7c
...
...
@@ -42,8 +42,6 @@ static struct drm_driver driver = {
.
lastclose
=
savage_driver_lastclose
,
.
unload
=
savage_driver_unload
,
.
reclaim_buffers
=
savage_reclaim_buffers
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
savage_ioctls
,
.
dma_ioctl
=
savage_bci_buffers
,
.
fops
=
{
...
...
drivers/gpu/drm/sis/sis_drv.c
浏览文件 @
b970be7c
...
...
@@ -67,13 +67,10 @@ static struct drm_driver driver = {
.
driver_features
=
DRIVER_USE_AGP
|
DRIVER_USE_MTRR
,
.
load
=
sis_driver_load
,
.
unload
=
sis_driver_unload
,
.
context_dtor
=
NULL
,
.
dma_quiescent
=
sis_idle
,
.
reclaim_buffers
=
NULL
,
.
reclaim_buffers_idlelocked
=
sis_reclaim_buffers_locked
,
.
lastclose
=
sis_lastclose
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
sis_ioctls
,
.
fops
=
{
.
owner
=
THIS_MODULE
,
...
...
drivers/gpu/drm/tdfx/tdfx_drv.c
浏览文件 @
b970be7c
...
...
@@ -42,8 +42,6 @@ static struct pci_device_id pciidlist[] = {
static
struct
drm_driver
driver
=
{
.
driver_features
=
DRIVER_USE_MTRR
,
.
reclaim_buffers
=
drm_core_reclaim_buffers
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
fops
=
{
.
owner
=
THIS_MODULE
,
.
open
=
drm_open
,
...
...
drivers/gpu/drm/via/via_drv.c
浏览文件 @
b970be7c
...
...
@@ -51,8 +51,6 @@ static struct drm_driver driver = {
.
reclaim_buffers_locked
=
NULL
,
.
reclaim_buffers_idlelocked
=
via_reclaim_buffers_locked
,
.
lastclose
=
via_lastclose
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
via_ioctls
,
.
fops
=
{
.
owner
=
THIS_MODULE
,
...
...
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
浏览文件 @
b970be7c
...
...
@@ -723,8 +723,6 @@ static struct drm_driver driver = {
.
irq_uninstall
=
vmw_irq_uninstall
,
.
irq_handler
=
vmw_irq_handler
,
.
reclaim_buffers_locked
=
NULL
,
.
get_map_ofs
=
drm_core_get_map_ofs
,
.
get_reg_ofs
=
drm_core_get_reg_ofs
,
.
ioctls
=
vmw_ioctls
,
.
num_ioctls
=
DRM_ARRAY_SIZE
(
vmw_ioctls
),
.
dma_quiescent
=
NULL
,
/*vmw_dma_quiescent, */
...
...
include/drm/drmP.h
浏览文件 @
b970be7c
...
...
@@ -699,13 +699,8 @@ struct drm_driver {
int
(
*
suspend
)
(
struct
drm_device
*
,
pm_message_t
state
);
int
(
*
resume
)
(
struct
drm_device
*
);
int
(
*
dma_ioctl
)
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
void
(
*
dma_ready
)
(
struct
drm_device
*
);
int
(
*
dma_quiescent
)
(
struct
drm_device
*
);
int
(
*
context_ctor
)
(
struct
drm_device
*
dev
,
int
context
);
int
(
*
context_dtor
)
(
struct
drm_device
*
dev
,
int
context
);
int
(
*
kernel_context_switch
)
(
struct
drm_device
*
dev
,
int
old
,
int
new
);
void
(
*
kernel_context_switch_unlock
)
(
struct
drm_device
*
dev
);
/**
* get_vblank_counter - get raw hardware vblank counter
...
...
@@ -777,8 +772,6 @@ struct drm_driver {
struct
drm_file
*
file_priv
);
void
(
*
reclaim_buffers_idlelocked
)
(
struct
drm_device
*
dev
,
struct
drm_file
*
file_priv
);
resource_size_t
(
*
get_map_ofs
)
(
struct
drm_local_map
*
map
);
resource_size_t
(
*
get_reg_ofs
)
(
struct
drm_device
*
dev
);
void
(
*
set_version
)
(
struct
drm_device
*
dev
,
struct
drm_set_version
*
sv
);
...
...
@@ -795,8 +788,6 @@ struct drm_driver {
void
(
*
master_drop
)(
struct
drm_device
*
dev
,
struct
drm_file
*
file_priv
,
bool
from_release
);
int
(
*
proc_init
)(
struct
drm_minor
*
minor
);
void
(
*
proc_cleanup
)(
struct
drm_minor
*
minor
);
int
(
*
debugfs_init
)(
struct
drm_minor
*
minor
);
void
(
*
debugfs_cleanup
)(
struct
drm_minor
*
minor
);
...
...
@@ -808,7 +799,6 @@ struct drm_driver {
*/
int
(
*
gem_init_object
)
(
struct
drm_gem_object
*
obj
);
void
(
*
gem_free_object
)
(
struct
drm_gem_object
*
obj
);
void
(
*
gem_free_object_unlocked
)
(
struct
drm_gem_object
*
obj
);
/* vga arb irq handler */
void
(
*
vgaarb_irq
)(
struct
drm_device
*
dev
,
bool
state
);
...
...
@@ -973,7 +963,6 @@ struct drm_device {
__volatile__
long
context_flag
;
/**< Context swapping flag */
__volatile__
long
interrupt_flag
;
/**< Interruption handler flag */
__volatile__
long
dma_flag
;
/**< DMA dispatch flag */
struct
timer_list
timer
;
/**< Timer for delaying ctx switch */
wait_queue_head_t
context_wait
;
/**< Processes waiting on ctx switch */
int
last_checked
;
/**< Last context checked for DMA */
int
last_context
;
/**< Last current context */
...
...
@@ -1046,12 +1035,6 @@ struct drm_device {
struct
drm_minor
*
control
;
/**< Control node for card */
struct
drm_minor
*
primary
;
/**< render type primary screen head */
/** \name Drawable information */
/*@{ */
spinlock_t
drw_lock
;
struct
idr
drw_idr
;
/*@} */
struct
drm_mode_config
mode_config
;
/**< Current mode config */
/** \name GEM information */
...
...
@@ -1175,8 +1158,6 @@ extern int drm_release(struct inode *inode, struct file *filp);
extern
int
drm_mmap
(
struct
file
*
filp
,
struct
vm_area_struct
*
vma
);
extern
int
drm_mmap_locked
(
struct
file
*
filp
,
struct
vm_area_struct
*
vma
);
extern
void
drm_vm_open_locked
(
struct
vm_area_struct
*
vma
);
extern
resource_size_t
drm_core_get_map_ofs
(
struct
drm_local_map
*
map
);
extern
resource_size_t
drm_core_get_reg_ofs
(
struct
drm_device
*
dev
);
extern
unsigned
int
drm_poll
(
struct
file
*
filp
,
struct
poll_table_struct
*
wait
);
/* Memory management support (drm_memory.h) */
...
...
@@ -1186,8 +1167,7 @@ extern int drm_mem_info(char *buf, char **start, off_t offset,
int
request
,
int
*
eof
,
void
*
data
);
extern
void
*
drm_realloc
(
void
*
oldpt
,
size_t
oldsize
,
size_t
size
,
int
area
);
extern
DRM_AGP_MEM
*
drm_alloc_agp
(
struct
drm_device
*
dev
,
int
pages
,
u32
type
);
extern
int
drm_free_agp
(
DRM_AGP_MEM
*
handle
,
int
pages
);
extern
void
drm_free_agp
(
DRM_AGP_MEM
*
handle
,
int
pages
);
extern
int
drm_bind_agp
(
DRM_AGP_MEM
*
handle
,
unsigned
int
start
);
extern
DRM_AGP_MEM
*
drm_agp_bind_pages
(
struct
drm_device
*
dev
,
struct
page
**
pages
,
...
...
@@ -1239,17 +1219,6 @@ extern int drm_setsareactx(struct drm_device *dev, void *data,
extern
int
drm_getsareactx
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
/* Drawable IOCTL support (drm_drawable.h) */
extern
int
drm_adddraw
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
extern
int
drm_rmdraw
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
extern
int
drm_update_drawable_info
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
extern
struct
drm_drawable_info
*
drm_get_drawable_info
(
struct
drm_device
*
dev
,
drm_drawable_t
id
);
extern
void
drm_drawable_free_all
(
struct
drm_device
*
dev
);
/* Authentication IOCTL support (drm_auth.h) */
extern
int
drm_getmagic
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
...
...
@@ -1264,7 +1233,6 @@ extern int drm_lock(struct drm_device *dev, void *data,
struct
drm_file
*
file_priv
);
extern
int
drm_unlock
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
extern
int
drm_lock_take
(
struct
drm_lock_data
*
lock_data
,
unsigned
int
context
);
extern
int
drm_lock_free
(
struct
drm_lock_data
*
lock_data
,
unsigned
int
context
);
extern
void
drm_idlelock_take
(
struct
drm_lock_data
*
lock_data
);
extern
void
drm_idlelock_release
(
struct
drm_lock_data
*
lock_data
);
...
...
@@ -1359,10 +1327,6 @@ extern int drm_agp_unbind_ioctl(struct drm_device *dev, void *data,
extern
int
drm_agp_bind
(
struct
drm_device
*
dev
,
struct
drm_agp_binding
*
request
);
extern
int
drm_agp_bind_ioctl
(
struct
drm_device
*
dev
,
void
*
data
,
struct
drm_file
*
file_priv
);
extern
DRM_AGP_MEM
*
drm_agp_allocate_memory
(
struct
agp_bridge_data
*
bridge
,
size_t
pages
,
u32
type
);
extern
int
drm_agp_free_memory
(
DRM_AGP_MEM
*
handle
);
extern
int
drm_agp_bind_memory
(
DRM_AGP_MEM
*
handle
,
off_t
start
);
extern
int
drm_agp_unbind_memory
(
DRM_AGP_MEM
*
handle
);
extern
void
drm_agp_chipset_flush
(
struct
drm_device
*
dev
);
/* Stub support (drm_stub.h) */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录