diff options
author | Emil Tantilov <emil.s.tantilov@intel.com> | 2011-03-23 20:57:50 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-04-13 22:23:38 -0400 |
commit | eb9c3e3ea2981e56c71e8f5477c51783856090b1 (patch) | |
tree | ff6ddad23c34e96de2083c46598f7aab0eb62425 /drivers/net/ixgbe/ixgbe_common.h | |
parent | 032b4325b61b03f87f0346d0e92e39f785e24105 (diff) |
ixgbe: fix semaphores in eeprom routines for x540
HW can upload EEPROM content from flash while
in a middle of checksum calculation. Take NVM ownership for the whole
process of checksum update.
Call ixgbe_read_eerd_generic() and ixgbe_write_eewr_generic() directly to
avoid double take of semaphores which leads to long loading times.
Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_common.h')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_common.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ixgbe/ixgbe_common.h b/drivers/net/ixgbe/ixgbe_common.h index 2585bf38391d..e18dc136ad34 100644 --- a/drivers/net/ixgbe/ixgbe_common.h +++ b/drivers/net/ixgbe/ixgbe_common.h | |||
@@ -50,13 +50,13 @@ s32 ixgbe_led_off_generic(struct ixgbe_hw *hw, u32 index); | |||
50 | s32 ixgbe_init_eeprom_params_generic(struct ixgbe_hw *hw); | 50 | s32 ixgbe_init_eeprom_params_generic(struct ixgbe_hw *hw); |
51 | s32 ixgbe_write_eeprom_generic(struct ixgbe_hw *hw, u16 offset, u16 data); | 51 | s32 ixgbe_write_eeprom_generic(struct ixgbe_hw *hw, u16 offset, u16 data); |
52 | s32 ixgbe_read_eerd_generic(struct ixgbe_hw *hw, u16 offset, u16 *data); | 52 | s32 ixgbe_read_eerd_generic(struct ixgbe_hw *hw, u16 offset, u16 *data); |
53 | s32 ixgbe_write_eewr_generic(struct ixgbe_hw *hw, u16 offset, u16 data); | ||
53 | s32 ixgbe_read_eeprom_bit_bang_generic(struct ixgbe_hw *hw, u16 offset, | 54 | s32 ixgbe_read_eeprom_bit_bang_generic(struct ixgbe_hw *hw, u16 offset, |
54 | u16 *data); | 55 | u16 *data); |
55 | u16 ixgbe_calc_eeprom_checksum_generic(struct ixgbe_hw *hw); | 56 | u16 ixgbe_calc_eeprom_checksum_generic(struct ixgbe_hw *hw); |
56 | s32 ixgbe_validate_eeprom_checksum_generic(struct ixgbe_hw *hw, | 57 | s32 ixgbe_validate_eeprom_checksum_generic(struct ixgbe_hw *hw, |
57 | u16 *checksum_val); | 58 | u16 *checksum_val); |
58 | s32 ixgbe_update_eeprom_checksum_generic(struct ixgbe_hw *hw); | 59 | s32 ixgbe_update_eeprom_checksum_generic(struct ixgbe_hw *hw); |
59 | s32 ixgbe_poll_eerd_eewr_done(struct ixgbe_hw *hw, u32 ee_reg); | ||
60 | 60 | ||
61 | s32 ixgbe_set_rar_generic(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq, | 61 | s32 ixgbe_set_rar_generic(struct ixgbe_hw *hw, u32 index, u8 *addr, u32 vmdq, |
62 | u32 enable_addr); | 62 | u32 enable_addr); |