Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
b970be7c
Commit
b970be7c
authored
Sep 08, 2010
by
Chris Wilson
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote branch 'airlied/drm-core-next' into HEAD
parents
c3add4b6
cbc60ca0
Changes
25
Hide whitespace changes
Inline
Side-by-side
Showing
25 changed files
with
19 additions
and
385 deletions
+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
No files found.
drivers/gpu/drm/Makefile
View file @
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
View file @
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
View file @
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
deleted
100644 → 0
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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
View file @
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) */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment