aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorFranky Lin <frankyl@broadcom.com>2012-06-26 15:26:36 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-06-27 15:23:17 -0400
commitc3d2bc35e53dc0dcb85f4f4f06486ecd99143615 (patch)
tree4c3b46f3ea87c0861ffe15833117c7afe54a9834 /drivers/net
parentbbfd6a66ff69e3e1850bead3e30031e303581cb1 (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.c7
-rw-r--r--drivers/net/wireless/brcm80211/brcmfmac/dhd_sdio.c21
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