diff options
author | 2013-10-07 15:43:04 +0100 | |
---|---|---|
committer | 2013-10-07 15:43:04 +0100 | |
commit | a56e74f546b64be93731e42d83baf5b538cc1b11 (patch) | |
tree | 18f6dee45d801e57ac9db2a31664b0d5c0762c50 /drivers/net/wireless/cw1200/hwio.c | |
parent | ARM: bL_switcher: Add query interface to discover CPU affinities (diff) | |
parent | ARM: add support for bit sliced AES using NEON instructions (diff) | |
download | wireguard-linux-a56e74f546b64be93731e42d83baf5b538cc1b11.tar.xz wireguard-linux-a56e74f546b64be93731e42d83baf5b538cc1b11.zip |
Merge branch 'arm-aesbs' of git://git.linaro.org/people/ardbiesheuvel/linux-arm into devel-stable
Diffstat (limited to 'drivers/net/wireless/cw1200/hwio.c')
-rw-r--r-- | drivers/net/wireless/cw1200/hwio.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/net/wireless/cw1200/hwio.c b/drivers/net/wireless/cw1200/hwio.c index ff230b7aeedd..41bd7615ccaa 100644 --- a/drivers/net/wireless/cw1200/hwio.c +++ b/drivers/net/wireless/cw1200/hwio.c @@ -273,6 +273,21 @@ int __cw1200_irq_enable(struct cw1200_common *priv, int enable) u16 val16; int ret; + /* We need to do this hack because the SPI layer can sleep on I/O + and the general path involves I/O to the device in interrupt + context. + + However, the initial enable call needs to go to the hardware. + + We don't worry about shutdown because we do a full reset which + clears the interrupt enabled bits. + */ + if (priv->hwbus_ops->irq_enable) { + ret = priv->hwbus_ops->irq_enable(priv->hwbus_priv, enable); + if (ret || enable < 2) + return ret; + } + if (HIF_8601_SILICON == priv->hw_type) { ret = __cw1200_reg_read_32(priv, ST90TDS_CONFIG_REG_ID, &val32); if (ret < 0) { |