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>
Sun, 31 Oct 2010 20:10:34 +0000 (22:10 +0200)
commitea28090a416013fc3af44f941ce51a88d40eabce
treee5484aeb352e22a607a8af2103f9dea704e27249
parent7fa4170aeaefddeba8a20baa33f76040909ddbfb
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