diff options
author | Franky Lin <frankyl@broadcom.com> | 2012-06-26 15:26:35 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-06-27 15:23:17 -0400 |
commit | bbfd6a66ff69e3e1850bead3e30031e303581cb1 (patch) | |
tree | 6cb00c83da5bd0dc18602265d96145bc88e1fadd /drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | |
parent | 135e4c6184d29f0834078bf150009a77b9dae717 (diff) |
brcmfmac: restrict dongle txglom disable to old SDIO core
txglomming is a firmware feature for sdio bus interface. For SDIO
device cores newer than revision 11, the default setting of
firmware should be used instead of disabling it from the host side.
Reviewed-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c index 076b7720ded9..1616c14d5f0c 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | |||
@@ -4169,6 +4169,9 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev) | |||
4169 | { | 4169 | { |
4170 | int ret; | 4170 | int ret; |
4171 | struct brcmf_sdio *bus; | 4171 | struct brcmf_sdio *bus; |
4172 | struct brcmf_bus_dcmd *dlst; | ||
4173 | u32 dngl_txglom; | ||
4174 | u8 idx; | ||
4172 | 4175 | ||
4173 | brcmf_dbg(TRACE, "Enter\n"); | 4176 | brcmf_dbg(TRACE, "Enter\n"); |
4174 | 4177 | ||
@@ -4254,6 +4257,18 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev) | |||
4254 | brcmf_sdio_debugfs_create(bus); | 4257 | brcmf_sdio_debugfs_create(bus); |
4255 | brcmf_dbg(INFO, "completed!!\n"); | 4258 | brcmf_dbg(INFO, "completed!!\n"); |
4256 | 4259 | ||
4260 | /* sdio bus core specific dcmd */ | ||
4261 | idx = brcmf_sdio_chip_getinfidx(bus->ci, BCMA_CORE_SDIO_DEV); | ||
4262 | dlst = kzalloc(sizeof(struct brcmf_bus_dcmd), GFP_KERNEL); | ||
4263 | if (bus->ci->c_inf[idx].rev < 12 && dlst) { | ||
4264 | /* for sdio core rev < 12, disable txgloming */ | ||
4265 | dngl_txglom = 0; | ||
4266 | dlst->name = "bus:txglom"; | ||
4267 | dlst->param = (char *)&dngl_txglom; | ||
4268 | dlst->param_len = sizeof(u32); | ||
4269 | list_add(&dlst->list, &bus->sdiodev->bus_if->dcmd_list); | ||
4270 | } | ||
4271 | |||
4257 | /* if firmware path present try to download and bring up bus */ | 4272 | /* if firmware path present try to download and bring up bus */ |
4258 | ret = brcmf_bus_start(bus->sdiodev->dev); | 4273 | ret = brcmf_bus_start(bus->sdiodev->dev); |
4259 | if (ret != 0) { | 4274 | if (ret != 0) { |