diff options
author | Mitch Williams <mitch.a.williams@intel.com> | 2015-01-09 06:18:13 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2015-02-08 22:30:29 -0500 |
commit | 1750a22fa9ec34d3842a78780c838d6bf88fc6b5 (patch) | |
tree | cc78fffd0cbb09f42e888bda81a88bfe0ab20ab6 /drivers/net | |
parent | 83840e4bd5a3ae0022e5cdd02bde149338b6b499 (diff) |
i40e: delay after VF reset
Delay a minimum of 10ms after VF reset, to allow the hardware's internal
FIFOs to flush.
Change-ID: I8a02ddb28c9f0d7303a1eb21d0b2443e5b4c1cda
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Jim Young <james.m.young@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c index 044019b9d406..4e4232a58843 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | |||
@@ -668,13 +668,13 @@ void i40e_reset_vf(struct i40e_vf *vf, bool flr) | |||
668 | /* poll VPGEN_VFRSTAT reg to make sure | 668 | /* poll VPGEN_VFRSTAT reg to make sure |
669 | * that reset is complete | 669 | * that reset is complete |
670 | */ | 670 | */ |
671 | for (i = 0; i < 100; i++) { | 671 | for (i = 0; i < 10; i++) { |
672 | /* vf reset requires driver to first reset the | 672 | /* VF reset requires driver to first reset the VF and then |
673 | * vf and then poll the status register to make sure | 673 | * poll the status register to make sure that the reset |
674 | * that the requested op was completed | 674 | * completed successfully. Due to internal HW FIFO flushes, |
675 | * successfully | 675 | * we must wait 10ms before the register will be valid. |
676 | */ | 676 | */ |
677 | usleep_range(10, 20); | 677 | usleep_range(10000, 20000); |
678 | reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); | 678 | reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); |
679 | if (reg & I40E_VPGEN_VFRSTAT_VFRD_MASK) { | 679 | if (reg & I40E_VPGEN_VFRSTAT_VFRD_MASK) { |
680 | rsd = true; | 680 | rsd = true; |