summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/bcmdhd/bcmsdh_linux.c
diff options
context:
space:
mode:
authorNarayan Reddy <narayanr@nvidia.com>2011-10-25 16:39:59 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2012-03-24 01:53:26 -0700
commitddad59ac727fb6b0b14ae1087274d05a2657d3d8 (patch)
tree66fcc73406be4b8614c390ae4d127c1145ec8dd9 /drivers/net/wireless/bcmdhd/bcmsdh_linux.c
parent04b8c94132851100d91f28e6894bd1084de5d156 (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.c6
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;
}