CHROMIUM: ath9k: Avoid tight reset loops

Convert hw_reset_work to a delayed work task and create a common
routine for callers who would like the chip to be reset.  In this
common method, enforce that the reset work is called no more than
twice in quick succession by keeping track of the last time this
method was called and delaying the reset to enforce a minimum
spacing.

Signed-off-by: Paul Stewart <pstew@chromium.org>

BUG=chrome-os-partner:10677
TEST=matfunc suite on mario

Change-Id: Ic69e0b5d2849afc5b9f881f2e7db9fd1879afe9d
Reviewed-on: https://chromium-review.googlesource.com/177589
Reviewed-by: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Paul Stewart <pstew@chromium.org>
6 files changed