瀏覽代碼

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>
Thierry Reding 12 年之前
父節點
當前提交
352af7d4dd
共有 2 個文件被更改,包括 4 次插入0 次删除
  1. 1 0
      arch/arm/include/asm/mach/pci.h
  2. 3 0
      arch/arm/kernel/bios32.c

+ 1 - 0
arch/arm/include/asm/mach/pci.h

@@ -23,6 +23,7 @@ struct hw_pci {
 #endif
 	struct pci_ops	*ops;
 	int		nr_controllers;
+	void		**private_data;
 	int		(*setup)(int nr, struct pci_sys_data *);
 	struct pci_bus *(*scan)(int nr, struct pci_sys_data *);
 	void		(*preinit)(void);

+ 3 - 0
arch/arm/kernel/bios32.c

@@ -464,6 +464,9 @@ static void pcibios_init_hw(struct hw_pci *hw, struct list_head *head)
 		sys->map_irq = hw->map_irq;
 		INIT_LIST_HEAD(&sys->resources);
 
+		if (hw->private_data)
+			sys->private_data = hw->private_data[nr];
+
 		ret = hw->setup(nr, sys);
 
 		if (ret > 0) {