Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
powerpc
include
asm
ppc-pci.h
Go to the documentation of this file.
1
/*
2
* c 2001 PPC 64 Team, IBM Corp
3
*
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation; either version
7
* 2 of the License, or (at your option) any later version.
8
*/
9
#ifndef _ASM_POWERPC_PPC_PCI_H
10
#define _ASM_POWERPC_PPC_PCI_H
11
#ifdef __KERNEL__
12
13
#ifdef CONFIG_PCI
14
15
#include <linux/pci.h>
16
#include <asm/pci-bridge.h>
17
18
extern
unsigned
long
isa_io_base
;
19
20
extern
void
pci_setup_phb_io(
struct
pci_controller
*hose,
int
primary
);
21
extern
void
pci_setup_phb_io_dynamic(
struct
pci_controller
*hose,
int
primary
);
22
23
24
extern
struct
list_head
hose_list;
25
26
extern
void
find_and_init_phbs
(
void
);
27
28
extern
struct
pci_dev
*
isa_bridge_pcidev
;
/* may be NULL if no ISA bus */
29
31
#define BUID_HI(buid) upper_32_bits(buid)
32
#define BUID_LO(buid) lower_32_bits(buid)
33
34
/* PCI device_node operations */
35
struct
device_node
;
36
typedef
void
*(*traverse_func)(
struct
device_node
*me,
void
*
data
);
37
void
*
traverse_pci_devices
(
struct
device_node
*
start
, traverse_func pre,
38
void
*
data
);
39
40
extern
void
pci_devs_phb_init
(
void
);
41
extern
void
pci_devs_phb_init_dynamic
(
struct
pci_controller
*phb);
42
43
/* From rtas_pci.h */
44
extern
void
init_pci_config_tokens
(
void
);
45
extern
unsigned
long
get_phb_buid
(
struct
device_node
*);
46
extern
int
rtas_setup_phb
(
struct
pci_controller
*phb);
47
48
#ifdef CONFIG_EEH
49
50
void
eeh_addr_cache_insert_dev
(
struct
pci_dev
*
dev
);
51
void
eeh_addr_cache_rmv_dev
(
struct
pci_dev
*
dev
);
52
struct
eeh_dev *
eeh_addr_cache_get_dev
(
unsigned
long
addr
);
53
void
eeh_slot_error_detail
(
struct
eeh_pe *pe,
int
severity);
54
int
eeh_pci_enable
(
struct
eeh_pe *pe,
int
function
);
55
int
eeh_reset_pe
(
struct
eeh_pe *);
56
void
eeh_save_bars
(
struct
eeh_dev *edev);
57
int
rtas_write_config
(
struct
pci_dn *,
int
where,
int
size
,
u32
val
);
58
int
rtas_read_config
(
struct
pci_dn *,
int
where,
int
size
,
u32
*
val
);
59
void
eeh_pe_state_mark
(
struct
eeh_pe *pe,
int
state
);
60
void
eeh_pe_state_clear
(
struct
eeh_pe *pe,
int
state
);
61
62
void
eeh_sysfs_add_device
(
struct
pci_dev
*pdev);
63
void
eeh_sysfs_remove_device
(
struct
pci_dev
*pdev);
64
65
static
inline
const
char
*eeh_pci_name(
struct
pci_dev
*pdev)
66
{
67
return
pdev ? pci_name(pdev) :
"<null>"
;
68
}
69
70
static
inline
const
char
*eeh_driver_name(
struct
pci_dev
*pdev)
71
{
72
return
(pdev && pdev->
driver
) ? pdev->
driver
->name :
"<null>"
;
73
}
74
75
#endif
/* CONFIG_EEH */
76
77
#else
/* CONFIG_PCI */
78
static
inline
void
find_and_init_phbs
(
void
) { }
79
static
inline
void
init_pci_config_tokens
(
void
) { }
80
#endif
/* !CONFIG_PCI */
81
82
#endif
/* __KERNEL__ */
83
#endif
/* _ASM_POWERPC_PPC_PCI_H */
Generated on Thu Jan 10 2013 13:13:25 for Linux Kernel by
1.8.2