| 256 | } |
| 257 | |
| 258 | static inline void |
| 259 | ngbe_vf_reset_event(struct rte_eth_dev *eth_dev, uint16_t vf) |
| 260 | { |
| 261 | struct ngbe_hw *hw = ngbe_dev_hw(eth_dev); |
| 262 | struct ngbe_vf_info *vfinfo = *(NGBE_DEV_VFDATA(eth_dev)); |
| 263 | int rar_entry = hw->mac.num_rar_entries - (vf + 1); |
| 264 | uint32_t vmolr = rd32(hw, NGBE_POOLETHCTL(vf)); |
| 265 | |
| 266 | vmolr |= (NGBE_POOLETHCTL_UCHA | |
| 267 | NGBE_POOLETHCTL_BCA | NGBE_POOLETHCTL_UTA); |
| 268 | wr32(hw, NGBE_POOLETHCTL(vf), vmolr); |
| 269 | |
| 270 | wr32(hw, NGBE_POOLTAG(vf), 0); |
| 271 | |
| 272 | /* reset multicast table array for vf */ |
| 273 | vfinfo[vf].num_vf_mc_hashes = 0; |
| 274 | |
| 275 | /* reset rx mode */ |
| 276 | ngbe_set_rx_mode(eth_dev); |
| 277 | |
| 278 | hw->mac.clear_rar(hw, rar_entry); |
| 279 | } |
| 280 | |
| 281 | static inline void |
| 282 | ngbe_vf_reset_msg(struct rte_eth_dev *eth_dev, uint16_t vf) |
no test coverage detected