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
9589f34f
Commit
9589f34f
authored
Nov 03, 2002
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge
bk://are.twiddle.net/pci-2.5
into home.transmeta.com:/home/torvalds/v2.5/linux
parents
a0f3a291
9a43e25f
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
115 additions
and
72 deletions
+115
-72
arch/alpha/kernel/pci.c
arch/alpha/kernel/pci.c
+14
-0
arch/alpha/kernel/pci_iommu.c
arch/alpha/kernel/pci_iommu.c
+28
-18
arch/alpha/kernel/sys_alcor.c
arch/alpha/kernel/sys_alcor.c
+2
-2
arch/alpha/kernel/sys_cabriolet.c
arch/alpha/kernel/sys_cabriolet.c
+5
-5
arch/alpha/kernel/sys_dp264.c
arch/alpha/kernel/sys_dp264.c
+5
-5
arch/alpha/kernel/sys_eb64p.c
arch/alpha/kernel/sys_eb64p.c
+2
-2
arch/alpha/kernel/sys_eiger.c
arch/alpha/kernel/sys_eiger.c
+1
-1
arch/alpha/kernel/sys_jensen.c
arch/alpha/kernel/sys_jensen.c
+6
-1
arch/alpha/kernel/sys_miata.c
arch/alpha/kernel/sys_miata.c
+1
-1
arch/alpha/kernel/sys_mikasa.c
arch/alpha/kernel/sys_mikasa.c
+2
-2
arch/alpha/kernel/sys_nautilus.c
arch/alpha/kernel/sys_nautilus.c
+1
-1
arch/alpha/kernel/sys_noritake.c
arch/alpha/kernel/sys_noritake.c
+2
-2
arch/alpha/kernel/sys_rawhide.c
arch/alpha/kernel/sys_rawhide.c
+1
-1
arch/alpha/kernel/sys_ruffian.c
arch/alpha/kernel/sys_ruffian.c
+1
-1
arch/alpha/kernel/sys_rx164.c
arch/alpha/kernel/sys_rx164.c
+1
-1
arch/alpha/kernel/sys_sable.c
arch/alpha/kernel/sys_sable.c
+2
-2
arch/alpha/kernel/sys_sio.c
arch/alpha/kernel/sys_sio.c
+5
-5
arch/alpha/kernel/sys_sx164.c
arch/alpha/kernel/sys_sx164.c
+1
-1
arch/alpha/kernel/sys_takara.c
arch/alpha/kernel/sys_takara.c
+1
-1
arch/alpha/kernel/sys_titan.c
arch/alpha/kernel/sys_titan.c
+1
-1
arch/alpha/kernel/sys_wildfire.c
arch/alpha/kernel/sys_wildfire.c
+1
-1
drivers/pci/pci.c
drivers/pci/pci.c
+5
-0
include/asm-alpha/dma.h
include/asm-alpha/dma.h
+18
-15
include/asm-alpha/floppy.h
include/asm-alpha/floppy.h
+2
-2
include/asm-alpha/machvec.h
include/asm-alpha/machvec.h
+1
-1
include/linux/pci.h
include/linux/pci.h
+6
-0
No files found.
arch/alpha/kernel/pci.c
View file @
9589f34f
...
...
@@ -117,6 +117,18 @@ quirk_cypress(struct pci_dev *dev)
}
}
/* Called for each device after PCI setup is done. */
static
void
__init
pcibios_fixup_final
(
struct
pci_dev
*
dev
)
{
unsigned
int
class
=
dev
->
class
>>
8
;
if
(
class
==
PCI_CLASS_BRIDGE_ISA
||
class
==
PCI_CLASS_BRIDGE_ISA
)
{
dev
->
dma_mask
=
MAX_ISA_DMA_ADDRESS
-
1
;
isa_bridge
=
dev
;
}
}
struct
pci_fixup
pcibios_fixups
[]
__initdata
=
{
{
PCI_FIXUP_HEADER
,
PCI_VENDOR_ID_INTEL
,
PCI_DEVICE_ID_INTEL_82375
,
quirk_eisa_bridge
},
...
...
@@ -126,6 +138,8 @@ struct pci_fixup pcibios_fixups[] __initdata = {
quirk_ali_ide_ports
},
{
PCI_FIXUP_HEADER
,
PCI_VENDOR_ID_CONTAQ
,
PCI_DEVICE_ID_CONTAQ_82C693
,
quirk_cypress
},
{
PCI_FIXUP_FINAL
,
PCI_ANY_ID
,
PCI_ANY_ID
,
pcibios_fixup_final
},
{
0
}
};
...
...
arch/alpha/kernel/pci_iommu.c
View file @
9589f34f
...
...
@@ -30,9 +30,7 @@
#define DEBUG_NODIRECT 0
#define DEBUG_FORCEDAC 0
/* Most Alphas support 32-bit ISA DMA. Exceptions are XL, Ruffian,
Nautilus, Sable, and Alcor (see asm-alpha/dma.h for details). */
#define ISA_DMA_MASK (MAX_DMA_ADDRESS - IDENT_ADDR - 1)
#define ISA_DMA_MASK 0x00ffffff
static
inline
unsigned
long
mk_iommu_pte
(
unsigned
long
paddr
)
...
...
@@ -189,6 +187,7 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size,
long
npages
,
dma_ofs
,
i
;
unsigned
long
paddr
;
dma_addr_t
ret
;
unsigned
int
align
=
0
;
paddr
=
__pa
(
cpu_addr
);
...
...
@@ -216,27 +215,27 @@ pci_map_single_1(struct pci_dev *pdev, void *cpu_addr, size_t size,
}
/* If the machine doesn't define a pci_tbi routine, we have to
assume it doesn't support sg mapping. */
assume it doesn't support sg mapping, and, since we tried to
use direct_map above, it now must be considered an error. */
if
(
!
alpha_mv
.
mv_pci_tbi
)
{
static
int
been_here
=
0
;
static
int
been_here
=
0
;
/* Only print the message once. */
if
(
!
been_here
)
{
printk
(
KERN_WARNING
"pci_map_single: no hw sg, using "
"direct map when possible
\n
"
);
printk
(
KERN_WARNING
"pci_map_single: no HW sg
\n
"
);
been_here
=
1
;
}
if
(
paddr
+
size
<=
__direct_map_size
)
return
(
paddr
+
__direct_map_base
);
else
return
0
;
return
0
;
}
arena
=
hose
->
sg_pci
;
if
(
!
arena
||
arena
->
dma_base
+
arena
->
size
-
1
>
max_dma
)
arena
=
hose
->
sg_isa
;
npages
=
calc_npages
((
paddr
&
~
PAGE_MASK
)
+
size
);
/* Force allocation to 64KB boundary for all ISA devices. */
dma_ofs
=
iommu_arena_alloc
(
arena
,
npages
,
pdev
?
8
:
0
);
/* Force allocation to 64KB boundary for ISA bridges. */
if
(
pdev
&&
pdev
==
isa_bridge
)
align
=
8
;
dma_ofs
=
iommu_arena_alloc
(
arena
,
npages
,
align
);
if
(
dma_ofs
<
0
)
{
printk
(
KERN_WARNING
"pci_map_single failed: "
"could not allocate dma page tables
\n
"
);
...
...
@@ -364,8 +363,10 @@ pci_alloc_consistent(struct pci_dev *pdev, size_t size, dma_addr_t *dma_addrp)
{
void
*
cpu_addr
;
long
order
=
get_order
(
size
);
int
gfp
=
GFP_ATOMIC
;
cpu_addr
=
(
void
*
)
__get_free_pages
(
GFP_ATOMIC
,
order
);
try_again:
cpu_addr
=
(
void
*
)
__get_free_pages
(
gfp
,
order
);
if
(
!
cpu_addr
)
{
printk
(
KERN_INFO
"pci_alloc_consistent: "
"get_free_pages failed from %p
\n
"
,
...
...
@@ -379,7 +380,12 @@ pci_alloc_consistent(struct pci_dev *pdev, size_t size, dma_addr_t *dma_addrp)
*
dma_addrp
=
pci_map_single_1
(
pdev
,
cpu_addr
,
size
,
0
);
if
(
*
dma_addrp
==
0
)
{
free_pages
((
unsigned
long
)
cpu_addr
,
order
);
return
NULL
;
if
(
alpha_mv
.
mv_pci_tbi
||
(
gfp
&
GFP_DMA
))
return
NULL
;
/* The address doesn't fit required mask and we
do not have iommu. Try again with GFP_DMA. */
gfp
|=
GFP_DMA
;
goto
try_again
;
}
DBGA2
(
"pci_alloc_consistent: %lx -> [%p,%x] from %p
\n
"
,
...
...
@@ -727,8 +733,8 @@ pci_dma_supported(struct pci_dev *pdev, u64 mask)
the entire direct mapped space or the total system memory as
shifted by the map base */
if
(
__direct_map_size
!=
0
&&
(
__direct_map_base
+
__direct_map_size
-
1
<=
mask
||
__direct_map_base
+
(
max_low_pfn
<<
PAGE_SHIFT
)
-
1
<=
mask
))
&&
(
__direct_map_base
+
__direct_map_size
-
1
<=
mask
||
__direct_map_base
+
(
max_low_pfn
<<
PAGE_SHIFT
)
-
1
<=
mask
))
return
1
;
/* Check that we have a scatter-gather arena that fits. */
...
...
@@ -740,6 +746,10 @@ pci_dma_supported(struct pci_dev *pdev, u64 mask)
if
(
arena
&&
arena
->
dma_base
+
arena
->
size
-
1
<=
mask
)
return
1
;
/* As last resort try ZONE_DMA. */
if
(
!
__direct_map_base
&&
MAX_DMA_ADDRESS
-
IDENT_ADDR
-
1
<=
mask
)
return
1
;
return
0
;
}
...
...
arch/alpha/kernel/sys_alcor.c
View file @
9589f34f
...
...
@@ -253,7 +253,7 @@ struct alpha_machine_vector alcor_mv __initmv = {
DO_CIA_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_ALCOR_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_ALCOR_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
EISA_DEFAULT_IO_BASE
,
.
min_mem_address
=
CIA_DEFAULT_MEM_BASE
,
...
...
@@ -283,7 +283,7 @@ struct alpha_machine_vector xlt_mv __initmv = {
DO_CIA_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
EISA_DEFAULT_IO_BASE
,
.
min_mem_address
=
CIA_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_cabriolet.c
View file @
9589f34f
...
...
@@ -327,7 +327,7 @@ struct alpha_machine_vector cabriolet_mv __initmv = {
DO_APECS_IO
,
DO_APECS_BUS
,
.
machine_check
=
apecs_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -354,7 +354,7 @@ struct alpha_machine_vector eb164_mv __initmv = {
DO_CIA_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
CIA_DEFAULT_MEM_BASE
,
...
...
@@ -380,7 +380,7 @@ struct alpha_machine_vector eb66p_mv __initmv = {
DO_LCA_IO
,
DO_LCA_BUS
,
.
machine_check
=
lca_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -405,7 +405,7 @@ struct alpha_machine_vector lx164_mv __initmv = {
DO_PYXIS_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
PYXIS_DAC_OFFSET
,
...
...
@@ -432,7 +432,7 @@ struct alpha_machine_vector pc164_mv __initmv = {
DO_CIA_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
CIA_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_dp264.c
View file @
9589f34f
...
...
@@ -572,7 +572,7 @@ struct alpha_machine_vector dp264_mv __initmv = {
DO_TSUNAMI_IO
,
DO_TSUNAMI_BUS
,
.
machine_check
=
tsunami_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
TSUNAMI_DAC_OFFSET
,
...
...
@@ -597,7 +597,7 @@ struct alpha_machine_vector monet_mv __initmv = {
DO_TSUNAMI_IO
,
DO_TSUNAMI_BUS
,
.
machine_check
=
tsunami_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
TSUNAMI_DAC_OFFSET
,
...
...
@@ -621,7 +621,7 @@ struct alpha_machine_vector webbrick_mv __initmv = {
DO_TSUNAMI_IO
,
DO_TSUNAMI_BUS
,
.
machine_check
=
tsunami_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
TSUNAMI_DAC_OFFSET
,
...
...
@@ -645,7 +645,7 @@ struct alpha_machine_vector clipper_mv __initmv = {
DO_TSUNAMI_IO
,
DO_TSUNAMI_BUS
,
.
machine_check
=
tsunami_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
TSUNAMI_DAC_OFFSET
,
...
...
@@ -674,7 +674,7 @@ struct alpha_machine_vector shark_mv __initmv = {
DO_TSUNAMI_IO
,
DO_TSUNAMI_BUS
,
.
machine_check
=
tsunami_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
TSUNAMI_DAC_OFFSET
,
...
...
arch/alpha/kernel/sys_eb64p.c
View file @
9589f34f
...
...
@@ -214,7 +214,7 @@ struct alpha_machine_vector eb64p_mv __initmv = {
DO_APECS_IO
,
DO_APECS_BUS
,
.
machine_check
=
apecs_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -240,7 +240,7 @@ struct alpha_machine_vector eb66_mv __initmv = {
DO_LCA_IO
,
DO_LCA_BUS
,
.
machine_check
=
lca_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_eiger.c
View file @
9589f34f
...
...
@@ -231,7 +231,7 @@ struct alpha_machine_vector eiger_mv __initmv = {
DO_TSUNAMI_IO
,
DO_TSUNAMI_BUS
,
.
machine_check
=
tsunami_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
TSUNAMI_DAC_OFFSET
,
...
...
arch/alpha/kernel/sys_jensen.c
View file @
9589f34f
...
...
@@ -219,6 +219,11 @@ static void __init
jensen_init_arch
(
void
)
{
struct
pci_controller
*
hose
;
#ifdef CONFIG_PCI
static
struct
pci_dev
fake_isa_bridge
=
{
dma_mask
:
0xffffffffUL
,
};
isa_bridge
=
&
fake_isa_bridge
;
#endif
/* Create a hose so that we can report i/o base addresses to
userland. */
...
...
@@ -257,7 +262,7 @@ struct alpha_machine_vector jensen_mv __initmv = {
IO_LITE
(
JENSEN
,
jensen
),
BUS
(
jensen
),
.
machine_check
=
jensen_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
rtc_port
=
0x170
,
.
nr_irqs
=
16
,
...
...
arch/alpha/kernel/sys_miata.c
View file @
9589f34f
...
...
@@ -269,7 +269,7 @@ struct alpha_machine_vector miata_mv __initmv = {
DO_PYXIS_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
PYXIS_DAC_OFFSET
,
...
...
arch/alpha/kernel/sys_mikasa.c
View file @
9589f34f
...
...
@@ -223,7 +223,7 @@ struct alpha_machine_vector mikasa_mv __initmv = {
DO_APECS_IO
,
DO_APECS_BUS
,
.
machine_check
=
mikasa_apecs_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -248,7 +248,7 @@ struct alpha_machine_vector mikasa_primo_mv __initmv = {
DO_CIA_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
CIA_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_nautilus.c
View file @
9589f34f
...
...
@@ -185,7 +185,7 @@ struct alpha_machine_vector nautilus_mv __initmv = {
DO_IRONGATE_IO
,
DO_IRONGATE_BUS
,
.
machine_check
=
nautilus_machine_check
,
.
max_
dma_address
=
ALPHA_NAUTILUS_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
IRONGATE_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_noritake.c
View file @
9589f34f
...
...
@@ -305,7 +305,7 @@ struct alpha_machine_vector noritake_mv __initmv = {
DO_APECS_IO
,
DO_APECS_BUS
,
.
machine_check
=
noritake_apecs_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
EISA_DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -330,7 +330,7 @@ struct alpha_machine_vector noritake_primo_mv __initmv = {
DO_CIA_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
EISA_DEFAULT_IO_BASE
,
.
min_mem_address
=
CIA_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_rawhide.c
View file @
9589f34f
...
...
@@ -252,7 +252,7 @@ struct alpha_machine_vector rawhide_mv __initmv = {
DO_MCPCIA_IO
,
DO_MCPCIA_BUS
,
.
machine_check
=
mcpcia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
MCPCIA_DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
MCPCIA_DAC_OFFSET
,
...
...
arch/alpha/kernel/sys_ruffian.c
View file @
9589f34f
...
...
@@ -219,7 +219,7 @@ struct alpha_machine_vector ruffian_mv __initmv = {
DO_PYXIS_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_RUFFIAN_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_RUFFIAN_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
PYXIS_DAC_OFFSET
,
...
...
arch/alpha/kernel/sys_rx164.c
View file @
9589f34f
...
...
@@ -203,7 +203,7 @@ struct alpha_machine_vector rx164_mv __initmv = {
DO_POLARIS_IO
,
DO_POLARIS_BUS
,
.
machine_check
=
polaris_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_sable.c
View file @
9589f34f
...
...
@@ -290,7 +290,7 @@ struct alpha_machine_vector sable_mv __initmv = {
DO_T2_IO
,
DO_T2_BUS
,
.
machine_check
=
t2_machine_check
,
.
max_
dma_address
=
ALPHA_SABLE_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_SABLE_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
EISA_DEFAULT_IO_BASE
,
.
min_mem_address
=
T2_DEFAULT_MEM_BASE
,
...
...
@@ -322,7 +322,7 @@ struct alpha_machine_vector sable_gamma_mv __initmv = {
DO_T2_IO
,
DO_T2_BUS
,
.
machine_check
=
t2_machine_check
,
.
max_
dma_address
=
ALPHA_SABLE_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_SABLE_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
EISA_DEFAULT_IO_BASE
,
.
min_mem_address
=
T2_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_sio.c
View file @
9589f34f
...
...
@@ -258,7 +258,7 @@ struct alpha_machine_vector alphabook1_mv __initmv = {
DO_LCA_IO
,
DO_LCA_BUS
,
.
machine_check
=
lca_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -289,7 +289,7 @@ struct alpha_machine_vector avanti_mv __initmv = {
DO_APECS_IO
,
DO_APECS_BUS
,
.
machine_check
=
apecs_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -318,7 +318,7 @@ struct alpha_machine_vector noname_mv __initmv = {
DO_LCA_IO
,
DO_LCA_BUS
,
.
machine_check
=
lca_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -356,7 +356,7 @@ struct alpha_machine_vector p2k_mv __initmv = {
DO_LCA_IO
,
DO_LCA_BUS
,
.
machine_check
=
lca_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
APECS_AND_LCA_DEFAULT_MEM_BASE
,
...
...
@@ -385,7 +385,7 @@ struct alpha_machine_vector xl_mv __initmv = {
DO_APECS_IO
,
BUS
(
apecs
),
.
machine_check
=
apecs_machine_check
,
.
max_
dma_address
=
ALPHA_XL_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_XL_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
XL_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_sx164.c
View file @
9589f34f
...
...
@@ -160,7 +160,7 @@ struct alpha_machine_vector sx164_mv __initmv = {
DO_PYXIS_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
PYXIS_DAC_OFFSET
,
...
...
arch/alpha/kernel/sys_takara.c
View file @
9589f34f
...
...
@@ -275,7 +275,7 @@ struct alpha_machine_vector takara_mv __initmv = {
DO_CIA_IO
,
DO_CIA_BUS
,
.
machine_check
=
cia_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
CIA_DEFAULT_MEM_BASE
,
...
...
arch/alpha/kernel/sys_titan.c
View file @
9589f34f
...
...
@@ -370,7 +370,7 @@ struct alpha_machine_vector privateer_mv __initmv = {
DO_TITAN_IO
,
DO_TITAN_BUS
,
.
machine_check
=
privateer_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
.
pci_dac_offset
=
TITAN_DAC_OFFSET
,
...
...
arch/alpha/kernel/sys_wildfire.c
View file @
9589f34f
...
...
@@ -339,7 +339,7 @@ struct alpha_machine_vector wildfire_mv __initmv = {
DO_WILDFIRE_IO
,
DO_WILDFIRE_BUS
,
.
machine_check
=
wildfire_machine_check
,
.
max_
dma_address
=
ALPHA_MAX
_DMA_ADDRESS
,
.
max_
isa_dma_address
=
ALPHA_MAX_ISA
_DMA_ADDRESS
,
.
min_io_address
=
DEFAULT_IO_BASE
,
.
min_mem_address
=
DEFAULT_MEM_BASE
,
...
...
drivers/pci/pci.c
View file @
9589f34f
...
...
@@ -642,6 +642,11 @@ device_initcall(pci_init);
__setup
(
"pci="
,
pci_setup
);
#if defined(CONFIG_ISA) || defined(CONFIG_EISA)
struct
pci_dev
*
isa_bridge
;
EXPORT_SYMBOL
(
isa_bridge
);
#endif
EXPORT_SYMBOL
(
pci_enable_device
);
EXPORT_SYMBOL
(
pci_disable_device
);
EXPORT_SYMBOL
(
pci_find_capability
);
...
...
include/asm-alpha/dma.h
View file @
9589f34f
...
...
@@ -85,44 +85,47 @@
/* The maximum address for ISA DMA transfer on Alpha XL, due to an
hardware SIO limitation, is 64MB.
*/
#define ALPHA_XL_MAX_
DMA_ADDRESS (IDENT_ADDR+0x04000000UL)
#define ALPHA_XL_MAX_
ISA_DMA_ADDRESS 0x04000000UL
/* The maximum address for ISA DMA transfer on RUFFIAN
and NAUTILUS
,
/* The maximum address for ISA DMA transfer on RUFFIAN,
due to an hardware SIO limitation, is 16MB.
*/
#define ALPHA_RUFFIAN_MAX_DMA_ADDRESS (IDENT_ADDR+0x01000000UL)
#define ALPHA_NAUTILUS_MAX_DMA_ADDRESS (IDENT_ADDR+0x01000000UL)
#define ALPHA_RUFFIAN_MAX_ISA_DMA_ADDRESS 0x01000000UL
/* The maximum address for ISA DMA transfer on SABLE, and some ALCORs,
due to an hardware SIO chip limitation, is 2GB.
*/
#define ALPHA_SABLE_MAX_
DMA_ADDRESS (IDENT_ADDR+0x80000000UL)
#define ALPHA_ALCOR_MAX_
DMA_ADDRESS (IDENT_ADDR+0x80000000UL)
#define ALPHA_SABLE_MAX_
ISA_DMA_ADDRESS 0x80000000UL
#define ALPHA_ALCOR_MAX_
ISA_DMA_ADDRESS 0x80000000UL
/*
Maximum address for all the others is the complete 32-bit bus
address space.
*/
#define ALPHA_MAX_
DMA_ADDRESS (IDENT_ADDR+0x100000000UL)
#define ALPHA_MAX_
ISA_DMA_ADDRESS 0x100000000UL
#ifdef CONFIG_ALPHA_GENERIC
# define MAX_
DMA_ADDRESS (alpha_mv.max
_dma_address)
# define MAX_
ISA_DMA_ADDRESS (alpha_mv.max_isa
_dma_address)
#else
# if defined(CONFIG_ALPHA_XL)
# define MAX_
DMA_ADDRESS ALPHA_XL_MAX
_DMA_ADDRESS
# define MAX_
ISA_DMA_ADDRESS ALPHA_XL_MAX_ISA
_DMA_ADDRESS
# elif defined(CONFIG_ALPHA_RUFFIAN)
# define MAX_DMA_ADDRESS ALPHA_RUFFIAN_MAX_DMA_ADDRESS
# elif defined(CONFIG_ALPHA_NAUTILUS)
# define MAX_DMA_ADDRESS ALPHA_NAUTILUS_MAX_DMA_ADDRESS
# define MAX_ISA_DMA_ADDRESS ALPHA_RUFFIAN_MAX_ISA_DMA_ADDRESS
# elif defined(CONFIG_ALPHA_SABLE)
# define MAX_
DMA_ADDRESS ALPHA_SABLE_MAX_DM
A_ADDRESS
# define MAX_
ISA_DMA_ADDRESS ALPHA_SABLE_MAX_DMA_IS
A_ADDRESS
# elif defined(CONFIG_ALPHA_ALCOR)
# define MAX_
DMA_ADDRESS ALPHA_ALCOR_MAX_DM
A_ADDRESS
# define MAX_
ISA_DMA_ADDRESS ALPHA_ALCOR_MAX_DMA_IS
A_ADDRESS
# else
# define MAX_
DMA_ADDRESS ALPHA_MAX
_DMA_ADDRESS
# define MAX_
ISA_DMA_ADDRESS ALPHA_MAX_ISA
_DMA_ADDRESS
# endif
#endif
/* If we have the iommu, we don't have any address limitations on DMA.
Otherwise (Nautilus, RX164), we have to have 0-16 Mb DMA zone
like i386. */
#define MAX_DMA_ADDRESS (alpha_mv.mv_pci_tbi ? \
~0UL : IDENT_ADDR + 0x01000000)
/* 8237 DMA controllers */
#define IO_DMA1_BASE 0x00
/* 8 bit slave DMA, channels 0..3 */
#define IO_DMA2_BASE 0xC0
/* 16 bit master DMA, ch 4(=slave input)..7 */
...
...
include/asm-alpha/floppy.h
View file @
9589f34f
...
...
@@ -51,12 +51,12 @@ alpha_fd_dma_setup(char *addr, unsigned long size, int mode, int io)
if
(
bus_addr
&&
(
addr
!=
prev_addr
||
size
!=
prev_size
||
dir
!=
prev_dir
))
{
/* different from last time -- unmap prev */
pci_unmap_single
(
NULL
,
bus_addr
,
prev_size
,
prev_dir
);
pci_unmap_single
(
isa_bridge
,
bus_addr
,
prev_size
,
prev_dir
);
bus_addr
=
0
;
}
if
(
!
bus_addr
)
/* need to map it */
bus_addr
=
pci_map_single
(
NULL
,
addr
,
size
,
dir
);
bus_addr
=
pci_map_single
(
isa_bridge
,
addr
,
size
,
dir
);
/* remember this one as prev */
prev_addr
=
addr
;
...
...
include/asm-alpha/machvec.h
View file @
9589f34f
...
...
@@ -34,7 +34,7 @@ struct alpha_machine_vector
int
nr_irqs
;
int
rtc_port
;
int
max_asn
;
unsigned
long
max_dma_address
;
unsigned
long
max_
isa_
dma_address
;
unsigned
long
irq_probe_mask
;
unsigned
long
iack_sc
;
unsigned
long
min_io_address
;
...
...
include/linux/pci.h
View file @
9589f34f
...
...
@@ -643,6 +643,10 @@ void pci_pool_destroy (struct pci_pool *pool);
void
*
pci_pool_alloc
(
struct
pci_pool
*
pool
,
int
flags
,
dma_addr_t
*
handle
);
void
pci_pool_free
(
struct
pci_pool
*
pool
,
void
*
vaddr
,
dma_addr_t
addr
);
#if defined(CONFIG_ISA) || defined(CONFIG_EISA)
extern
struct
pci_dev
*
isa_bridge
;
#endif
#endif
/* CONFIG_PCI */
/* Include architecture-dependent settings and functions */
...
...
@@ -703,6 +707,8 @@ static inline int pci_enable_wake(struct pci_dev *dev, u32 state, int enable) {
#define pci_for_each_dev(dev) \
for(dev = NULL; 0; )
#define isa_bridge ((struct pci_dev *)NULL)
#else
/*
...
...
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