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
d21918b6
Commit
d21918b6
authored
Dec 21, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
http://linux-voyager.bkbits.net/dma-generic-mapping-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
b163be65
e6241a27
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
92 additions
and
89 deletions
+92
-89
include/asm-generic/dma-mapping.h
include/asm-generic/dma-mapping.h
+2
-0
include/asm-generic/pci-dma-compat.h
include/asm-generic/pci-dma-compat.h
+87
-0
include/asm-i386/pci.h
include/asm-i386/pci.h
+3
-3
include/linux/pci.h
include/linux/pci.h
+0
-86
No files found.
include/asm-generic/dma-mapping.h
View file @
d21918b6
...
...
@@ -10,6 +10,8 @@
/* we implement the API below in terms of the existing PCI one,
* so include it */
#include <linux/pci.h>
/* need struct page definitions */
#include <linux/mm.h>
static
inline
int
dma_supported
(
struct
device
*
dev
,
u64
mask
)
...
...
include/asm-generic/pci-dma-compat.h
0 → 100644
View file @
d21918b6
/* include this file if the platform implements the dma_ DMA Mapping API
* and wants to provide the pci_ DMA Mapping API in terms of it */
#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H
#define _ASM_GENERIC_PCI_DMA_COMPAT_H
#include <linux/dma-mapping.h>
/* note pci_set_dma_mask isn't here, since it's a public function
* exported from drivers/pci, use dma_supported instead */
static
inline
int
pci_dma_supported
(
struct
pci_dev
*
hwdev
,
u64
mask
)
{
return
dma_supported
(
&
hwdev
->
dev
,
mask
);
}
static
inline
void
*
pci_alloc_consistent
(
struct
pci_dev
*
hwdev
,
size_t
size
,
dma_addr_t
*
dma_handle
)
{
return
dma_alloc_coherent
(
&
hwdev
->
dev
,
size
,
dma_handle
);
}
static
inline
void
pci_free_consistent
(
struct
pci_dev
*
hwdev
,
size_t
size
,
void
*
vaddr
,
dma_addr_t
dma_handle
)
{
dma_free_coherent
(
&
hwdev
->
dev
,
size
,
vaddr
,
dma_handle
);
}
static
inline
dma_addr_t
pci_map_single
(
struct
pci_dev
*
hwdev
,
void
*
ptr
,
size_t
size
,
int
direction
)
{
return
dma_map_single
(
&
hwdev
->
dev
,
ptr
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_unmap_single
(
struct
pci_dev
*
hwdev
,
dma_addr_t
dma_addr
,
size_t
size
,
int
direction
)
{
dma_unmap_single
(
&
hwdev
->
dev
,
dma_addr
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
dma_addr_t
pci_map_page
(
struct
pci_dev
*
hwdev
,
struct
page
*
page
,
unsigned
long
offset
,
size_t
size
,
int
direction
)
{
return
dma_map_page
(
&
hwdev
->
dev
,
page
,
offset
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_unmap_page
(
struct
pci_dev
*
hwdev
,
dma_addr_t
dma_address
,
size_t
size
,
int
direction
)
{
dma_unmap_page
(
&
hwdev
->
dev
,
dma_address
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
int
pci_map_sg
(
struct
pci_dev
*
hwdev
,
struct
scatterlist
*
sg
,
int
nents
,
int
direction
)
{
return
dma_map_sg
(
&
hwdev
->
dev
,
sg
,
nents
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_unmap_sg
(
struct
pci_dev
*
hwdev
,
struct
scatterlist
*
sg
,
int
nents
,
int
direction
)
{
dma_unmap_sg
(
&
hwdev
->
dev
,
sg
,
nents
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_dma_sync_single
(
struct
pci_dev
*
hwdev
,
dma_addr_t
dma_handle
,
size_t
size
,
int
direction
)
{
dma_sync_single
(
&
hwdev
->
dev
,
dma_handle
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_dma_sync_sg
(
struct
pci_dev
*
hwdev
,
struct
scatterlist
*
sg
,
int
nelems
,
int
direction
)
{
dma_sync_sg
(
&
hwdev
->
dev
,
sg
,
nelems
,
(
enum
dma_data_direction
)
direction
);
}
#endif
include/asm-i386/pci.h
View file @
d21918b6
...
...
@@ -6,9 +6,6 @@
#ifdef __KERNEL__
#include <linux/mm.h>
/* for struct page */
/* we support the new DMA API, but still provide the old one */
#define PCI_NEW_DMA_COMPAT_API 1
/* Can be used to override the logic in pci_scan_bus for skipping
already-configured bus numbers - to be used for buggy BIOSes
or architectures with incomplete PCI setup by the loader */
...
...
@@ -105,4 +102,7 @@ extern int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma,
#endif
/* __KERNEL__ */
/* implement the pci_ DMA API in terms of the generic device dma_ one */
#include <asm-generic/pci-dma-compat.h>
#endif
/* __i386_PCI_H */
include/linux/pci.h
View file @
d21918b6
...
...
@@ -834,92 +834,6 @@ extern int pci_pci_problems;
#define PCIPCI_VIAETBF 8
#define PCIPCI_VSFX 16
#include <linux/dma-mapping.h>
/* If you define PCI_NEW_DMA_COMPAT_API it means you support the new DMA API
* and you want the pci_ DMA API to be implemented using it.
*/
#if defined(PCI_NEW_DMA_COMPAT_API) && defined(CONFIG_PCI)
/* note pci_set_dma_mask isn't here, since it's a public function
* exported from drivers/pci, use dma_supported instead */
static
inline
int
pci_dma_supported
(
struct
pci_dev
*
hwdev
,
u64
mask
)
{
return
dma_supported
(
&
hwdev
->
dev
,
mask
);
}
static
inline
void
*
pci_alloc_consistent
(
struct
pci_dev
*
hwdev
,
size_t
size
,
dma_addr_t
*
dma_handle
)
{
return
dma_alloc_coherent
(
&
hwdev
->
dev
,
size
,
dma_handle
);
}
static
inline
void
pci_free_consistent
(
struct
pci_dev
*
hwdev
,
size_t
size
,
void
*
vaddr
,
dma_addr_t
dma_handle
)
{
dma_free_coherent
(
&
hwdev
->
dev
,
size
,
vaddr
,
dma_handle
);
}
static
inline
dma_addr_t
pci_map_single
(
struct
pci_dev
*
hwdev
,
void
*
ptr
,
size_t
size
,
int
direction
)
{
return
dma_map_single
(
&
hwdev
->
dev
,
ptr
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_unmap_single
(
struct
pci_dev
*
hwdev
,
dma_addr_t
dma_addr
,
size_t
size
,
int
direction
)
{
dma_unmap_single
(
&
hwdev
->
dev
,
dma_addr
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
dma_addr_t
pci_map_page
(
struct
pci_dev
*
hwdev
,
struct
page
*
page
,
unsigned
long
offset
,
size_t
size
,
int
direction
)
{
return
dma_map_page
(
&
hwdev
->
dev
,
page
,
offset
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_unmap_page
(
struct
pci_dev
*
hwdev
,
dma_addr_t
dma_address
,
size_t
size
,
int
direction
)
{
dma_unmap_page
(
&
hwdev
->
dev
,
dma_address
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
int
pci_map_sg
(
struct
pci_dev
*
hwdev
,
struct
scatterlist
*
sg
,
int
nents
,
int
direction
)
{
return
dma_map_sg
(
&
hwdev
->
dev
,
sg
,
nents
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_unmap_sg
(
struct
pci_dev
*
hwdev
,
struct
scatterlist
*
sg
,
int
nents
,
int
direction
)
{
dma_unmap_sg
(
&
hwdev
->
dev
,
sg
,
nents
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_dma_sync_single
(
struct
pci_dev
*
hwdev
,
dma_addr_t
dma_handle
,
size_t
size
,
int
direction
)
{
dma_sync_single
(
&
hwdev
->
dev
,
dma_handle
,
size
,
(
enum
dma_data_direction
)
direction
);
}
static
inline
void
pci_dma_sync_sg
(
struct
pci_dev
*
hwdev
,
struct
scatterlist
*
sg
,
int
nelems
,
int
direction
)
{
dma_sync_sg
(
&
hwdev
->
dev
,
sg
,
nelems
,
(
enum
dma_data_direction
)
direction
);
}
#endif
#endif
/* __KERNEL__ */
#endif
/* LINUX_PCI_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