diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-3945.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-4965.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 14 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 6 |
6 files changed, 20 insertions, 23 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c index 76c4ed1135f2..4fdeb5323248 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.c +++ b/drivers/net/wireless/iwlwifi/iwl-3945.c | |||
@@ -2369,18 +2369,4 @@ struct pci_device_id iwl3945_hw_card_ids[] = { | |||
2369 | {0} | 2369 | {0} |
2370 | }; | 2370 | }; |
2371 | 2371 | ||
2372 | /* | ||
2373 | * Clear the OWNER_MSK, to establish driver (instead of uCode running on | ||
2374 | * embedded controller) as EEPROM reader; each read is a series of pulses | ||
2375 | * to/from the EEPROM chip, not a single event, so even reads could conflict | ||
2376 | * if they weren't arbitrated by some ownership mechanism. Here, the driver | ||
2377 | * simply claims ownership, which should be safe when this function is called | ||
2378 | * (i.e. before loading uCode!). | ||
2379 | */ | ||
2380 | inline int iwl3945_eeprom_acquire_semaphore(struct iwl3945_priv *priv) | ||
2381 | { | ||
2382 | _iwl3945_clear_bit(priv, CSR_EEPROM_GP, CSR_EEPROM_GP_IF_OWNER_MSK); | ||
2383 | return 0; | ||
2384 | } | ||
2385 | |||
2386 | MODULE_DEVICE_TABLE(pci, iwl3945_hw_card_ids); | 2372 | MODULE_DEVICE_TABLE(pci, iwl3945_hw_card_ids); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.h b/drivers/net/wireless/iwlwifi/iwl-3945.h index 20b925f57e35..4b07db9cd407 100644 --- a/drivers/net/wireless/iwlwifi/iwl-3945.h +++ b/drivers/net/wireless/iwlwifi/iwl-3945.h | |||
@@ -671,7 +671,6 @@ extern int iwl3945_hw_channel_switch(struct iwl3945_priv *priv, u16 channel); | |||
671 | /* | 671 | /* |
672 | * Forward declare iwl-3945.c functions for iwl-base.c | 672 | * Forward declare iwl-3945.c functions for iwl-base.c |
673 | */ | 673 | */ |
674 | extern int iwl3945_eeprom_acquire_semaphore(struct iwl3945_priv *priv); | ||
675 | extern __le32 iwl3945_get_antenna_flags(const struct iwl3945_priv *priv); | 674 | extern __le32 iwl3945_get_antenna_flags(const struct iwl3945_priv *priv); |
676 | extern int iwl3945_init_hw_rate_table(struct iwl3945_priv *priv); | 675 | extern int iwl3945_init_hw_rate_table(struct iwl3945_priv *priv); |
677 | extern void iwl3945_reg_txpower_periodic(struct iwl3945_priv *priv); | 676 | extern void iwl3945_reg_txpower_periodic(struct iwl3945_priv *priv); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c index 04db34ba814b..569347ff377b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.c +++ b/drivers/net/wireless/iwlwifi/iwl-4965.c | |||
@@ -4961,11 +4961,4 @@ int iwl4965_eeprom_acquire_semaphore(struct iwl4965_priv *priv) | |||
4961 | return rc; | 4961 | return rc; |
4962 | } | 4962 | } |
4963 | 4963 | ||
4964 | inline void iwl4965_eeprom_release_semaphore(struct iwl4965_priv *priv) | ||
4965 | { | ||
4966 | iwl4965_clear_bit(priv, CSR_HW_IF_CONFIG_REG, | ||
4967 | CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM); | ||
4968 | } | ||
4969 | |||
4970 | |||
4971 | MODULE_DEVICE_TABLE(pci, iwl4965_hw_card_ids); | 4964 | MODULE_DEVICE_TABLE(pci, iwl4965_hw_card_ids); |
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.h b/drivers/net/wireless/iwlwifi/iwl-4965.h index 78bc148c9f7f..9cb82be0ff80 100644 --- a/drivers/net/wireless/iwlwifi/iwl-4965.h +++ b/drivers/net/wireless/iwlwifi/iwl-4965.h | |||
@@ -750,7 +750,6 @@ struct iwl4965_priv; | |||
750 | * Forward declare iwl-4965.c functions for iwl-base.c | 750 | * Forward declare iwl-4965.c functions for iwl-base.c |
751 | */ | 751 | */ |
752 | extern int iwl4965_eeprom_acquire_semaphore(struct iwl4965_priv *priv); | 752 | extern int iwl4965_eeprom_acquire_semaphore(struct iwl4965_priv *priv); |
753 | extern void iwl4965_eeprom_release_semaphore(struct iwl4965_priv *priv); | ||
754 | 753 | ||
755 | extern int iwl4965_tx_queue_update_wr_ptr(struct iwl4965_priv *priv, | 754 | extern int iwl4965_tx_queue_update_wr_ptr(struct iwl4965_priv *priv, |
756 | struct iwl4965_tx_queue *txq, | 755 | struct iwl4965_tx_queue *txq, |
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index f96a1a2e90f4..8cef48c9d748 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c | |||
@@ -1557,6 +1557,20 @@ static void get_eeprom_mac(struct iwl3945_priv *priv, u8 *mac) | |||
1557 | memcpy(mac, priv->eeprom.mac_address, 6); | 1557 | memcpy(mac, priv->eeprom.mac_address, 6); |
1558 | } | 1558 | } |
1559 | 1559 | ||
1560 | /* | ||
1561 | * Clear the OWNER_MSK, to establish driver (instead of uCode running on | ||
1562 | * embedded controller) as EEPROM reader; each read is a series of pulses | ||
1563 | * to/from the EEPROM chip, not a single event, so even reads could conflict | ||
1564 | * if they weren't arbitrated by some ownership mechanism. Here, the driver | ||
1565 | * simply claims ownership, which should be safe when this function is called | ||
1566 | * (i.e. before loading uCode!). | ||
1567 | */ | ||
1568 | static inline int iwl3945_eeprom_acquire_semaphore(struct iwl3945_priv *priv) | ||
1569 | { | ||
1570 | _iwl3945_clear_bit(priv, CSR_EEPROM_GP, CSR_EEPROM_GP_IF_OWNER_MSK); | ||
1571 | return 0; | ||
1572 | } | ||
1573 | |||
1560 | /** | 1574 | /** |
1561 | * iwl3945_eeprom_init - read EEPROM contents | 1575 | * iwl3945_eeprom_init - read EEPROM contents |
1562 | * | 1576 | * |
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index 77c635287035..c856835b1f20 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -1639,6 +1639,12 @@ static void get_eeprom_mac(struct iwl4965_priv *priv, u8 *mac) | |||
1639 | memcpy(mac, priv->eeprom.mac_address, 6); | 1639 | memcpy(mac, priv->eeprom.mac_address, 6); |
1640 | } | 1640 | } |
1641 | 1641 | ||
1642 | static inline void iwl4965_eeprom_release_semaphore(struct iwl4965_priv *priv) | ||
1643 | { | ||
1644 | iwl4965_clear_bit(priv, CSR_HW_IF_CONFIG_REG, | ||
1645 | CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM); | ||
1646 | } | ||
1647 | |||
1642 | /** | 1648 | /** |
1643 | * iwl4965_eeprom_init - read EEPROM contents | 1649 | * iwl4965_eeprom_init - read EEPROM contents |
1644 | * | 1650 | * |