[U-Boot] [PATCH] pci: fix some warnings related to assumptions about

Kumar Gala galak at kernel.crashing.org
Wed Sep 19 16:47:36 CEST 2012


The following commit introduced some warnings associated with using
pci_addr_t instead of a proper 32-bit data type.

commit af778c6d9e2b945ee03cbc53bb976238a3374f33
Author: Andrew Sharp <andywyse6 at gmail.com>
Date:   Wed Aug 1 12:27:16 2012 +0000

    pci: fix errant data types and corresponding access functions

On some platforms pci_addr_t is defined as a 64-bit data type so its not
proper to use with pci_{read,write}_config_dword.

Signed-off-by: Kumar Gala <galak at kernel.crashing.org>
---
 drivers/pci/pci.c      |    6 +++---
 drivers/pci/pci_auto.c |    2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 2a6d0a7..d864f13 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -118,11 +118,11 @@ PCI_WRITE_VIA_DWORD_OP(word, u16, 0x02, 0x0000ffff)
 void *pci_map_bar(pci_dev_t pdev, int bar, int flags)
 {
 	pci_addr_t pci_bus_addr;
-	pci_addr_t bar_response;
+	u32 bar_response;
 
 	/* read BAR address */
 	pci_read_config_dword(pdev, bar, &bar_response);
-	pci_bus_addr = bar_response & ~0xf;
+	pci_bus_addr = (pci_addr_t)(bar_response & ~0xf);
 
 	/*
 	 * Pass "0" as the length argument to pci_bus_to_virt.  The arg
@@ -389,7 +389,7 @@ int pci_hose_config_device(struct pci_controller *hose,
 			   pci_addr_t mem,
 			   unsigned long command)
 {
-	pci_addr_t bar_response;
+	u32 bar_response;
 	unsigned int old_command;
 	pci_addr_t bar_value;
 	pci_size_t bar_size;
diff --git a/drivers/pci/pci_auto.c b/drivers/pci/pci_auto.c
index ae61e24..cd78030 100644
--- a/drivers/pci/pci_auto.c
+++ b/drivers/pci/pci_auto.c
@@ -89,7 +89,7 @@ void pciauto_setup_device(struct pci_controller *hose,
 			  struct pci_region *prefetch,
 			  struct pci_region *io)
 {
-	pci_addr_t bar_response;
+	u32 bar_response;
 	pci_size_t bar_size;
 	u16 cmdstat = 0;
 	int bar, bar_nr = 0;
-- 
1.7.9.7



More information about the U-Boot mailing list