• Larry Finger's avatar
    b43: Fix throughput regression · b6c3f5be
    Larry Finger authored
    Commit c7ab5ef9
     entitled "b43: implement
    short slot and basic rate handling" reduced the transmit throughput for
    my BCM4311 device from 18 Mb/s to 0.7 Mb/s. The basic rate handling
    portion is OK, the problem is in the short slot handling.
    Prior to this change, the short slot enable/disable routines were never
    called. Experimentation showed that the critical part was changing the
    value at offset 0x0010 in the shared memory. This is supposed to contain
    the 802.11 Slot Time in usec, but if it is changed from its initial value
    of zero, performance is destroyed. On the other hand, changing the value
    in the MMIO register corresponding to the Interframe Slot Time increased
    performance from 18 to 22 Mb/s. A BCM4306/3 also shows dramatic
    improvement of the transmit rate from 5.3 to 19.0 Mb/s.
    Other changes in the patch include removal of the magic number for the
    MMIO register, and allowing the slot time to be set for any PHY operating
    in the 2.4 GHz band. Previously, the routine was executed only for G PHYs.
    Signed-off-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
    Cc: Stable <stable@kernel.org> [Any stable version back through 2.6.28]
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>