1. 04 2月, 2010 1 次提交
    • L
      b43: Fix throughput regression · b6c3f5be
      Larry Finger 提交于
      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: NLarry Finger <Larry.Finger@lwfinger.net>
      Cc: Stable <stable@kernel.org> [Any stable version back through 2.6.28]
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      b6c3f5be
  2. 30 12月, 2009 1 次提交
  3. 11 12月, 2009 1 次提交
  4. 05 12月, 2009 2 次提交
    • J
      b43: fix two warnings · df98a496
      Johannes Berg 提交于
      My gcc appears to be able to see past the function
      boundary and notices that the variable 'behaviour'
      could be used uninitialised:
      
      drivers/net/wireless/b43/leds.c: In function ‘b43_leds_register’:
      drivers/net/wireless/b43/leds.c:339: warning: ‘behaviour’ may be used uninitialized in this function
      drivers/net/wireless/b43/leds.c: In function ‘b43_leds_init’:
      drivers/net/wireless/b43/leds.c:262: warning: ‘behaviour’ may be used uninitialized in this function
      
      because b43_led_get_sprominfo() didn't initialise
      it in all cases.
      Signed-off-by: NJohannes Berg <johannes@sipsolutions.net>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      df98a496
    • L
      b43: avoid PPC fault during resume · c2ff581a
      Larry Finger 提交于
      The routine b43_is_hw_radio_enabled() has long been a problem.
      For PPC architecture with PHY Revision < 3, a read of the register
      B43_MMIO_HWENABLED_LO will cause a CPU fault unless b43_status()
      returns a value of 2 (B43_STAT_STARTED) (BUG 14181). Fixing that
      results in Bug 14538 in which the driver is unable to reassociate
      after resuming from hibernation because b43_status() returns 0.
      
      The correct fix would be to determine why the status is 0; however,
      I have not yet found why that happens. The correct value is found for
      my device, which has PHY revision >= 3.
      
      Returning TRUE when the PHY revision < 3 and b43_status() returns 0 fixes
      the regression for 2.6.32.
      
      This patch fixes the problem in Red Hat Bugzilla #538523.
      Signed-off-by: NLarry Finger <Larry.Finger@lwfinger.net>
      Tested-by: NChristian Casteyde <casteyde.christian@free.fr>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      c2ff581a
  5. 29 11月, 2009 3 次提交
    • D
      pcmcia: rework the irq_req_t typedef · 5fa9167a
      Dominik Brodowski 提交于
      Most of the irq_req_t typedef'd struct can be re-worked quite
      easily:
      
      (1) IRQInfo2 was unused in any case, so drop it.
      
      (2) IRQInfo1 was used write-only, so drop it.
      
      (3) Instance (private data to be passed to the IRQ handler):
      	Most PCMCIA drivers using pcmcia_request_irq() to actually
      	register an IRQ handler set the "dev_id" to the same pointer
      	as the "priv" pointer in struct pcmcia_device. Modify the two
      	exceptions (ipwireless, ibmtr_cs) to also work this waym and
      	set the IRQ handler's "dev_id" to p_dev->priv unconditionally.
      
      (4) Handler is to be of type irq_handler_t.
      
      (5) Handler != NULL already tells whether an IRQ handler is present.
      	Therefore, we do not need the IRQ_HANDLER_PRESENT flag in
      	irq_req_t.Attributes.
      
      CC: netdev@vger.kernel.org
      CC: linux-bluetooth@vger.kernel.org
      CC: linux-ide@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-scsi@vger.kernel.org
      CC: alsa-devel@alsa-project.org
      CC: Jaroslav Kysela <perex@perex.cz>
      CC: Jiri Kosina <jkosina@suse.cz>
      CC: Karsten Keil <isdn@linux-pingi.de>
      for the Bluetooth parts: Acked-by: Marcel Holtmann <marcel@holtmann.org>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      5fa9167a
    • D
      pcmcia: pcmcia_request_window() doesn't need a pointer to a pointer · 6838b03f
      Dominik Brodowski 提交于
      pcmcia_request_window() only needs a pointer to struct pcmcia_device, not
      a pointer to a pointer.
      
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-scsi@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      Acked-by: Karsten Keil <keil@b1-systems.de> (for ISDN)
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      6838b03f
    • M
      pcmcia: Pass struct pcmcia_device to pcmcia_map_mem_page() · 868575d1
      Magnus Damm 提交于
      No logic changes, just pass struct pcmcia_device to pcmcia_map_mem_page()
      
      [linux@dominikbrodowski.net: update to 2.6.31]
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      CC: linux-scsi@vger.kernel.org
      CC: Jiri Kosina <jkosina@suse.cz>
      Acked-by: Karsten Keil <keil@b1-systems.de> (for ISDN)
      Signed-off-by: NMagnus Damm <damm@opensource.se>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      868575d1
  6. 24 11月, 2009 1 次提交
  7. 19 11月, 2009 1 次提交
    • M
      b43: Enforce DMA descriptor memory constraints · 9bd568a5
      Michael Buesch 提交于
      Enforce all device constraints on the descriptor memory region.
      
      There are several constraints on the descriptor memory, as documented
      in the specification. The current code does not enforce them and/or
      incorrectly enforces them.
      
      Those constraints are:
      - The address limitations on 30/32bit engines, that also apply to
        the skbs.
      - The 4k alignment requirement on 30/32bit engines.
      - The 8k alignment requirement on 64bit engines.
      Signed-off-by: NMichael Buesch <mb@bu3sch.de>
      Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
      9bd568a5
  8. 12 11月, 2009 2 次提交
  9. 11 11月, 2009 1 次提交
  10. 09 11月, 2009 1 次提交
    • D
      pcmcia: use pre-determined values · 7d2e8d00
      Dominik Brodowski 提交于
      A few PCMCIA network drivers can make use of values provided by the pcmcia
      core, instead of tedious, independent CIS parsing.
      
      xirc32ps_cs.c: manf_id
      
      hostap_cs.c: multifunction count
      
      b43/pcmcia.c: ConfigBase address and "Present"
      
      smc91c92_cs.c:  By default, mhz_setup() can use VERS_1 as it is stored
      in struct pcmcia_device. Only some cards require workarounds, such as
      reading out VERS_1 twice.
      
      CC: David S. Miller <davem@davemloft.net>
      CC: netdev@vger.kernel.org
      CC: linux-wireless@vger.kernel.org
      Acked-by: NJohn W. Linville <linville@tuxdriver.com>
      Signed-off-by: NDominik Brodowski <linux@dominikbrodowski.net>
      7d2e8d00
  11. 07 11月, 2009 1 次提交
  12. 31 10月, 2009 4 次提交
  13. 28 10月, 2009 5 次提交
  14. 13 10月, 2009 1 次提交
  15. 12 10月, 2009 1 次提交
  16. 08 10月, 2009 5 次提交
  17. 30 9月, 2009 1 次提交
  18. 23 9月, 2009 8 次提交