diff options
author | Franky Lin <frankyl@broadcom.com> | 2012-06-26 15:26:36 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-06-27 15:23:17 -0400 |
commit | c3d2bc35e53dc0dcb85f4f4f06486ecd99143615 (patch) | |
tree | 4c3b46f3ea87c0861ffe15833117c7afe54a9834 /drivers/net | |
parent | bbfd6a66ff69e3e1850bead3e30031e303581cb1 (diff) |
brcmfmac: move glom alignment setting to SDIO bus layer
txglomming alignment is a SDIO bus specific feature. It is more
appropriate to place it in SDIO bus layer instead of common layer.
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')
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | 21 |
2 files changed, 15 insertions, 13 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c index 40fa4726b4a8..2621dd3d7dcd 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_common.c | |||
@@ -800,7 +800,6 @@ int brcmf_c_preinit_dcmds(struct brcmf_pub *drvr) | |||
800 | char iovbuf[BRCMF_EVENTING_MASK_LEN + 12]; /* Room for | 800 | char iovbuf[BRCMF_EVENTING_MASK_LEN + 12]; /* Room for |
801 | "event_msgs" + '\0' + bitvec */ | 801 | "event_msgs" + '\0' + bitvec */ |
802 | char buf[128], *ptr; | 802 | char buf[128], *ptr; |
803 | u32 dongle_align = drvr->bus_if->align; | ||
804 | u32 roaming = 1; | 803 | u32 roaming = 1; |
805 | uint bcn_timeout = 3; | 804 | uint bcn_timeout = 3; |
806 | int scan_assoc_time = 40; | 805 | int scan_assoc_time = 40; |
@@ -828,12 +827,6 @@ int brcmf_c_preinit_dcmds(struct brcmf_pub *drvr) | |||
828 | /* Print fw version info */ | 827 | /* Print fw version info */ |
829 | brcmf_dbg(ERROR, "Firmware version = %s\n", buf); | 828 | brcmf_dbg(ERROR, "Firmware version = %s\n", buf); |
830 | 829 | ||
831 | /* Match Host and Dongle rx alignment */ | ||
832 | brcmf_c_mkiovar("bus:txglomalign", (char *)&dongle_align, 4, iovbuf, | ||
833 | sizeof(iovbuf)); | ||
834 | brcmf_proto_cdc_set_dcmd(drvr, 0, BRCMF_C_SET_VAR, iovbuf, | ||
835 | sizeof(iovbuf)); | ||
836 | |||
837 | /* Setup timeout if Beacons are lost and roam is off to report | 830 | /* Setup timeout if Beacons are lost and roam is off to report |
838 | link down */ | 831 | link down */ |
839 | brcmf_c_mkiovar("bcn_timeout", (char *)&bcn_timeout, 4, iovbuf, | 832 | brcmf_c_mkiovar("bcn_timeout", (char *)&bcn_timeout, 4, iovbuf, |
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c index 1616c14d5f0c..581e7d999737 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c | |||
@@ -4171,6 +4171,7 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev) | |||
4171 | struct brcmf_sdio *bus; | 4171 | struct brcmf_sdio *bus; |
4172 | struct brcmf_bus_dcmd *dlst; | 4172 | struct brcmf_bus_dcmd *dlst; |
4173 | u32 dngl_txglom; | 4173 | u32 dngl_txglom; |
4174 | u32 dngl_txglomalign; | ||
4174 | u8 idx; | 4175 | u8 idx; |
4175 | 4176 | ||
4176 | brcmf_dbg(TRACE, "Enter\n"); | 4177 | brcmf_dbg(TRACE, "Enter\n"); |
@@ -4260,12 +4261,20 @@ void *brcmf_sdbrcm_probe(u32 regsva, struct brcmf_sdio_dev *sdiodev) | |||
4260 | /* sdio bus core specific dcmd */ | 4261 | /* sdio bus core specific dcmd */ |
4261 | idx = brcmf_sdio_chip_getinfidx(bus->ci, BCMA_CORE_SDIO_DEV); | 4262 | idx = brcmf_sdio_chip_getinfidx(bus->ci, BCMA_CORE_SDIO_DEV); |
4262 | dlst = kzalloc(sizeof(struct brcmf_bus_dcmd), GFP_KERNEL); | 4263 | dlst = kzalloc(sizeof(struct brcmf_bus_dcmd), GFP_KERNEL); |
4263 | if (bus->ci->c_inf[idx].rev < 12 && dlst) { | 4264 | if (dlst) { |
4264 | /* for sdio core rev < 12, disable txgloming */ | 4265 | if (bus->ci->c_inf[idx].rev < 12) { |
4265 | dngl_txglom = 0; | 4266 | /* for sdio core rev < 12, disable txgloming */ |
4266 | dlst->name = "bus:txglom"; | 4267 | dngl_txglom = 0; |
4267 | dlst->param = (char *)&dngl_txglom; | 4268 | dlst->name = "bus:txglom"; |
4268 | dlst->param_len = sizeof(u32); | 4269 | dlst->param = (char *)&dngl_txglom; |
4270 | dlst->param_len = sizeof(u32); | ||
4271 | } else { | ||
4272 | /* otherwise, set txglomalign */ | ||
4273 | dngl_txglomalign = bus->sdiodev->bus_if->align; | ||
4274 | dlst->name = "bus:txglomalign"; | ||
4275 | dlst->param = (char *)&dngl_txglomalign; | ||
4276 | dlst->param_len = sizeof(u32); | ||
4277 | } | ||
4269 | list_add(&dlst->list, &bus->sdiodev->bus_if->dcmd_list); | 4278 | list_add(&dlst->list, &bus->sdiodev->bus_if->dcmd_list); |
4270 | } | 4279 | } |
4271 | 4280 | ||