ARM: 7648/1: pci: Allow passing per-controller private data
In order to allow drivers to specify private data for each controller, this commit adds a private_data field to the struct hw_pci. This field is an array of nr_controllers pointers that will be used to initialize the private_data field of the corresponding controller's pci_sys_data structure. Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
276fd3c5f8
commit
352af7d4dd
2 changed files with 4 additions and 0 deletions
|
@ -23,6 +23,7 @@ struct hw_pci {
|
||||||
#endif
|
#endif
|
||||||
struct pci_ops *ops;
|
struct pci_ops *ops;
|
||||||
int nr_controllers;
|
int nr_controllers;
|
||||||
|
void **private_data;
|
||||||
int (*setup)(int nr, struct pci_sys_data *);
|
int (*setup)(int nr, struct pci_sys_data *);
|
||||||
struct pci_bus *(*scan)(int nr, struct pci_sys_data *);
|
struct pci_bus *(*scan)(int nr, struct pci_sys_data *);
|
||||||
void (*preinit)(void);
|
void (*preinit)(void);
|
||||||
|
|
|
@ -464,6 +464,9 @@ static void pcibios_init_hw(struct hw_pci *hw, struct list_head *head)
|
||||||
sys->map_irq = hw->map_irq;
|
sys->map_irq = hw->map_irq;
|
||||||
INIT_LIST_HEAD(&sys->resources);
|
INIT_LIST_HEAD(&sys->resources);
|
||||||
|
|
||||||
|
if (hw->private_data)
|
||||||
|
sys->private_data = hw->private_data[nr];
|
||||||
|
|
||||||
ret = hw->setup(nr, sys);
|
ret = hw->setup(nr, sys);
|
||||||
|
|
||||||
if (ret > 0) {
|
if (ret > 0) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue