mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
net: rcar_gen4_ptp: Move control fields to users
The struct rcar_gen4_ptp_private provides two fields for convenience of its users, tstamp_tx_ctrl and tstamp_rx_ctrl. These fields are not used by the rcar_gen4_ptp driver itself but only by the drivers using it. Upcoming work will enable the RAVB driver currently only supporting gPTP on pre-Gen4 SoCs to use the Gen4 implementation as well. To facilitate this the convenience of having these fields in struct rcar_gen4_ptp_private becomes a problem as the RAVB driver already have it's own driver specific fields for the same thing. Move the fields from struct rcar_gen4_ptp_private to each driver using the Gen4 gPTP clocks own private data structures. There is no functional change. Signed-off-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> Reviewed-by: Andrew Lunn <andrew@lunn.ch> Link: https://patch.msgid.link/20251104222420.882731-3-niklas.soderlund+renesas@ragnatech.se Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
e98d879292
commit
50ab1c6bec
@@ -23,8 +23,6 @@ struct rcar_gen4_ptp_private {
|
||||
struct ptp_clock *clock;
|
||||
struct ptp_clock_info info;
|
||||
spinlock_t lock; /* For multiple registers access */
|
||||
u32 tstamp_tx_ctrl;
|
||||
u32 tstamp_rx_ctrl;
|
||||
s64 default_addend;
|
||||
bool initialized;
|
||||
};
|
||||
|
||||
@@ -1063,6 +1063,9 @@ struct rswitch_private {
|
||||
bool etha_no_runtime_change;
|
||||
bool gwca_halt;
|
||||
struct net_device *offload_brdev;
|
||||
|
||||
u32 tstamp_tx_ctrl;
|
||||
u32 tstamp_rx_ctrl;
|
||||
};
|
||||
|
||||
bool is_rdev(const struct net_device *ndev);
|
||||
|
||||
@@ -845,7 +845,7 @@ static bool rswitch_rx(struct net_device *ndev, int *quota)
|
||||
if (!skb)
|
||||
goto out;
|
||||
|
||||
get_ts = rdev->priv->ptp_priv->tstamp_rx_ctrl & RCAR_GEN4_RXTSTAMP_TYPE_V2_L2_EVENT;
|
||||
get_ts = rdev->priv->tstamp_rx_ctrl & RCAR_GEN4_RXTSTAMP_TYPE_V2_L2_EVENT;
|
||||
if (get_ts) {
|
||||
struct skb_shared_hwtstamps *shhwtstamps;
|
||||
struct timespec64 ts;
|
||||
@@ -1799,14 +1799,13 @@ static int rswitch_hwstamp_get(struct net_device *ndev,
|
||||
struct kernel_hwtstamp_config *config)
|
||||
{
|
||||
struct rswitch_device *rdev = netdev_priv(ndev);
|
||||
struct rcar_gen4_ptp_private *ptp_priv;
|
||||
|
||||
ptp_priv = rdev->priv->ptp_priv;
|
||||
struct rswitch_private *priv = rdev->priv;
|
||||
|
||||
config->flags = 0;
|
||||
config->tx_type = ptp_priv->tstamp_tx_ctrl ? HWTSTAMP_TX_ON :
|
||||
HWTSTAMP_TX_OFF;
|
||||
switch (ptp_priv->tstamp_rx_ctrl & RCAR_GEN4_RXTSTAMP_TYPE) {
|
||||
config->tx_type =
|
||||
priv->tstamp_tx_ctrl ? HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF;
|
||||
|
||||
switch (priv->tstamp_rx_ctrl & RCAR_GEN4_RXTSTAMP_TYPE) {
|
||||
case RCAR_GEN4_RXTSTAMP_TYPE_V2_L2_EVENT:
|
||||
config->rx_filter = HWTSTAMP_FILTER_PTP_V2_L2_EVENT;
|
||||
break;
|
||||
@@ -1856,8 +1855,8 @@ static int rswitch_hwstamp_set(struct net_device *ndev,
|
||||
break;
|
||||
}
|
||||
|
||||
rdev->priv->ptp_priv->tstamp_tx_ctrl = tstamp_tx_ctrl;
|
||||
rdev->priv->ptp_priv->tstamp_rx_ctrl = tstamp_rx_ctrl;
|
||||
rdev->priv->tstamp_tx_ctrl = tstamp_tx_ctrl;
|
||||
rdev->priv->tstamp_rx_ctrl = tstamp_rx_ctrl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -62,6 +62,9 @@ struct rtsn_private {
|
||||
|
||||
int tx_data_irq;
|
||||
int rx_data_irq;
|
||||
|
||||
u32 tstamp_tx_ctrl;
|
||||
u32 tstamp_rx_ctrl;
|
||||
};
|
||||
|
||||
static u32 rtsn_read(struct rtsn_private *priv, enum rtsn_reg reg)
|
||||
@@ -162,7 +165,7 @@ static int rtsn_rx(struct net_device *ndev, int budget)
|
||||
unsigned int i;
|
||||
bool get_ts;
|
||||
|
||||
get_ts = priv->ptp_priv->tstamp_rx_ctrl &
|
||||
get_ts = priv->tstamp_rx_ctrl &
|
||||
RCAR_GEN4_RXTSTAMP_TYPE_V2_L2_EVENT;
|
||||
|
||||
ndescriptors = priv->dirty_rx + priv->num_rx_ring - priv->cur_rx;
|
||||
@@ -1122,21 +1125,19 @@ static int rtsn_do_ioctl(struct net_device *ndev, struct ifreq *ifr, int cmd)
|
||||
static int rtsn_hwtstamp_get(struct net_device *ndev,
|
||||
struct kernel_hwtstamp_config *config)
|
||||
{
|
||||
struct rcar_gen4_ptp_private *ptp_priv;
|
||||
struct rtsn_private *priv;
|
||||
|
||||
if (!netif_running(ndev))
|
||||
return -ENODEV;
|
||||
|
||||
priv = netdev_priv(ndev);
|
||||
ptp_priv = priv->ptp_priv;
|
||||
|
||||
config->flags = 0;
|
||||
|
||||
config->tx_type =
|
||||
ptp_priv->tstamp_tx_ctrl ? HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF;
|
||||
priv->tstamp_tx_ctrl ? HWTSTAMP_TX_ON : HWTSTAMP_TX_OFF;
|
||||
|
||||
switch (ptp_priv->tstamp_rx_ctrl & RCAR_GEN4_RXTSTAMP_TYPE) {
|
||||
switch (priv->tstamp_rx_ctrl & RCAR_GEN4_RXTSTAMP_TYPE) {
|
||||
case RCAR_GEN4_RXTSTAMP_TYPE_V2_L2_EVENT:
|
||||
config->rx_filter = HWTSTAMP_FILTER_PTP_V2_L2_EVENT;
|
||||
break;
|
||||
@@ -1155,7 +1156,6 @@ static int rtsn_hwtstamp_set(struct net_device *ndev,
|
||||
struct kernel_hwtstamp_config *config,
|
||||
struct netlink_ext_ack *extack)
|
||||
{
|
||||
struct rcar_gen4_ptp_private *ptp_priv;
|
||||
struct rtsn_private *priv;
|
||||
u32 tstamp_rx_ctrl;
|
||||
u32 tstamp_tx_ctrl;
|
||||
@@ -1164,7 +1164,6 @@ static int rtsn_hwtstamp_set(struct net_device *ndev,
|
||||
return -ENODEV;
|
||||
|
||||
priv = netdev_priv(ndev);
|
||||
ptp_priv = priv->ptp_priv;
|
||||
|
||||
if (config->flags)
|
||||
return -EINVAL;
|
||||
@@ -1195,8 +1194,8 @@ static int rtsn_hwtstamp_set(struct net_device *ndev,
|
||||
break;
|
||||
}
|
||||
|
||||
ptp_priv->tstamp_tx_ctrl = tstamp_tx_ctrl;
|
||||
ptp_priv->tstamp_rx_ctrl = tstamp_rx_ctrl;
|
||||
priv->tstamp_tx_ctrl = tstamp_tx_ctrl;
|
||||
priv->tstamp_rx_ctrl = tstamp_rx_ctrl;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user