From nobody Sat Sep 26 11:01:44 2026 Received: from fhigh-a8-smtp.messagingengine.com (fhigh-a8-smtp.messagingengine.com [103.168.172.159]) (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 A64923D3D09; Wed, 2 Sep 2026 08:47:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.159 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338842; cv=none; b=dEXqviUKlxEnkkFsZJnY4Mbm/LlmLwkBdQ7N+rimPJKHIoBNQfyo1LbQwxwlZQn+NU9XTYVnFoeLe3PjWdhTgASwq+pUpF0i5FE25T3DeBuZh+v0fVv5C6y0edvRJ/v8uWJhfxQCp3dV8UQBl4DN5FnZmaxb4gIKPHagQdXtSRc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338842; c=relaxed/simple; bh=hSAdOWtlVWhEw5isQol0W5FJllngNHJ4Hq5nmctpjro=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=G8CHWSWiHxr/BK/XZkCOfhPzAWHtIORsB9l8Z12+G4kouZuMzzVeVAvi2vqZ34W4fVe8CHaX2OXOShiCH9g0WyhtruD/44ASYK6yVpoODyXa94Cp4ArgoPsPqRqxQzOd4rcmuEpKFS6Xv+OOroto7zf4RuIn9R9WsZ8FCMOJRR0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=EET658Wb; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=L72O/Ky5; arc=none smtp.client-ip=103.168.172.159 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="EET658Wb"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="L72O/Ky5" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfhigh.phl.internal (Postfix) with ESMTP id CBD9014000E1; Wed, 2 Sep 2026 04:47:19 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Wed, 02 Sep 2026 04:47:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338839; x=1788425239; bh=T8k+avs8lR3xZvvDuzR3e4makBnhsvUEK4t2dzJBoIE=; b= EET658WbgBjBO8sU+JJfilvY9mI7V3RzQUxSvsjuGknc6tt3p39ZJsnqMsC4Cg+L qsgxhay4mMiD75TGXOYOhZn3GG7Qo2USnRw3J1xT12WkqpwuEPjgwF8uW5BY22hO F2JolEz/zC9JDhQme7yz0BBDNUIBbmPFXfg2lfMjpH4oHbLZAXvOqYWYJeu53bPc hJmsgYkKbHr+3hxpXkBTs6mM0svAt/Adth/89Vxj+Pc9rJJIcAaSg7uk+pdRjA4Q 5Ld2b6IvETFd9eSG7MyEcivP3STZ2HOUIePPCxbOEcXdIFDmkW91NjHWOtkEnd4a 6OX0fUR3kcnCFSPVc77u9w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338839; x= 1788425239; bh=T8k+avs8lR3xZvvDuzR3e4makBnhsvUEK4t2dzJBoIE=; b=L 72O/Ky5Imu4KHBYT3fBDE1C4hbfeW2sRoE/XC/JFRYCb+tOTAeGquWb8XTYv/ybo FnE04rCn4L1/mfQ48/IACCtzkHCTIjY9cNa8b+Zau5N2EtbpY+GVZvPBXbJFt5UV noFH73YdZrQZ1IzVNN1lS0vEbizssKJwlNfw+r+dFrHdwYtg92yTn2KdPIO4mbh0 bN4V8TGC9LdQ8Wn70xH5OzYE+MyEsFo0XYxkAlO6DH52zmvYSaMZD1c+ud7VQVu+ fOkrhjnNae6GAchet54ySxJf8bpnBbl+b1cQvkHMSlAOBnDdSKbGfrWgBUl3fVSX SqecHo+DC4Ts+bA+DvV8w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTErXYyCsZzfm92YrYcrxv1EBH+3gGzXCytSVYtChsjw1I8nxza/1mVbG06NescpYI ijrlhm4QUzIjE1Ta52G1XvMSZ4UmT02/e9XVdS0BTzqvoykuwFxy/egHwAHuIK5TsZWqyr 6u3rd2F6xKDzPh6I7UI5M2Oxx4x87Ag2ZZpCVRRu8f911TqF5Cy2xNLpzpgkOb8q9nX6ps mmiA5czZc27unSRsWpixJ3qrm7f3jL54dMR58K8niQduWDuh5XpAPG0F+2ZvDE1zMXgnik DNhL5F/TPATp8CRF168TAMl5+ifcCsryg5QvKT3wCd71cG9Vzl3KCg/O1spMcDB+VjotQU s4acaZ5ZhZBab/O6ldTB6L1hfQwSGHeiuP/N05wIu+sjyI1L1XpirQdRM2VShdeBYvD49z zNyuCfq3dn/zqf1nUQ3lJNYDyc+FwYWRCtNLGVRGkue/h/bhcMfVKSKRodDKnkc4Burn84 1xbJ+wqp6JIMRWY2YJnud8COtDLfn8F6w9eh4by/ZXOpRJoGk8jQC7EJx/UKbmFHmSA3ta lBf2jNXaqFrDUzgPeYNBejsEnt9svFr+V0NsepfCGdB6n8ySQLAq+DNVHDk1epBF+tx50a pOhNBwED60yiLSWls+LGGqidUUr2IHfLCNC0pnt87t3kZPsk2EDGUPrSwDCA X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:18 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 01/10] net: ethernet: ravb: Remove gPTP control from WoL setup and restore Date: Wed, 2 Sep 2026 10:46:54 +0200 Message-ID: <20260902084703.3228504-2-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 Since commit a6a85ba36fd0 ("net: ravb: Move PTP initialization in the driver's ndo_open API for ccc_gac platorms") the gPTP clock (if supported) is stopped and started by opening and closing the ndev. This makes the special case to stop and start it when resuming from WoL redundant. As the ndev will always be closed and re-opened when suspending and resuming the system. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- drivers/net/ethernet/renesas/ravb_main.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index ea1c7e536791..36173a09e2fd 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -3182,9 +3182,6 @@ static int ravb_wol_setup(struct net_device *ndev) /* Enable MagicPacket */ ravb_modify(ndev, ECMR, ECMR_MPDE, ECMR_MPDE); =20 - if (priv->info->ccc_gac) - ravb_ptp_stop(ndev); - return enable_irq_wake(priv->emac_irq); } =20 @@ -3204,9 +3201,6 @@ static int ravb_wol_restore(struct net_device *ndev) if (error) return error; =20 - if (priv->info->ccc_gac) - ravb_ptp_init(ndev, priv->pdev); - if (info->nc_queues) napi_enable(&priv->napi[RAVB_NC]); napi_enable(&priv->napi[RAVB_BE]); --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fhigh-a8-smtp.messagingengine.com (fhigh-a8-smtp.messagingengine.com [103.168.172.159]) (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 B3A9C3F23D0; Wed, 2 Sep 2026 08:47:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.159 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338844; cv=none; b=d2uuLbKfRXedB281M+YLrG8tX8KmTdsclUh7de4HZkBDdPb+NrvLShzVPwJCM/CP7A1gfEAI92klxtf2p/ul9zVRuUWz6v90wvCYZs2reYojW3bvjkK8hCEVi3dydxyKYPSvI29BSxvyvoA6IFvG4rZ8crz2p376fXBDnJFT7Fk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338844; c=relaxed/simple; bh=hmpis5gJE2ngNtWrXSfh/ef+Yj7WTtZXvIsOf15v1rU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=JjC1CtuqBCDLVttPymQTVYSwAvunvslnWeRDrJihFPrgXNmCC2vTUKw1AEWXq7HpAloaXPro2QR04DtrdWAF9S6XNmxW1rIfP/fhxuRjs6tpnxT4kn5e1LNPJlGD0L/Jiw2Awt8oRN+cHDky/UhaobD89ZyHtY2VZKk/NLOmmiE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=P3dx1XLs; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=UwV59StM; arc=none smtp.client-ip=103.168.172.159 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="P3dx1XLs"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="UwV59StM" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfhigh.phl.internal (Postfix) with ESMTP id E491814000F0; Wed, 2 Sep 2026 04:47:21 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Wed, 02 Sep 2026 04:47:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338841; x=1788425241; bh=L+9oK0TXXxk/EiHiWORG0xWm1SXmTAQfkqGE6zxyfjg=; b= P3dx1XLs8aTJUKby15owYZH3kG64wx+rwwltd7REOwO1IWEE4VaMy9qDoDVpSlb+ +nZ8MgB+6UTlb/3fpbmk+kKpU8IKbU+Rud52cKs/ygCzDIOsjjmX6kepkzhNQiXi Zp618KzhX2rnSAhNVNhP1UnunLe0PFLcTcdf7we2GKZCscvoiwQFl5nz79uT+DJt 4jY2HreDyRkUnGRitzgRndT7URizI1043/iWm0qpez00/PctdpJ/xp2uaWE7J0eR S95d6PwpZtRnEjHoi5kIK4MDxHMTfX9ElrOyGXYo/Y0p0reZOlVRJcyBpM1S2ZWH eo/yqj8LDWvAMs/GWNmuSQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338841; x= 1788425241; bh=L+9oK0TXXxk/EiHiWORG0xWm1SXmTAQfkqGE6zxyfjg=; b=U wV59StMftjV7g3++WYYJ4+hmbxWaEyidQ2/tuhYs+/0yop4Jdmwc/hGMzrSM0Cyd obzlLz6ZCvnHyVceF7EwZr5bDfGSVA4+wJvdkXH4MlJV+BNh2VI2i84bL0o77+xc fcVFmZl9JvdOGv5TM+MXwWXqoF7bCM3Bflcx6pa7o9r7Eu6NP9q3GAUx1JIrYt09 mvffv11hg+zHpcoV3niAIBOQMIB4V2OcxSQsskPVXHEW5JGMBTeWq9r+VYk9Pixz WOleBvPFNn4ukMITmuVH2joefDdKCWsr5yiYn5thXG2/QHZpp8Tn2PzKzls6O/gK 5hzdPEYen5nVR8ROXVzfw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTErXYyCsZzfm92YrYcrxv1EBH+3gGzXCytSVYtChsjw1I8nxza/1mVbG06NescpYI ijrlhm4QUzIjE1Ta52G1XvMSZ4UmT02/e9XVdS0BTzqvoykuwFxy/egHwAHuIK5TsZWqyr 6u3rd2F6xKDzPh6I7UI5M2Oxx4x87Ag2ZZpCVRRu8f911TqF5Cy2xNLpzpgkOb8q9nX6ps mmiA5czZc27unSRsWpixJ3qrm7f3jL54dMR58K8niQduWDuh5XpAPG0F+2ZvDE1zMXgnik DNhL5F/TPATp8CRF168TAMl5+ifcCsryg5QvKT3wCd71cG9Vzl3KCg/O1spMcDB+Vjotnb 55PfxDbJgdMwIG2wOAnBRZ0Ap6iwua5YtQrCrj824bYlSgwlo/FY/Zzx1Hp7JNY+9whzID qSFt1yJqtj3v5Bmpaya3TRdYCD1Un+69QacvBAUCbORa2v+sOmDKvFQTDK0Fcb11z1ToL1 jPfIDHYFdhkTNaf9hwBgPuyUIETIKPsfhOWfMKIw7LsDMGOsk2CXDSKkHQLMlJZgW8yWeY VnOBtotvtjhWk+nQhvugFPY0RQLlFGHRKDfDyNVWTLMjki+vUgaNOHiqKkAMufFwX39SZv NVO/WdNfczLKia0HmP9/L0fGf/drWoqMXJSWWeoLOxam9hr4d6sMVMFJ2Tuw X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:21 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 02/10] net: ethernet: ravb: Move programming of gPTP timer interval Date: Wed, 2 Sep 2026 10:46:55 +0200 Message-ID: <20260902084703.3228504-3-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 Commit f384ab481cab ("net: ravb: Split GTI computation and set operations") broke apart the operations of computing the timer interval and programming of it. However it kept the programming of the interval in the RAVB main logic. Having split the two apart this can be improved further by moving the programming to the gPTP initialization function, as the first action of the gPTP init function is to wait for the timer interval programming to be acknowledge by the hardware. As an added bonus the interaction with the gPTP registers for the programming can then also be done while holding the gPTP registers lock. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- drivers/net/ethernet/renesas/ravb_main.c | 16 ---------------- drivers/net/ethernet/renesas/ravb_ptp.c | 11 ++++++++++- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index 36173a09e2fd..a89f6fe7866f 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1846,20 +1846,6 @@ static int ravb_set_config_mode(struct net_device *n= dev) return error; } =20 -static void ravb_set_gti(struct net_device *ndev) -{ - struct ravb_private *priv =3D netdev_priv(ndev); - const struct ravb_hw_info *info =3D priv->info; - - if (!(info->gptp || info->ccc_gac)) - return; - - ravb_write(ndev, priv->gti_tiv, GTI); - - /* Request GTI loading */ - ravb_modify(ndev, GCCR, GCCR_LTI, GCCR_LTI); -} - static int ravb_compute_gti(struct net_device *ndev) { struct ravb_private *priv =3D netdev_priv(ndev); @@ -1974,8 +1960,6 @@ static int ravb_open(struct net_device *ndev) =20 ravb_emac_init(ndev); =20 - ravb_set_gti(ndev); - /* Initialise PTP Clock driver */ if (info->gptp || info->ccc_gac) ravb_ptp_init(ndev, priv->pdev); diff --git a/drivers/net/ethernet/renesas/ravb_ptp.c b/drivers/net/ethernet= /renesas/ravb_ptp.c index 43218bc15b15..157fb78209c7 100644 --- a/drivers/net/ethernet/renesas/ravb_ptp.c +++ b/drivers/net/ethernet/renesas/ravb_ptp.c @@ -321,11 +321,20 @@ void ravb_ptp_init(struct net_device *ndev, struct pl= atform_device *pdev) =20 priv->ptp.info =3D ravb_ptp_info; =20 - priv->ptp.default_addend =3D ravb_read(ndev, GTI); + priv->ptp.default_addend =3D priv->gti_tiv; priv->ptp.current_addend =3D priv->ptp.default_addend; =20 spin_lock_irqsave(&priv->lock, flags); + + /* Set gPTP Timer Increment Value. */ + ravb_write(ndev, priv->ptp.default_addend, GTI); + + /* Request GTI loading. */ + ravb_modify(ndev, GCCR, GCCR_LTI, GCCR_LTI); + + /* Wait for GIT loading to complete. */ ravb_wait(ndev, GCCR, GCCR_TCR, GCCR_TCR_NOREQ); + ravb_modify(ndev, GCCR, GCCR_TCSS, GCCR_TCSS_ADJGPTP); spin_unlock_irqrestore(&priv->lock, flags); =20 --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fhigh-a8-smtp.messagingengine.com (fhigh-a8-smtp.messagingengine.com [103.168.172.159]) (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 3C98D405C27; Wed, 2 Sep 2026 08:47:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.159 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338846; cv=none; b=JTHmCN0zolBzB7lvdMYWbNUz0+HIzakwpJ1fkGCR7LulaSfltzXmLDPsVAPmDRhC/srZVJ3MTR/K3sGbDd9R6jxXniFC1nOxMiNgKh9QBp5Zt861aLj5DEK1BXJ5zLfxyOInNEqfFwzA8V9o6jV7zEPy6kWuLpYJwulnaNSrcfU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338846; c=relaxed/simple; bh=nSR3HSnVpPTuu5U9i4z2bz+hbzVGtMi+/826ESHNgTw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=FE7/UoY3lXhcAQJswvb5845FOCrLsibchd18y/SY3TOPOVM8eHGDJkQh9tKmYxJmn9kgtpW+SSOd6w2EfwPPduY6HAJYDHc/ptBbrDTtH4A1F9qi8fAFWS/ZYZee/cL9ECzxlQRBbu8k8NaJWdIFX2POatILsO6GiM02x2iNpdU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=BYiNqnkW; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=JUxkuQPZ; arc=none smtp.client-ip=103.168.172.159 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="BYiNqnkW"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="JUxkuQPZ" Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfhigh.phl.internal (Postfix) with ESMTP id 564F21400141; Wed, 2 Sep 2026 04:47:24 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Wed, 02 Sep 2026 04:47:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338844; x=1788425244; bh=90yR28BloUHX3qSrTf3FabQIL1bRJn8PhLYzuvKpi4Q=; b= BYiNqnkWeoitEb2LG6L2Cy9MXRHxXH8qapMx/iIlUW9Ty6o/xDE5ueKzzyT1jSRL Rb4gvSRewwYvK4NA8QPTPg6Zlvor7lG6J6EHYdDPyEcJ8J1OIegw8dH6QYDBAZMC lTlvPJnw8qLyYfwIdXxbypQrnN0F3dOGn+SiS3WiYQyie9dL7V1XiDwxHU6azc6a Oln2yQt2w5SGufInz5Dt+e7ChVScjjcbl/lHhLlJopti2X0T+STVUMCX7wG+9dQe gq4Mf4IJ1oUtycKiBCXiTeqvJQHxQxAIiV/UV1L5R+5M6oYfmEoFwpMdkQVgMiKa a1Tg4UHYlm4Y+mkVJZ1eTQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338844; x= 1788425244; bh=90yR28BloUHX3qSrTf3FabQIL1bRJn8PhLYzuvKpi4Q=; b=J UxkuQPZhj2tiAJvWLkXZDbFHa+AzU+ifDTD4osbv8kQpZeyY9xQIs3Nw65t3FH83 Ae+uVd4XhxERlJjhOTtgY0zV03dTAqhvgywL2ttxzbj2EkTFBHcrvDZBIsYKOtCz A+qBvQiBZRTbnBanvdc9xtmwtzyfm/UwOXHTCaAa28+W1piY/QZ5dfKCi3LZ6BYv g0/4f6Edmk6aUt76M5okbQOlRcGsITSBzyoH8r/XtaZBsjo8CExDCYgRqpvzhoBd StPPuQIhUogmwQ962UjK2rT3bl1bYL6KLEhPgSzf9cG3Oy0RaES8r1HazbRSm0Y5 abz8IBXzAncDpcUAlDWLw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTErXYyCsZzfm92YrYcrxv1EBH+3gGzXCytSVYtChsjw1I8nxza/1mVbG06NescpYI ijrlhm4QUzIjE1Ta52G1XvMSZ4UmT02/e9XVdS0BTzqvoykuwFxy/egHwAHuIK5TsZWqyr 6u3rd2F6xKDzPh6I7UI5M2Oxx4x87Ag2ZZpCVRRu8f911TqF5Cy2xNLpzpgkOb8q9nX6ps mmiA5czZc27unSRsWpixJ3qrm7f3jL54dMR58K8niQduWDuh5XpAPG0F+2ZvDE1zMXgnik DNhL5F/TPATp8CRF168TAMl5+ifcCsryg5QvKT3wCd71cG9Vzl3KCg/O1spMcDB+VjotjB YyHxwJtu+KS+6YbRLUt0QLAPOmwF7QV2AOCGyzXN8n308VLto6LrBJOFDmbZGcxM38BUSP F1Q0jBZW0cht3sdlhK7JGpoX5s1hNFq4gqyUn2lKgPaXwf2qXawI0G+DK13eToe9SDVs5H 3K8UzRvNefdwMb6dS9y0cL8JFDY5Ye1c9Gl29+BoRp8QJ9u9mzAqpk1wnjfhKCpXqTeCtm 4b03WW2lNgHdiWS2ohdd81JCXl1c8nZf+p3KMZlqvtH+e9oQ/cZ++pcnzAWjyVjXL2siT9 Om61/Mqh6Flg+7fbbZYNY2bF+Cb//J1TS0kjlRIJdyILEvMSz8kmXEB+VNLA X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:23 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 03/10] net: ethernet: ravb: Simplify gPTP start and stop Date: Wed, 2 Sep 2026 10:46:56 +0200 Message-ID: <20260902084703.3228504-4-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 For devices that do not support the gPTP clock in config mode the somewhat oddly named flag gptp is set, compared to devices that do support the gPTP clock in config and operation mode where the flag ccc_gac is set instead. The two flags are mutually exclusive. For the gptp-flag devices (Gen2) the clock is tied to the AVB-DMAC, when it is stopped so is the gPTP clock. For ccc_gac-flag devices (Gen3) the gPTP clock is available whenever the ndev is open. Prepare to add Gen4 support which will add a third way by cleaning the Gen2 and Gen3 cases up a bit. Fold the gptp-flag start and stop calls into ravb_dmac_init() and ravb_stop_dma(), which start and stop the AVB-DMAC. There are no functional change as all call sites to the construct: if (info->gptp) ravb_ptp_init(ndev, priv->pdev); are always just after a call to into ravb_dmac_init() and all call sites to the construct: if (info->gptp) ravb_ptp_stop(ndev); are always directly followed by a call to ravb_stop_dma(). There are two special cases where the calling construct covers both the gptp-flag and info->ccc_gac devices, one for start and one for stop. The condition that it is preceded by a call to ravb_dmac_init(), or followed by a call to ravb_stop_dma() are however true for them too. Reworked the two special cases to drop the check of info->gptp. The end result is that the gPTP clock will be started or stopped for the gptp-flag devices in tandem with the AVB-DMAC, while the info->ccc_gac devices will be controlled, as before, when the ndev is opened or closed. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- * Changes since v1 - Improve spelling in commit message. --- drivers/net/ethernet/renesas/ravb_main.c | 37 ++++++++++-------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index a89f6fe7866f..2d0022a4f85c 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -707,7 +707,15 @@ static int ravb_dmac_init(struct net_device *ndev) return error; =20 /* Setting the control will start the AVB-DMAC process. */ - return ravb_set_opmode(ndev, CCC_OPC_OPERATION); + error =3D ravb_set_opmode(ndev, CCC_OPC_OPERATION); + if (error) + return error; + + /* Initialise PTP Clock driver */ + if (info->gptp) + ravb_ptp_init(ndev, priv->pdev); + + return 0; } =20 static void ravb_get_tx_tstamp(struct net_device *ndev) @@ -1115,6 +1123,10 @@ static int ravb_stop_dma(struct net_device *ndev) netdev_err(ndev, "failed to stop AXI BUS\n"); } =20 + /* Stop PTP Clock driver */ + if (info->gptp) + ravb_ptp_stop(ndev); + /* Stop AVB-DMAC process */ return ravb_set_opmode(ndev, CCC_OPC_CONFIG); } @@ -1719,9 +1731,7 @@ static int ravb_set_ringparam(struct net_device *ndev, =20 if (netif_running(ndev)) { netif_device_detach(ndev); - /* Stop PTP Clock driver */ - if (info->gptp) - ravb_ptp_stop(ndev); + /* Wait for DMA stopping */ error =3D ravb_stop_dma(ndev); if (error) { @@ -1752,10 +1762,6 @@ static int ravb_set_ringparam(struct net_device *nde= v, =20 ravb_emac_init(ndev); =20 - /* Initialise PTP Clock driver */ - if (info->gptp) - ravb_ptp_init(ndev, priv->pdev); - netif_device_attach(ndev); } =20 @@ -1961,7 +1967,7 @@ static int ravb_open(struct net_device *ndev) ravb_emac_init(ndev); =20 /* Initialise PTP Clock driver */ - if (info->gptp || info->ccc_gac) + if (info->ccc_gac) ravb_ptp_init(ndev, priv->pdev); =20 /* PHY control start */ @@ -1974,9 +1980,6 @@ static int ravb_open(struct net_device *ndev) return 0; =20 out_ptp_stop: - /* Stop PTP Clock driver */ - if (info->gptp || info->ccc_gac) - ravb_ptp_stop(ndev); ravb_stop_dma(ndev); out_set_reset: ravb_set_opmode(ndev, CCC_OPC_RESET); @@ -2020,10 +2023,6 @@ static void ravb_tx_timeout_work(struct work_struct = *work) =20 netif_tx_stop_all_queues(ndev); =20 - /* Stop PTP Clock driver */ - if (info->gptp) - ravb_ptp_stop(ndev); - /* Wait for DMA stopping */ if (ravb_stop_dma(ndev)) { /* If ravb_stop_dma() fails, the hardware is still operating @@ -2056,10 +2055,6 @@ static void ravb_tx_timeout_work(struct work_struct = *work) ravb_emac_init(ndev); =20 out: - /* Initialise PTP Clock driver */ - if (info->gptp) - ravb_ptp_init(ndev, priv->pdev); - netif_tx_start_all_queues(ndev); =20 out_unlock: @@ -2374,7 +2369,7 @@ static int ravb_close(struct net_device *ndev) } =20 /* Stop PTP Clock driver */ - if (info->gptp || info->ccc_gac) + if (info->ccc_gac) ravb_ptp_stop(ndev); =20 /* Set the config mode to stop the AVB-DMAC's processes */ --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fout-a8-smtp.messagingengine.com (fout-a8-smtp.messagingengine.com [103.168.172.151]) (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 451FE407563; Wed, 2 Sep 2026 08:47:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.151 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338848; cv=none; b=HNPOUxcqpri3xUsvZxmzLEWw7mRntzsSAqruwhmmxZ473E48vG1fKS3hokGygEwh1V63wqRACrBKNU542XdJ2i/u8eSpqJm3rklV4P72qcv0XXJd+G5GXeF0lJvn477qVHtTXG0EsnnlsMM78AWXv+ZrjkYhNC/gVqMgGwh9Wbg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338848; c=relaxed/simple; bh=FJztA2dI//Yj90jhc8DfU7N4OGjw/VMslofrOnrUU2Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QZwzNRRusWD4AMCLTPrIRxXzIIsuqCraAe4kld8T01XhVc/RkKQ0d2TY2fgHdTlG9QCF32TfoxXb9dwXSU2DmeZSPQJgQJpCIRMV/24+BGwO7jExBPSPCtp+meRuPbollOLI3zWsMDGxsMKJFmaAX7T5BhgbWmFeO1Crt5ljJy8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=aU0cUdZV; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=ocNdCL5P; arc=none smtp.client-ip=103.168.172.151 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="aU0cUdZV"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="ocNdCL5P" Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfout.phl.internal (Postfix) with ESMTP id 76114EC00C7; Wed, 2 Sep 2026 04:47:26 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Wed, 02 Sep 2026 04:47:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338846; x=1788425246; bh=eHUolKWoGc53KCB8pHoRUBfxoy8S27gEX2vWdwF1i7Q=; b= aU0cUdZV4hmRZMS3nCnsl7KnBDlCWheywKZmgsfOL2oe3TP8W64TmVLNE/ArtRVl mS6KrbjiL1ALrIVc4lHgKdm4jxp0QLYSo1KwlCX+YFWHcfUfYeEcHYS3Rm3T/AZX V+QClo+oxwFiJyEBdtBGjp3PzUUwv9CDQ+uU6aV5rgBo/DiwdduUGT1aG9BBsojK LFMbXPIr1+NFI3BCniO4rxeHp6EU1Pqt+oedbhbZTBZrpG0qJTiSW0cuS/5hrtc6 7yIDUGLsAhhMGcPYCiq+OZF1dTepq1wC6Wkx7owagzX/IFeOPSRyUTTRLDjqdogS OXh4isKWjTVcOVdu6qIBRw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338846; x= 1788425246; bh=eHUolKWoGc53KCB8pHoRUBfxoy8S27gEX2vWdwF1i7Q=; b=o cNdCL5PdAuwv3xehju1mcDwcw4GFm8N2buRCKV64lp0HZVr087dYw6er/8JZsk7T sbnL/BGk/sQgL9XDjBgAloHNOzQqhqieIFz9pSxFLjNn0Lee1h47LihwD8GD4JYK u4oqtfS2MIwv9eloFjbKq6pl27Yff/fHwa3SngjX+Kq77K89o602wQN/uwULBlRy zk4V0OkaLYzcLPYvX4a7Vbp6r6jioNZiNjXYvw3S3nvUTbmyf/cJ5nMka1uOjEYo 6ntOaO2dX4m0Ds+rS+tgfeWrnejctvvqGJyIAku4MspGeCQEPrRPXFGlz3zXRgpb JDmcW9yS5zaM76VKvysCg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTErXYyCsZzfm92YrYcrxv1EBH+3gGzXCytSVYtChsjw1I8nxza/1mVbG06NescpYI ijrlhm4QUzIjE1Ta52G1XvMSZ4UmT02/e9XVdS0BTzqvoykuwFxy/egHwAHuIK5TsZWqyr 6u3rd2F6xKDzPh6I7UI5M2Oxx4x87Ag2ZZpCVRRu8f911TqF5Cy2xNLpzpgkOb8q9nX6ps mmiA5czZc27unSRsWpixJ3qrm7f3jL54dMR58K8niQduWDuh5XpAPG0F+2ZvDE1zMXgnik DNhL5F/TPATp8CRF168TAMl5+ifcCsryg5QvKT3wCd71cG9Vzl3KCg/O1spMcDB+VjotKG GRlYkMdfqmte5NcmCXsIr2CONWQrVU+J8TcU3q5/sHrKICYlgzk5zHcN4zq3vYXhKeSggT 7beR10IMF3tSlbp4zbz7CYIkLU9o8NtPKsLd4c70x06RUaR7Q0PUic6Po6lu1chSn5C/lT qeiYfVRD22sl+e2MAaF93kUyJorxvFnE6F2IFt9kiSzybhv8vUpUobINXz7S3+PSzwpNgs KAXX+z56nG5Sm+NzLy4khN7C/LN9A7PneVCrk04R/H4awAuQ27VVbFaYZa+gnWFR4ZTMf2 G2KFe6edQ6CcRJGEjiN6TgAorxTDHwKq4Qa7Dbix6h06mc+2FzGvoZBLuR2Q X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:25 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 04/10] net: ethernet: ravb: Remove redundant argument to ravb_ptp_init() Date: Wed, 2 Sep 2026 10:46:57 +0200 Message-ID: <20260902084703.3228504-5-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 There is no need to explicitly pass the struct platform_device pointer to ravb_ptp_init(), it can retrieve it directly from the private data structure. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- drivers/net/ethernet/renesas/ravb.h | 2 +- drivers/net/ethernet/renesas/ravb_main.c | 4 ++-- drivers/net/ethernet/renesas/ravb_ptp.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/ren= esas/ravb.h index 3ee4c6108189..aa45f5466001 100644 --- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h @@ -1163,7 +1163,7 @@ void ravb_modify(struct net_device *ndev, enum ravb_r= eg reg, u32 clear, int ravb_wait(struct net_device *ndev, enum ravb_reg reg, u32 mask, u32 va= lue); =20 void ravb_ptp_interrupt(struct net_device *ndev); -void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev); +void ravb_ptp_init(struct net_device *ndev); void ravb_ptp_stop(struct net_device *ndev); =20 #endif /* #ifndef __RAVB_H__ */ diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index 2d0022a4f85c..e44d065f77cc 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -713,7 +713,7 @@ static int ravb_dmac_init(struct net_device *ndev) =20 /* Initialise PTP Clock driver */ if (info->gptp) - ravb_ptp_init(ndev, priv->pdev); + ravb_ptp_init(ndev); =20 return 0; } @@ -1968,7 +1968,7 @@ static int ravb_open(struct net_device *ndev) =20 /* Initialise PTP Clock driver */ if (info->ccc_gac) - ravb_ptp_init(ndev, priv->pdev); + ravb_ptp_init(ndev); =20 /* PHY control start */ error =3D ravb_phy_start(ndev); diff --git a/drivers/net/ethernet/renesas/ravb_ptp.c b/drivers/net/ethernet= /renesas/ravb_ptp.c index 157fb78209c7..f70b616ac847 100644 --- a/drivers/net/ethernet/renesas/ravb_ptp.c +++ b/drivers/net/ethernet/renesas/ravb_ptp.c @@ -313,7 +313,7 @@ void ravb_ptp_interrupt(struct net_device *ndev) ravb_write(ndev, ~(gis | GIS_RESERVED), GIS); } =20 -void ravb_ptp_init(struct net_device *ndev, struct platform_device *pdev) +void ravb_ptp_init(struct net_device *ndev) { struct ravb_private *priv =3D netdev_priv(ndev); struct ptp_clock *clock; @@ -338,7 +338,7 @@ void ravb_ptp_init(struct net_device *ndev, struct plat= form_device *pdev) ravb_modify(ndev, GCCR, GCCR_TCSS, GCCR_TCSS_ADJGPTP); spin_unlock_irqrestore(&priv->lock, flags); =20 - clock =3D ptp_clock_register(&priv->ptp.info, &pdev->dev); + clock =3D ptp_clock_register(&priv->ptp.info, &priv->pdev->dev); if (IS_ERR(clock)) { netdev_err(ndev, "failed to register PTP clock: %pe\n", clock); clock =3D NULL; --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fhigh-a8-smtp.messagingengine.com (fhigh-a8-smtp.messagingengine.com [103.168.172.159]) (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 C5667407CF1; Wed, 2 Sep 2026 08:47:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.159 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338851; cv=none; b=J38LOX87WstVZ7gZ3NkqgABQoB0+hpK61uW66Tk8hIIhKVjv3x9OlUHj4nR504EATShrC4pBcQKIU0n0slc3oKSUZaMpNLEycqd8S0Vc8MPqoqEgwyCA/WuvqjPRugUuHbTvwSIwt9XSWRUrrbUEglep6jKKh1UhX2uov6PFRCw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338851; c=relaxed/simple; bh=Rx/BwPZz1nFmiPxrs6ijsVuPipyTxnTQ+EDPRlg8Vc4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lLncYzgpUdJWV5Op6NnTDvf3ODW/THOT/UzFdK3vLQ9x1eXZmZ98/1v+UIZPTQAESFDJqAia9dVjxuqzIARayIycsCGqQcP6uMHjEqp5n9MC3uCPyOosLs3mq5L17n54y8qGbe2kgaZoSm+ey5ALfNosp4kDgodjKWdZYUjmEPY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=PWtGNvk4; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=pL7zDihN; arc=none smtp.client-ip=103.168.172.159 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="PWtGNvk4"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="pL7zDihN" Received: from phl-compute-03.internal (phl-compute-03.internal [10.202.2.43]) by mailfhigh.phl.internal (Postfix) with ESMTP id D81021400161; Wed, 2 Sep 2026 04:47:28 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-03.internal (MEProxy); Wed, 02 Sep 2026 04:47:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338848; x=1788425248; bh=MzdyokQk2ze66BotvVLj7vZyHGPrVdjHA7SrK79mHDU=; b= PWtGNvk4wPvj+/++721Od4KNngv6R/iJeEyb8wsnZK7j2qIRxwgKb6sMZkJ4uMxp thr+wy0LlY0KA2aSBXERo40e8OH6f/aEK4CVIjcM9Ig3xfL95mvVUN2iy0bbcY2A Ual5rv3j9etiyiy0mV16XaMbjVXvjo6y95q416D8GSBbKq4LQhBp8rzzIR7CqDCl OLH/6MHoaIcZ2JZEnRNM8eM7ZShgIf58yoFF/P0RwLPP2lP7jLKm76edQtCCjDT/ 31k3JZm/IX2Uu0HiNClTnpKsUaBh/UFvEk+V1d/ILAFls5ZV9eShiE3kUgSlD1Wo I5vSK5xSQyR0Ufq4Cq7z/w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338848; x= 1788425248; bh=MzdyokQk2ze66BotvVLj7vZyHGPrVdjHA7SrK79mHDU=; b=p L7zDihNeiawPnnZADRJkY6LyBYF8Uw0uAIEoGMOeN4QGqZFmWhYhBeAXWfzUrm8I gOGrgLeKzCctTAOSp8g+ho7JaEyd7jUf7kpoSPHvVKP2GmWjIfgANEPAFLNRAAvx TbK/LtngeX7F7Ct6V9FNzDOM0OgeMY0Q9JvMMngWuCxZPjtXHpJJO6dilaZ425dv golGHYaF7jFXuEjsthu4pjw67SZYISCvn4B9WJo8qpMUxsUfN5cjnyr0Gz3hFoY+ 3Y9KHw75CNa8LsGXbisBs/E8Q1fTSDt+WvFi0isE+SlaIe/diS9qMaZDzNdJQsdf pmGXhzO0V8AUT2+hXOysw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFrtePpp9RfJwyMD2rBHHISQnYzMQKn1VM8LgZ2tfmx0a+R4uJ2TcDvdH9vAbkf/+ s1pNN/RwTVplB5cL+09+uVDy/XxuKa+jgAtSszcsN276G+vme2LwF9ah0AoiaG+O1IvPqi /f58ts/pb8lIOC6mYBOJz5V9Z63EPBankveXGIhc5W25NXwT4cI631+Bl+23PQZ6B1lT7Z s306wcJTlPy5tIJxwHbceSKEkFkjGEMUb+N6ZKETwgLaWryIZTGs0mYiC7b/57XeP4qDVr YcLCLRqp5CtMk1Ev7V2r0uwZ9Ps4Zs7QUZyeG7TY3LTCd+tt6u6WpW3r/Tox9ZiFc6K0mZ t+f9Fh5wTDShzhXcoPyf2b4Z6a1owrDbbqJK2Mo5xfzI5HequYQcnkPuGhM4t/r1nm1cIm on+qJPGBLxa7z3oLhP+OgVU+bl8JwX0Yb/lvTawX4c3v7jnvFcYFuYzOtNE07IqmCBkRP3 mH1wA4sIqqsNj+rjEK/Fab5gUm5oXADtiXMUT3l5LCJnOQOuat5w8CoWsPfXrqWvYicSHY /f/fTlNSBGjaLtut5kgy3v/xmFNnPywjiNsbhH9cftVCb92ABcn2jHCb1B4M5qazMV49Qk sFEbT8PKTpdW3s9L9pq5e1Ait8MVW/mX1VLeV8bm3oFnIF/Z5Sf6jlaW+0Qg X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:27 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 05/10] net: ethernet: ravb: Propagate error from ptp_clock_register() Date: Wed, 2 Sep 2026 10:46:58 +0200 Message-ID: <20260902084703.3228504-6-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 If the PTP clock registration failed the error is silently ignored. Before reworking all callers of ravb_ptp_init() handle and propagate the error so it can be used. Link: https://sashiko.dev/#/patchset/20260610102432.3538432-2-niklas.soderl= und+renesas@ragnatech.se?part=3D1 Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- * Changes since v2 - Rework to remove the caching of phc_index added by LLM without access to hardware. * Changes since v1 - New in v2. --- drivers/net/ethernet/renesas/ravb.h | 3 +-- drivers/net/ethernet/renesas/ravb_main.c | 3 +-- drivers/net/ethernet/renesas/ravb_ptp.c | 25 ++++++++++-------------- 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/ren= esas/ravb.h index aa45f5466001..0c122a815840 100644 --- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h @@ -1028,7 +1028,6 @@ struct ravb_ptp_perout { struct ravb_ptp { struct ptp_clock *clock; struct ptp_clock_info info; - int phc_index; u32 default_addend; u32 current_addend; int extts[N_EXT_TS]; @@ -1163,7 +1162,7 @@ void ravb_modify(struct net_device *ndev, enum ravb_r= eg reg, u32 clear, int ravb_wait(struct net_device *ndev, enum ravb_reg reg, u32 mask, u32 va= lue); =20 void ravb_ptp_interrupt(struct net_device *ndev); -void ravb_ptp_init(struct net_device *ndev); +int ravb_ptp_init(struct net_device *ndev); void ravb_ptp_stop(struct net_device *ndev); =20 #endif /* #ifndef __RAVB_H__ */ diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index e44d065f77cc..7c7b3ac81e5d 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1785,7 +1785,7 @@ static int ravb_get_ts_info(struct net_device *ndev, (1 << HWTSTAMP_FILTER_NONE) | (1 << HWTSTAMP_FILTER_PTP_V2_L2_EVENT) | (1 << HWTSTAMP_FILTER_ALL); - info->phc_index =3D READ_ONCE(priv->ptp.phc_index); + info->phc_index =3D ptp_clock_index(priv->ptp.clock); } =20 return 0; @@ -2934,7 +2934,6 @@ static int ravb_probe(struct platform_device *pdev) priv->rstc =3D rstc; priv->ndev =3D ndev; priv->pdev =3D pdev; - priv->ptp.phc_index =3D -1; priv->num_tx_ring[RAVB_BE] =3D BE_TX_RING_SIZE; priv->num_rx_ring[RAVB_BE] =3D BE_RX_RING_SIZE; if (info->nc_queues) { diff --git a/drivers/net/ethernet/renesas/ravb_ptp.c b/drivers/net/ethernet= /renesas/ravb_ptp.c index f70b616ac847..19d039b9d24a 100644 --- a/drivers/net/ethernet/renesas/ravb_ptp.c +++ b/drivers/net/ethernet/renesas/ravb_ptp.c @@ -313,11 +313,11 @@ void ravb_ptp_interrupt(struct net_device *ndev) ravb_write(ndev, ~(gis | GIS_RESERVED), GIS); } =20 -void ravb_ptp_init(struct net_device *ndev) +int ravb_ptp_init(struct net_device *ndev) { struct ravb_private *priv =3D netdev_priv(ndev); - struct ptp_clock *clock; unsigned long flags; + int ret =3D 0; =20 priv->ptp.info =3D ravb_ptp_info; =20 @@ -338,15 +338,14 @@ void ravb_ptp_init(struct net_device *ndev) ravb_modify(ndev, GCCR, GCCR_TCSS, GCCR_TCSS_ADJGPTP); spin_unlock_irqrestore(&priv->lock, flags); =20 - clock =3D ptp_clock_register(&priv->ptp.info, &priv->pdev->dev); - if (IS_ERR(clock)) { - netdev_err(ndev, "failed to register PTP clock: %pe\n", clock); - clock =3D NULL; + priv->ptp.clock =3D ptp_clock_register(&priv->ptp.info, &priv->pdev->dev); + if (IS_ERR(priv->ptp.clock)) { + ret =3D PTR_ERR(priv->ptp.clock); + priv->ptp.clock =3D NULL; + ravb_ptp_stop(ndev); } =20 - WRITE_ONCE(priv->ptp.clock, clock); - if (clock) - WRITE_ONCE(priv->ptp.phc_index, ptp_clock_index(clock)); + return ret; } =20 static void ravb_ptp_disable(struct net_device *ndev) @@ -369,14 +368,10 @@ static void ravb_ptp_sync_irqs(struct net_device *nde= v) void ravb_ptp_stop(struct net_device *ndev) { struct ravb_private *priv =3D netdev_priv(ndev); - struct ptp_clock *clock; - - WRITE_ONCE(priv->ptp.phc_index, -1); - clock =3D xchg(&priv->ptp.clock, NULL); =20 ravb_ptp_disable(ndev); ravb_ptp_sync_irqs(ndev); =20 - if (clock) - ptp_clock_unregister(clock); + if (priv->ptp.clock) + ptp_clock_unregister(priv->ptp.clock); } --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fout-a8-smtp.messagingengine.com (fout-a8-smtp.messagingengine.com [103.168.172.151]) (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 A424B3F44D0; Wed, 2 Sep 2026 08:47:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.151 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338853; cv=none; b=QmaLyh7nBQMsn03YJ6QXoufjqmbQO60j2EHT4xDhFvLVW3eVnm5CjfsrdDaXwl+hh8FEFQTJDjJTvIaT0e/osQGvWttJMkk2C1TTLcWIssaG0m+4bFhQxiV4Yn+8BKGbU/INoV/Pht0n+OfEblokbPLzW+Zrw8tVdagMw8iFJVc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338853; c=relaxed/simple; bh=dhlxiGjrLUGHlJXpb2dlG2sEi65tZ2riSQDSjXSMeAU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sEvpzYPQ6+hJM+uNiC+79o5TmslFOdUSw9b9hzeRyiXcYKWJvkubyjQ8CxLO3cGbnyKUPaARALRJBFztwW7dypXsZSD13GD1q9b9PCoAKFSO3N4Vli2rBFH9PFoqHlZ6MXpsXnPQii7WVVipB+gw93M2hRIv1p8JpbK4bymgWRc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=PLuPo/ga; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=CPCC5/Jp; arc=none smtp.client-ip=103.168.172.151 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="PLuPo/ga"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="CPCC5/Jp" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.phl.internal (Postfix) with ESMTP id 0C5D5EC01AC; Wed, 2 Sep 2026 04:47:31 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Wed, 02 Sep 2026 04:47:31 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338851; x=1788425251; bh=FHzBs/nA07B3oI6xHsMBW1+r1gXxFg4r8/9iMWdsUSs=; b= PLuPo/ga3b3aSwi/A4B51YJVm7v+lLQVmBEkDybeF7fyVZnyfCiJpjT7EC1dSPrV aLGldONcVhDRzh8XJe403Qxlh9DnhiHhtepeOGHpv0BkWAW7uh/TsCK219pEsSAl DifCTb6AAzOZnkch7lfaxpqJG+TTrEZ4VK6WkAa8hekMSIxCDapz5qLsosbmTPV+ CTJ5oFCSpWCybJhxO5uTlp7mxTc7RxvVFtu0cWmhwLm5suq5xoURsVNAcjSa7r5e grvz07JVBy0r5gGt8JlX3ETq8EKet0YAz3N6jRJB+UDBfEkm4Dz3zWPBHToTPaqN Hp6WMgSw2JCPK1tSGFMbFA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338851; x= 1788425251; bh=FHzBs/nA07B3oI6xHsMBW1+r1gXxFg4r8/9iMWdsUSs=; b=C PCC5/JpD0hfhPyWcPEFNQWBrcyE/49nxcdV8rY/LRINTHNezm+QVpfvmqCbjYwQV R5y02dlh4PSwcV4oIoRCsQaWkqOt/BZ2bP9HGYPT2BsiJTTLyhcsL5+HKTkiOMZy +w4kQyI5MU7kf0+SheDgcFMfurFPoE+AqYl+P/bZ3VpCFTtfVkLpgziiidCDLvgO S5UP9IyYYEgcwb4HmUrQhxizVTZ47cg0fnIWrWC9bxi9N4yEnvAwCXMACrsco/Sp xzQW1w71+bYbu/zUEVElfRzprw8zWWTg5+otEWbsJo+tT8Km3zIuOi7AS8mlX0mw xRQMw/28/YV6SRz6DWXRg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFHjnUyY1U5BS7KEyYHW6mbLs/20m2EnmpCTZEDUSYJbgHxuLzNcdkHb69EViapIK BaRfAzM7q7Li/vZA1mzh5vVkh/IJJYNfi70rWRpeeskGmVZMY1YGMFy3rK3dT5ZIvKTU1u ZOepoGcTZ9JrI8vZNeHxr8c6r9W5IE9t+6GJsNqs9uIBRD/gNlDL9XaNaCpNxqqjn73QRN zG0EtIshYxy79GfwETpB6wmPHMH7GJZ2QsDNn3VXqpRcxD9NLQcLiy6RxKczE2KnZ1d1Ap yh1ZuQ+N/yULsJ67JSFZ5GoxaP5eRHHlSPkL+HXexWhOJY5HJA4xzkTRjbjbsxxwdnlPI6 VpKE1fGtxaTdQdD1RKG/63MBG0yud4rMtGKYB693J5pBlrYEkFTM9QoWjVsUMaVCHJSzBq 0yF8cg1sUEuM/Od3Rhn7ottYrAabq4MJyGcZ0vojNc8axR5P2UVLgnfe/BbyCb/C9w+LVE /MmAbkL9bk/S+bMfQ+cTleIBeA2hVYZWRpR85S4yQ7BmvmQmvR5OCPVgpYPuecTY7y67A4 Dk9V8zbPDv5mf+mkYHsq3cXLUGtRZVVaeZzoOoUI24VqcgwjkSG4HGTJwmpGx1peBGL3lh MEcSIDE6K1d6d5+xo1g1dE7820QDqy6qIw4f5QZYmOXH9AtU7QxsJXWJxxSw X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:30 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 06/10] net: ethernet: ravb: Replace gPTP flags with callbacks Date: Wed, 2 Sep 2026 10:46:59 +0200 Message-ID: <20260902084703.3228504-7-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 Prepare for adding Gen4 support which will add a third and new way to interact with the gPTP clock by replacing the flags for Gen2 behavior (info->gptp) and Gen3 behavior (info->ccc_gac) with callbacks. This will make adding Gen4 support cleaner as the code will not have "if else if else" sprinkled all over to handle each generations special cases. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- * Changes since v1 - Handle error from starting the PTP clock. --- drivers/net/ethernet/renesas/ravb.h | 24 ++++++- drivers/net/ethernet/renesas/ravb_main.c | 83 +++++++++++++++--------- 2 files changed, 76 insertions(+), 31 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/ren= esas/ravb.h index 0c122a815840..6603f90b19e1 100644 --- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h @@ -1034,6 +1034,27 @@ struct ravb_ptp { struct ravb_ptp_perout perout[N_PER_OUT]; }; =20 +/** + * struct ravb_gptp_info - Platform specific gPTP behavior + * + * Each generation of RAVB have slightly different behaviors when interact= ing + * with the gPTP clock. This struct provides the callbacks to be called at + * critical points in the RAVB driver. + * + * @set_config_mode: Enter config mode + * @dmac_start: Called when the DMAC starts + * @dmac_stop: Called when the DMAC stops + * @ndev_open: Called when the ndev is opened + * @ndev_close: Called when the ndev is closed + */ +struct ravb_gptp_info { + int (*set_config_mode)(struct net_device *ndev); + int (*dmac_start)(struct net_device *ndev); + void (*dmac_stop)(struct net_device *ndev); + int (*ndev_open)(struct net_device *ndev); + void (*ndev_close)(struct net_device *ndev); +}; + struct ravb_hw_info { int (*receive)(struct net_device *ndev, int budget, int q); void (*set_rate)(struct net_device *ndev); @@ -1052,6 +1073,7 @@ struct ravb_hw_info { u32 rx_buffer_size; u32 rx_desc_size; u32 dbat_entry_num; + const struct ravb_gptp_info *ptp; /* Callbacks to handle gPTP interaction= s. */ unsigned aligned_tx: 1; unsigned coalesce_irqs:1; /* Needs software IRQ coalescing */ =20 @@ -1062,8 +1084,6 @@ struct ravb_hw_info { unsigned multi_irqs:1; /* AVB-DMAC and E-MAC has multiple irqs */ unsigned irq_en_dis:1; /* Has separate irq enable and disable regs */ unsigned err_mgmt_irqs:1; /* Line1 (Err) and Line2 (Mgmt) irqs are separa= te */ - unsigned gptp:1; /* AVB-DMAC has gPTP support */ - unsigned ccc_gac:1; /* AVB-DMAC has gPTP support active in config mode */ unsigned gptp_ref_clk:1; /* gPTP has separate reference clock */ unsigned nc_queues:1; /* AVB-DMAC has RX and TX NC queues */ unsigned magic_pkt:1; /* E-MAC supports magic packet detection */ diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index 7c7b3ac81e5d..5d5b9c0e2f45 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -712,8 +712,8 @@ static int ravb_dmac_init(struct net_device *ndev) return error; =20 /* Initialise PTP Clock driver */ - if (info->gptp) - ravb_ptp_init(ndev); + if (info->ptp && info->ptp->dmac_start) + return info->ptp->dmac_start(ndev); =20 return 0; } @@ -1124,8 +1124,8 @@ static int ravb_stop_dma(struct net_device *ndev) } =20 /* Stop PTP Clock driver */ - if (info->gptp) - ravb_ptp_stop(ndev); + if (info->ptp && info->ptp->dmac_stop) + info->ptp->dmac_stop(ndev); =20 /* Stop AVB-DMAC process */ return ravb_set_opmode(ndev, CCC_OPC_CONFIG); @@ -1774,7 +1774,7 @@ static int ravb_get_ts_info(struct net_device *ndev, struct ravb_private *priv =3D netdev_priv(ndev); const struct ravb_hw_info *hw_info =3D priv->info; =20 - if (hw_info->gptp || hw_info->ccc_gac) { + if (hw_info->ptp) { info->so_timestamping =3D SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_HARDWARE | @@ -1835,21 +1835,11 @@ static int ravb_set_config_mode(struct net_device *= ndev) { struct ravb_private *priv =3D netdev_priv(ndev); const struct ravb_hw_info *info =3D priv->info; - int error; =20 - if (info->gptp) { - error =3D ravb_set_opmode(ndev, CCC_OPC_CONFIG); - if (error) - return error; - /* Set CSEL value */ - ravb_modify(ndev, CCC, CCC_CSEL, CCC_CSEL_HPB); - } else if (info->ccc_gac) { - error =3D ravb_set_opmode(ndev, CCC_OPC_CONFIG | CCC_GAC | CCC_CSEL_HPB); - } else { - error =3D ravb_set_opmode(ndev, CCC_OPC_CONFIG); - } + if (info->ptp && info->ptp->set_config_mode) + return info->ptp->set_config_mode(ndev); =20 - return error; + return ravb_set_opmode(ndev, CCC_OPC_CONFIG); } =20 static int ravb_compute_gti(struct net_device *ndev) @@ -1860,7 +1850,7 @@ static int ravb_compute_gti(struct net_device *ndev) unsigned long rate; u64 inc; =20 - if (!(info->gptp || info->ccc_gac)) + if (!info->ptp) return 0; =20 if (info->gptp_ref_clk) @@ -1967,8 +1957,11 @@ static int ravb_open(struct net_device *ndev) ravb_emac_init(ndev); =20 /* Initialise PTP Clock driver */ - if (info->ccc_gac) - ravb_ptp_init(ndev); + if (info->ptp && info->ptp->ndev_open) { + error =3D info->ptp->ndev_open(ndev); + if (error) + goto out_ptp_stop; + } =20 /* PHY control start */ error =3D ravb_phy_start(ndev); @@ -2187,7 +2180,7 @@ static netdev_tx_t ravb_start_xmit(struct sk_buff *sk= b, struct net_device *ndev) desc->dptr =3D cpu_to_le32(dma_addr); =20 /* TX timestamp required */ - if (info->gptp || info->ccc_gac) { + if (info->ptp) { if (q =3D=3D RAVB_NC) { ts_skb =3D kmalloc_obj(*ts_skb, GFP_ATOMIC); if (!ts_skb) { @@ -2369,8 +2362,8 @@ static int ravb_close(struct net_device *ndev) } =20 /* Stop PTP Clock driver */ - if (info->ccc_gac) - ravb_ptp_stop(ndev); + if (info->ptp && info->ptp->ndev_close) + info->ptp->ndev_close(ndev); =20 /* Set the config mode to stop the AVB-DMAC's processes */ if (ravb_stop_dma(ndev) < 0) @@ -2378,7 +2371,7 @@ static int ravb_close(struct net_device *ndev) "device will be stopped after h/w processes are done.\n"); =20 /* Clear the timestamp list */ - if (info->gptp || info->ccc_gac) { + if (info->ptp) { list_for_each_entry_safe(ts_skb, ts_skb2, &priv->ts_skb_list, list) { list_del(&ts_skb->list); kfree_skb(ts_skb->skb); @@ -2660,6 +2653,26 @@ static int ravb_mdio_release(struct ravb_private *pr= iv) return 0; } =20 +static int ravb_gen2_ptp_set_config_mode(struct net_device *ndev) +{ + int ret; + + ret =3D ravb_set_opmode(ndev, CCC_OPC_CONFIG); + if (ret) + return ret; + + /* gPTP Clock Select High-speed peripheral bus clock. */ + ravb_modify(ndev, CCC, CCC_CSEL, CCC_CSEL_HPB); + + return 0; +} + +static const struct ravb_gptp_info ravb_gen2_ptp_info =3D { + .set_config_mode =3D ravb_gen2_ptp_set_config_mode, + .dmac_start =3D ravb_ptp_init, + .dmac_stop =3D ravb_ptp_stop, +}; + static const struct ravb_hw_info ravb_gen2_hw_info =3D { .receive =3D ravb_rx_rcar, .set_rate =3D ravb_set_rate_rcar, @@ -2678,12 +2691,24 @@ static const struct ravb_hw_info ravb_gen2_hw_info = =3D { SKB_DATA_ALIGN(sizeof(struct skb_shared_info)), .rx_desc_size =3D sizeof(struct ravb_ex_rx_desc), .dbat_entry_num =3D 22, + .ptp =3D &ravb_gen2_ptp_info, .aligned_tx =3D 1, - .gptp =3D 1, .nc_queues =3D 1, .magic_pkt =3D 1, }; =20 +static int ravb_gen3_ptp_set_config_mode(struct net_device *ndev) +{ + /* Enable gPTP Clock and Select High-speed peripheral bus clock. */ + return ravb_set_opmode(ndev, CCC_OPC_CONFIG | CCC_GAC | CCC_CSEL_HPB); +} + +static const struct ravb_gptp_info ravb_gen3_ptp_info =3D { + .set_config_mode =3D ravb_gen3_ptp_set_config_mode, + .ndev_open =3D ravb_ptp_init, + .ndev_close =3D ravb_ptp_stop, +}; + static const struct ravb_hw_info ravb_gen3_hw_info =3D { .receive =3D ravb_rx_rcar, .set_rate =3D ravb_set_rate_rcar, @@ -2702,11 +2727,11 @@ static const struct ravb_hw_info ravb_gen3_hw_info = =3D { SKB_DATA_ALIGN(sizeof(struct skb_shared_info)), .rx_desc_size =3D sizeof(struct ravb_ex_rx_desc), .dbat_entry_num =3D 22, + .ptp =3D &ravb_gen3_ptp_info, .internal_delay =3D 1, .tx_counters =3D 1, .multi_irqs =3D 1, .irq_en_dis =3D 1, - .ccc_gac =3D 1, .nc_queues =3D 1, .magic_pkt =3D 1, }; @@ -2733,7 +2758,7 @@ static const struct ravb_hw_info ravb_gen4_hw_info = =3D { .tx_counters =3D 1, .multi_irqs =3D 1, .irq_en_dis =3D 1, - .ccc_gac =3D 1, + .ptp =3D &ravb_gen3_ptp_info, .nc_queues =3D 1, .magic_pkt =3D 1, }; @@ -2758,7 +2783,7 @@ static const struct ravb_hw_info ravb_rzv2m_hw_info = =3D { .dbat_entry_num =3D 22, .multi_irqs =3D 1, .err_mgmt_irqs =3D 1, - .gptp =3D 1, + .ptp =3D &ravb_gen2_ptp_info, .gptp_ref_clk =3D 1, .nc_queues =3D 1, .magic_pkt =3D 1, --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fout-a8-smtp.messagingengine.com (fout-a8-smtp.messagingengine.com [103.168.172.151]) (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 06BA240A945; Wed, 2 Sep 2026 08:47:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.151 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338855; cv=none; b=uUD4lj3NzknHEcWrcsynKN5a8u5ncwtxjjC6FcN/uvzQ+L+F2Kw5MPuX8UV8CTdR6APAj48uIV6vhAB9AOAsKjng2WdpfBqV8sycKkEpSamIlEtWiX7XZqICoPCQwNCGDX8HPz4a95yrzh5nKVzruYMG3xO9nFpIiJS3aN8B2U8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338855; c=relaxed/simple; bh=GU3MzRajGGC1icwm8wNjUdcCutwDNmJ4aQpsnPdTouA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=HrQBAPmGSdLsVux/pPZVL/w5v9ojhc6tm1lVb6+hFagNxJwisiDbrKPL5sUAKrAeU2b+B7cD+zAdzzPaNzLSNTdq4yubr8yVdtTLZT1DKLl2hthlvIiA53sVSOk2qqVWjd03pcFYMuvzuQv+GJ3nyvK3N4b57d4mc9ca5GbTr4E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=n5Bgr1Dx; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Faqes5oO; arc=none smtp.client-ip=103.168.172.151 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="n5Bgr1Dx"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Faqes5oO" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.phl.internal (Postfix) with ESMTP id 19C75EC001C; Wed, 2 Sep 2026 04:47:33 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-02.internal (MEProxy); Wed, 02 Sep 2026 04:47:33 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338853; x=1788425253; bh=ux3pMOjD8SqmtZSRdfG+nqZg/LtfJSjVpHkFAtUlqow=; b= n5Bgr1DxuPW3UnO1wtyWF0jpHkF6ELfaRvEubX8Iz3ZcGUWpo8xz641IQDwYpg5i LZ6Q8Osrb0WIwYFuDjARjbPjb10s/Hr4/WwPOJXRIqOLWm/9umfP1NZmSc08cvXt 10/rjgxCpoWZ9rdmynXIPwXARvuuNmB5mKQyVBoBx0ueNzDhJvzObcJwTvLWaRuC nZ5UDVU4xiXX947Z8O8ZV0Oe9uREESLmUKUkCERu5UsS4CnvGR+ThHfaJ9vmsGFv ldQll1dfkPhnJ05VptG85p65BDXV4qBmBz7HD+mQ8B2rXOf/Ba8+P+WSAUnXFymc 4KVauvswwsExcdWTboQBOA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338853; x= 1788425253; bh=ux3pMOjD8SqmtZSRdfG+nqZg/LtfJSjVpHkFAtUlqow=; b=F aqes5oOnSWa5muQlZKEZFSIlNh4rsuNJL5EoeIJGGbFN1BzVpoMivlmBnUoTE8P6 nncMlpnkBNAt4LQps0Q3f+SDhqQNKly6UhNDh55nCvV7aIsBrsfH2nPqw3VuAjFJ YKArR6qIn0g1XXtI4lvSCL6QR0Mii8hNCIwNSJkYFUd0+F9ns4Pcs+o/YnFHsvYf WQZ85eKKPXf7s2fJyivmvvaKLj/08o7FPp2dS5MxKK5Jk3JspMYEHUcah9AIbcpw e6oA/iTGfBSuezwq5BL2LrfUFPKXk3yx8HjaLOq/msS2GVHch+7fcdrh3Ca7gArL AZo/eQwc7KnWUr8mYv1XQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFaC34AKDyyx2JWvZAyzMZPrLonj6Y+cyOD3p17c1AG7DXyqbHg0dDF7Ebt7D07IF 3bfgT3UIfdbkPvPeVD+Yc8AR8IwBaeo1xPGZ7tVhUbz8REGwfObyy724YL1xvbxCkiSoVs Zr19kANjQaj/+w+iddWEU0aC1CzZHQM6yeAvRJc41D8KwaVzv1SFIAbTrsCNRf9If+K5t4 PSZ7pSeAuSkewwU7HekFeHRwu2Sp+xkfx4AxKGocqHuIvnYqnaWzKGxKkrOU98vd8D5Cmj UsyB3ygea/aoCYfSx4ZC9E3wSkGCjWeq63mqLQMpNszZyuhbp9Rf0oWEqJNGraLhyCxIpf yi+Be6gPmQ7AsCj44rIFR3YUs+ogrqgjcYAwURfwdN4gJBfzDcIWog4I+6oSfKgu+Hfo2e Gih3nJCX4RXa/5yzQs9B8pduD2i68qPB8wG9IQ4td3AHMnEqJxvlcFft/JLR/c6iSyIWrs hl+O1odrjYdTR/d4BOLYJf6k/M1O1c3QwAn0KBgXlzbZIQmSSi+YKsHicTskC6ZGM03mSs 3Yd1fN0lZE80Rnt6T5lhn8f8Mfjuc1ylN9Zj/yvp6Yw+CcGDJeejtsiFgfoXz/+fpnc8De 3bOF4+r4Q/y4UzAZmWz6h50Q84Bx4i98JV+ZOu1ZT0jVaDXg7bC3jfaH0WQw X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:32 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 07/10] net: ethernet: ravb: Add callback for gPTP probe Date: Wed, 2 Sep 2026 10:47:00 +0200 Message-ID: <20260902084703.3228504-8-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 Different generations of the RAVB IP have different needs when it probes the gPTP timer clock. Add a callback in the PTP information to allow each generation to probe its own way. With this the last gPTP specific flag (gptp_ref_clk) can be removed. However the primary motivation for the change is to prepare for Gen4 support, which compared to other generations with gPTP support does not have the clock as part of the IP itself. Gen4 will not need to compute GTI value as it have nowhere to write it, as the gPTP clock is external. For this reason move the computation of it into the newly gPTP probe specific callbacks for the RAVB IP's that support it. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- * Changes since v1 - Improve spelling in commit message. --- drivers/net/ethernet/renesas/ravb.h | 3 +- drivers/net/ethernet/renesas/ravb_main.c | 53 +++++++++++++++--------- 2 files changed, 35 insertions(+), 21 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/ren= esas/ravb.h index 6603f90b19e1..b788e8f5260d 100644 --- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h @@ -1041,6 +1041,7 @@ struct ravb_ptp { * with the gPTP clock. This struct provides the callbacks to be called at * critical points in the RAVB driver. * + * @probe: Probe the gPTP clock * @set_config_mode: Enter config mode * @dmac_start: Called when the DMAC starts * @dmac_stop: Called when the DMAC stops @@ -1048,6 +1049,7 @@ struct ravb_ptp { * @ndev_close: Called when the ndev is closed */ struct ravb_gptp_info { + int (*probe)(struct net_device *ndev); int (*set_config_mode)(struct net_device *ndev); int (*dmac_start)(struct net_device *ndev); void (*dmac_stop)(struct net_device *ndev); @@ -1084,7 +1086,6 @@ struct ravb_hw_info { unsigned multi_irqs:1; /* AVB-DMAC and E-MAC has multiple irqs */ unsigned irq_en_dis:1; /* Has separate irq enable and disable regs */ unsigned err_mgmt_irqs:1; /* Line1 (Err) and Line2 (Mgmt) irqs are separa= te */ - unsigned gptp_ref_clk:1; /* gPTP has separate reference clock */ unsigned nc_queues:1; /* AVB-DMAC has RX and TX NC queues */ unsigned magic_pkt:1; /* E-MAC supports magic packet detection */ unsigned half_duplex:1; /* E-MAC supports half duplex mode */ diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index 5d5b9c0e2f45..7e53eca5327f 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1842,21 +1842,14 @@ static int ravb_set_config_mode(struct net_device *= ndev) return ravb_set_opmode(ndev, CCC_OPC_CONFIG); } =20 -static int ravb_compute_gti(struct net_device *ndev) +static int ravb_compute_gti(struct net_device *ndev, struct clk *clk) { struct ravb_private *priv =3D netdev_priv(ndev); - const struct ravb_hw_info *info =3D priv->info; struct device *dev =3D ndev->dev.parent; unsigned long rate; u64 inc; =20 - if (!info->ptp) - return 0; - - if (info->gptp_ref_clk) - rate =3D clk_get_rate(priv->gptp_clk); - else - rate =3D clk_get_rate(priv->clk); + rate =3D clk_get_rate(clk); if (!rate) return -EINVAL; =20 @@ -2653,6 +2646,13 @@ static int ravb_mdio_release(struct ravb_private *pr= iv) return 0; } =20 +static int ravb_gen2_ptp_probe(struct net_device *ndev) +{ + struct ravb_private *priv =3D netdev_priv(ndev); + + return ravb_compute_gti(ndev, priv->clk); +} + static int ravb_gen2_ptp_set_config_mode(struct net_device *ndev) { int ret; @@ -2668,6 +2668,7 @@ static int ravb_gen2_ptp_set_config_mode(struct net_d= evice *ndev) } =20 static const struct ravb_gptp_info ravb_gen2_ptp_info =3D { + .probe =3D ravb_gen2_ptp_probe, .set_config_mode =3D ravb_gen2_ptp_set_config_mode, .dmac_start =3D ravb_ptp_init, .dmac_stop =3D ravb_ptp_stop, @@ -2704,6 +2705,7 @@ static int ravb_gen3_ptp_set_config_mode(struct net_d= evice *ndev) } =20 static const struct ravb_gptp_info ravb_gen3_ptp_info =3D { + .probe =3D ravb_gen2_ptp_probe, .set_config_mode =3D ravb_gen3_ptp_set_config_mode, .ndev_open =3D ravb_ptp_init, .ndev_close =3D ravb_ptp_stop, @@ -2763,6 +2765,24 @@ static const struct ravb_hw_info ravb_gen4_hw_info = =3D { .magic_pkt =3D 1, }; =20 +static int ravb_rzv2m_ptp_probe(struct net_device *ndev) +{ + struct ravb_private *priv =3D netdev_priv(ndev); + + priv->gptp_clk =3D devm_clk_get(&priv->pdev->dev, "gptp"); + if (IS_ERR(priv->gptp_clk)) + return PTR_ERR(priv->gptp_clk); + + return ravb_compute_gti(ndev, priv->gptp_clk); +} + +static const struct ravb_gptp_info ravb_rzv2m_ptp_info =3D { + .probe =3D ravb_rzv2m_ptp_probe, + .set_config_mode =3D ravb_gen2_ptp_set_config_mode, + .dmac_start =3D ravb_ptp_init, + .dmac_stop =3D ravb_ptp_stop, +}; + static const struct ravb_hw_info ravb_rzv2m_hw_info =3D { .receive =3D ravb_rx_rcar, .set_rate =3D ravb_set_rate_rcar, @@ -2783,8 +2803,7 @@ static const struct ravb_hw_info ravb_rzv2m_hw_info = =3D { .dbat_entry_num =3D 22, .multi_irqs =3D 1, .err_mgmt_irqs =3D 1, - .ptp =3D &ravb_gen2_ptp_info, - .gptp_ref_clk =3D 1, + .ptp =3D &ravb_rzv2m_ptp_info, .nc_queues =3D 1, .magic_pkt =3D 1, }; @@ -2976,12 +2995,10 @@ static int ravb_probe(struct platform_device *pdev) goto out_reset_assert; } =20 - if (info->gptp_ref_clk) { - priv->gptp_clk =3D devm_clk_get(&pdev->dev, "gptp"); - if (IS_ERR(priv->gptp_clk)) { - error =3D PTR_ERR(priv->gptp_clk); + if (info->ptp && info->ptp->probe) { + error =3D info->ptp->probe(ndev); + if (error) goto out_reset_assert; - } } =20 priv->refclk =3D devm_clk_get_optional(&pdev->dev, "refclk"); @@ -3034,10 +3051,6 @@ static int ravb_probe(struct platform_device *pdev) ndev->netdev_ops =3D &ravb_netdev_ops; ndev->ethtool_ops =3D &ravb_ethtool_ops; =20 - error =3D ravb_compute_gti(ndev); - if (error) - goto out_rpm_put; - ravb_parse_delay_mode(np, ndev); =20 /* Allocate descriptor base address table */ --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fout-a8-smtp.messagingengine.com (fout-a8-smtp.messagingengine.com [103.168.172.151]) (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 D84B540B106; Wed, 2 Sep 2026 08:47:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.151 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338857; cv=none; b=OJxy4FycTCZ9kp07oeRKayaxpwpEnBM5wTZ4ihvBpulZlSKMODmp+NG+6KMakPSHlWEdgyxM5Z2xCMEL/6Y4iRMZBIjsXKhr4Q8mLaRVWfpMlKlSA9eju1rLz7tsDSKqTgacKQb/vFtOCJonPYHAFUh+sleGS3omL8ht3vafk5c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338857; c=relaxed/simple; bh=BYOoefOY1Ss5bR+zyH5BntQLG5ESy2lLKk+1d1Jxxys=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nh5KudidQcC3DFxoBxqWXCIqjEs4BZ5ggI+MZJu71plppxKvYpah06uDmjaF4d6KnM/thOtigENzU7HwQd1XWifFpsC83CSHYwVa9WFrR3F2FI5d8Ohyl3/wL6LWqOZP7VIavujVg+qOJLvLsjqbyvMhSqqBserOHDWEwKEhFj4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=e0rwiIHN; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=g+7rOvfx; arc=none smtp.client-ip=103.168.172.151 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="e0rwiIHN"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="g+7rOvfx" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.phl.internal (Postfix) with ESMTP id 24377EC008D; Wed, 2 Sep 2026 04:47:35 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Wed, 02 Sep 2026 04:47:35 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338855; x=1788425255; bh=6ym77WKk5tY5em5okXPlTgSnoAhaAhd7lX3C89CRtJI=; b= e0rwiIHNM6WO/EVqT+x0MNqgl4Klw/o8gQkNnT3mHmp6HWflyX5LwBSCmMu9kF+0 8+YEuVsFZ4UdOg/zMd5DQLv7/wapOmJas6UhtPGUtRHyTeXZy6B8SY1uCsO6QT9X ECm9EAv9xJib7VZUuOjSWR2ebJbF9TP+m+dzq/3sPFC+wJOUgOvW6XYPRdS/vj4f DT+RUq3aauM0lBqCqVMGhCvsEztyeebwm3NEFZqfMijszmnAVI9+vDUAJsBuQF3+ Yk4z1pTwRpaP8F1GeZr/rnblYadLJqA5TKqSTzlAEu2qFYVryGM819YxnuDg3S8W BXtxY/rV1toUBcmnHUlahA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338855; x= 1788425255; bh=6ym77WKk5tY5em5okXPlTgSnoAhaAhd7lX3C89CRtJI=; b=g +7rOvfxSSmcR0PS14c0oj40JYAqLSnSe4tyaz/yqhAe/qXQY2IokRu/vCYde9UXT X8EZb3dSFDcLW/XCi5ru/1/h00Av8EltpSKIdQZnLXESoL4Pqq5AEYv56tWCf+VG AyNkzwgqbUVWQGEstpkhernHAVHPdQ5uYP60HpmnSmDieEOTaYD6TULfqVA9XNNe 6MJO9+6Iwl66j7MqDfo4BTFr3EL+ueXoDy3B4t6NiA5B3zBIwPPCA8kTuP0GXDRF R1GnZMNvE3n6ALt8n7PMvPDEPAniNIwT9d8iVwPaXdcCArFG0Hb4A3dGQGgBtYNU 8VWLxAxLj3ZEyTyUzU/rA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFaC34AKDyyx2JWvZAyzMZPrLonj6Y+cyOD3p17c1AG7DXyqbHg0dDF7Ebt7D07IF 3bfgT3UIfdbkPvPeVD+Yc8AR8IwBaeo1xPGZ7tVhUbz8REGwfObyy724YL1xvbxCkiSoVs Zr19kANjQaj/+w+iddWEU0aC1CzZHQM6yeAvRJc41D8KwaVzv1SFIAbTrsCNRf9If+K5t4 PSZ7pSeAuSkewwU7HekFeHRwu2Sp+xkfx4AxKGocqHuIvnYqnaWzKGxKkrOU98vd8D5Cmj UsyB3ygea/aoCYfSx4ZC9E3wSkGCjWeq63mqLQMpNszZyuhbp9Rf0oWEqJNGraLhyCxIpd XG6V3tzoDZEZH/yZ8WHKkc5g1wsGg53KiHfKarKmohkYgycGJ0chfSo9juKjQD7pKk8JG5 Zo3fi6axxLnleRT/aeTur/tBvJeQqnjGgE09W1uIvYhwpuROctJQ//gT65Y/TnWXDPAiPB JYm3k0BQUThNxn58IxdMDofEQIb/6+g8qXt6hKwWJ4a1PTAi6SVxUYI+fQLx6sgfDMAZyY rmTbf8+tB9c78DQON3X5Y7uDUKNq6PKrvw3cpKZVOn11d2rX24XrV0awbbMJd4tj17nyvs OPbo9F0Jq6fOikn+oCrkYMF+nWiQTBAxbuKRcdHmN2mPY+hUAmgvoY5aD8lQ X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:34 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 08/10] net: ethernet: ravb: Add callback for gPTP clock index Date: Wed, 2 Sep 2026 10:47:01 +0200 Message-ID: <20260902084703.3228504-9-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 Prepare for adding Gen4 support which have an optional external gPTP clock. Add a callback to get the clock index and use it to determine if the device shall report gPTP support. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- drivers/net/ethernet/renesas/ravb.h | 2 ++ drivers/net/ethernet/renesas/ravb_main.c | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/ren= esas/ravb.h index b788e8f5260d..27e2b31955ba 100644 --- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h @@ -1042,6 +1042,7 @@ struct ravb_ptp { * critical points in the RAVB driver. * * @probe: Probe the gPTP clock + * @clock_index: Get the PTP clock index, if any * @set_config_mode: Enter config mode * @dmac_start: Called when the DMAC starts * @dmac_stop: Called when the DMAC stops @@ -1050,6 +1051,7 @@ struct ravb_ptp { */ struct ravb_gptp_info { int (*probe)(struct net_device *ndev); + int (*clock_index)(struct net_device *ndev); int (*set_config_mode)(struct net_device *ndev); int (*dmac_start)(struct net_device *ndev); void (*dmac_stop)(struct net_device *ndev); diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index 7e53eca5327f..402370e1be63 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -1773,8 +1773,13 @@ static int ravb_get_ts_info(struct net_device *ndev, { struct ravb_private *priv =3D netdev_priv(ndev); const struct ravb_hw_info *hw_info =3D priv->info; + int index =3D -1; =20 - if (hw_info->ptp) { + if (hw_info->ptp && hw_info->ptp->clock_index) + index =3D hw_info->ptp->clock_index(ndev); + + /* Only advertise ptp clock if present. */ + if (index >=3D 0) { info->so_timestamping =3D SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_HARDWARE | @@ -1785,7 +1790,7 @@ static int ravb_get_ts_info(struct net_device *ndev, (1 << HWTSTAMP_FILTER_NONE) | (1 << HWTSTAMP_FILTER_PTP_V2_L2_EVENT) | (1 << HWTSTAMP_FILTER_ALL); - info->phc_index =3D ptp_clock_index(priv->ptp.clock); + info->phc_index =3D index; } =20 return 0; @@ -2653,6 +2658,13 @@ static int ravb_gen2_ptp_probe(struct net_device *nd= ev) return ravb_compute_gti(ndev, priv->clk); } =20 +static int ravb_gen2_ptp_clock_index(struct net_device *ndev) +{ + struct ravb_private *priv =3D netdev_priv(ndev); + + return ptp_clock_index(priv->ptp.clock); +} + static int ravb_gen2_ptp_set_config_mode(struct net_device *ndev) { int ret; @@ -2669,6 +2681,7 @@ static int ravb_gen2_ptp_set_config_mode(struct net_d= evice *ndev) =20 static const struct ravb_gptp_info ravb_gen2_ptp_info =3D { .probe =3D ravb_gen2_ptp_probe, + .clock_index =3D ravb_gen2_ptp_clock_index, .set_config_mode =3D ravb_gen2_ptp_set_config_mode, .dmac_start =3D ravb_ptp_init, .dmac_stop =3D ravb_ptp_stop, @@ -2706,6 +2719,7 @@ static int ravb_gen3_ptp_set_config_mode(struct net_d= evice *ndev) =20 static const struct ravb_gptp_info ravb_gen3_ptp_info =3D { .probe =3D ravb_gen2_ptp_probe, + .clock_index =3D ravb_gen2_ptp_clock_index, .set_config_mode =3D ravb_gen3_ptp_set_config_mode, .ndev_open =3D ravb_ptp_init, .ndev_close =3D ravb_ptp_stop, @@ -2778,6 +2792,7 @@ static int ravb_rzv2m_ptp_probe(struct net_device *nd= ev) =20 static const struct ravb_gptp_info ravb_rzv2m_ptp_info =3D { .probe =3D ravb_rzv2m_ptp_probe, + .clock_index =3D ravb_gen2_ptp_clock_index, .set_config_mode =3D ravb_gen2_ptp_set_config_mode, .dmac_start =3D ravb_ptp_init, .dmac_stop =3D ravb_ptp_stop, --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fout-a8-smtp.messagingengine.com (fout-a8-smtp.messagingengine.com [103.168.172.151]) (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 880DC3EEAE5; Wed, 2 Sep 2026 08:47:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.151 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338859; cv=none; b=P/yk+NPp+R/YmsgI+r564Iss6Yuqld1m1lJyOP/xrT+jC/nrdYxFVpT0ayS61OlLdDeauoym2hST0yOusjGVWSz4nxsIFSQ/48qAInsG2mLIkYEwU8HLVK0c0rdlNsFwLnKwv0jHJ5d7W9hbN+Ej2vtoxhJ1KFOS2+lg6XBYF/E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338859; c=relaxed/simple; bh=T2U0BhcSuHwr3Q04Oax+Q9cAEyg+8M3IrVjIN1pHo2w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=GfDi8GHjxdvyY9T6wTJbUbiIFcgmaqzgwAVgxgyORfzniWyISN49tzBiK831cj+UDBCKC8mqUNGUWT0a7eb2t3HHT6Fx4kkAkiLiuYAZedX9RWnsuRQ5cPiE2RgcQcP2698T09J7DQJ3qkSmJ4EMfbnoloFLPYXV8xk2+YX9O9E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=oybeRazx; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=A/e4GD/B; arc=none smtp.client-ip=103.168.172.151 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="oybeRazx"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="A/e4GD/B" Received: from phl-compute-08.internal (phl-compute-08.internal [10.202.2.48]) by mailfout.phl.internal (Postfix) with ESMTP id A5018EC008D; Wed, 2 Sep 2026 04:47:37 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-08.internal (MEProxy); Wed, 02 Sep 2026 04:47:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338857; x=1788425257; bh=J+UiB0JQF3J734EIk7xL8AfWMjHXBByPW0qfltoR+18=; b= oybeRazx1K7GB+Ys7rCm3b85fXiVvxyPZBdHvD5oHi/3Q4cK80praDdEs2s9CZyb avQTVdDiKYuf3PgSQRdpZBQZgqRmgtbXWQDZIewqbbdNrlNaQiZ2MpNWlwEv17Ca L2ZD/rJ9uREJUBpUXoGqTcrd/rAKwW63xnBsoAS9ntR7BxaZJxZjug6pPMuvTFhg OlKJvOkl/rq9Mdne4GCGieCvHhVdUmM15QvFQ6/GGB4Zj75T++Is6iZDuV4rK9tj Uc3AWPrGY4iZ2Yr9n3CijNVUtvxKhZeNGURJzIT4X4nsGOtOs3TPuvwJpQKI8PBP 6WqYzocgZiRFMcyyoVYkLw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338857; x= 1788425257; bh=J+UiB0JQF3J734EIk7xL8AfWMjHXBByPW0qfltoR+18=; b=A /e4GD/BORpfQB4yb5RokTm5vRP4BIID98/EG9aPs1lCFOwuHWyFwJHnoiU9hIknk G0AqW4vbkzuBzpNkRadZfKKO5/kQQ8hiatBUTuLmybxAQP8nJq7CtCseiOZvr6pZ XnMdscUq/YoxDFHhDgjJovT8St5qpvJbwebbVv9fLqxRqKJLuMZGdbUjLHaaNrd+ tSq3qaTn+dc3XTubEuclES6/qDb4xWUkDKkw0XUu0hN399W3w4MTYg9zyq3v6WZN 10uvnekjv9+D0CDHux9lCZIj+8DVrb+9/nbkz+8qKuHXngbxkQkgpv3hS1lS1ZEc gcl/InPoDnWeTzpdtE+8A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTGcgouwTvnsBVtGpNiGksGRaOMOsvVCsb68YI29oYxX/TNQSqk1y6eanJU4idMVG0 iw2/QhYuXLDa6Ldg8xgiv8ikwgZeaLYorn5+MTUE4D0dq+0Dq8PKlVpChrufjFz0GhGk09 0KocQa9NdgqV32JIYxQl4AuzWhSdoA0JLH2diCf6x0gXMI4toKSMd4aq2nRESdNjiDNvA3 /0hbZaPwHzYdGm679+XYnGvw9/L+Wg+iYHOtjGptoT0iaYQ+0NTO+pzpZIDJZpmgH36OWv WwNVXCRD1hnz2mMZeFdnXv1ntCVbMW+v+UT+r4+XcxU+EUnQFasWSyPn3bdlEbvBzSZJfv 4dcqUhcSRNaFG9tJhZzXh+NoiEyitrom1XxuUg9FxNNtuMSw27U4x5XOBwpI8M2GUg6qIK 2Zjmv0sAXYzk0wpgSTMmLX80vX2X3z+lPNYKRcQYtYopx75/+daDALCCaWnjd/GEb3jPvE kLqeBTEVJZ+bWnf4D9py6fpu6vkvR5iY+J36riJFzPDQpDGxaFsoIsu2TydLCGkXO+x3+z b//M7588cb72ERB+4s1WJbJKB7Wz0pAzTlwBkFUK0cT89TYcwMWExX5YoAoLcCErZJwSfb 4S4bujLlOfrmSa3JyGfPaFOzS51Zx4asp2HjoSPWntl8sI/CrUmxkMG/XHTA X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:36 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Krzysztof Kozlowski Subject: [PATCH net-next v3 09/10] dt-bindings: net: renesas,etheravb: Add optional gPTP phandle for Gen4 Date: Wed, 2 Sep 2026 10:47:02 +0200 Message-ID: <20260902084703.3228504-10-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 The RAVB module on Gen4 have no gPTP clock as part of the RAVB module itself, instead it relies on an external system wide gPTP clock. The gPTP clock is shared with RTSN on V4H and RSWITCH on S4. Add an optional phandle so that the RAVB driver can find and use the gPTP clock. Ideally this should have been a mandatory property but for backward compatible it is optional. The RAVB module is capable of functioning without it, but can in such cases not provided PTP functionality. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov Reviewed-by: Krzysztof Kozlowski --- * Changes since v1 - Use generic ptp-timer property instead of vendor specific one. - Improve spelling in commit message. --- .../devicetree/bindings/net/renesas,etheravb.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Documentation/devicetree/bindings/net/renesas,etheravb.yaml b/= Documentation/devicetree/bindings/net/renesas,etheravb.yaml index 1e00ef5b3acd..fad002492421 100644 --- a/Documentation/devicetree/bindings/net/renesas,etheravb.yaml +++ b/Documentation/devicetree/bindings/net/renesas,etheravb.yaml @@ -97,6 +97,8 @@ properties: =20 phy-handle: true =20 + ptp-timer: true + '#address-cells': description: Number of address cells for the MDIO bus. const: 1 @@ -305,6 +307,15 @@ allOf: items: - const: fck - const: refclk + - if: + not: + properties: + compatible: + contains: + const: renesas,etheravb-rcar-gen4 + then: + properties: + ptp-timer: false =20 additionalProperties: false =20 --=20 2.55.0 From nobody Sat Sep 26 11:01:44 2026 Received: from fhigh-a8-smtp.messagingengine.com (fhigh-a8-smtp.messagingengine.com [103.168.172.159]) (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 6CF7C40F74A; Wed, 2 Sep 2026 08:47:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.159 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338861; cv=none; b=L53nDZSRjszJvaBqsPuvDyjBZnUDoq1YVegBU8Ftl97fAPmvxQMCQT0fe7JLMq9z4W261eqLTiFa/dhYCgDbQ2bVo3C8Ux1TtqMVKFHpJBJU7VBTYRWLjsnDDA9Gqx1Y74oGXVAIPa7Jm7xxXqpTLdNCDgaEHYA5WbnAth3BHCQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788338861; c=relaxed/simple; bh=oAz5sQ2ZkBi9byyrbCBEmL3wAnVDTfgV+o+W+8fS4Ao=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QW4Wd/OmTFTw8jZed+0wm9gqQ5/+1o7RsFg80BgPADUKO1+iu2y+Ra91NO5HfRlMtVEqQv6PJ9z0lvTz2v03oq2KBjNFH2vbeVhIH2yWoe3+aeTK+UEzuEosz+PGvzvXyxOhbjug+VKaTnVdrsBmkgPlyj5sHyxMBv9P80FD5LA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se; spf=pass smtp.mailfrom=ragnatech.se; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b=cHwxgvAC; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=iDNs9pMV; arc=none smtp.client-ip=103.168.172.159 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ragnatech.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ragnatech.se header.i=@ragnatech.se header.b="cHwxgvAC"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="iDNs9pMV" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfhigh.phl.internal (Postfix) with ESMTP id 9E4C51400141; Wed, 2 Sep 2026 04:47:39 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Wed, 02 Sep 2026 04:47:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ragnatech.se; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1788338859; x=1788425259; bh=xninzBdh1IJS0lOnJ9VwYxscY4/BJ1MXk08bi4TFD/Y=; b= cHwxgvAC17g7tzMBo0hJbELpbcpua1HYMrsbJYgfp98S5niNiYXgaVwUDtzI+Il7 n8bjPC/tf+fOuGpVcudF3wuzyH072FEpTnXb9029TXS9DaSoln/fvI3kogoYTgSs G6rb8HBuT7Uqwt+1Y1EZ1t3bOwNpwxmt7i0riXlUPKU6opTaakXQIx4Ar3LOZJbi 9/PmdMS5lHrNM+/0y1LZ54Ug407Ck73NQxVovbia/f6jnWXxkaOlJkQTFLKzh7P8 FyZNWjgzI9pNkFrOSSyk9fxAsWm7cb3nt1hwQBLW2Z8eKgUWxHK11KLtk+wCW3q4 evruPJi6o+EdBxnwwXBSWQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm1; t=1788338859; x= 1788425259; bh=xninzBdh1IJS0lOnJ9VwYxscY4/BJ1MXk08bi4TFD/Y=; b=i DNs9pMVkjLISfg+fVA9Q8Yx8WXa3ZIIIGby9bK7i3WhoipUupDnnXC27/dOvLEUl v2zTEU7yZjlwPIH0Eyp7tD1IHhfq25IzlU+7x+DgqvHe88LOiehb9054FZB65kfD 28M58wWcJUgPlAIJTW6a9puzN0zXw1EXkxoaGObaKbNdqT9SpzUwzFlDbzVaz5oE QxcbAUuZkjSuD62kdKcwYWcEmYZH1wKQooRb9b9WPd3gxf5onXBGbkgtoHf0A7pN A6RDhSBbYtRvaFdNd48Q3QeYcoNFzPiQmXsMBMZ5jp1Fr+9BnZv+SCEgFn5ZINff 9GOiSXY59WfKvtXD9ez2w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFLAv/ibph6UC33feAOMpzczryfKzXjO7EDaAqbWAtNnwbJPCoHyFP6KyAhOx9F6x dNf/b+0Xn+KWry8AK5eahf1FDySDBqLxaUqoPd3rgZYpbsxa666JLLmPyRvWDKeI2ghAf/ unF9XDDDCD+dXmlFUY+PKo1SF2FZ/CGClyqiCAFeoxQ89ueTM5YIAs9qvMF+7r5U3tqqqm GoyvBZuncP1oKLZLKyVWYH39p02A3ZyE5AEAz7A4Oi2slaH558XyoLwxPAuEUWy2p+d5vb QMhR9+RrNEaH8aNp37fOiQNHXNfFuLyQGcQpuWCW512Wy1RZKLJJjGvur1RKpdfLH1XvUL 9pv3drN2hDJH5MbjfjTZpSKxCFT0R0p9voDKMMuJopMBGLdc+UV9c5H+5dNpLZmpZEHs8g E/M3mHjKH5cv9b/3X2FgMo52XVJ+zpjygI7CWu2+045RgTG3VK4LbCnN2Zg6BYavVlnkbP If7exXVTu/HxrtSIjAgaGXyiI9EGYELK25/Ag7d1ZZlv8wNx8zMOV7Av8ISJuh1qxy/pAV ujgbVIHt3OGogULbBhowmA2qUN6u+zPthjIt2VHOlmGCgjDxZbujPiC7DMCySRP5mw3PqQ T4AniBb90aaSgW8rd/ZsqP3PF4fDzM7xvx1vzmJo3ep5X0gy1HwvShd8bZ3w X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 2 Sep 2026 04:47:39 -0400 (EDT) From: =?UTF-8?q?Niklas=20S=C3=B6derlund?= To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Magnus Damm , Richard Cochran , Andrew Lunn , "DavidS. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Vadim Fedorenko , Sergey Shtylyov , linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org Cc: =?UTF-8?q?Niklas=20S=C3=B6derlund?= Subject: [PATCH net-next v3 10/10] net: ethernet: ravb: Add gPTP support for Gen4 Date: Wed, 2 Sep 2026 10:47:03 +0200 Message-ID: <20260902084703.3228504-11-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> References: <20260902084703.3228504-1-niklas.soderlund+renesas@ragnatech.se> 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 While driver advertises gPTP support on Gen4 platforms it is in fact completely broken. On R-Car Gen4 devices the RAVB module have no internal gPTP clock as generations before it. Instead it utilizes a system-wide gPTP clock. This change utilizes the refactoring of the RAVB gPTP code to add support for a system-wide clock and stops the Gen4 devices trying to use the non-existing internal gPTP clock. To remain backward compatible the ptp-timer property is optional.If not present, or not enabled, the RAVB driver will no longer advertise gPTP support to user-space. Signed-off-by: Niklas S=C3=B6derlund Reviewed-by: Sergey Shtylyov --- * Changes since v2 - Use full 100 character width instead of breaking at 80. - Remove superfluous return statement. * Changes since v1 - Use the standard generic ptp-timer property from ethernet-controller.yaml instead of a vendor specific one. - Improve spelling in commit message. --- drivers/net/ethernet/renesas/ravb.h | 3 ++ drivers/net/ethernet/renesas/ravb_main.c | 54 +++++++++++++++++++++++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/ren= esas/ravb.h index 27e2b31955ba..5d35b40d7c58 100644 --- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h @@ -249,6 +249,8 @@ enum APSR_BIT { APSR_RDM =3D 0x00002000, APSR_TDM =3D 0x00004000, APSR_MIISELECT =3D 0x01000000, /* R-Car V4M only */ + APSR_GPTPTIMER_SOURCE =3D BIT(25), /* Gen4 */ + APSR_GPTPCLOCK =3D BIT(29), /* Gen4 */ }; =20 /* RCR */ @@ -1132,6 +1134,7 @@ struct ravb_private { struct list_head ts_skb_list; u32 ts_skb_tag; struct ravb_ptp ptp; + struct device_node *of_gptp; /* Reference to external gPTP clock, if any.= */ spinlock_t lock; /* Register access lock */ u32 cur_rx[NUM_RX_QUEUE]; /* Consumer ring indices */ u32 dirty_rx[NUM_RX_QUEUE]; /* Producer ring indices */ diff --git a/drivers/net/ethernet/renesas/ravb_main.c b/drivers/net/etherne= t/renesas/ravb_main.c index 402370e1be63..66c9cd15a19e 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -2752,6 +2752,57 @@ static const struct ravb_hw_info ravb_gen3_hw_info = =3D { .magic_pkt =3D 1, }; =20 +static int ravb_gen4_ptp_probe(struct net_device *ndev) +{ + struct ravb_private *priv =3D netdev_priv(ndev); + + priv->of_gptp =3D of_parse_phandle(priv->pdev->dev.of_node, "ptp-timer", = 0); + if (!priv->of_gptp) + return 0; + + if (!of_device_is_available(priv->of_gptp)) { + of_node_put(priv->of_gptp); + priv->of_gptp =3D NULL; + } + + return 0; +} + +static int ravb_gen4_ptp_clock_index(struct net_device *ndev) +{ + struct ravb_private *priv =3D netdev_priv(ndev); + + /* If no clock, mimic ptp_clock_index_by_of_node() fail and return -1 */ + if (!priv->of_gptp) + return -1; + + return ptp_clock_index_by_of_node(priv->of_gptp); +} + +static int ravb_gen4_ptp_set_config_mode(struct net_device *ndev) +{ + struct ravb_private *priv =3D netdev_priv(ndev); + int ret; + + /* Enable gPTP Clock and Select High-speed peripheral bus clock. */ + ret =3D ravb_set_opmode(ndev, CCC_OPC_CONFIG | CCC_GAC | CCC_CSEL_HPB); + if (ret) + return ret; + + /* Set PTP source to GPTP module, only option on Gen4. */ + if (priv->of_gptp) + ravb_modify(ndev, APSR, APSR_GPTPTIMER_SOURCE | APSR_GPTPCLOCK, + APSR_GPTPTIMER_SOURCE | APSR_GPTPCLOCK); + + return 0; +} + +static const struct ravb_gptp_info ravb_gen4_ptp_info =3D { + .probe =3D ravb_gen4_ptp_probe, + .clock_index =3D ravb_gen4_ptp_clock_index, + .set_config_mode =3D ravb_gen4_ptp_set_config_mode, +}; + static const struct ravb_hw_info ravb_gen4_hw_info =3D { .receive =3D ravb_rx_rcar, .set_rate =3D ravb_set_rate_rcar, @@ -2774,7 +2825,7 @@ static const struct ravb_hw_info ravb_gen4_hw_info = =3D { .tx_counters =3D 1, .multi_irqs =3D 1, .irq_en_dis =3D 1, - .ptp =3D &ravb_gen3_ptp_info, + .ptp =3D &ravb_gen4_ptp_info, .nc_queues =3D 1, .magic_pkt =3D 1, }; @@ -3188,6 +3239,7 @@ static void ravb_remove(struct platform_device *pdev) pm_runtime_disable(&pdev->dev); pm_runtime_dont_use_autosuspend(dev); clk_unprepare(priv->refclk); + of_node_put(priv->of_gptp); reset_control_assert(priv->rstc); free_netdev(ndev); platform_set_drvdata(pdev, NULL); --=20 2.55.0