net: dsa: tag_sja1105: convert to tagger-owned data

Currently, struct sja1105_tagger_data is a part of struct
sja1105_private, and is used by the sja1105 driver to populate dp->priv.

With the movement towards tagger-owned storage, the sja1105 driver
should not be the owner of this memory.

This change implements the connection between the sja1105 switch driver
and its tagging protocol, which means that sja1105_tagger_data no longer
stays in dp->priv but in ds->tagger_data, and that the sja1105 driver
now only populates the sja1105_port_deferred_xmit callback pointer.
The kthread worker is now the responsibility of the tagger.

The sja1105 driver also alters the tagger's state some more, especially
with regard to the PTP RX timestamping state. This will be fixed up a
bit in further changes.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Vladimir Oltean 2021-12-10 01:34:44 +02:00 committed by David S. Miller
parent 22ee9f8e40
commit c79e84866d
5 changed files with 110 additions and 77 deletions

View file

@ -84,9 +84,12 @@ static inline s64 sja1105_ticks_to_ns(s64 ticks)
return ticks * SJA1105_TICK_NS;
}
static inline bool dsa_port_is_sja1105(struct dsa_port *dp)
static inline struct sja1105_tagger_data *
sja1105_tagger_data(struct dsa_switch *ds)
{
return true;
BUG_ON(ds->dst->tag_ops->proto != DSA_TAG_PROTO_SJA1105);
return ds->tagger_data;
}
#endif /* _NET_DSA_SJA1105_H */