CHROMIUM: iwl7000: add a W/A for a scheduler hardware bug

In case we need to move the scheduler write pointer by
steps of 0x40, 0x80 or 0xc0, the scheduler gets stuck.
This leads to hardware error interrupts with status:
0x5A5A5A5A or alike.

In order to work around this, detect in the transport
layer that we are going to hit this case and tell iwlmvm
to increment the sequence number of the packets. This
allows to keep the requirement that the WiFi sequence
number is in sync with the index in the scheduler Tx queue
and it also allows to avoid the problematic sequence.
This means that from time to time, we will start a queue
from ssn + 1, but that shouldn't be a problem since we
don't switch to new queues for AMPDU now that we have
DQA which allows to keep the same queue while toggling
the AMPDU state.

This bug has been fixed on 9000 devices and up.

BUG=chromium:719261
TEST=None

Change-Id: Ide65c3f711ee62f17edde580fdca695f3acbf892
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
iwl7000-tree: 62d56763927c04755ee6a900b8859bd56a1c5484
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Reviewed-on: https://chromium-review.googlesource.com/498289
Commit-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Reviewed-by: Kirtika Ruchandani <kirtika@chromium.org>
(cherry picked from commit 1ab71e50619ed5662a4038d8928fea0071d77120)
Reviewed-on: https://chromium-review.googlesource.com/516832
Trybot-Ready: Kirtika Ruchandani <kirtika@chromium.org>
Commit-Queue: Kirtika Ruchandani <kirtika@chromium.org>
Tested-by: Kirtika Ruchandani <kirtika@chromium.org>
6 files changed