]> git.baikalelectronics.ru Git - kernel.git/commit
iwlwifi: fix hardware queue programming
authorJohannes Berg <johannes.berg@intel.com>
Mon, 23 Apr 2012 21:17:50 +0000 (14:17 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 24 Apr 2012 18:14:55 +0000 (14:14 -0400)
commit60bc3ce9e6bc5a1f79f8c1b30da22e150d675ede
tree66f8630a6525dfec3fda774653b4dca98771b9e7
parent02163abe76de931527eeb3fa507abffb02a39634
iwlwifi: fix hardware queue programming

Newer devices have 20 (5000 series) or 30 (6000 series)
hardware queues, rather than the 16 that 4965 had. This
was added to the driver a long time ago, but improperly:
the queue registers for the higher queues aren't just
continuations of the registers for the first 16 queues,
they are in other places. Therefore, the hardware would
lock up when trying to activate queue 16 or above and
the device would have to be restarted.

Thanks goes to Emmanuel who identified this and told me
how the queue programming should be done.

Note that we don't use queues 20 and higher today and
doing so needs more work than this.

Cc: stable@vger.kernel.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-fh.h
drivers/net/wireless/iwlwifi/iwl-prph.h