From nobody Thu Sep 24 16:08:55 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9CEEA529408; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790068250; cv=none; b=S2bTdV8mQvzz+Ukqx2p9QMdcF5ZgAj24w0x6KFm3o1I9gPc0ETfqV5l0NwKCuTvsh7L63B9d33MWtcKls10o0+XJqvwK3GfGvBuliXRSZ/e6qmkhyz1efM3gNBM9eMwSBlJJQQlWDTSByNAMeZMbpXUfPavvsVkW+ZM+G1bJRpM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790068250; c=relaxed/simple; bh=9jriPDQBC/KTJgeJYQ3RuQgz+27ygu37cdClGVWR5n0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZZ6uWykmO/cUEB51JmTrvzWpDUT/zN0Y5aaVlHSKaVLEDOJkIzahjiAo91uy6ga3GDb8kv2DAObwpBpwC9eqxQzApClNNxNTL/Q5Br+ulUzc94mX0jyf1iB6ZpUUSCJXdXLoMrKtQ7Tknj7ndS9ZPVw4OiP7Z2yw1PPzasm0rHA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q+uK+Ej+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q+uK+Ej+" Received: by smtp.kernel.org (Postfix) with ESMTPS id 4791EC2BCFA; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790068250; bh=9jriPDQBC/KTJgeJYQ3RuQgz+27ygu37cdClGVWR5n0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=Q+uK+Ej+wf13RsTBRUSuxKeftLkcZoftEYbRAn7ang30Z6eFcmcW/4eIU+fKivNSX IL6TVN9OVPa5AgSN/1GbHQG3TFiMCIrJnrObDTc45aD64Yc0FiMmkAm/Y70BYGcN4P 4y5rzqKSJ0kokr0+urCZ02olxUUDcr5nd3u3byHOq3qArHs2DMcoWy1C4pCG06cgsG SrUIZKKgw6yYUAuduXQfYSGbruZbezHhiO/JHSjTuj9IERUzocnwhCzJy0IobVxuo6 WPM7Bk1nUX7zzBzc5krEibqHu2mSr6LVkIB55+4Gfea3zg/lOUNOoLmtqNJOgmtE+6 wVwLAQSaXjEcA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23C10C982FA; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) From: Kim Wooseok via B4 Relay Date: Tue, 22 Sep 2026 18:10:49 +0900 Subject: [PATCH net-next 1/4] net: macb: Preserve timestamp settings on rejected requests Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260922-codex-macb-hwtstamp-submit-v1-1-9d1abaa53296@khu.ac.kr> References: <20260922-codex-macb-hwtstamp-submit-v1-0-9d1abaa53296@khu.ac.kr> In-Reply-To: <20260922-codex-macb-hwtstamp-submit-v1-0-9d1abaa53296@khu.ac.kr> To: netdev@vger.kernel.org, =?utf-8?q?Th=C3=A9o_Lebrun?= , Rafal Ozieblo Cc: Conor Dooley , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Richard Cochran , Nicolai Buchwitz , linux-kernel@vger.kernel.org, Kim Wooseok <5mghybrid@khu.ac.kr> X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790068248; l=4610; i=5mghybrid@khu.ac.kr; s=kernel-20260913; h=from:subject:message-id; bh=qRHnG5Rcj/5VZMQiLamET5Ab6WNIq7AKyvTVMs8H0xs=; b=CjCF8bM1TjeKCip+lzLWcqYxrNrO6PfxVq5s0Nu5yF/Nifi+Q2IGU7ZA2keh2RKnV5oKMdXJi j81mVGc7YiEBdwDvft8F/OrXgPpXpPUk3QGWl4pEvNTCuQJG7uTr9Fs X-Developer-Key: i=5mghybrid@khu.ac.kr; a=ed25519; pk=1az/6lC8Tmd6BcvyarPc8FWoSxsV/WRr5NLs1v+kjlE= X-Endpoint-Received: by B4 Relay for 5mghybrid@khu.ac.kr/kernel-20260913 with auth_id=1028 X-Original-From: Kim Wooseok <5mghybrid@khu.ac.kr> Reply-To: 5mghybrid@khu.ac.kr From: Kim Wooseok <5mghybrid@khu.ac.kr> gem_set_hwtst() can reject a request after changing the TX one-step setting, because it programs the TX mode before checking the RX filter. The call returns -ERANGE, but the hardware may no longer match the cached configuration. Validate both settings first and keep the adjusted RX filter local until validation succeeds. Then apply the register settings and update the configuration. A rejected request now leaves the hardware, the caller's settings and the cached configuration unchanged. Protect the NCR read-modify-write with bp->lock, keeping the descriptor writes and cache update in the same section. With the register writes now in the setter, remove gem_ptp_set_one_step_sync() and gem_ptp_set_ts_mode(). Fixes: ab91f0a9b5f4 ("net: macb: Add hardware PTP support") Assisted-by: GPT-6 Astra Signed-off-by: Kim Wooseok <5mghybrid@khu.ac.kr> Reviewed-by: Nicolai Buchwitz Reviewed-by: Th=C3=A9o Lebrun Tested-by: Nicolai Buchwitz # Raspberry Pi CM5 (macb=20 --- drivers/net/ethernet/cadence/macb_ptp.c | 61 ++++++++++++++---------------= ---- 1 file changed, 25 insertions(+), 36 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet= /cadence/macb_ptp.c index 14ae57fa0..4dbb6daa6 100644 --- a/drivers/net/ethernet/cadence/macb_ptp.c +++ b/drivers/net/ethernet/cadence/macb_ptp.c @@ -374,16 +374,6 @@ void gem_ptp_remove(struct net_device *netdev) GEM_PTP_TIMER_NAME); } =20 -static int gem_ptp_set_ts_mode(struct macb *bp, - enum macb_bd_control tx_bd_control, - enum macb_bd_control rx_bd_control) -{ - gem_writel(bp, TXBDCTRL, GEM_BF(TXTSMODE, tx_bd_control)); - gem_writel(bp, RXBDCTRL, GEM_BF(RXTSMODE, rx_bd_control)); - - return 0; -} - int gem_get_hwtst(struct net_device *netdev, struct kernel_hwtstamp_config *tstamp_config) { @@ -396,25 +386,17 @@ int gem_get_hwtst(struct net_device *netdev, return 0; } =20 -static void gem_ptp_set_one_step_sync(struct macb *bp, u8 enable) -{ - u32 reg_val; - - reg_val =3D macb_readl(bp, NCR); - - if (enable) - macb_writel(bp, NCR, reg_val | MACB_BIT(OSSMODE)); - else - macb_writel(bp, NCR, reg_val & ~MACB_BIT(OSSMODE)); -} - int gem_set_hwtst(struct net_device *netdev, struct kernel_hwtstamp_config *tstamp_config, struct netlink_ext_ack *extack) { + u32 ncr_mask =3D 0; enum macb_bd_control tx_bd_control =3D TSTAMP_DISABLED; enum macb_bd_control rx_bd_control =3D TSTAMP_DISABLED; + int rx_filter =3D tstamp_config->rx_filter; struct macb *bp =3D netdev_priv(netdev); + unsigned long flags; + u32 ncr_bits =3D 0; u32 regval; =20 if (!macb_dma_ptp(bp)) @@ -424,18 +406,17 @@ int gem_set_hwtst(struct net_device *netdev, case HWTSTAMP_TX_OFF: break; case HWTSTAMP_TX_ONESTEP_SYNC: - gem_ptp_set_one_step_sync(bp, 1); - tx_bd_control =3D TSTAMP_ALL_FRAMES; - break; + ncr_bits |=3D MACB_BIT(OSSMODE); + fallthrough; case HWTSTAMP_TX_ON: - gem_ptp_set_one_step_sync(bp, 0); + ncr_mask |=3D MACB_BIT(OSSMODE); tx_bd_control =3D TSTAMP_ALL_FRAMES; break; default: return -ERANGE; } =20 - switch (tstamp_config->rx_filter) { + switch (rx_filter) { case HWTSTAMP_FILTER_NONE: break; case HWTSTAMP_FILTER_PTP_V1_L4_SYNC: @@ -451,25 +432,33 @@ int gem_set_hwtst(struct net_device *netdev, case HWTSTAMP_FILTER_PTP_V2_DELAY_REQ: case HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ: case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: - rx_bd_control =3D TSTAMP_ALL_PTP_FRAMES; - tstamp_config->rx_filter =3D HWTSTAMP_FILTER_PTP_V2_EVENT; - regval =3D macb_readl(bp, NCR); - macb_writel(bp, NCR, (regval | MACB_BIT(SRTSM))); + rx_bd_control =3D TSTAMP_ALL_PTP_FRAMES; + rx_filter =3D HWTSTAMP_FILTER_PTP_V2_EVENT; + ncr_mask |=3D MACB_BIT(SRTSM); + ncr_bits |=3D MACB_BIT(SRTSM); break; case HWTSTAMP_FILTER_PTP_V1_L4_EVENT: case HWTSTAMP_FILTER_ALL: rx_bd_control =3D TSTAMP_ALL_FRAMES; - tstamp_config->rx_filter =3D HWTSTAMP_FILTER_ALL; + rx_filter =3D HWTSTAMP_FILTER_ALL; break; default: - tstamp_config->rx_filter =3D HWTSTAMP_FILTER_NONE; return -ERANGE; } =20 - bp->tstamp_config =3D *tstamp_config; + spin_lock_irqsave(&bp->lock, flags); + if (ncr_mask) { + regval =3D macb_readl(bp, NCR); + regval =3D (regval & ~ncr_mask) | ncr_bits; + macb_writel(bp, NCR, regval); + } =20 - if (gem_ptp_set_ts_mode(bp, tx_bd_control, rx_bd_control) !=3D 0) - return -ERANGE; + gem_writel(bp, TXBDCTRL, GEM_BF(TXTSMODE, tx_bd_control)); + gem_writel(bp, RXBDCTRL, GEM_BF(RXTSMODE, rx_bd_control)); + + tstamp_config->rx_filter =3D rx_filter; + bp->tstamp_config =3D *tstamp_config; + spin_unlock_irqrestore(&bp->lock, flags); =20 return 0; } --=20 2.53.0 From nobody Thu Sep 24 16:08:55 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9CF98529409; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790068250; cv=none; b=P8Yb369QclIsqXEWstSn7UKrOvQl0ISDGVc4PNPYaNn7V3ZsoeUErB3mAtESji6q1BF2U4VqeyNeXf1/ZvrU6nnL/xPfkeIZtfLcJhPBJEknuyAtaFegOkCbMrVwI0hYju0ENUSQCQZIXC7qQikPkWFUhWqwdfVmk76gQYwzWIc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790068250; c=relaxed/simple; bh=X1GP/FVanbarJEdKN96y1vp3UjUCwpi/jJmoo2IVnwg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=h2qoNBxE4P/I0D/gMlVofHqfZVzRgT1TfvsUJkcy1gx34Q7D/U/qDop93rzu/kesWaCp2IY8+W8varResZZUE+jc3weflXGjTud/eI8Hn6A8bsyYXVYKPT6JpfUSDdjNLKJG3zaZBXbQBqRjAaciEQXYKjkyhrKUE9taklDWUuM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=WsHRP1Ad; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="WsHRP1Ad" Received: by smtp.kernel.org (Postfix) with ESMTPS id 57EA2C2BCFB; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790068250; bh=X1GP/FVanbarJEdKN96y1vp3UjUCwpi/jJmoo2IVnwg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=WsHRP1Ad8WSOp3MURDN8rp0fI4KJLSR1rox8asoY58fHbwxFRvKEpi8/jRiJDggOo y85tTFOlK7StKLz7K1QL3G1JpCBjOyO+N7aDJ7CGcNYbNrfCDwCgjWEqkNn/7LrsEy VPHDT58dLuRgBU2w3kqxPFXZ6Qns00paGuNhKZMetMLeu+cOv/fOCA38qaADp5JvUo vR1w4nGJ7sqPnkGmvWi8lvxPb54I6QH9IaT8fTp+1hxBLQgU7jyl4JjGs4yH2Fp0P4 eoXlFPe9+v3nPWXnxQ6xvhNRqxLCig+NC5eaBvqVu5NczACd51r52BGrL7Uk8iFiou 7b11AU5LiTGYg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 399ACC982F1; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) From: Kim Wooseok via B4 Relay Date: Tue, 22 Sep 2026 18:10:50 +0900 Subject: [PATCH net-next 2/4] net: macb: Enable RX timestamping for specific PTPv1 filters Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260922-codex-macb-hwtstamp-submit-v1-2-9d1abaa53296@khu.ac.kr> References: <20260922-codex-macb-hwtstamp-submit-v1-0-9d1abaa53296@khu.ac.kr> In-Reply-To: <20260922-codex-macb-hwtstamp-submit-v1-0-9d1abaa53296@khu.ac.kr> To: netdev@vger.kernel.org, =?utf-8?q?Th=C3=A9o_Lebrun?= , Rafal Ozieblo Cc: Conor Dooley , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Richard Cochran , Nicolai Buchwitz , linux-kernel@vger.kernel.org, Kim Wooseok <5mghybrid@khu.ac.kr> X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790068248; l=1704; i=5mghybrid@khu.ac.kr; s=kernel-20260913; h=from:subject:message-id; bh=05d3+CCGF+y6/qkvPziNFKV5JO+MRqQk0vWJIck2XbY=; b=BjzpZj5RdiFWJ1zAgBFdT58RNlAD67fXhVaHfPmCgmKQ/6AW29OnPsOrZ3rL5mQuYdFo9DjIC 6qdQVdFmNXDCkr+3o9ol+ChqbbV8dZLveyw4HhjoxsSMSdLgAzW0uvj X-Developer-Key: i=5mghybrid@khu.ac.kr; a=ed25519; pk=1az/6lC8Tmd6BcvyarPc8FWoSxsV/WRr5NLs1v+kjlE= X-Endpoint-Received: by B4 Relay for 5mghybrid@khu.ac.kr/kernel-20260913 with auth_id=1028 X-Original-From: Kim Wooseok <5mghybrid@khu.ac.kr> Reply-To: 5mghybrid@khu.ac.kr From: Kim Wooseok <5mghybrid@khu.ac.kr> Selecting a PTPv1 Sync or Delay_Req filter in gem_set_hwtst() returns success, but leaves rx_bd_control at its initial value of TSTAMP_DISABLED. The requested filter therefore appears to have been applied, even though received packets have no hardware timestamps. The PTPv1 event case already enables timestamping for all frames, so use that path for Sync and Delay_Req as well. This enables timestamping for both requests and returns HWTSTAMP_FILTER_ALL to tell the caller which filter was actually applied. Fixes: ab91f0a9b5f4 ("net: macb: Add hardware PTP support") Assisted-by: GPT-6 Astra Signed-off-by: Kim Wooseok <5mghybrid@khu.ac.kr> Reviewed-by: Nicolai Buchwitz Reviewed-by: Th=C3=A9o Lebrun Tested-by: Nicolai Buchwitz # Raspberry Pi CM5 (macb=20 --- drivers/net/ethernet/cadence/macb_ptp.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet= /cadence/macb_ptp.c index 4dbb6daa6..b6d17fef4 100644 --- a/drivers/net/ethernet/cadence/macb_ptp.c +++ b/drivers/net/ethernet/cadence/macb_ptp.c @@ -419,10 +419,6 @@ int gem_set_hwtst(struct net_device *netdev, switch (rx_filter) { case HWTSTAMP_FILTER_NONE: break; - case HWTSTAMP_FILTER_PTP_V1_L4_SYNC: - break; - case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: - break; case HWTSTAMP_FILTER_PTP_V2_EVENT: case HWTSTAMP_FILTER_PTP_V2_L2_EVENT: case HWTSTAMP_FILTER_PTP_V2_L4_EVENT: @@ -437,6 +433,8 @@ int gem_set_hwtst(struct net_device *netdev, ncr_mask |=3D MACB_BIT(SRTSM); ncr_bits |=3D MACB_BIT(SRTSM); break; + case HWTSTAMP_FILTER_PTP_V1_L4_SYNC: + case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: case HWTSTAMP_FILTER_PTP_V1_L4_EVENT: case HWTSTAMP_FILTER_ALL: rx_bd_control =3D TSTAMP_ALL_FRAMES; --=20 2.53.0 From nobody Thu Sep 24 16:08:55 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9D16A52BE2F; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790068250; cv=none; b=oM3b2OjT47kGow8hOIIkjKVjmg8PWgStKS0+OQEPv/GE5zweW+NCq3PzYxeAu9j+VSbrgYVgxg0BR6X0fbawTWzfOaoE0ArRZf9adKi26nFJRD54NAh7McU2XguBb9vTCu+OLP6qPstMFSOWaVn1TpMsmilnTVWT/d4nrkCTsk0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790068250; c=relaxed/simple; bh=MrNgRcDdpC2dVGAjP4fDmh16RT6zaRkGSIolJHIDVDM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=PlLrO3hf82z+2fe+D8FqCmVCiuESnc6pSyfLvDxs9G1vcl3kJyiUaFacUP/Q8GsyzIvG8tliI4MJC2e+axZhHIrclmtnfgskoFsPqm3QsTxBJge0Yp594WVPd5gvZ7Ckf1/+F9aLQPqC9BV2xhYnjEZ7QoWLevlMn/MxRGU1I9E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=VzLiYovO; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="VzLiYovO" Received: by smtp.kernel.org (Postfix) with ESMTPS id 66723C2BCB8; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790068250; bh=MrNgRcDdpC2dVGAjP4fDmh16RT6zaRkGSIolJHIDVDM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=VzLiYovOipADl1rHpMTHpvQ7NNeZBMLMm+VJ9ddt+Z+iJLxVmHK3E6AEfWk1w+xXA rigfGQapIOKUW9X3WktEcwGPmV/PEtxoWroN3AT5I+Y/Tkoppm8YWmTXjcwa84GHCB QpvxqFdkMxRAwMpepjEoKcNUkiMco+54O4+8867arF9jXK2O9v5FrAiOWwJYz0Xa7O I0ONsetjEwrCVCoHDHkfXS0zJ27r/PsGF0DIrCpNudayNT8i1q6q+qxmvT+2irfrAy I/7TEbdyyRDNYA+pqAh577iY6lqdDetIFa092tL91gM2NhsD/fJVQhqA3xdAbeJgEK 9pysngSfhksBQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49FDCC98305; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) From: Kim Wooseok via B4 Relay Date: Tue, 22 Sep 2026 18:10:51 +0900 Subject: [PATCH net-next 3/4] net: macb: Disable one-step mode when TX timestamping is off Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260922-codex-macb-hwtstamp-submit-v1-3-9d1abaa53296@khu.ac.kr> References: <20260922-codex-macb-hwtstamp-submit-v1-0-9d1abaa53296@khu.ac.kr> In-Reply-To: <20260922-codex-macb-hwtstamp-submit-v1-0-9d1abaa53296@khu.ac.kr> To: netdev@vger.kernel.org, =?utf-8?q?Th=C3=A9o_Lebrun?= , Rafal Ozieblo Cc: Conor Dooley , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Richard Cochran , Nicolai Buchwitz , linux-kernel@vger.kernel.org, Kim Wooseok <5mghybrid@khu.ac.kr> X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790068248; l=2010; i=5mghybrid@khu.ac.kr; s=kernel-20260913; h=from:subject:message-id; bh=AaQyUqH6VFPMs1/0x+Fd3W9TD7i8rMBiz5TU2m1yxnc=; b=IQurmeYA7DFWjdPRj7UfRJHg8TwEQJeTOEO1xUU+9bThz0nVwSi7KxOqUJzNwWxhb9H4P5PQi Wc04hm8+RtRBQmK/THGGcmYXqVBPDTHVPh0eO4DTVX4ecXJoxz2Vtj7 X-Developer-Key: i=5mghybrid@khu.ac.kr; a=ed25519; pk=1az/6lC8Tmd6BcvyarPc8FWoSxsV/WRr5NLs1v+kjlE= X-Endpoint-Received: by B4 Relay for 5mghybrid@khu.ac.kr/kernel-20260913 with auth_id=1028 X-Original-From: Kim Wooseok <5mghybrid@khu.ac.kr> Reply-To: 5mghybrid@khu.ac.kr From: Kim Wooseok <5mghybrid@khu.ac.kr> Switching from HWTSTAMP_TX_ONESTEP_SYNC to HWTSTAMP_TX_OFF turns off descriptor timestamping, but leaves NCR.OSSMODE set, so one-step mode remains enabled. Update OSSMODE for every accepted TX mode and set it only for HWTSTAMP_TX_ONESTEP_SYNC. This also clears the previous one-step setting when switching to OFF. Since the update mask now always includes OSSMODE, drop the check for an empty mask. Fixes: ab91f0a9b5f4 ("net: macb: Add hardware PTP support") Assisted-by: GPT-6 Astra Signed-off-by: Kim Wooseok <5mghybrid@khu.ac.kr> Reviewed-by: Nicolai Buchwitz Tested-by: Nicolai Buchwitz # Raspberry Pi CM5 (macb=20 --- drivers/net/ethernet/cadence/macb_ptp.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet= /cadence/macb_ptp.c index b6d17fef4..6376b6631 100644 --- a/drivers/net/ethernet/cadence/macb_ptp.c +++ b/drivers/net/ethernet/cadence/macb_ptp.c @@ -390,7 +390,7 @@ int gem_set_hwtst(struct net_device *netdev, struct kernel_hwtstamp_config *tstamp_config, struct netlink_ext_ack *extack) { - u32 ncr_mask =3D 0; + u32 ncr_mask =3D MACB_BIT(OSSMODE); enum macb_bd_control tx_bd_control =3D TSTAMP_DISABLED; enum macb_bd_control rx_bd_control =3D TSTAMP_DISABLED; int rx_filter =3D tstamp_config->rx_filter; @@ -409,7 +409,6 @@ int gem_set_hwtst(struct net_device *netdev, ncr_bits |=3D MACB_BIT(OSSMODE); fallthrough; case HWTSTAMP_TX_ON: - ncr_mask |=3D MACB_BIT(OSSMODE); tx_bd_control =3D TSTAMP_ALL_FRAMES; break; default: @@ -445,11 +444,9 @@ int gem_set_hwtst(struct net_device *netdev, } =20 spin_lock_irqsave(&bp->lock, flags); - if (ncr_mask) { - regval =3D macb_readl(bp, NCR); - regval =3D (regval & ~ncr_mask) | ncr_bits; - macb_writel(bp, NCR, regval); - } + regval =3D macb_readl(bp, NCR); + regval =3D (regval & ~ncr_mask) | ncr_bits; + macb_writel(bp, NCR, regval); =20 gem_writel(bp, TXBDCTRL, GEM_BF(TXTSMODE, tx_bd_control)); gem_writel(bp, RXBDCTRL, GEM_BF(RXTSMODE, rx_bd_control)); --=20 2.53.0 From nobody Thu Sep 24 16:08:55 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9DDAB52BE3C; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790068250; cv=none; b=UhSFC6lEWtlIR43nwsW06OHsunraZWdTX9phGN2wgHFsw2MRlJZIWGXBX8XhQJAcBY9J95oO5WexfDCSdoC3zH7lr/ZfItT12yuFwx6QfbSM9I++PaKAhqB/ywNtXehgISv+/W+8iH5K8EjX8jZlBiMrKZ+q4nSQLM/6xAFuALE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1790068250; c=relaxed/simple; bh=wLd8oKJlv9vdf2+LjYIuX7r8V3Y/r1AbjHb2Ogw/+Lw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DEsKerVWNZcKtm6Srh8mLvCE2WQ82W9xhhx4J2/+KwgB1FygsyDoZgIRcosjOdiFFcyxsYO4SPS2nmcoR2jH77Xn+LGCcKpbbwgShgJ1P08rkSbj06QA13Wz4WRoxFsDSE53XcsD60JCWfBjIUQLJC4gpDlc5zOe609/mwLbTYY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=A5s9xA3+; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="A5s9xA3+" Received: by smtp.kernel.org (Postfix) with ESMTPS id 70C9EC2BCFF; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1790068250; bh=wLd8oKJlv9vdf2+LjYIuX7r8V3Y/r1AbjHb2Ogw/+Lw=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=A5s9xA3+HiK7qjRBRi+ptToZc0viqZ2Yb8img7ZY0h7cGIFhTzpaL7oHXtnKUkFI6 7fijYACLtqadg3zWdcnsjHOcbPTkSO+QUQAEqGZJk1uue+8Ck8YgsdIKP7zbt+njfV SDb3h5F7jBukojY2ADFAl7z4Rx4ehjeMG7k1eV3p5B/31ODoHNticJmbxyAwiGngTe /X7xA0qVa0tlBzyfmwheI+boO0lnAKvQs+mHm2pFsPEirrJ7OCFYjfa2PBz3P79Jzt wGat3sCce/g9VUVjQuKlPgl8FGHOVi1ZnrffJRFfeN2/xUkZJkxMbC1bj1BlZVhfR/ BOIfPL/oQiEDA== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58D7DC98302; Tue, 22 Sep 2026 09:10:50 +0000 (UTC) From: Kim Wooseok via B4 Relay Date: Tue, 22 Sep 2026 18:10:52 +0900 Subject: [PATCH net-next 4/4] net: macb: Clear SRTSM outside PTPv2 receive filters Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260922-codex-macb-hwtstamp-submit-v1-4-9d1abaa53296@khu.ac.kr> References: <20260922-codex-macb-hwtstamp-submit-v1-0-9d1abaa53296@khu.ac.kr> In-Reply-To: <20260922-codex-macb-hwtstamp-submit-v1-0-9d1abaa53296@khu.ac.kr> To: netdev@vger.kernel.org, =?utf-8?q?Th=C3=A9o_Lebrun?= , Rafal Ozieblo Cc: Conor Dooley , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Richard Cochran , Nicolai Buchwitz , linux-kernel@vger.kernel.org, Kim Wooseok <5mghybrid@khu.ac.kr> X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=ed25519-sha256; t=1790068248; l=1561; i=5mghybrid@khu.ac.kr; s=kernel-20260913; h=from:subject:message-id; bh=JVParaFvYlI5ctrTvZ9cMHt5duuXvX87rDYRzFSFD6M=; b=yDHkKLNMdhwfr3PA1TyM75Ir9TcFgbgFsB/o4BCDOc8MqWYVha0PilBgnXwLJns4E73h94EX3 +fjSqn/T49bCh9oXBIX5oEgOWeyZ0FngClcGGVDyamGc+VRMngrpppe X-Developer-Key: i=5mghybrid@khu.ac.kr; a=ed25519; pk=1az/6lC8Tmd6BcvyarPc8FWoSxsV/WRr5NLs1v+kjlE= X-Endpoint-Received: by B4 Relay for 5mghybrid@khu.ac.kr/kernel-20260913 with auth_id=1028 X-Original-From: Kim Wooseok <5mghybrid@khu.ac.kr> Reply-To: 5mghybrid@khu.ac.kr From: Kim Wooseok <5mghybrid@khu.ac.kr> A PTPv2 receive filter sets NCR.SRTSM, but switching to NONE, ALL or a PTPv1 filter leaves it set. As a result, selecting the same filter can produce a different register setting depending on whether PTPv2 was used before. Update SRTSM whenever the RX filter changes, setting it only for PTPv2. Switching away from PTPv2 then clears the old setting, so the bit follows the currently selected filter. Assisted-by: GPT-6 Astra Signed-off-by: Kim Wooseok <5mghybrid@khu.ac.kr> Reviewed-by: Nicolai Buchwitz Reviewed-by: Th=C3=A9o Lebrun Tested-by: Nicolai Buchwitz # Raspberry Pi CM5 (macb=20 --- drivers/net/ethernet/cadence/macb_ptp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb_ptp.c b/drivers/net/ethernet= /cadence/macb_ptp.c index 6376b6631..637d0da32 100644 --- a/drivers/net/ethernet/cadence/macb_ptp.c +++ b/drivers/net/ethernet/cadence/macb_ptp.c @@ -390,7 +390,7 @@ int gem_set_hwtst(struct net_device *netdev, struct kernel_hwtstamp_config *tstamp_config, struct netlink_ext_ack *extack) { - u32 ncr_mask =3D MACB_BIT(OSSMODE); + u32 ncr_mask =3D MACB_BIT(OSSMODE) | MACB_BIT(SRTSM); enum macb_bd_control tx_bd_control =3D TSTAMP_DISABLED; enum macb_bd_control rx_bd_control =3D TSTAMP_DISABLED; int rx_filter =3D tstamp_config->rx_filter; @@ -429,7 +429,6 @@ int gem_set_hwtst(struct net_device *netdev, case HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ: rx_bd_control =3D TSTAMP_ALL_PTP_FRAMES; rx_filter =3D HWTSTAMP_FILTER_PTP_V2_EVENT; - ncr_mask |=3D MACB_BIT(SRTSM); ncr_bits |=3D MACB_BIT(SRTSM); break; case HWTSTAMP_FILTER_PTP_V1_L4_SYNC: --=20 2.53.0