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)
committerJakub Kicinski <kuba@kernel.org>
Thu, 4 Apr 2024 02:23:17 +0000 (19:23 -0700)
commitde99e1ea3a35f23ff83a31d6b08f43d27b2c6345
tree74b1733479bb3d7d3ba9424171ddc1443c8ca71e
parentb3da86d432b7cd65b025a11f68613e333d2483db
net: phy: micrel: lan8814: Fix when enabling/disabling 1-step timestamping

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>
drivers/net/phy/micrel.c