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
Kirill Smelkov
linux
Commits
c2980d8c
Commit
c2980d8c
authored
Jul 29, 2009
by
David Woodhouse
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
agp: Switch agp_{un,}map_page() to take struct page * argument
Signed-off-by:
David Woodhouse
<
David.Woodhouse@intel.com
>
parent
56ec4c1e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
18 deletions
+17
-18
drivers/char/agp/agp.h
drivers/char/agp/agp.h
+3
-3
drivers/char/agp/backend.c
drivers/char/agp/backend.c
+8
-9
drivers/char/agp/intel-agp.c
drivers/char/agp/intel-agp.c
+6
-6
No files found.
drivers/char/agp/agp.h
View file @
c2980d8c
...
...
@@ -122,8 +122,8 @@ struct agp_bridge_driver {
int
(
*
agp_type_to_mask_type
)
(
struct
agp_bridge_data
*
,
int
);
void
(
*
chipset_flush
)(
struct
agp_bridge_data
*
);
int
(
*
agp_map_page
)(
void
*
addr
,
dma_addr_t
*
ret
);
void
(
*
agp_unmap_page
)(
void
*
addr
,
dma_addr_t
dma
);
int
(
*
agp_map_page
)(
struct
page
*
page
,
dma_addr_t
*
ret
);
void
(
*
agp_unmap_page
)(
struct
page
*
page
,
dma_addr_t
dma
);
int
(
*
agp_map_memory
)(
struct
agp_memory
*
mem
);
void
(
*
agp_unmap_memory
)(
struct
agp_memory
*
mem
);
};
...
...
@@ -139,7 +139,7 @@ struct agp_bridge_data {
u32
__iomem
*
gatt_table
;
u32
*
gatt_table_real
;
unsigned
long
scratch_page
;
unsigned
long
scratch_page_real
;
struct
page
*
scratch_page_page
;
dma_addr_t
scratch_page_dma
;
unsigned
long
gart_bus_addr
;
unsigned
long
gatt_bus_addr
;
...
...
drivers/char/agp/backend.c
View file @
c2980d8c
...
...
@@ -149,9 +149,9 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge)
return
-
ENOMEM
;
}
bridge
->
scratch_page_
real
=
phys_to_gart
(
page_to_phys
(
page
))
;
bridge
->
scratch_page_
page
=
page
;
if
(
bridge
->
driver
->
agp_map_page
)
{
if
(
bridge
->
driver
->
agp_map_page
(
p
hys_to_virt
(
page_to_phys
(
page
))
,
if
(
bridge
->
driver
->
agp_map_page
(
p
age
,
&
bridge
->
scratch_page_dma
))
{
dev_err
(
&
bridge
->
dev
->
dev
,
"unable to dma-map scratch page
\n
"
);
...
...
@@ -205,13 +205,12 @@ static int agp_backend_initialize(struct agp_bridge_data *bridge)
err_out:
if
(
bridge
->
driver
->
needs_scratch_page
&&
bridge
->
driver
->
agp_unmap_page
)
{
void
*
va
=
gart_to_virt
(
bridge
->
scratch_page_real
);
bridge
->
driver
->
agp_unmap_page
(
va
,
bridge
->
scratch_page_dma
);
bridge
->
driver
->
agp_unmap_page
(
bridge
->
scratch_page_page
,
bridge
->
scratch_page_dma
);
}
err_out_nounmap:
if
(
bridge
->
driver
->
needs_scratch_page
)
{
void
*
va
=
gart_to_virt
(
bridge
->
scratch_page_real
);
void
*
va
=
page_address
(
bridge
->
scratch_page_page
);
bridge
->
driver
->
agp_destroy_page
(
va
,
AGP_PAGE_DESTROY_UNMAP
);
bridge
->
driver
->
agp_destroy_page
(
va
,
AGP_PAGE_DESTROY_FREE
);
...
...
@@ -238,11 +237,11 @@ static void agp_backend_cleanup(struct agp_bridge_data *bridge)
if
(
bridge
->
driver
->
agp_destroy_page
&&
bridge
->
driver
->
needs_scratch_page
)
{
void
*
va
=
gart_to_virt
(
bridge
->
scratch_page_real
);
void
*
va
=
page_address
(
bridge
->
scratch_page_page
);
if
(
bridge
->
driver
->
agp_unmap_page
)
bridge
->
driver
->
agp_unmap_page
(
va
,
bridge
->
scratch_page_dma
);
bridge
->
driver
->
agp_unmap_page
(
bridge
->
scratch_page_page
,
bridge
->
scratch_page_dma
);
bridge
->
driver
->
agp_destroy_page
(
va
,
AGP_PAGE_DESTROY_UNMAP
);
bridge
->
driver
->
agp_destroy_page
(
va
,
AGP_PAGE_DESTROY_FREE
);
...
...
drivers/char/agp/intel-agp.c
View file @
c2980d8c
...
...
@@ -181,19 +181,19 @@ static struct _intel_private {
}
intel_private
;
#ifdef USE_PCI_DMA_API
static
int
intel_agp_map_page
(
void
*
addr
,
dma_addr_t
*
ret
)
static
int
intel_agp_map_page
(
struct
page
*
page
,
dma_addr_t
*
ret
)
{
*
ret
=
pci_map_
single
(
intel_private
.
pcidev
,
addr
,
PAGE_SIZE
,
PCI_DMA_BIDIRECTIONAL
);
*
ret
=
pci_map_
page
(
intel_private
.
pcidev
,
page
,
0
,
PAGE_SIZE
,
PCI_DMA_BIDIRECTIONAL
);
if
(
pci_dma_mapping_error
(
intel_private
.
pcidev
,
*
ret
))
return
-
EINVAL
;
return
0
;
}
static
void
intel_agp_unmap_page
(
void
*
addr
,
dma_addr_t
dma
)
static
void
intel_agp_unmap_page
(
struct
page
*
page
,
dma_addr_t
dma
)
{
pci_unmap_
singl
e
(
intel_private
.
pcidev
,
dma
,
PAGE_SIZE
,
PCI_DMA_BIDIRECTIONAL
);
pci_unmap_
pag
e
(
intel_private
.
pcidev
,
dma
,
PAGE_SIZE
,
PCI_DMA_BIDIRECTIONAL
);
}
static
int
intel_agp_map_memory
(
struct
agp_memory
*
mem
)
...
...
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