mirror of https://gitee.com/openkylin/linux.git
fsl/fman: fix dtsec_set_tx_pause_frames
Fix a bug introduced in e06a03b
(fsl/fman: fix the pause_time test)
When pause_time is set to '0' - pause frames are disabled and
there's no need to apply dTSEC-A003 Errata workaround.
Signed-off-by: Igal Liberman <igal.liberman@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
387178ec26
commit
7c82a7b998
|
@ -932,15 +932,14 @@ int dtsec_set_tx_pause_frames(struct fman_mac *dtsec,
|
||||||
if (!is_init_done(dtsec->dtsec_drv_param))
|
if (!is_init_done(dtsec->dtsec_drv_param))
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
|
if (pause_time) {
|
||||||
/* FM_BAD_TX_TS_IN_B_2_B_ERRATA_DTSEC_A003 Errata workaround */
|
/* FM_BAD_TX_TS_IN_B_2_B_ERRATA_DTSEC_A003 Errata workaround */
|
||||||
if (dtsec->fm_rev_info.major == 2)
|
if (dtsec->fm_rev_info.major == 2 && pause_time <= 320) {
|
||||||
if (pause_time <= 320) {
|
|
||||||
pr_warn("pause-time: %d illegal.Should be > 320\n",
|
pr_warn("pause-time: %d illegal.Should be > 320\n",
|
||||||
pause_time);
|
pause_time);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pause_time) {
|
|
||||||
ptv = ioread32be(®s->ptv);
|
ptv = ioread32be(®s->ptv);
|
||||||
ptv &= PTV_PTE_MASK;
|
ptv &= PTV_PTE_MASK;
|
||||||
ptv |= pause_time & PTV_PT_MASK;
|
ptv |= pause_time & PTV_PT_MASK;
|
||||||
|
|
Loading…
Reference in New Issue