]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
net: phy: micrel: lan8814: Fix when enabling/disabling 1-step timestamping
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Tue, 2 Apr 2024 07:16:34 +0000 (09:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 10 Apr 2024 14:35:52 +0000 (16:35 +0200)
commit1e304328d9c3e94e7dc1899aabd1d5182c204ae9
treee2be3d64f3397e42ea44a0f8116e4f4eb14f0681
parent784a65669720d27040b02f8ad266ea66353e26e6
net: phy: micrel: lan8814: Fix when enabling/disabling 1-step timestamping

commit de99e1ea3a35f23ff83a31d6b08f43d27b2c6345 upstream.

There are 2 issues with the blamed commit.
1. When the phy is initialized, it would enable the disabled of UDPv4
   checksums. The UDPv6 checksum is already enabled by default. So when
   1-step is configured then it would clear these flags.
2. After the 1-step is configured, then if 2-step is configured then the
   1-step would be still configured because it is not clearing the flag.
   So the sync frames will still have origin timestamps set.

Fix this by reading first the value of the register and then
just change bit 12 as this one determines if the timestamp needs to
be inserted in the frame, without changing any other bits.

Fixes: ece19502834d ("net: phy: micrel: 1588 support for LAN8814 phy")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Reviewed-by: Divya Koppera <divya.koppera@microchip.com>
Link: https://lore.kernel.org/r/20240402071634.2483524-1-horatiu.vultur@microchip.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/phy/micrel.c