2023-10-18 07:11:34

by Johannes Zink

[permalink] [raw]
Subject: [PATCH net-next v2 0/5] net: stmmac: use correct PPS input indexing

The stmmac can have 0 to 4 auxiliary snapshot in channels, which can be
used for capturing external triggers with respect to the eqos PTP timer.

Previously when enabling the auxiliary snapshot, an invalid request was
written to the hardware register, except for the Intel variant of this
driver, where the only snapshot available was hardcoded.

Patch 1 of this series cleans up the debug netdev_dbg message indicating
the auxiliary snapshot being {en,dis}abled. No functional changes here

Patch 2 of this series writes the correct PPS input indexing to the
hardware registers instead of a previously used fixed value

Patch 3 of this series removes a field member from plat_stmmacnet_data
that is no longer needed

Patch 4 of this series prepares Patch 5 by protecting the snapshot
enabled flag by the aux_ts_lock mutex

Patch 5 of this series adds a temporary workaround, since at the moment
the driver can handle only one single auxiliary snapshot at a time.
Previously the driver silently dropped the previous configuration and
enabled the new one. Now, if a snapshot is already enabled and userspace
tries to enable another without previously disabling the snapshot currently
enabled: issue a netdev_err and return an errorcode indicating the device is
busy.

This series is a "never worked, doesn't hurt anyone" touchup to the PPS
capture for non-intel variants of the dwmac driver.

Best Regards
Johannes

To: Alexandre Torgue <[email protected]>
To: Jose Abreu <[email protected]>
To: "David S. Miller" <[email protected]>
To: Eric Dumazet <[email protected]>
To: Jakub Kicinski <[email protected]>
To: Paolo Abeni <[email protected]>
To: Maxime Coquelin <[email protected]>
To: Richard Cochran <[email protected]>
To: Kurt Kanzenbach <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]

Signed-off-by: Johannes Zink <[email protected]>
---
Changes in v2:
- fixed CC list to also include maintainers/authors of dwmac-intel
- reworded commit messages and removed fixme-Tag as discussed with Simon
and Jakub. Thanks for reviewing the series!
- Link to v1: https://lore.kernel.org/r/20231010-stmmac_fix_auxiliary_event_capture-v1-0-3eeca9e844fa@pengutronix.de

---
Johannes Zink (5):
net: stmmac: simplify debug message on stmmac_enable()
net: stmmac: use correct PPS capture input index
net: stmmac: intel: remove unnecessary field struct plat_stmmacenet_data::ext_snapshot_num
net: stmmac: ptp: stmmac_enable(): move change of plat->flags into mutex
net: stmmac: do not silently change auxiliary snapshot capture channel

drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 1 -
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 32 ++++++++++++++---------
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h | 2 +-
include/linux/stmmac.h | 1 -
4 files changed, 21 insertions(+), 15 deletions(-)
---
base-commit: ee2a35fedbc942e6eeb9e351a53acb1fe6b101c5
change-id: 20231010-stmmac_fix_auxiliary_event_capture-eaf21ea9c9fe

Best regards,
--
Johannes Zink <[email protected]>


2023-10-18 07:11:37

by Johannes Zink

[permalink] [raw]
Subject: [PATCH net-next v2 1/5] net: stmmac: simplify debug message on stmmac_enable()

Simplify the netdev_dbg() call in stmmac_enable() in order to reduce code
duplication. No functional change.

Signed-off-by: Johannes Zink <[email protected]>

---

Changelog:

