
2013/5/29 Gabor Juhos juhosg@openwrt.org:
The pci_indirect.c file is always compiled when CONFIG_PCI is defined although the indirect PCI bridge support is not needed by every board.
Introduce a new CONFIG_PCI_INDIRECT_BRIDGE config option and only compile indirect PCI bridge support if this options is enabled.
Also add the new option into the configuration files of the boards which needs that.
looks good, thanks for your efforts. But you should document that new config option in the README file.
Compile tested for powerpc, x86, arm and nds32. MAKEALL results:
powerpc: --------------------- SUMMARY ---------------------------- Boards compiled: 641 Boards with warnings but no errors: 2 ( ELPPC MPC8323ERDB )
Note: the warnings for ELPPC and MPC8323ERDB are present even without the actual patch.
x86: --------------------- SUMMARY ---------------------------- Boards compiled: 1
arm: --------------------- SUMMARY ---------------------------- Boards compiled: 311
nds32: --------------------- SUMMARY ---------------------------- Boards compiled: 3
Cc: Tom Rini trini@ti.com Cc: Daniel Schwierzeck daniel.schwierzeck@googlemail.com Signed-off-by: Gabor Juhos juhosg@openwrt.org
Notes:
- warning details for powerpc:
ELPPC: misc.c: In function 'misc_init_r': misc.c:210:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] misc.c:211:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] misc.c:212:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
MPC8323ERDB: mpc8323erdb.c: In function 'mac_read_from_eeprom': mpc8323erdb.c:198:3: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
- because nds32 support in u-boot/master is broken at the moment, the following patch-set has been used in the test: http://patchwork.ozlabs.org/bundle/juhosg/nds32-fix-build-errors-warnings/
-Gabor
[...]
diff --git a/include/pci.h b/include/pci.h index 15f583f..f9c5148 100644 --- a/include/pci.h +++ b/include/pci.h @@ -569,7 +569,9 @@ extern __inline__ void pci_set_ops(struct pci_controller *hose, hose->write_dword = write_dword; }
+#ifdef CONFIG_PCI_INDIRECT_BRIDGE extern void pci_setup_indirect(struct pci_controller* hose, u32 cfg_addr, u32 cfg_data); +#endif
ifdef's around function declarations are not necessary
extern phys_addr_t pci_hose_bus_to_phys(struct pci_controller* hose, pci_addr_t addr, unsigned long flags); -- 1.7.10
-- Best regards, Daniel