Commit 5b3ae43a authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller

net: dsa: sja1105: Get rid of global declaration of struct ptp_clock_info

We need priv->ptp_caps to hold a structure and not just a pointer,
because we use container_of in the various PTP callbacks.

Therefore, the sja1105_ptp_caps structure declared in the global memory
of the driver serves no further purpose after copying it into
priv->ptp_caps.

So just populate priv->ptp_caps with the needed operations and remove
sja1105_ptp_caps.
Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a98d62c3
...@@ -344,29 +344,28 @@ static void sja1105_ptp_overflow_check(struct work_struct *work) ...@@ -344,29 +344,28 @@ static void sja1105_ptp_overflow_check(struct work_struct *work)
schedule_delayed_work(&priv->refresh_work, SJA1105_REFRESH_INTERVAL); schedule_delayed_work(&priv->refresh_work, SJA1105_REFRESH_INTERVAL);
} }
static const struct ptp_clock_info sja1105_ptp_caps = {
.owner = THIS_MODULE,
.name = "SJA1105 PHC",
.adjfine = sja1105_ptp_adjfine,
.adjtime = sja1105_ptp_adjtime,
.gettime64 = sja1105_ptp_gettime,
.settime64 = sja1105_ptp_settime,
.max_adj = SJA1105_MAX_ADJ_PPB,
};
int sja1105_ptp_clock_register(struct sja1105_private *priv) int sja1105_ptp_clock_register(struct sja1105_private *priv)
{ {
struct dsa_switch *ds = priv->ds; struct dsa_switch *ds = priv->ds;
/* Set up the cycle counter */ /* Set up the cycle counter */
priv->tstamp_cc = (struct cyclecounter) { priv->tstamp_cc = (struct cyclecounter) {
.read = sja1105_ptptsclk_read, .read = sja1105_ptptsclk_read,
.mask = CYCLECOUNTER_MASK(64), .mask = CYCLECOUNTER_MASK(64),
.shift = SJA1105_CC_SHIFT, .shift = SJA1105_CC_SHIFT,
.mult = SJA1105_CC_MULT, .mult = SJA1105_CC_MULT,
}; };
priv->ptp_caps = (struct ptp_clock_info) {
.owner = THIS_MODULE,
.name = "SJA1105 PHC",
.adjfine = sja1105_ptp_adjfine,
.adjtime = sja1105_ptp_adjtime,
.gettime64 = sja1105_ptp_gettime,
.settime64 = sja1105_ptp_settime,
.max_adj = SJA1105_MAX_ADJ_PPB,
};
mutex_init(&priv->ptp_lock); mutex_init(&priv->ptp_lock);
priv->ptp_caps = sja1105_ptp_caps;
priv->clock = ptp_clock_register(&priv->ptp_caps, ds->dev); priv->clock = ptp_clock_register(&priv->ptp_caps, ds->dev);
if (IS_ERR_OR_NULL(priv->clock)) if (IS_ERR_OR_NULL(priv->clock))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment