diff options
author | Narayan Reddy <narayanr@nvidia.com> | 2011-10-25 16:39:59 +0530 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2012-03-24 01:53:26 -0700 |
commit | ddad59ac727fb6b0b14ae1087274d05a2657d3d8 (patch) | |
tree | 66fcc73406be4b8614c390ae4d127c1145ec8dd9 /drivers/net/wireless/bcmdhd/bcmsdh_linux.c | |
parent | 04b8c94132851100d91f28e6894bd1084de5d156 (diff) |
drivers: net: bcmdhd: load firmare based on chipid
bcm4329 and bcm4330 need different firmware files. This change
detects chipid and loads firmware located at
CONFIG_BCMDHD_FW_DIR/firmware_bcm<chipid>.bin
Bug 820860
(cherry picked from commit 850c98cc99c0bd8feee523a6c62501de9be3c770)
Change-Id: I043ffeda3ae8fe6f5c0c133bacc4aba7a080b983
Reviewed-on: http://git-master/r/60221
Reviewed-by: Varun Colbert <vcolbert@nvidia.com>
Tested-by: Varun Colbert <vcolbert@nvidia.com>
Rebase-Id: R59196ff5cb76aedcfaae1e84277a2ae27ce92314
Diffstat (limited to 'drivers/net/wireless/bcmdhd/bcmsdh_linux.c')
-rw-r--r-- | drivers/net/wireless/bcmdhd/bcmsdh_linux.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/wireless/bcmdhd/bcmsdh_linux.c b/drivers/net/wireless/bcmdhd/bcmsdh_linux.c index 9c9856ad75b2..b351ff9fa6bb 100644 --- a/drivers/net/wireless/bcmdhd/bcmsdh_linux.c +++ b/drivers/net/wireless/bcmdhd/bcmsdh_linux.c @@ -35,6 +35,7 @@ #include <linux/pci.h> #include <linux/completion.h> +#include <linux/mmc/sdio_func.h> #include <osl.h> #include <pcicfg.h> @@ -155,6 +156,7 @@ int bcmsdh_probe(struct device *dev) bcmsdh_hc_t *sdhc = NULL; ulong regs = 0; bcmsdh_info_t *sdh = NULL; + struct sdio_func *func = container_of(dev, struct sdio_func, dev); #if !defined(BCMLXSDMMC) && defined(BCMPLATFORM_BUS) struct platform_device *pdev; struct resource *r; @@ -232,8 +234,8 @@ int bcmsdh_probe(struct device *dev) vendevid = bcmsdh_query_device(sdh); /* try to attach to the target device */ if (!(sdhc->ch = drvinfo.attach((vendevid >> 16), - (vendevid & 0xFFFF), 0, 0, 0, 0, - (void *)regs, NULL, sdh))) { + func->device, 0, 0, 0, 0, + (void *)regs, NULL, sdh))) { SDLX_MSG(("%s: device attach failed\n", __FUNCTION__)); goto err; } |