* em_hw_control_acquire sets {CTRL_EXT|FWSM}:DRV_LOAD bit. * For ASF and Pass Through versions of f/w this means * that the driver is loaded. For AMT version type f/w * this means that the network i/f is open. */
| 1224 | * this means that the network i/f is open. |
| 1225 | */ |
| 1226 | static void |
| 1227 | em_hw_control_acquire(struct e1000_hw *hw) |
| 1228 | { |
| 1229 | uint32_t ctrl_ext, swsm; |
| 1230 | |
| 1231 | /* Let firmware know the driver has taken over */ |
| 1232 | if (hw->mac.type == e1000_82573) { |
| 1233 | swsm = E1000_READ_REG(hw, E1000_SWSM); |
| 1234 | E1000_WRITE_REG(hw, E1000_SWSM, swsm | E1000_SWSM_DRV_LOAD); |
| 1235 | |
| 1236 | } else { |
| 1237 | ctrl_ext = E1000_READ_REG(hw, E1000_CTRL_EXT); |
| 1238 | E1000_WRITE_REG(hw, E1000_CTRL_EXT, |
| 1239 | ctrl_ext | E1000_CTRL_EXT_DRV_LOAD); |
| 1240 | } |
| 1241 | } |
| 1242 | |
| 1243 | /* |
| 1244 | * em_hw_control_release resets {CTRL_EXTT|FWSM}:DRV_LOAD bit. |