wl1251: use ELP wakeup interrupt instead of polling
authorGrazvydas Ignotas <notasas@gmail.com>
Wed, 27 Oct 2010 21:39:40 +0000 (00:39 +0300)
committerGrazvydas Ignotas <notasas@gmail.com>
Sat, 5 Mar 2011 21:18:01 +0000 (23:18 +0200)
commit9388be2a6aedd397b931b1beb9aadbaa85db0efd
tree84494a199a56d00ea3263f0b02fca3a44b6a8345
parentfa3042ca1026927d70b2cbfc1a8ddb09bc96bb82
wl1251: use ELP wakeup interrupt instead of polling

The chip can generate an interrupt on ELP wakeup, make use of it instead
of polling the status register. This reduces wakeup time to ~7ms from
~8-20ms (the wait loop was sleeping, so could take up to 20ms depending
on how system timer is configured). Note that DEBUG_PSM does not report
this accurately as it only measures jiffies.

This patch also moves atomic portion of interrupt processing to main.c
to avoid code duplication.

Signed-off-by: Grazvydas Ignotas <notasas@gmail.com>
drivers/net/wireless/wl12xx/wl1251.h
drivers/net/wireless/wl12xx/wl1251_main.c
drivers/net/wireless/wl12xx/wl1251_ps.c
drivers/net/wireless/wl12xx/wl1251_reg.h
drivers/net/wireless/wl12xx/wl1251_sdio.c
drivers/net/wireless/wl12xx/wl1251_spi.c