]> git.baikalelectronics.ru Git - kernel.git/commit
ixgbe: improve EEPROM read/write operations
authorEmil Tantilov <emil.s.tantilov@intel.com>
Wed, 20 Apr 2011 08:49:06 +0000 (08:49 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 4 May 2011 19:17:33 +0000 (12:17 -0700)
commit62adf1bf8aa29e91d61edc627069ecd06b2c1bce
treec2257af755eba410a8af9a88ae10c93b462e41d2
parentc6fb1e9155b03ed5b0585c8294e4ae64a849b42b
ixgbe: improve EEPROM read/write operations

Introduce buffered read/writes which greatly improves performance on
parts with large EEPROMs.

Previously reading/writing a word requires taking/releasing of synchronization
semaphores which adds 10ms to each operation. The optimization is to
read/write in buffers, but make sure the semaphore is not held for >500ms
according to the datasheet.

Since we can't read the EEPROM page size ixgbe_detect_eeprom_page_size() is
used to discover the EEPROM size when needed and keeps the result in
word_page_size for the rest of the run time.

Use buffered reads for ethtool -e.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Evan Swanson <evan.swanson@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ixgbe/ixgbe_82598.c
drivers/net/ixgbe/ixgbe_82599.c
drivers/net/ixgbe/ixgbe_common.c
drivers/net/ixgbe/ixgbe_common.h
drivers/net/ixgbe/ixgbe_ethtool.c
drivers/net/ixgbe/ixgbe_type.h
drivers/net/ixgbe/ixgbe_x540.c