v1 -> v2: no changes
---
drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
index 1be06b96c35f..f110b91af9bd 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
@@ -203,14 +203,10 @@ static int stmmac_enable(struct ptp_clock_info *ptp,
/* Enable External snapshot trigger */
acr_value |= priv->plat->ext_snapshot_num;
acr_value |= PTP_ACR_ATSFC;
- netdev_dbg(priv->dev, "Auxiliary Snapshot %d enabled.\n",
- priv->plat->ext_snapshot_num >>
- PTP_ACR_ATSEN_SHIFT);
- } else {
- netdev_dbg(priv->dev, "Auxiliary Snapshot %d disabled.\n",
- priv->plat->ext_snapshot_num >>
- PTP_ACR_ATSEN_SHIFT);
}
+ netdev_dbg(priv->dev, "Auxiliary Snapshot %d %s.\n",
+ priv->plat->ext_snapshot_num >> PTP_ACR_ATSEN_SHIFT,
+ on ? "enabled" : "disabled");
writel(acr_value, ptpaddr + PTP_ACR);
mutex_unlock(&priv->aux_ts_lock);
/* wait for auxts fifo clear to finish */

--
2.39.2

2023-10-18 18:05:50

by Andrew Halaney

[permalink] [raw]
Subject: Re: [PATCH net-next v2 1/5] net: stmmac: simplify debug message on stmmac_enable()

On Wed, Oct 18, 2023 at 09:09:53AM +0200, Johannes Zink wrote:
> Simplify the netdev_dbg() call in stmmac_enable() in order to reduce code
> duplication. No functional change.
>
> Signed-off-by: Johannes Zink <[email protected]>

Reviewed-by: Andrew Halaney <[email protected]>
>
> ---
>
> Changelog:
>
> v1 -> v2: no changes
> ---
> drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
> index 1be06b96c35f..f110b91af9bd 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c
> @@ -203,14 +203,10 @@ static int stmmac_enable(struct ptp_clock_info *ptp,
> /* Enable External snapshot trigger */
> acr_value |= priv->plat->ext_snapshot_num;
> acr_value |= PTP_ACR_ATSFC;
> - netdev_dbg(priv->dev, "Auxiliary Snapshot %d enabled.\n",
> - priv->plat->ext_snapshot_num >>
> - PTP_ACR_ATSEN_SHIFT);
> - } else {
> - netdev_dbg(priv->dev, "Auxiliary Snapshot %d disabled.\n",
> - priv->plat->ext_snapshot_num >>
> - PTP_ACR_ATSEN_SHIFT);
> }
> + netdev_dbg(priv->dev, "Auxiliary Snapshot %d %s.\n",
> + priv->plat->ext_snapshot_num >> PTP_ACR_ATSEN_SHIFT,
> + on ? "enabled" : "disabled");
> writel(acr_value, ptpaddr + PTP_ACR);
> mutex_unlock(&priv->aux_ts_lock);
> /* wait for auxts fifo clear to finish */
>
> --
> 2.39.2
>

2023-10-19 11:10:46

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net-next v2 0/5] net: stmmac: use correct PPS input indexing

Hello:

This series was applied to netdev/net-next.git (main)
by Paolo Abeni <[email protected]>:

On Wed, 18 Oct 2023 09:09:52 +0200 you wrote:
> The stmmac can have 0 to 4 auxiliary snapshot in channels, which can be
> used for capturing external triggers with respect to the eqos PTP timer.
>
> Previously when enabling the auxiliary snapshot, an invalid request was
> written to the hardware register, except for the Intel variant of this
> driver, where the only snapshot available was hardcoded.
>
> [...]

Here is the summary with links:
- [net-next,v2,1/5] net: stmmac: simplify debug message on stmmac_enable()
https://git.kernel.org/netdev/net-next/c/3fba82343955
- [net-next,v2,2/5] net: stmmac: use correct PPS capture input index
https://git.kernel.org/netdev/net-next/c/7e62ac24b57a
- [net-next,v2,3/5] net: stmmac: intel: remove unnecessary field struct plat_stmmacenet_data::ext_snapshot_num
https://git.kernel.org/netdev/net-next/c/1dbfe73bd648
- [net-next,v2,4/5] net: stmmac: ptp: stmmac_enable(): move change of plat->flags into mutex
https://git.kernel.org/netdev/net-next/c/7d3077482578
- [net-next,v2,5/5] net: stmmac: do not silently change auxiliary snapshot capture channel
https://git.kernel.org/netdev/net-next/c/2ddd05d1d5ed

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html