[linux-yocto] [PATCH 33/87] arch/arm/mach-axxia: pci.c fixes incorrect device reference
Paul Butler
butler.paul at gmail.com
Mon May 27 09:56:04 PDT 2013
Also removes some compiler warnings and section mismatch warnings
Signed-off-by: Paul Butler <paul.butler at windriver.com>
---
arch/arm/mach-axxia/pci.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/arch/arm/mach-axxia/pci.c b/arch/arm/mach-axxia/pci.c
index ea9a7a5..c1d930d 100644
--- a/arch/arm/mach-axxia/pci.c
+++ b/arch/arm/mach-axxia/pci.c
@@ -28,8 +28,6 @@
#include <linux/msi.h>
#define AXXIA55xx_NUM_MSI_IRQS 256
-static DECLARE_BITMAP(msi_irq_in_use, AXXIA55xx_NUM_MSI_IRQS);
-
#undef PRINT_CONFIG_ACCESSES
/*#define PRINT_CONFIG_ACCESSES*/
@@ -510,7 +508,9 @@ int axxia_pcie_setup(int portno, struct pci_sys_data *sys)
int i, num_pages, err;
u32 mpage_lower, pciah, pcial;
u64 size, bar0_size;
- void __iomem *cfg_addr, *cfg_data, *tpage_base;
+ void __iomem *cfg_addr = NULL;
+ void __iomem *cfg_data = NULL;
+ void __iomem *tpage_base;
int mappedIrq;
u32 inbound_size;
@@ -556,7 +556,8 @@ int axxia_pcie_setup(int portno, struct pci_sys_data *sys)
goto fail;
}
port->cfg_addr = cfg_addr;
- printk("cfg_addr for port %d = 0x%8x\n", port->index, port->cfg_addr);
+ printk(KERN_INFO "cfg_addr for port %d = 0x%8x\n", port->index,
+ (unsigned int)port->cfg_addr);
pci_config = readl(cfg_addr);
#ifdef PRINT_CONFIG_ACCESSES
printk(KERN_INFO "pci_vendor = 0x%08x\n", pci_config);
@@ -755,7 +756,7 @@ static void __devinit axxia_pcie_msi_enable(struct pci_dev *dev)
if ((!dma_set_coherent_mask(&dev->dev,
DMA_BIT_MASK(64))) ||
- (!dma_set_coherent_mask(dev,
+ (!dma_set_coherent_mask(&dev->dev,
DMA_BIT_MASK(32)))) {
msi_virt = dma_alloc_coherent(&dev->dev,
1024, &(port->msi_phys), GFP_KERNEL);
@@ -802,7 +803,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, axxia_pcie_msi_enable);
/* Port definition struct
* Please note: PEI core#1 is not used in AXM5500 */
-static struct hw_pci axxia_pcie_hw[] = {
+static struct hw_pci __refdata axxia_pcie_hw[] = {
[0] = {
.nr_controllers = 1,
.domain = 0,
@@ -848,7 +849,7 @@ void __init axxia_pcie_init(void)
static void axxia_probe_pciex_bridge(struct device_node *np)
{
struct axxia_pciex_port *port;
- const u32 pval;
+ u32 pval;
int portno;
const char *val;
const u32 *field;
@@ -856,6 +857,7 @@ static void axxia_probe_pciex_bridge(struct device_node *np)
int pna = of_n_addr_cells(np);
int num = pna + 5;
u64 size;
+ u64 pci_addr;
/* Get the port number from the device-tree */
if (!of_property_read_u32(np, "port", &pval)) {
@@ -922,7 +924,7 @@ static void axxia_probe_pciex_bridge(struct device_node *np)
if (field == NULL)
printk("not able to get ranges\n");
- u64 pci_addr = of_read_number(field + 1, 2);
+ pci_addr = of_read_number(field + 1, 2);
printk(KERN_INFO "pci_addr = 0x%012llx\n", pci_addr);
port->pci_addr = pci_addr;
--
1.8.3
More information about the linux-yocto
mailing list