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>
Mon, 17 Jan 2011 17:19:43 +0000 (19:19 +0200)
commit46c599f555cc5e7b116ba33b7d13a8ad9cb0c07c
tree5d0ba3f7bd97c9751816c4e21d47cd6c6a6f0d33
parent490894ee0f2c558413fe8452c59877ea69e36ef8
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