diff options
author | John W. Linville <linville@tuxdriver.com> | 2012-06-11 22:50:59 +0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2012-06-11 22:50:59 +0400 |
commit | b6038961dfeed49533e43fbedd86951a16cb4d2c (patch) | |
tree | 8df5f6b6ec01a0d53d5327bd63915902a18a4fbe /drivers/net/wireless/iwlwifi/iwl-io.c | |
parent | 2e48686835370dfe78697839ca293d250793809d (diff) | |
parent | b1abedada3fd0aa100723aa9b60b7e31c17945cb (diff) | |
download | linux-b6038961dfeed49533e43fbedd86951a16cb4d2c.tar.xz |
Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next
Conflicts:
drivers/net/wireless/iwlwifi/iwl-eeprom.c
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-io.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-io.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-io.c b/drivers/net/wireless/iwlwifi/iwl-io.c index ee93274214d6..5f2df70b73c1 100644 --- a/drivers/net/wireless/iwlwifi/iwl-io.c +++ b/drivers/net/wireless/iwlwifi/iwl-io.c @@ -65,6 +65,24 @@ void iwl_clear_bit(struct iwl_trans *trans, u32 reg, u32 mask) } EXPORT_SYMBOL_GPL(iwl_clear_bit); +void iwl_set_bits_mask(struct iwl_trans *trans, u32 reg, u32 mask, u32 value) +{ + unsigned long flags; + u32 v; + +#ifdef CONFIG_IWLWIFI_DEBUG + WARN_ON_ONCE(value & ~mask); +#endif + + spin_lock_irqsave(&trans->reg_lock, flags); + v = iwl_read32(trans, reg); + v &= ~mask; + v |= value; + iwl_write32(trans, reg, v); + spin_unlock_irqrestore(&trans->reg_lock, flags); +} +EXPORT_SYMBOL_GPL(iwl_set_bits_mask); + int iwl_poll_bit(struct iwl_trans *trans, u32 addr, u32 bits, u32 mask, int timeout) { |