From nobody Tue Sep 29 06:08:55 2026 Received: from fhigh-a2-smtp.messagingengine.com (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) (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 116003644C1; Tue, 11 Aug 2026 16:04:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.153 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464300; cv=none; b=OcKcBucz72QgfRj3ab4uKA6TsfSehtU93Et7MkltX40dyX0cP4420nEtp1IBnb+gmBwGd/vla0NJ32PVHIQYUA5zyqaR2RxmVrE3SbeMR8sdAIYvsiFVIhPDtPtTL9jDZU8nBwNmLOJvWe19dbXjcVi5/iwNPBZgO8iORIQxJUU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464300; c=relaxed/simple; bh=IW++LElHxv+PhYFMZjcC3XEs5psi3ZAZjUfancmfwjQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=EANmt4FQnkoxXpWk3ME2oHiY1Dr08fLgUZuv1NXCZJ+PNgkq904/p9SPNrV9g6/ecJ/fARF8mbKrZZsgJMIULu/Cxef0oTQ+JNqd8f++Dy7Xmr98AzdP8MZoWCIvyzJ4h7O/x98zuUhfJqyteiO1SAYpxjfqNBJWEmgne2RUl8M= 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=O3gaHaHM; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=AHpWKurl; arc=none smtp.client-ip=103.168.172.153 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="O3gaHaHM"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="AHpWKurl" Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfhigh.phl.internal (Postfix) with ESMTP id 3462014000E6; Tue, 11 Aug 2026 12:04:58 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Tue, 11 Aug 2026 12:04:58 -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=fm2; t=1786464298; x=1786550698; bh=di98Sqj52BGEFbqxelGbLPcgLYeq5yayCRwJcDFP1Co=; b= O3gaHaHMad4lIJDhxvWnQsbs3KqHA3g7kRJytxD4z9twPu04s9WubKN7nlrANwQL mZxLlqGt3DAAbv3tB9NchL3BeFbmikl6+k9+5UAonE02biBkylpwb2ivwdJGXjMe ybNp/5JNC4tKtT6Y6Yy358RSZIk908cKbjwdYH+XtGqcZ9AdH71m/35ZNOWcoALF bOGwkL8IKJ7jWQsuTVANXHS1eD/64uNmJKo1oPYgIjos4L/xhRBPPYQsX8gZVjLQ VNV7JvRQw3S4ONx7veuJe4KqQyb0spbQ1lJ7moirwilVtT1syFE1mRi/+lKl8Lu+ y8M9ov96azcZXnKnJYvM/A== 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=fm3; t=1786464298; x= 1786550698; bh=di98Sqj52BGEFbqxelGbLPcgLYeq5yayCRwJcDFP1Co=; b=A HpWKurlvxR+iYRZlisMe6CGrnKbNLRNlIjpo6RWeh4yUDvtiGQaiQu3412Io/xiw 0wMj9cff+NHIf43HQP2hBXFzvIa2AnfqTq4H0OeG8NySXaKb/diha30S0k5JNRz0 tYMtyYFvzvR5DhFNegGxDLk9nvB4n9m/RX2SxRBiDLnkjfIGgMlJ9j0cAJavqsNJ LFiQRPL2UOW02QY8wZoWObll2dlkDTUaWFXidU6U7KHdd5/uZcV7IAvH1nhARPxC HhlTujojStFXHIS8qnnqvYzgdWl+4/7yfacKvoMUL/6vJOLxW7IiAy9l6UrakdgU 6Z+SU3B7uip5rSpjtu5VQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEHSKU/mHe+6lT/LKJ8bgeRk/V053AqRrN1BR5zk1Shu2DOwdZpAbiAy9Gu5V3kwl d1h5rYgq3ypc8+YqRDw6+W1dLYGl7xAf/JnE2fouoUr+uQ91a2BYYQH9MIj19hgAFS85bG HKLTscK1JcTpPAqcQJWvsSlbtUp0RdE6RTfSS+w1mzdxNe3xP0yAJfQK9V9lP6dWT+dM4P mUlTM4aI20t5AwNoSG0JmkMiw/Mr+hK7RWJaGzCv7Qao7/mJJZshfXyd+BX97L+xujDMkI ysyzJYX2sNeQaedRdU3MhBFGetibaJ+uJ7gBG5oaNX//F32Vx9hqF9Rh8nKQaqzD+8IAWI e5tnBKhoZJN54v8DJoqaxSguRvDBwzT61EhIqMS1K7XsWyLNr3qo9KuS1DwiHEQ5C5GZAz 5jNbd7p3FdE5kBri/h3FmqowzmGC+1Lv7DEXmmw/rcG57OHPuj3Ml3ci2Wii2IakyDZuIP 0Jksh083LYWVa8DSbz2TvV2YVjD1zC9Zqkfxi7hQZhH3iygluQ46s/r/6Lv6Mn7bU6is7o cs8t7bo5M7vdgQARBMxCkeyxE+Ihol0EZgC5aDeOwrWtjhgCj4lnmJVw2XPGP2VPcfyCQH tl7lAZFdRXqgjgZk5+mkyGp3ZasJaRBVdTlPeETyLPbrjWMmaG0A/xhlWLaQ X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:04:57 -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 v2 01/10] net: ethernet: ravb: Remove gPTP control from WoL setup and restore Date: Tue, 11 Aug 2026 18:01:51 +0200 Message-ID: <20260811160200.2049987-2-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 5f88733094d0..77c0645a1c4d 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -3179,9 +3179,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 @@ -3201,9 +3198,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 Tue Sep 29 06:08:55 2026 Received: from fhigh-a2-smtp.messagingengine.com (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) (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 729913CD8D3; Tue, 11 Aug 2026 16:05:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.153 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464303; cv=none; b=hTEQEfVlY7855Ac5gE9LMua5ffGvRYwIQBWLg4t5RJgWArZACYH7weu+yCWtgYpKyP7QnEiyxbOxQMhbu2CpHaI6vNSt5r4ZhDqoRZVttDBWRmqzisg0FVA4L+Tc2ax156wb2CwuE6E/Asyz47xVtwhMbob3xOmuAcQoHX4Icgw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464303; c=relaxed/simple; bh=KcSMiQ7xtuZZ4OFCS9XaPDFEiIAcblfYJHAv5IdaQSQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ejTiOGnJZwnjXNyRhLyINFchMSgBjI8pSlASWOkNkpRs2w4Fyi4P9wuTaS0nWxFKjq9nEH7gFURbjU9I5T0z1gUd8pB4IFdsKzGJtdVZFStGrXoDh6mRnFGev28K3rik5gApQsPY3yIW5pTPiZ+QDoldR50reyguGSFaTNC+TAM= 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=WDT0SKXN; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=DFPbEfgE; arc=none smtp.client-ip=103.168.172.153 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="WDT0SKXN"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="DFPbEfgE" Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfhigh.phl.internal (Postfix) with ESMTP id 944AE140005F; Tue, 11 Aug 2026 12:05:00 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-01.internal (MEProxy); Tue, 11 Aug 2026 12:05:00 -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=fm2; t=1786464300; x=1786550700; bh=1zUSdIDIiHSXKnhOvLThIACgva9NCcclSlSjHChc2Qc=; b= WDT0SKXNqAq8OYjNt/iCkAnDfpmt3yIxMUIoOW4LnVOIlEGC2NfccUvbC+mGmCwp WKZ+6piMHy7lxh37IFaoxukw3dUvAuUQBaavZsmgsTWAVwE4SrairIDLuuGo7oaQ BMSW+ysyUey9iuvVnu1wqxrhdDjAFmwVl2ZSwaCN8qDG1E42amqFcH5XkQNioxJC HUM6BNj9vv23ZavtfjDmIgCFlp/g4Sfvw2mX6ulNHZlOeF71V2WsdzMGOwyZGb7s TAFQ04B+HKCUUfUEqg+ZNrPdVMvpbgbqHzgtJZm+Rb6hdGYKNYoUoU6Mf7HI+ouM +0542XYiqNT3kimhJUrZMA== 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=fm3; t=1786464300; x= 1786550700; bh=1zUSdIDIiHSXKnhOvLThIACgva9NCcclSlSjHChc2Qc=; b=D FPbEfgEFgMl3J5s/VZtJ5hdQzEudklhPyKSaGMW+eTuoeIpzLL7BTk2R1bf4TsYc iqPu5MoibBEn99zCiMNJglqjJn8RDPjJ91QY2LfhOF+5iqcojLBX3afS06TnyOmt InBZ76RJVCwM62eDp6op59qe1Y8X829UKjAc4pTzwOOMlLPdHIosa3OyexUq/QYN miIRvQlyeBD2NEIRQcivpJM5rz1dxSRKMw3RQKabjGhBo9FNvbGvyl/Wasf7wbr4 zDHPnS5SG2P9MOcU2aODn1i12U4++nNY/0qBPLAi8GO+x/NGqQ2ycmNmv8brsl+E ABcJvxg+qBKpUtNyM8Kqg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEHSKU/mHe+6lT/LKJ8bgeRk/V053AqRrN1BR5zk1Shu2DOwdZpAbiAy9Gu5V3kwl d1h5rYgq3ypc8+YqRDw6+W1dLYGl7xAf/JnE2fouoUr+uQ91a2BYYQH9MIj19hgAFS85bG HKLTscK1JcTpPAqcQJWvsSlbtUp0RdE6RTfSS+w1mzdxNe3xP0yAJfQK9V9lP6dWT+dM4P mUlTM4aI20t5AwNoSG0JmkMiw/Mr+hK7RWJaGzCv7Qao7/mJJZshfXyd+BX97L+xujDMkI ysyzJYX2sNeQaedRdU3MhBFGetibaJ+uJ7gBG5oaNX//F32Vx9hqF9Rh8nKQaqzD+8IATR QznxkQMtv15yFibxXAUyX0KXExSw5kyWcNX9TNX9iQ+l7rAlYPbWwA6Jn+5Wua06b/ne1O 0xaltypsjT2l/1/CZKZVrAaXPfH+bApSlBkaIz65Z+gvwtuYCeTofMNg1utdgyL+OchTZj Ng6KQNlrErZjCHFQgYwDW0a65uMm3oGdwinAUSOei2C3kjRX/KymduhWStOros/NmLxNms u9/Ndj44Sb9h5T3SP4VYB/y/H9P+LrnkA4cWANmpfuCL5/jbypDrOyFjSCRTbTXg610ZtS SzqAXDdmF9wsNw6B+x3Gj4Ra8Fl01J0iWJAKckftfulT+32L4400U5wPiIbg X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:04:59 -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 v2 02/10] net: ethernet: ravb: Move programming of gPTP timer interval Date: Tue, 11 Aug 2026 18:01:52 +0200 Message-ID: <20260811160200.2049987-3-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 77c0645a1c4d..dc2fbbeff895 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 226c6c0ab945..7c78f75cb284 100644 --- a/drivers/net/ethernet/renesas/ravb_ptp.c +++ b/drivers/net/ethernet/renesas/ravb_ptp.c @@ -319,11 +319,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 Tue Sep 29 06:08:55 2026 Received: from fhigh-a2-smtp.messagingengine.com (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) (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 D0F1E3FE351; Tue, 11 Aug 2026 16:05:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.153 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464307; cv=none; b=HX010V2mEV8QiEkF5mFGY+CM4Iq5elmTVOc7hH+kci4+4LLOMLIjaOc/j5WWjKi25lEW+OqhK8o4oSWM23Ad73tmGBAklzMQlmWEpuSOKEgYfwE5NOGwFLj8BlyHlr80BRkhKrL+O/ckqRyyVjGngse1lM9mOyq7yc948lzxVxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464307; c=relaxed/simple; bh=bJQEL1cmu3iA85cP7Rs9xPhId7BWFCsyoLqmche+90Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Z56GL69wD6rOyvgwau4BBfL4JJU51rOmLXSEyju+RGQu9udhV7sw9B6N/7z7WCzKyoiozuCo/VgmPubuPOktwixnP2B/4ffm1sol1vYAZdHg2VJaqTaLykk4gAQWdm7E97VCcV08wTjjFaxi89xkQHL7IRRn7YRgY/2FtCgtJpY= 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=ni9hUkuZ; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Va70kpqP; arc=none smtp.client-ip=103.168.172.153 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="ni9hUkuZ"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Va70kpqP" Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfhigh.phl.internal (Postfix) with ESMTP id 040C6140005F; Tue, 11 Aug 2026 12:05:05 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-05.internal (MEProxy); Tue, 11 Aug 2026 12:05:05 -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=fm2; t=1786464305; x=1786550705; bh=T3YDA8QDdc88Ru13MqYL1x16d+r2XJYof4EL5JyVqhY=; b= ni9hUkuZU0QdhuZnjFLcmOnmGJSV/d5AVSjXNuPRY2WNRpEJEHHvcSAApp5aoxH0 bQpnD3E8Es48KLBIetMcUR1BzRMYY44GjRIGp9nbsLcI7hUpxdWb2EaI4RefUFDp kswNhGU0sdqIwPAbHlpT6YixvpJDkxLGP3ClgIy2GcU0IqcBys/wAqNqpkGANXf3 s1ypSr5trNRXctaYfFAnSanKY0aK6gp9xU1sWeJeMDOOERMQy+ImctQgiDXk8gRT PSkUpsNO+p8HsL3kVU2OM2BstA5qn4DynFLLPq9AdZoxawiwx4wmBlVHW2mHeS69 xrpX2Mg5kcwQyyJyJR2jbA== 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=fm3; t=1786464305; x= 1786550705; bh=T3YDA8QDdc88Ru13MqYL1x16d+r2XJYof4EL5JyVqhY=; b=V a70kpqPXQjU4MISGeYRl/XrFYhvUCggdljYfdLx4MfkIW20REg33Az2pukDy1AXD xCMXWPw3+N8zQJNE3YiPT6pwNpJuuxRaXnaFb0Y37okQP8oY+cQCNyt4Hd7Ir0lt XoaVSFxQAzmz2jb8d56OeImCeZ6mrw1eDRDSGGmiZu0QCsrVXg3DbVU0NMYGNqym ATV9MEtRMSjPOT2eWKtcxQYcoiEUNxGKKlWQRqqF1OrbK6M3WWIdITMFeD58LKei 3Lt1sWNCxG/eLHL603I3UB+u2Z15MA2avtwASVqa2qR569VqMrnhRmUGF0pNoMlh gtSZO5qHOIJbn/8zShvhQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEHSKU/mHe+6lT/LKJ8bgeRk/V053AqRrN1BR5zk1Shu2DOwdZpAbiAy9Gu5V3kwl d1h5rYgq3ypc8+YqRDw6+W1dLYGl7xAf/JnE2fouoUr+uQ91a2BYYQH9MIj19hgAFS85bG HKLTscK1JcTpPAqcQJWvsSlbtUp0RdE6RTfSS+w1mzdxNe3xP0yAJfQK9V9lP6dWT+dM4P mUlTM4aI20t5AwNoSG0JmkMiw/Mr+hK7RWJaGzCv7Qao7/mJJZshfXyd+BX97L+xujDMkI ysyzJYX2sNeQaedRdU3MhBFGetibaJ+uJ7gBG5oaNX//F32Vx9hqF9Rh8nKQaqzD+8IAVJ etqUMHEgSv4Qhs/QXH/NmRYelEof9u2Sk8BbBKIWpmyPEP5xxsLe4FLyT+uxcunf099KcV mpPIupN5jptkbuGsCc3NOriCKZFGH6MfatqZ6+L1YDTEvBeH/usl3Wcn6xynUlTVkA8WWy hAahMcGqwWNTI72SNP5eWtOZSF+wkzgkxCQ/l5PtRho61MxkkjV2xVTQ9I2cyqIsB4RUYz n3V4200Cq+ZqfIpcVdQVp1WSFtXo93lhknkkUQBuU0DFwu8sXAzoXMpnHZENVBmO36coCC S/g4UU5DLhoE7ZxqR+u/elfsSza+IBjABM7WjIz2wAM98Oiqzezn6casMcLw X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:05:03 -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 v2 03/10] net: ethernet: ravb: Simplify gPTP start and stop Date: Tue, 11 Aug 2026 18:01:53 +0200 Message-ID: <20260811160200.2049987-4-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 dc2fbbeff895..dff66a347baf 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 Tue Sep 29 06:08:55 2026 Received: from fhigh-a2-smtp.messagingengine.com (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) (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 588BC40F8D0; Tue, 11 Aug 2026 16:05:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.153 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464309; cv=none; b=VDhDkA94uGXi8EX+3le4XdKfc83FeJGZi7ISAu7Ei1QuGPeiRGSszOaRKSkJWrsI+vwlLXrCGSzaxybhEp+MvXPZP/oLSZRqat7mpM6RNWYNLkCG4ReCq62XOgBjqdNUO8UHa3iAbZSjNDuk8hE86Akfqb2SQ8ojsRikg3anc6w= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464309; c=relaxed/simple; bh=EgES/V6H2suEzJKWy4WsoHghAL9oan1/7pL8qga0NkY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=dboA2sllhS2TjKgMXQmXs3ZuJHe6oUxLcDKekrbjUQjRQqYBqG0DK5Rdl21FFAms/zjf39CU6OMsOSh8FcboT8JcDlUeJgIv87SoRmwiOnK46uu1w1BvE0W8mOy2xARQ6p6QH108yQ3A/zpwPtvz0bbmROMzG/IrMn6q12fX5yc= 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=sdVYuxWc; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=k+upMGU8; arc=none smtp.client-ip=103.168.172.153 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="sdVYuxWc"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="k+upMGU8" Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfhigh.phl.internal (Postfix) with ESMTP id 4C9D414000E9; Tue, 11 Aug 2026 12:05:07 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-05.internal (MEProxy); Tue, 11 Aug 2026 12:05:07 -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=fm2; t=1786464307; x=1786550707; bh=6188lcywujrOsVI7jiy+Cp443WOFrm9bebd+NSrCIAo=; b= sdVYuxWcmhKH7rKKChG9vVXw1XUyrizi+JG6uv4vEXtoL0Y+LtUPUqWoGT4IiOa2 aVOqW5P3oawAMhQm4TkiYPsAeXjuxJ2CTo7ENLO991EUShEq+Y6tKHwancgKS0ry z+fsfWRrXz5960J8qPG5A89+NBucbnFtWUwpiGF75DtMpJDy4eY4NimDesI4xDIU sIP8skK1Rb14lRrXYbnNVPzlIvZhQbdk/nTfIIsvZRcqDsg68X+g8qJb53aJoTw2 tkdrds0BJbk4NR9se1l16w3jNnqNOmzFVtYewu8LHWXFKQdZImFc9hU53Ubvg74y qK3DmU2BPf3KWcXbAROhxQ== 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=fm3; t=1786464307; x= 1786550707; bh=6188lcywujrOsVI7jiy+Cp443WOFrm9bebd+NSrCIAo=; b=k +upMGU8f+yyk3IIbriNO100Kwx9E9ebWRxHxBHt/rZcFN4xgONoV8z6sZIljzHOm X/8XJRKgr7i5QVLTfVYkO5v4cHWFDR4xPnsIgFU3xjBc3/trTIL8akbXEA4UwbRs +1JapekezfqhQjDVH635GXszhwKrkEmY4QEX71fXPWonx3gmcSFAjSvB67GqQ6cD 7tD/YTQbxk6tX52k5DN8VmtQ6VC6A1JH2ywRyFIkTzATsEA4k+UsBRL7dRuKmwmk W5h6EyDYgblKw42bxEP+59tLkaga2UCmbYlb4eHUwpmlaDy4FEW3O60lZz3ecsw0 HN1bOTXuH2H+2WzlSqnYQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEHSKU/mHe+6lT/LKJ8bgeRk/V053AqRrN1BR5zk1Shu2DOwdZpAbiAy9Gu5V3kwl d1h5rYgq3ypc8+YqRDw6+W1dLYGl7xAf/JnE2fouoUr+uQ91a2BYYQH9MIj19hgAFS85bG HKLTscK1JcTpPAqcQJWvsSlbtUp0RdE6RTfSS+w1mzdxNe3xP0yAJfQK9V9lP6dWT+dM4P mUlTM4aI20t5AwNoSG0JmkMiw/Mr+hK7RWJaGzCv7Qao7/mJJZshfXyd+BX97L+xujDMkI ysyzJYX2sNeQaedRdU3MhBFGetibaJ+uJ7gBG5oaNX//F32Vx9hqF9Rh8nKQaqzD+8IAsA M3/m7JHdRxDYrgN5wOCim2wdws7OqEblrCFzVAVtqdQun9J/pODok3jhK8wL+RUj3+ITSz t6SuoV5zpH0vmXeZJC6AK8mjgPzHNuiyRO9FR96+AtkbuckOXm9ot5nLYhbsE2rAEZIaQn BrrLBmqGGcANjOa5FhzZJdKBep6t6XyMSXBOCE+3zJp/OLL5zc7hvURhTPs8bWSa6iwDy3 pdBtARpUhWSGYIsYljcklh1d4TH13t49WiU+ukJgOdiik5zYwHAJRsr589+Y7xG+giRvO4 L4rsWMoWVeT28fpB3r7TWL5OsRFB+8eDu8N43shWPzj1vLsgENMIZju1JmSQ X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:05:06 -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 v2 04/10] net: ethernet: ravb: Remove redundant argument to ravb_ptp_init() Date: Tue, 11 Aug 2026 18:01:54 +0200 Message-ID: <20260811160200.2049987-5-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 5e56ec9b1013..013ced6dcf29 100644 --- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h @@ -1160,7 +1160,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 dff66a347baf..b3cc4c79b29f 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 7c78f75cb284..1c9b33d1b8b9 100644 --- a/drivers/net/ethernet/renesas/ravb_ptp.c +++ b/drivers/net/ethernet/renesas/ravb_ptp.c @@ -312,7 +312,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); unsigned long flags; @@ -336,7 +336,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 - priv->ptp.clock =3D ptp_clock_register(&priv->ptp.info, &pdev->dev); + priv->ptp.clock =3D ptp_clock_register(&priv->ptp.info, &priv->pdev->dev); } =20 void ravb_ptp_stop(struct net_device *ndev) --=20 2.55.0 From nobody Tue Sep 29 06:08:55 2026 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (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 C52114519B1; Tue, 11 Aug 2026 16:05:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464312; cv=none; b=dfOodV5CjS64M6xK9wf2lURq9EjktlNit55o8Gtl4N8vXjlJmhIXRo6RKE5nTF8PaIyzrpCY30ei97UjYeLKhIGLzQWWfrBiLUXd9vyg8x0IkGfrGt+1OnrvSRri7+8RU2CgtzFiyTfA4q7X8Fp7GbrnxnrvwMTMJCp3c79lEB4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464312; c=relaxed/simple; bh=KVkDfpN4qFfLDMqrOInIWAKFx/T/3QAb+S3fEsWVm5s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Kc8SW3tETnn0myf1Csh6hRR+nJp04Uw3yU1yC3DS1znpYfQwBlJ8awvdZRn5cJJIccGz5A9za7IiAIfzVsXw5MNjpxTEOM9SGchkwDaaDdxk/nS6x1OhwHsEti2Jol49j2Zn7jcZ8EcVqSdqOskij4LXSkxGbs470aYKN8hpxHU= 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=d+ggZfmD; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Lo5oDwzz; arc=none smtp.client-ip=103.168.172.144 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="d+ggZfmD"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Lo5oDwzz" Received: from phl-compute-08.internal (phl-compute-08.internal [10.202.2.48]) by mailfout.phl.internal (Postfix) with ESMTP id CC885EC0231; Tue, 11 Aug 2026 12:05:09 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-08.internal (MEProxy); Tue, 11 Aug 2026 12:05:09 -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=fm2; t=1786464309; x=1786550709; bh=zqidzY+BampYtE/nOZEib1htnwGjsRJJ1wONgzGOPCk=; b= d+ggZfmDN4rbc72Xil2fy5MLJ/MJ6ALWJ8mbVtlmiZ9BXla7Koac1khXBTA+RCdp qwjXqUikwgiEF6BsRGY13oNCm921aB0TIsk4BCvNEfpTFFM5h5XRKTZYXpn6RVM4 /hd3Hhc/YP+EUEFuXv6p5NmcpzXHEYRqdVXWLWnswv6TTcAaWh30b0Qs1cixTQ3B NLd728PTCc5KC7/dQgaEtiX+b4VUaZfuXfhq40ieGRWbwZ3tZXmMxdwSPxv6l2lD Bte8ZJOuCxrW7uf7seYabgxY0HhSVcbf/D39G77U4R7OxkqyK59F1Krc8Zcc2bcW DWqxzcl0gmdcy92DybJNww== 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=fm3; t=1786464309; x= 1786550709; bh=zqidzY+BampYtE/nOZEib1htnwGjsRJJ1wONgzGOPCk=; b=L o5oDwzzVnHz8MHlQeEBix6F3hu6KqWV8NtHGzDetG71zC1i5eGacnOBGYXBDguQE XKu3ibFoBpSKn8jzC+o1ZmiLofRgxzyy0oIhb9/QAgueW3jDjgvxHWeBlfPVUGC+ FAoCCy9iJKoXuLcVtKiveQb/aXKK1L44fcelXht0rksiS4AbzdpMUDo96ClAcwxM XzATwJEFisCKV2oRjrqO/APOLyJyPQfekudlnHX90/OtvTe4q8RBroKuPjSK3szh vQFfDPF95jVdl4l3wSdKJ47VKhJFHLOdST4jOH0WlXQgdIJdSWcgBC6aBUlUkpPZ 9QrwqQpaSb8CicAY33t1Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEcdCROLuiysp8uGk10uhdQUBXvLkeDFruJAASHfHD4IGLRMaTPWndx0zISdzB5bK 1b04fIAYW73mZvQCoXdYl+FxlriN3o3U6H5waRUdwWpiwfVeL9wXpDB+6d0gs3GC718W4n lh3z8pHjUTILslF7HB+Sre7ZxJSwYfvLHn63UNun39OJCit/JuWFstxBoJ7y/3Ejl/fYx+ vh+W7b/kTC59k32MaoWWCFUzkGPnVxwHaEBbmtyDyftDkYmsSTri+IwDw6M62abEUeycja /bKxrSdWXvsgHaE8UOgwU11N40h7s6fosNNXtN6ZutD0zI8WJq6RYvRBgQHYrm4/UJ//FC 5Y9z/uqk2hs8nZH8UJiogvwBfvtK6bC11c3aT1krJLLVv6xFYcHMq2SYyL/LKl/I3aabFq uKP99a9NaS3En/cELJbQ2CSe7kMkwcjGICrPtCVs6X3181e0tV3XjZ6RNX9zecm0qP6tbS QGz1FVQoYFiRvndqyAAJfqoH3u4woO8mVEnvMeDYSt8/AXf/lMptiAzhQDe7KEvjmeJDWf Zr76w1SIVaT6NVe9y8tITFl3SLJvFQF/gOGv/9T7Ce2P6MyXq/3rSFSp+25ox6v98l+KgV h8rO0Ke7kt9VpUNyORY5INa9kYOEsT8i1JZ9JlCMfVf2XR7jDeiXmo70voeA X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:05:08 -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 v2 05/10] net: ethernet: ravb: Propagate error from ptp_clock_register() Date: Tue, 11 Aug 2026 18:01:55 +0200 Message-ID: <20260811160200.2049987-6-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 v1 - New in v2. --- drivers/net/ethernet/renesas/ravb.h | 2 +- drivers/net/ethernet/renesas/ravb_ptp.c | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/ren= esas/ravb.h index 013ced6dcf29..39892f0f8e62 100644 --- a/drivers/net/ethernet/renesas/ravb.h +++ b/drivers/net/ethernet/renesas/ravb.h @@ -1160,7 +1160,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_ptp.c b/drivers/net/ethernet= /renesas/ravb_ptp.c index 1c9b33d1b8b9..473a2aedb745 100644 --- a/drivers/net/ethernet/renesas/ravb_ptp.c +++ b/drivers/net/ethernet/renesas/ravb_ptp.c @@ -312,10 +312,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); unsigned long flags; + int ret =3D 0; =20 priv->ptp.info =3D ravb_ptp_info; =20 @@ -337,6 +338,13 @@ void ravb_ptp_init(struct net_device *ndev) spin_unlock_irqrestore(&priv->lock, flags); =20 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); + } + + return ret; } =20 void ravb_ptp_stop(struct net_device *ndev) @@ -346,5 +354,6 @@ void ravb_ptp_stop(struct net_device *ndev) ravb_write(ndev, 0, GIC); ravb_write(ndev, 0, GIS); =20 - ptp_clock_unregister(priv->ptp.clock); + if (priv->ptp.clock) + ptp_clock_unregister(priv->ptp.clock); } --=20 2.55.0 From nobody Tue Sep 29 06:08:55 2026 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (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 5084345517F; Tue, 11 Aug 2026 16:05:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464314; cv=none; b=i40CFQPOVhboVAcWBZ2TfipHOyoNOZa89GtZbmd1iq+sXHdmVLjU73QmEjAtRcc64uAgtuQzq3mMh3MtqE8hlt8DXIfYl7ILa+qmU4TAv4Guc/VbHM3nkdk94XS6q8gGBvRxzBMe7eKsro5vX4DGMO5S5s7Z12XV1sSuLz4NFqk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464314; c=relaxed/simple; bh=+UMHKj/AWl5U6q9pADmuXw1UjjzwxMkzhUqlc4qJWuc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=H/jsfvjnVtAfVWgd7zGuMv0ncHjJ92eJeDsPXO4HJDiO9qdHw5vvJ4iUiWMUiJ58R+iqu0FSlMiqrUvhRbtj/wZRtPOqXdMlniuNa2eExHIS5IiGvAq9MohiWE9BbnSeKuYNES+LbxrapVuyYFrryqb2qQUeoRSO14uBEEPw09Q= 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=WczuC7U0; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=hExtp4+l; arc=none smtp.client-ip=103.168.172.144 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="WczuC7U0"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="hExtp4+l" Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfout.phl.internal (Postfix) with ESMTP id 5B8BDEC022F; Tue, 11 Aug 2026 12:05:12 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-06.internal (MEProxy); Tue, 11 Aug 2026 12:05:12 -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=fm2; t=1786464312; x=1786550712; bh=w0Sw+ild8QY9toLUgs+gVmzJiPLIByLt/ibJ9mXLaek=; b= WczuC7U0/tyo+z7+9XzBWQCoCuWNOJVLSoWRMAXRbt+mBNSfq7G1qJqpxsiYJfQ2 WUDBGKumtI+AWkpAsrntLZ520osCbH1VNq75ql70DTXi0Uu3YFlXB3yuWoH7Rn38 nhsg2/ft29vEJ+txhUhnNGcsx1ZsKNsCs/5xm0iL3sYwFqXIUD394Fx7WkOg11IG hxgjq81rkEjq4taxzr1SMqmIzMbavlqSN81laPjaamjRK9mRGODlaGXJBUxS4EBh /ElHOM/z5+Da6rmWQkEV1t+NkS+3Lh0uNeqoeOSzANc7IyevLEJib74f6Jmdh/WB 26tW28k3zLQNvZ+9dLXZ8A== 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=fm3; t=1786464312; x= 1786550712; bh=w0Sw+ild8QY9toLUgs+gVmzJiPLIByLt/ibJ9mXLaek=; b=h Extp4+lCaWw5eyJ2WP/RWxKny4G5R199q1xuS6HlCB59PX1RsjPZ7/PLKSy9tHbI 9zzimY2lt2YCsv32V22hepRe9mkllb89HaVhNUOWRHL0D8giDdBihXRnPK2RZ/Yv sZwhPfbDbueWQb0Lu9rKOzAKg3KNEAE3K4Sl3XejVz5PWrnSmpvypNw6nE76QM46 eQmmb/NCo+yiiCtj+9q7ztshvT3/0Y2+DeGYTo1i+ByZPn7/zA2wlcCEiE4E6hC3 yBtrfrfsFzNaLjvhQkSSLCmNK26RGQ/G52B6bMEwyqQMDo30GwdYPZKhBCA/ge/g HOriF1pcYiXzlj+fBNy1w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTElhGmTjMe+fJdnLcemYDcYEsJ6/4gOw6LADCE/XJkMOGvB/IPGYEOE1YO7IB27US 4g0FhhwmKY3dwTFzGtO1HXPO9EFEOP/UkCak44OHPa6GIimycY9J4lPbuNW0vnGFOnBnBM /tFkcoaJPPcfZUu886mslGP6LPpETS48cLJncBCRtXKB97CyqjjM/dDZHjP2L0itpKpp2V nkqgHNxJYFswdFmSZh005rtUE1byr4L6m+aUWbZDwNYeW2AwAeFy+MwQay3sWVo9cs1YHq yNq3EkCYRKkqUiSx/jZT5sXXZ4CKef49kQQGKS5OyMYD8j/NtFs89/if56QZV8gJjeSgpC VB8jBLWXkf/dfZ1kyevJswVjBOwXPqEpmx2zfFQewbmQU/FY0Pt+7+Q2y+vHnPLb7RcTDR nG3HicSa4gvBWK01Plxy+N6hiihIHlkMojyVyVXPDzYrhModtRPF02WGPZ3Q58Tq6cx++q HqYxsLbSuT+oaEuoG399ItitZuMzc//u73TtxJuGC9Ov/9Op2bPS8YlfKed/wK50gFRhEr nB0ZbcerKtmPPY+4Dud8LrnKxpnUJYRP+b1gF5gcAuTGl95RGXVHRlxL7lyjQhdES9cAGh wDE9NzDeWYHp9VcPSVpad8fftVMmt0hWMovtkV4TvepGklXRP+l1orUwfPgA X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:05:11 -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 v2 06/10] net: ethernet: ravb: Replace gPTP flags with callbacks Date: Tue, 11 Aug 2026 18:01:56 +0200 Message-ID: <20260811160200.2049987-7-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 39892f0f8e62..c98228cfdda9 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 b3cc4c79b29f..d4d03de381db 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 Tue Sep 29 06:08:55 2026 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (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 6639E4562A1; Tue, 11 Aug 2026 16:05:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464316; cv=none; b=GuFYXo7jC9i7MC5D4UI5SbF5FnvPilgsFJ2WSeopiH5fWaj/ee2k8qVnqiDmKwWgnMIpamSuYonm7VIxRkkuhj0JmD5+fp6eza2G0XDjoFHOekj4SbQklHBGR+9+SDYyiJ3YRSFAVcc6px60LspnacWRcADg37bMm40ZwLFg3e8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464316; c=relaxed/simple; bh=nWazujuYm7EJMkiX1SzLlPFuVQiA1PBM3rE/df54fMk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=gX7ZpsVYvmy4ekYcYzy/t0MzhxMqJOiyTO4sAwJ7ccbdYVMSmg4N6a8QO/WHmKdT2IWS8Utu+o3nQGwtrGByvBx7hv4WNweA1NFcjAbErx3RFsP/w5k844EDsyJFPTDnEhHyYl9ksRPlXjdpDpQDRHGLAuRuHB6WCgNqIXae/FI= 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=L1uS6+17; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=V3dtQFN0; arc=none smtp.client-ip=103.168.172.144 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="L1uS6+17"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="V3dtQFN0" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfout.phl.internal (Postfix) with ESMTP id AEF2AEC0230; Tue, 11 Aug 2026 12:05:14 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Tue, 11 Aug 2026 12:05:14 -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=fm2; t=1786464314; x=1786550714; bh=T87g0o4PfeNDwnQQwA1TgvqU6AZkLPfc7ZKKPDzPkOk=; b= L1uS6+17DTh7fYn8vRJwuv+Rs+L5fgE3nF+PfpSPEMH7QBlT4xfytKJH8SG7KLSi i1DOLGpYuSLp2bAgPzWJmO20bLY2k+KjjXoPrPDp1ack/AQR2CdbeKhqDHwlAjWE W8WA39uQFrB68xxuHIoYWtLszDTw2r1V2FiO/ZDcf/IqupjLCAU6Sd8EbqiJkNKu p2z9SKh+/W+IxjkvLyf/4PvDpGoFKWK+KdHsZsa1l6lxsGcuqVLawZllORIGr3JF JKV9968c8/7CZm11c1AG5GsSKcXVUWI/5rKy8Mgi3+0jnaTcjLUAEKQoWeUC9bNg 3fUeJHN+UI/Gqwkk54AmOQ== 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=fm3; t=1786464314; x= 1786550714; bh=T87g0o4PfeNDwnQQwA1TgvqU6AZkLPfc7ZKKPDzPkOk=; b=V 3dtQFN0c5V1ahKXBa2xh4dySn1YzwBeeanB0wxR32pw84jXr+Npm9RPLJUCMU23j +4wHBTbdonNYSp8dWHKrRFutfgPZo5Y5fx6sWKEYgp7EAbQDrn+pGBvqFqKFxzrA TPzK1mBJ93X3KMEqfViT5li+r2i1m8P9g3Rmt+dwUKjRmgSRND+qLHlFFsaFi5PV XoE+G0Cq0kjUp56GGpT6+smXEpwAiNxY3484SdUD7hVgABYojDD15qzHe90zbcKR gertETdKTYvYX7v39Huj3qyr6ku4Y1uWYqQ8gOQoVhYem698556s9y8lh8Osp4Hz oJWO9oOQ/5LOIZpF7dZzA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEHSKU/mHe+6lT/LKJ8bgeRk/V053AqRrN1BR5zk1Shu2DOwdZpAbiAy9Gu5V3kwl d1h5rYgq3ypc8+YqRDw6+W1dLYGl7xAf/JnE2fouoUr+uQ91a2BYYQH9MIj19hgAFS85bG HKLTscK1JcTpPAqcQJWvsSlbtUp0RdE6RTfSS+w1mzdxNe3xP0yAJfQK9V9lP6dWT+dM4P mUlTM4aI20t5AwNoSG0JmkMiw/Mr+hK7RWJaGzCv7Qao7/mJJZshfXyd+BX97L+xujDMkI ysyzJYX2sNeQaedRdU3MhBFGetibaJ+uJ7gBG5oaNX//F32Vx9hqF9Rh8nKQaqzD+8IAkb C/L1QsIjXxELub3bb8ua/FMGI8D89c48hL8nR4jlq75czVB6L8DDRLRDVgGvonqAdgFXfa ktS8HVVywHpQ+U/Pld7jpPA7Ylw+2mQGdRI8kt2Z9Vb7uD0zdWtgjDmHdi25GzUMR26BFh vz1ysBKqPKmbyY3nbqI5CS+M0EuT6FmE5HSbxOz2nb3W2wjmSnECUljCf7oP1sxOQc6JCZ u7EjrQf8ODm/j+7un3FI9R7aC8vFlTLcjGshxyYKqRGtIVITe+aCWhXIBqZ6aJQbO9nHcs bwdi/dwQvRv4oajqFTzA+C7qcCyv1Dus/+LskeJqVgSis4PS3zvPv4VV2PzA X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:05:13 -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 v2 07/10] net: ethernet: ravb: Add callback for gPTP probe Date: Tue, 11 Aug 2026 18:01:57 +0200 Message-ID: <20260811160200.2049987-8-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 c98228cfdda9..60f32bfa48c6 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 d4d03de381db..743f53f61bb8 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, }; @@ -2974,12 +2993,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"); @@ -3032,10 +3049,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 Tue Sep 29 06:08:55 2026 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (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 8A4B44582C3; Tue, 11 Aug 2026 16:05:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464319; cv=none; b=OezxPsvgI0o/kYx2bd4P72ffYqKAYBu/ErtvMBXnjguzvWWVQWUQxW0QEcGla5/WgI0wCIk9sUmfnSFB5JV4QctV3JPZ9s58K/HBkyqxvFMdyJi30wXkGJYKxpT3xeN+vsfGqJJ1sjMu3vpDB2WbMkcFX2YUbtxVNnCS/J5njGY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464319; c=relaxed/simple; bh=X4V6pqv1L7DLePElG41uMwQFINIrQdUm019d/aBUnb8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=mJG88lZex0IQKON801/R37mJ1WmVJxvBnbfna1JTxTH3LmdX5Rq79HxkA3FnndnIKSYttGL+KM2h5KklOH8UmTlWBrfyzqA0LeHLiq/l6gpgS1jyUOk29bzVDsDeJ1CBm3iZcwiGqVllFSL9aSz1tVdUUGO/gss+25Gr0UoAq0w= 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=IySDLC4T; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=R972L3La; arc=none smtp.client-ip=103.168.172.144 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="IySDLC4T"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="R972L3La" Received: from phl-compute-06.internal (phl-compute-06.internal [10.202.2.46]) by mailfout.phl.internal (Postfix) with ESMTP id C1D87EC0236; Tue, 11 Aug 2026 12:05:16 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-06.internal (MEProxy); Tue, 11 Aug 2026 12:05:16 -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=fm2; t=1786464316; x=1786550716; bh=h2CWSjYKebv+lHKTn3SR95shVlMTTwIMi0idBkVPXMw=; b= IySDLC4T3cfo0YSqG8b14oY9dHKVJLUcWN1iwA5dfbSDM1FFvOtehRvmaC802ni8 yo3jeyK9zlS+DOFACA8+AsxyspoxesPRVLtWpi3gtT7C9/V9BgXICPmpJZwyxtrY owLRWWmZNEQwMhKQjTEziaSK7aSwwgPd/3pQEVXKZls6iYwf1nSy7mjShkucWXi4 NEiXn1ozvyK6kVmIXBz08ePc5albLTCgIk84PvqsE9S0ojWDhPia5bt2Zhj9v8D8 DdkmIBVwcSOGJODKJ2NLOhAarfXMpNvBjnJP9Avh098ryVKEY1pwBtR7JCFVwkQC 9FBJ0jBbVGiSRX31X6cxlw== 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=fm3; t=1786464316; x= 1786550716; bh=h2CWSjYKebv+lHKTn3SR95shVlMTTwIMi0idBkVPXMw=; b=R 972L3LamRSaJPBeI4Ot81cCyymjh6TenT33mtD4AKgHrF/XWM6Pqn83WgUxeUq9i vjyL1gadHndH37rnCJFCiHYCQUKBZ4Zj6lI0oocU2X39br7A540clT7Qstt2o2Cm W3CeEhfUAl0hcJ4++IXyX6l5wleUW0NzxmhCF2USYeQAj88Q1dDpgw4E6AUIjqof pzwlnb6kcJuu1esCoDpXqrAWEAub9+HY4XTWcwh/Bmpr+iFxlNSzpW/fwIj2tHHV HsxQJgTKmoBf3Mi1RR9Aun9ML4JMEipiOVBANAv5wwLpeNTNAGp4C/qWEL+2vMHB QIRLWMINdWTzsDdUsOO8A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTFfnGnY8BNwOA38kHRMG8VuzfLdIbhby+5Bx8gDcHOGPnT40FGPYNyCNudnsAONXB H8pWSZ6bBmeWpQQOmfFei6KngSe9Yx6Qk+pC/ACAEvRxouivkd8qsROwXyV48xlBXkHsz7 20IuB7g5LxPj/iq0mkR1IN+7EsBTQ0GQpyjdrRhvx2UmJKFhd1XKK7nczK+adEITj8T6G0 mZRSq0ML+IsbReLxuQYotPJe1O47knG89tJ7TKattIgJWgUwd5mLou6v7sOPkGSi3fg7xP k9+//LPJcoXki8o+enm+zveAYcBX2aiqtsV6+faiVGfeQW1q2jznsB6+ZfFRxVP6n0hhHu jW2CSCk3AAKtpdriopMC3QoXkoXN6PQPWl2EAXZVNhzb3/jf56VbqEsk65M0Zo/k2LxzW8 LMaOV7niNfhU4dFNe5n/2+DCu9/F2799x664uYHJFsHlc02yzDM26bV4/ZKzs3jAFwEFiy 16TjVZX7VFO4/Z7UfYSDpyvi8PQBXhUVSIKd0+PSX0232jsvbkpKSgxGxzwHHBSN/MaZaP gFLBUnPl+RrSSoywNIaAQqAwW5j0GbzlJFLc/uY3OUg9NLtu1KCRAEvu6hPxDIaSLdjOsy 5ESaIEvoFVcOnmpydIb+QjRDqIixBsymuVqfc2hR5Fs/+BMz+g0HFr0FKgmg X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:05:16 -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 v2 08/10] net: ethernet: ravb: Add callback for gPTP clock index Date: Tue, 11 Aug 2026 18:01:58 +0200 Message-ID: <20260811160200.2049987-9-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 60f32bfa48c6..b4df5cab0e5c 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 743f53f61bb8..12877a8488ed 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 Tue Sep 29 06:08:55 2026 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (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 0681845A294; Tue, 11 Aug 2026 16:05:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464321; cv=none; b=EdieHT36xBaKbhWYHCroinklAooU5p/oWetzEFbFM2gu/iHTcEAjAG2Qr76nAS00Ea9JL2bRRHMLE5HGKRo485StDGAkxdVXTgReMJ2HopA2jMo09Ly1/XZCe0PUWB1KD7ILvxJ/XDARWosYI1O8tA45Hv9sQxqsHbanrwSClmo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464321; c=relaxed/simple; bh=2qs+hrzguVK0nqLM1BWqS6U4g6GEKgQ9AWEGhV8qzwg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=tkFtNwQPm7d1uDofuvoRg2Zxx/mQ8YsqRHgrQGKJEUYRk5y0QJLACOAHgLh7Vc4+/coAnX4SXydvX1gO1DPCKz77kYHE8wjjbGupvQoxYa7Ur2n+z5RxI+y+iFyHzBiUrIHXAXu5OpLIWFjh1uRUcQvMJXKaEVPrmQv84h7DwjM= 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=kuJBcJe6; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=REL36VNT; arc=none smtp.client-ip=103.168.172.144 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="kuJBcJe6"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="REL36VNT" Received: from phl-compute-01.internal (phl-compute-01.internal [10.202.2.41]) by mailfout.phl.internal (Postfix) with ESMTP id 44F1FEC01EC; Tue, 11 Aug 2026 12:05:19 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Tue, 11 Aug 2026 12:05: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=fm2; t=1786464319; x=1786550719; bh=seyJdsO2WGpvFKsb5tM8GxoKEIf19AFzcB80UIKMPhk=; b= kuJBcJe6TMAGdWaOIikSJmNr7Y9x9IocoOr0rMMb9qmy4dAMSDeGm10nGydoF+bs VwOGQN02fiOaHjWfCLlSTHRnT+QSatcosxOO3u9dC9hT2VdziwU9ff+tnd0CkOS2 ur7y5E9C+LPqwyuAgbJmmJnrbLP69eg/ML2nryfCOxiHPOUWb6ODPjSpsG7JOIBk 1UHzo4WPzR4XmExq8/ngxEDuohN6tdc61UG57oFVQMS2fV9cCMnaNjWHIPqusRDj 3BiUfBS8uLBjg9rI/1MfxIuPGGHrUeAstfrJbJkfuCraxWiqvk7Xssx3VcPWxF0R Q5l4GoJ//DmLAWM6tZXGkQ== 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=fm3; t=1786464319; x= 1786550719; bh=seyJdsO2WGpvFKsb5tM8GxoKEIf19AFzcB80UIKMPhk=; b=R EL36VNTQGI7n9EBBFhleLd1rNbb7+SVIn8JbB81zP9AEEbGXI2ajx8mBnTa8X+tf xwe05rw6vBXoYg6W2xsELB9yCBoyNfV0sapgKE8gEuhB4084blQ5pCx030ptEo5m vafZywWV62ZOHWFGfoVRAH5UNJL3LzfaYe7hBvwiTXh+aH52MDLi1P57nibN0wG8 41bkcr+nMhDOmB4+REjXrc/f4eoNYxgk0lnwGcUz0v/GGKJD0P++bfORCK7aA+Na pbMN4Cc//mDdKRzGMuEL6WxRdxu1qqLXgty7ylPOOJ4BxfTqUc8dZTCkxmhcjnNL 9k4l0S91ufbwKgEkN9Wrg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEvybp+fjvG2kkP67oA2g09NO+RA+d/IaJ6DPiQy+f1TXFVvFN/PtP8GAKCRgrLXc JH0YElAHzDzy54s6ld7p7+ltlCLNMUbNDrPpQUYd7EuOR758DHRRZc//tXv8Rnf3A+5b/C UP3V7rirPuvI/zqoe75wEmftOnm6v55qJAxmgVF34yCCgiN5Cch1MTYW938rSqwZVq7ZdY tC/aXto8TcN8NTqWxNguEptHr2Ea1bSiEmDH4WMdP38/xO+SPxZeVRZ9edyJg5jsOmsk8m dOTpIF8YkNSnSO5maV4c01ZGq7tJzJnBMA/4RZolL82lthbAdKjxw6B2UkneH+Emq5QAH5 a/ULYKrfCcH1zVxNgYMJdSfNA3tdkvMDYHlc7CNRRm2cOQdz9HiVhMmBs/chSmj8S//+nr /UzG2tRHhoYnUYhV1U8MajWaFkjX7nM7D2m67VYjfOCfMdjCqOXlJUr0SHyjvFF+AzvVRn FjkgMgWfKiwnXMtCz3k2RNFBLK1AYEZkr8D/ncN+Lk8WJqC+n0ppr9MG6NS3IoNzpjovo+ aTa+3qV33cOAPRt/5MJ2toVDjwyS5r13eUZuBdt7S24RYMPZZ1Tzn5c90mI+9qPx3ycwSJ cIOWKvx4KVxMszxIbsOBztZjBysAmdcD2v/8NxEkbInmxk6NgN70RfoAmC/w X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:05: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 v2 09/10] dt-bindings: net: renesas,etheravb: Add optional gPTP phandle for Gen4 Date: Tue, 11 Aug 2026 18:01:59 +0200 Message-ID: <20260811160200.2049987-10-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 --- * 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 Tue Sep 29 06:08:55 2026 Received: from fout-a1-smtp.messagingengine.com (fout-a1-smtp.messagingengine.com [103.168.172.144]) (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 B703145C709; Tue, 11 Aug 2026 16:05:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.144 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464324; cv=none; b=r3d0/Vg1sEez+Vi0OHi09VPaAMbRkEsoGCjA2rJJMiWZA1Pz0qWDehy2KzAsQdY00pr3LmEre5yZxNgHIJ19eGL+Aopv8NG6DPHVsiDj6r2i3OMYvQsvScPUDR/OzrgA6OWXeLadoSeeWMiP8jk0fMytwtXjvDZU9MF17OhWvcs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786464324; c=relaxed/simple; bh=N3pjQaNbi3Imr6RAfNZCR66d3jzOY0OvR/G3RRvt1FQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=nfq2WZvF7d0ShWg7T2xHWmOo/n45tzqIEWv3iBoWusUtZRy9vXTCdu7GNxW7acQZ46Xw52ifRYDIVQh8ypOEUf4+BYJwVypH+rwe9MObK7Ta/bBswFdSi8GG9uAsLmQi9qN9bgX0GfQH4IhcSltmizRgBAlekFtueQVP18qNCjA= 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=ZcrZgOFW; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=NIHtpfkG; arc=none smtp.client-ip=103.168.172.144 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="ZcrZgOFW"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="NIHtpfkG" Received: from phl-compute-04.internal (phl-compute-04.internal [10.202.2.44]) by mailfout.phl.internal (Postfix) with ESMTP id BA31EEC01EC; Tue, 11 Aug 2026 12:05:21 -0400 (EDT) Received: from phl-frontend-03 ([10.202.2.162]) by phl-compute-04.internal (MEProxy); Tue, 11 Aug 2026 12:05: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=fm2; t=1786464321; x=1786550721; bh=fo9SJZtqgbNl3fWJY6C2G3qAmbfvbO2bzET83v6IHUc=; b= ZcrZgOFWmoBCEcmDYC9iB2jZt5v1LGkfzlo2zJ+QpTd/0aGwhuEUJwyDw5ltvUPX Ya83jtYY2/wVatFTW9yreO38VT+vN0HHxx7E6iJi6iGTac0BhEQ6mRMJNKoC5KIJ K9U9/a5I3ztiuhOBQkP9bjSd2AJsaWz1rskjWjq/zeLHc1ir2brCOdEg6ymP5yvw 0AGVbg1fLcbS5eylsVsXmrV2rwFG+LYJS0kkfyIEb4C2A6Xv0wjKWjjcqYhdxYM6 k7we3w2ubPf6V8UqGGye5pS8zQe2P2sJs+EUFmhc2F0HPnZnLJd6cVKh6Hr1mHnO q8r352+NxLSexa86OFg1dQ== 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=fm3; t=1786464321; x= 1786550721; bh=fo9SJZtqgbNl3fWJY6C2G3qAmbfvbO2bzET83v6IHUc=; b=N IHtpfkGvpjeDHVMfMSMFZxQ0iqQR4wa7mijxdHQiOkz7ws6q39B+7cBOk7vhSKwC 0eq8UroN94WLDt9aEmy5Kp2RKN0DMWb8g2lA0X/KFwXoJwd6LvLmjhZNx7unroXW xRDWRqTmtou7E7F+VJz7ygl060/9QqpV5/mc4TO76PQChvhnw2C/AMxy9oxTJqdP t3wE3vtwF5jujA0yF4tDmcd5xZ7nGjEfxZ4zR/L4qvMzTUx8ps+IB+Re/+Vbj12S VexOD8AVud81VufrhTcXBD0hsUp69YeDn2ObEUBIWy9vg/aKY+UWkVESymNFuEBw Wg9qNjjh0vUgIn4MIZR8A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTGFFPL3N5DTcYVuquFe+/dfRYgBGtSfEcwPVr/8UXV69eF5Z2kDQXSyWboTPttrK7 JAetTs/ONK4xcw0lYxN11ohJL1TNNnROZ/1pj2JjjH/QI+m/z1p0rk3xKDSc0s9IOfLNdY S1NvAAbfRKbwU0dWO8ijvRxnkQvQ1n7u9U0ZLQCt76cwnaUt1HRX3DIYdV2DNnAuLBsP2m TAKKZ0BTUVIWPzX266+1DxCdNYgRV3tM+ErDktVDP8OB3PijMOevi5gThvW+G+WUPit13u rPNXuFXiGTJq4jLH54RzfSy3xTqCLpzhuPnSQ28V/TTUBDbBCV7S0awlmjJebqC1nrqnFZ scAVz5MNuZJ1k4Joaml8GPqNOFkswT+tqnedhFwo6OKYPpXNaGpZZVGxKlb/F1lA7m+GBm PNNj1UqQkYGka+wE+I4MOJLLQ+3OFMUKhmX/KTb9/AvCHY/QKuM1ghIU5cJFH1EyUscAHZ e3/42yqo0KPiKBmx4DGSoo/9fou36EhgNvwkDzJRy6RszcfjVjgd2djUWjCquijsoxL8P3 NOhGi7vMsKXBKdXV4tgjl5XlRcOwjTIkvRYgKNICj9gizrigPEIEtmrCns7gcoZc7p41sD R3xHMpAMeMuLo/8T2eiZdfxOpfNTmmPxwQ4N4DVRWd7iNW9zfWsKQITk9prQ X-ME-Proxy: Feedback-ID: i80c9496c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 11 Aug 2026 12:05:20 -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 v2 10/10] net: ethernet: ravb: Add gPTP support for Gen4 Date: Tue, 11 Aug 2026 18:02:00 +0200 Message-ID: <20260811160200.2049987-11-niklas.soderlund+renesas@ragnatech.se> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260811160200.2049987-1-niklas.soderlund+renesas@ragnatech.se> References: <20260811160200.2049987-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 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 | 56 +++++++++++++++++++++++- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/renesas/ravb.h b/drivers/net/ethernet/ren= esas/ravb.h index b4df5cab0e5c..4c8dc02022e2 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 12877a8488ed..30170e92d3d7 100644 --- a/drivers/net/ethernet/renesas/ravb_main.c +++ b/drivers/net/ethernet/renesas/ravb_main.c @@ -2752,6 +2752,59 @@ 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; + } + + 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 +2827,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, }; @@ -3186,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