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
b1b90ea8
Commit
b1b90ea8
authored
Apr 25, 2003
by
Dave Jones
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[AGPGART] EXPORT_SYMBOL cleanups. Also move the global_cache_flush routine to generic.c
parent
c77f460c
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
63 additions
and
46 deletions
+63
-46
drivers/char/agp/agp.h
drivers/char/agp/agp.h
+1
-18
drivers/char/agp/backend.c
drivers/char/agp/backend.c
+1
-0
drivers/char/agp/generic.c
drivers/char/agp/generic.c
+61
-28
No files found.
drivers/char/agp/agp.h
View file @
b1b90ea8
...
...
@@ -34,24 +34,6 @@ extern struct agp_bridge_data *agp_bridge;
#define PFX "agpgart: "
#ifdef CONFIG_SMP
static
void
ipi_handler
(
void
*
null
)
{
flush_agp_cache
();
}
static
void
__attribute__
((
unused
))
global_cache_flush
(
void
)
{
if
(
on_each_cpu
(
ipi_handler
,
NULL
,
1
,
1
)
!=
0
)
panic
(
PFX
"timed out waiting for the other CPUs!
\n
"
);
}
#else
static
void
global_cache_flush
(
void
)
{
flush_agp_cache
();
}
#endif
/* !CONFIG_SMP */
enum
aper_size_type
{
U8_APER_SIZE
,
U16_APER_SIZE
,
...
...
@@ -411,6 +393,7 @@ int agp_unregister_driver(struct agp_driver *drv);
u32
agp_collect_device_status
(
u32
mode
,
u32
command
);
void
agp_device_command
(
u32
command
,
int
agp_v3
);
int
agp_3_0_node_enable
(
u32
mode
,
u32
minor
);
void
global_cache_flush
(
void
);
/* Standard agp registers */
#define AGPSTAT 0x4
...
...
drivers/char/agp/backend.c
View file @
b1b90ea8
...
...
@@ -46,6 +46,7 @@
struct
agp_bridge_data
agp_bridge_dummy
=
{
.
type
=
NOT_SUPPORTED
};
struct
agp_bridge_data
*
agp_bridge
=
&
agp_bridge_dummy
;
EXPORT_SYMBOL
(
agp_bridge
);
int
agp_backend_acquire
(
void
)
{
...
...
drivers/char/agp/generic.c
View file @
b1b90ea8
/*
* AGPGART driver.
* Copyright (C) 2002 Dave Jones.
* Copyright (C) 2002
-2003
Dave Jones.
* Copyright (C) 1999 Jeff Hartmann.
* Copyright (C) 1999 Precision Insight, Inc.
* Copyright (C) 1999 Xi Graphics, Inc.
...
...
@@ -48,13 +48,14 @@ int agp_memory_reserved;
void
agp_free_key
(
int
key
)
{
if
(
key
<
0
)
return
;
if
(
key
<
MAXKEY
)
clear_bit
(
key
,
agp_bridge
->
key_list
);
}
EXPORT_SYMBOL
(
agp_free_key
);
static
int
agp_get_key
(
void
)
{
...
...
@@ -68,6 +69,7 @@ static int agp_get_key(void)
return
-
1
;
}
agp_memory
*
agp_create_memory
(
int
scratch_pages
)
{
agp_memory
*
new
;
...
...
@@ -94,6 +96,8 @@ agp_memory *agp_create_memory(int scratch_pages)
new
->
num_scratch_pages
=
scratch_pages
;
return
new
;
}
EXPORT_SYMBOL
(
agp_create_memory
);
void
agp_free_memory
(
agp_memory
*
curr
)
{
...
...
@@ -118,9 +122,11 @@ void agp_free_memory(agp_memory * curr)
vfree
(
curr
->
memory
);
kfree
(
curr
);
}
EXPORT_SYMBOL
(
agp_free_memory
);
#define ENTRIES_PER_PAGE (PAGE_SIZE / sizeof(unsigned long))
agp_memory
*
agp_allocate_memory
(
size_t
page_count
,
u32
type
)
{
int
scratch_pages
;
...
...
@@ -160,9 +166,12 @@ agp_memory *agp_allocate_memory(size_t page_count, u32 type)
return
new
;
}
EXPORT_SYMBOL
(
agp_allocate_memory
);
/* End - Generic routines for handling agp_memory structures */
static
int
agp_return_size
(
void
)
{
int
current_size
;
...
...
@@ -197,6 +206,7 @@ static int agp_return_size(void)
return
current_size
;
}
int
agp_num_entries
(
void
)
{
int
num_entries
;
...
...
@@ -230,9 +240,10 @@ int agp_num_entries(void)
num_entries
=
0
;
return
num_entries
;
}
EXPORT_SYMBOL_GPL
(
agp_num_entries
);
/* Routine to copy over information structure */
/* Routine to copy over information structure */
int
agp_copy_info
(
agp_kern_info
*
info
)
{
memset
(
info
,
0
,
sizeof
(
agp_kern_info
));
...
...
@@ -254,9 +265,12 @@ int agp_copy_info(agp_kern_info * info)
info
->
page_mask
=
~
0UL
;
return
0
;
}
EXPORT_SYMBOL
(
agp_copy_info
);
/* End - Routine to copy over information structure */
/*
* Routines for handling swapping of agp_memory into the GATT -
* These routines take agp_memory and insert them into the GATT.
...
...
@@ -284,6 +298,8 @@ int agp_bind_memory(agp_memory * curr, off_t pg_start)
curr
->
pg_start
=
pg_start
;
return
0
;
}
EXPORT_SYMBOL
(
agp_bind_memory
);
int
agp_unbind_memory
(
agp_memory
*
curr
)
{
...
...
@@ -304,6 +320,7 @@ int agp_unbind_memory(agp_memory * curr)
curr
->
pg_start
=
0
;
return
0
;
}
EXPORT_SYMBOL
(
agp_unbind_memory
);
/* End - Routines for handling swapping of agp_memory into the GATT */
...
...
@@ -364,6 +381,8 @@ u32 agp_collect_device_status(u32 mode, u32 command)
return
command
;
}
EXPORT_SYMBOL
(
agp_collect_device_status
);
void
agp_device_command
(
u32
command
,
int
agp_v3
)
{
...
...
@@ -384,6 +403,8 @@ void agp_device_command(u32 command, int agp_v3)
pci_write_config_dword
(
device
,
agp
+
PCI_AGP_COMMAND
,
command
);
}
}
EXPORT_SYMBOL
(
agp_device_command
);
void
agp_generic_enable
(
u32
mode
)
{
...
...
@@ -418,6 +439,8 @@ void agp_generic_enable(u32 mode)
agp_bridge
->
capndx
+
PCI_AGP_COMMAND
,
command
);
agp_device_command
(
command
,
0
);
}
EXPORT_SYMBOL
(
agp_generic_enable
);
int
agp_generic_create_gatt_table
(
void
)
{
...
...
@@ -535,16 +558,22 @@ int agp_generic_create_gatt_table(void)
return
0
;
}
EXPORT_SYMBOL
(
agp_generic_create_gatt_table
);
int
agp_generic_suspend
(
void
)
{
return
0
;
}
EXPORT_SYMBOL
(
agp_generic_suspend
);
void
agp_generic_resume
(
void
)
{
return
;
}
EXPORT_SYMBOL
(
agp_generic_resume
);
int
agp_generic_free_gatt_table
(
void
)
{
...
...
@@ -592,6 +621,8 @@ int agp_generic_free_gatt_table(void)
free_pages
((
unsigned
long
)
agp_bridge
->
gatt_table_real
,
page_order
);
return
0
;
}
EXPORT_SYMBOL
(
agp_generic_free_gatt_table
);
int
agp_generic_insert_memory
(
agp_memory
*
mem
,
off_t
pg_start
,
int
type
)
{
...
...
@@ -657,6 +688,8 @@ int agp_generic_insert_memory(agp_memory * mem, off_t pg_start, int type)
agp_bridge
->
tlb_flush
(
mem
);
return
0
;
}
EXPORT_SYMBOL
(
agp_generic_insert_memory
);
int
agp_generic_remove_memory
(
agp_memory
*
mem
,
off_t
pg_start
,
int
type
)
{
...
...
@@ -676,11 +709,15 @@ int agp_generic_remove_memory(agp_memory * mem, off_t pg_start, int type)
agp_bridge
->
tlb_flush
(
mem
);
return
0
;
}
EXPORT_SYMBOL
(
agp_generic_remove_memory
);
agp_memory
*
agp_generic_alloc_by_type
(
size_t
page_count
,
int
type
)
{
return
NULL
;
}
EXPORT_SYMBOL
(
agp_generic_alloc_by_type
);
void
agp_generic_free_by_type
(
agp_memory
*
curr
)
{
...
...
@@ -690,6 +727,8 @@ void agp_generic_free_by_type(agp_memory * curr)
agp_free_key
(
curr
->
key
);
kfree
(
curr
);
}
EXPORT_SYMBOL
(
agp_generic_free_by_type
);
/*
* Basic Page Allocation Routines -
...
...
@@ -715,6 +754,8 @@ void *agp_generic_alloc_page(void)
atomic_inc
(
&
agp_bridge
->
current_memory_agp
);
return
page_address
(
page
);
}
EXPORT_SYMBOL
(
agp_generic_alloc_page
);
void
agp_generic_destroy_page
(
void
*
addr
)
{
...
...
@@ -730,6 +771,7 @@ void agp_generic_destroy_page(void *addr)
free_page
((
unsigned
long
)
addr
);
atomic_dec
(
&
agp_bridge
->
current_memory_agp
);
}
EXPORT_SYMBOL
(
agp_generic_destroy_page
);
/* End Basic Page Allocation Routines */
...
...
@@ -739,32 +781,23 @@ void agp_enable(u32 mode)
return
;
agp_bridge
->
agp_enable
(
mode
);
}
EXPORT_SYMBOL
(
agp_free_memory
);
EXPORT_SYMBOL
(
agp_allocate_memory
);
EXPORT_SYMBOL
(
agp_copy_info
);
EXPORT_SYMBOL
(
agp_create_memory
);
EXPORT_SYMBOL
(
agp_bind_memory
);
EXPORT_SYMBOL
(
agp_unbind_memory
);
EXPORT_SYMBOL
(
agp_free_key
);
EXPORT_SYMBOL
(
agp_enable
);
EXPORT_SYMBOL
(
agp_bridge
);
EXPORT_SYMBOL
(
agp_generic_alloc_page
);
EXPORT_SYMBOL
(
agp_generic_destroy_page
);
EXPORT_SYMBOL
(
agp_generic_suspend
);
EXPORT_SYMBOL
(
agp_generic_resume
);
EXPORT_SYMBOL
(
agp_generic_enable
);
EXPORT_SYMBOL
(
agp_generic_create_gatt_table
);
EXPORT_SYMBOL
(
agp_generic_free_gatt_table
);
EXPORT_SYMBOL
(
agp_generic_insert_memory
);
EXPORT_SYMBOL
(
agp_generic_remove_memory
);
EXPORT_SYMBOL
(
agp_generic_alloc_by_type
);
EXPORT_SYMBOL
(
agp_generic_free_by_type
);
EXPORT_SYMBOL
(
global_cache_flush
);
EXPORT_SYMBOL
(
agp_device_command
);
EXPORT_SYMBOL
(
agp_collect_device_status
);
#ifdef CONFIG_SMP
static
void
ipi_handler
(
void
*
null
)
{
flush_agp_cache
();
}
#endif
EXPORT_SYMBOL_GPL
(
agp_num_entries
);
void
global_cache_flush
(
void
)
{
#ifdef CONFIG_SMP
if
(
on_each_cpu
(
ipi_handler
,
NULL
,
1
,
1
)
!=
0
)
panic
(
PFX
"timed out waiting for the other CPUs!
\n
"
);
#else
flush_agp_cache
();
#endif
}
EXPORT_SYMBOL
(
global_cache_flush
);
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