android_kernel_motorola_sm6225/drivers/net/wireless/iwlwifi
Reinette Chatre df833b1d73 iwlwifi: DMA fixes
A few issues wrt DMA were uncovered when using the driver with swiotlb.
- driver should not use memory after it has been mapped
- iwl3945's RX queue management cannot use all of iwlagn because
  the size of the RX buffer is different. Revert back to using
  iwl3945 specific routines that map/unmap memory.
- no need to "dma_syn_single_range_for_cpu" followed by pci_unmap_single,
  we can just call pci_unmap_single initially
- only map the memory area that will be used by device. this is especially
  relevant to the mapping of iwl_cmd. we should not map the entire
  structure because the meta data at the beginning of structure contains
  the address to be used later for unmapping. If the address to be used for
  unmapping is stored in mapped data it creates a problem.
- ensure that _if_ memory needs to be modified after it is mapped that we
  call _sync_single_for_cpu first, and then release it back to device with
  _sync_single_for_device
- we mapped the wrong length of data for host commands, with mapped length
  differing with length provided to device, fix that.

Thanks to Jason Andryuk <jandryuk@gmail.com> for significant bisecting
help to find these issues.

This fixes http://www.intellinuxwireless.org/bugzilla/show_bug.cgi?id=1964

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Tested-by: Jason Andryuk <jandryuk@gmail.com>
Tested-by: Ben Gamari <bgamari@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-04-21 16:43:34 -04:00
..
iwl-1000.c
iwl-3945-fh.h
iwl-3945-hw.h iwl3945: set TFD_QUEUE_MAX to correct value 2009-03-27 20:12:58 -04:00
iwl-3945-led.c iwl3945: use iwl_led structure 2009-03-16 18:09:46 -04:00
iwl-3945-led.h iwl3945: use iwl_led structure 2009-03-16 18:09:46 -04:00
iwl-3945-rs.c iwl3945: control rate decrease 2009-03-27 20:12:59 -04:00
iwl-3945.c iwlwifi: DMA fixes 2009-04-21 16:43:34 -04:00
iwl-3945.h iwlwifi: DMA fixes 2009-04-21 16:43:34 -04:00
iwl-4965-hw.h
iwl-4965.c mac80211/iwlwifi: move virtual A-MDPU queue bookkeeping to iwlwifi 2009-03-27 20:13:23 -04:00
iwl-5000-hw.h
iwl-5000.c mac80211/iwlwifi: move virtual A-MDPU queue bookkeeping to iwlwifi 2009-03-27 20:13:23 -04:00
iwl-6000-hw.h
iwl-6000.c
iwl-agn-rs.c iwlwifi: verify the antenna selection when receive fixed rate debugfs 2009-03-16 18:09:45 -04:00
iwl-agn-rs.h iwlwifi: HT performance improvement changes 2009-03-16 18:09:44 -04:00
iwl-agn.c iwlwifi: DMA fixes 2009-04-21 16:43:34 -04:00
iwl-calib.c
iwl-calib.h
iwl-commands.h
iwl-core.c mac80211/iwlwifi: move virtual A-MDPU queue bookkeeping to iwlwifi 2009-03-27 20:13:23 -04:00
iwl-core.h iwl3945: use iwl_cmd_queue_free 2009-03-27 20:12:59 -04:00
iwl-csr.h iwlwifi: fix EEPROM validation mask to include OTP only devices 2009-04-21 16:43:30 -04:00
iwl-debug.h
iwl-debugfs.c iwlwifi: show current driver status in user readable format 2009-03-27 20:13:20 -04:00
iwl-dev.h iwlwifi: DMA fixes 2009-04-21 16:43:34 -04:00
iwl-eeprom.c
iwl-eeprom.h
iwl-fh.h
iwl-hcmd.c
iwl-helpers.h mac80211/iwlwifi: move virtual A-MDPU queue bookkeeping to iwlwifi 2009-03-27 20:13:23 -04:00
iwl-io.h iwlwifi: print contents of control register when error occurs 2009-03-16 18:09:47 -04:00
iwl-led.c
iwl-led.h iwl3945: use iwl_led structure 2009-03-16 18:09:46 -04:00
iwl-power.c iwlcore: dont commit power command if interface is not up 2009-03-27 20:12:58 -04:00
iwl-power.h
iwl-prph.h
iwl-rfkill.c
iwl-rfkill.h
iwl-rx.c
iwl-scan.c
iwl-spectrum.c
iwl-spectrum.h
iwl-sta.c iwlwifi: report error when detect failure during stop agg queue 2009-03-27 20:13:00 -04:00
iwl-sta.h
iwl-tx.c iwlwifi: DMA fixes 2009-04-21 16:43:34 -04:00
iwl3945-base.c iwlwifi: DMA fixes 2009-04-21 16:43:34 -04:00
Kconfig iwl3945: use iwl_led structure 2009-03-16 18:09:46 -04:00
Makefile iwl3945: use iwl_led structure 2009-03-16 18:09:46 -04:00