Revision c730ab423bfa1ae99b688a9abdedf74477d44955 authored by Laurent Badel on 25 January 2021, 10:07:45 UTC, committed by Jakub Kicinski on 27 January 2021, 02:24:39 UTC
fec_restart() does a hard reset of the MAC module when the link status
changes to up. This temporarily resets the R_CNTRL register which controls
the MII mode of the ENET_OUT clock. In the case of RMII, the clock
frequency momentarily drops from 50MHz to 25MHz until the register is
reconfigured. Some link partners do not tolerate this glitch and
invalidate the link causing failure to establish a stable link when using
PHY polling mode. Since as per IEEE802.3 the criteria for link validity
are PHY-specific, what the partner should tolerate cannot be assumed, so
avoid resetting the MII clock by using software reset instead of hardware
reset when the link is up. This is generally relevant only if the SoC
provides the clock to an external PHY and the PHY is configured for RMII.

Signed-off-by: Laurent Badel <laurentbadel@eaton.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent b491e6a
History
File Mode Size
partitions
Kconfig -rw-r--r-- 6.7 KB
Kconfig.iosched -rw-r--r-- 1.3 KB
Makefile -rw-r--r-- 1.7 KB
badblocks.c -rw-r--r-- 14.1 KB
bfq-cgroup.c -rw-r--r-- 38.5 KB
bfq-iosched.c -rw-r--r-- 236.5 KB
bfq-iosched.h -rw-r--r-- 36.7 KB
bfq-wf2q.c -rw-r--r-- 52.4 KB
bio-integrity.c -rw-r--r-- 12.5 KB
bio.c -rw-r--r-- 44.0 KB
blk-cgroup-rwstat.c -rw-r--r-- 3.4 KB
blk-cgroup-rwstat.h -rw-r--r-- 3.9 KB
blk-cgroup.c -rw-r--r-- 50.0 KB
blk-core.c -rw-r--r-- 47.9 KB
blk-crypto-fallback.c -rw-r--r-- 18.2 KB
blk-crypto-internal.h -rw-r--r-- 5.4 KB
blk-crypto.c -rw-r--r-- 11.9 KB
blk-exec.c -rw-r--r-- 2.6 KB
blk-flush.c -rw-r--r-- 15.1 KB
blk-integrity.c -rw-r--r-- 11.8 KB
blk-ioc.c -rw-r--r-- 10.1 KB
blk-iocost.c -rw-r--r-- 96.1 KB
blk-iolatency.c -rw-r--r-- 28.0 KB
blk-lib.c -rw-r--r-- 11.4 KB
blk-map.c -rw-r--r-- 15.7 KB
blk-merge.c -rw-r--r-- 30.4 KB
blk-mq-cpumap.c -rw-r--r-- 2.2 KB
blk-mq-debugfs-zoned.c -rw-r--r-- 435 bytes
blk-mq-debugfs.c -rw-r--r-- 24.4 KB
blk-mq-debugfs.h -rw-r--r-- 2.7 KB
blk-mq-pci.c -rw-r--r-- 1.3 KB
blk-mq-rdma.c -rw-r--r-- 1.3 KB
blk-mq-sched.c -rw-r--r-- 17.0 KB
blk-mq-sched.h -rw-r--r-- 2.4 KB
blk-mq-sysfs.c -rw-r--r-- 8.3 KB
blk-mq-tag.c -rw-r--r-- 17.0 KB
blk-mq-tag.h -rw-r--r-- 2.3 KB
blk-mq-virtio.c -rw-r--r-- 1.3 KB
blk-mq.c -rw-r--r-- 96.9 KB
blk-mq.h -rw-r--r-- 9.4 KB
blk-pm.c -rw-r--r-- 6.8 KB
blk-pm.h -rw-r--r-- 1.5 KB
blk-rq-qos.c -rw-r--r-- 7.1 KB
blk-rq-qos.h -rw-r--r-- 5.0 KB
blk-settings.c -rw-r--r-- 27.9 KB
blk-stat.c -rw-r--r-- 4.8 KB
blk-stat.h -rw-r--r-- 4.6 KB
blk-sysfs.c -rw-r--r-- 24.4 KB
blk-throttle.c -rw-r--r-- 67.7 KB
blk-timeout.c -rw-r--r-- 4.1 KB
blk-wbt.c -rw-r--r-- 19.8 KB
blk-wbt.h -rw-r--r-- 2.8 KB
blk-zoned.c -rw-r--r-- 14.3 KB
blk.h -rw-r--r-- 11.1 KB
bounce.c -rw-r--r-- 9.4 KB
bsg-lib.c -rw-r--r-- 9.9 KB
bsg.c -rw-r--r-- 11.1 KB
cmdline-parser.c -rw-r--r-- 4.9 KB
elevator.c -rw-r--r-- 18.5 KB
genhd.c -rw-r--r-- 52.8 KB
ioctl.c -rw-r--r-- 15.5 KB
ioprio.c -rw-r--r-- 5.1 KB
keyslot-manager.c -rw-r--r-- 10.9 KB
kyber-iosched.c -rw-r--r-- 27.8 KB
mq-deadline.c -rw-r--r-- 20.8 KB
opal_proto.h -rw-r--r-- 9.4 KB
scsi_ioctl.c -rw-r--r-- 22.6 KB
sed-opal.c -rw-r--r-- 62.5 KB
t10-pi.c -rw-r--r-- 7.8 KB

back to top