e1000: fix sw fw sync on igb i210/i211
I finally had a look at the datasheet and spotted an additional register address difference between regular E1000 and i210/i211 chips. This patch fixes this and now successfully works on programmed i210/i211 as well as unprogrammed i211. Signed-off-by: Marcel Ziswiler <marcel@ziswiler.com>
This commit is contained in:
parent
b265d0c459
commit
17da712024
@ -1112,7 +1112,10 @@ e1000_swfw_sync_acquire(struct e1000_hw *hw, uint16_t mask)
|
||||
if (e1000_get_hw_eeprom_semaphore(hw))
|
||||
return -E1000_ERR_SWFW_SYNC;
|
||||
|
||||
swfw_sync = E1000_READ_REG(hw, SW_FW_SYNC);
|
||||
if (hw->mac_type == e1000_igb)
|
||||
swfw_sync = E1000_READ_REG(hw, I210_SW_FW_SYNC);
|
||||
else
|
||||
swfw_sync = E1000_READ_REG(hw, SW_FW_SYNC);
|
||||
if (!(swfw_sync & (fwmask | swmask)))
|
||||
break;
|
||||
|
||||
@ -4429,7 +4432,6 @@ e1000_phy_hw_reset(struct e1000_hw *hw)
|
||||
|
||||
if (hw->mac_type >= e1000_82571)
|
||||
mdelay(10);
|
||||
|
||||
} else {
|
||||
/* Read the Extended Device Control Register, assert the PHY_RESET_DIR
|
||||
* bit to put the PHY into reset. Then, take it out of reset.
|
||||
|
@ -2497,6 +2497,7 @@ struct e1000_hw {
|
||||
#define ICH_GFPREG_BASE_MASK 0x1FFF
|
||||
#define ICH_FLASH_LINEAR_ADDR_MASK 0x00FFFFFF
|
||||
|
||||
#define E1000_I210_SW_FW_SYNC 0x5B50 /* Software-Firmware Synchronization - RW */
|
||||
#define E1000_SW_FW_SYNC 0x05B5C /* Software-Firmware Synchronization - RW */
|
||||
|
||||
/* SPI EEPROM Status Register */
|
||||
|
Loading…
Reference in New Issue
Block a user