diff options
Diffstat (limited to 'drivers/bcma/main.c')
| -rw-r--r-- | drivers/bcma/main.c | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c index be52344ed19..873e2e4ac55 100644 --- a/drivers/bcma/main.c +++ b/drivers/bcma/main.c @@ -7,6 +7,7 @@  #include "bcma_private.h"  #include <linux/bcma/bcma.h> +#include <linux/slab.h>  MODULE_DESCRIPTION("Broadcom's specific AMBA driver");  MODULE_LICENSE("GPL"); @@ -89,6 +90,8 @@ static int bcma_register_cores(struct bcma_bus *bus)  		switch (bus->hosttype) {  		case BCMA_HOSTTYPE_PCI:  			core->dev.parent = &bus->host_pci->dev; +			core->dma_dev = &bus->host_pci->dev; +			core->irq = bus->host_pci->irq;  			break;  		case BCMA_HOSTTYPE_NONE:  		case BCMA_HOSTTYPE_SDIO: @@ -144,6 +147,15 @@ int bcma_bus_register(struct bcma_bus *bus)  		bcma_core_pci_init(&bus->drv_pci);  	} +	/* Try to get SPROM */ +	err = bcma_sprom_get(bus); +	if (err == -ENOENT) { +		pr_err("No SPROM available\n"); +	} else if (err) { +		pr_err("Failed to get SPROM: %d\n", err); +		return -ENOENT; +	} +  	/* Register found cores */  	bcma_register_cores(bus); @@ -151,13 +163,11 @@ int bcma_bus_register(struct bcma_bus *bus)  	return 0;  } -EXPORT_SYMBOL_GPL(bcma_bus_register);  void bcma_bus_unregister(struct bcma_bus *bus)  {  	bcma_unregister_cores(bus);  } -EXPORT_SYMBOL_GPL(bcma_bus_unregister);  int __bcma_driver_register(struct bcma_driver *drv, struct module *owner)  {  |