net: dsa: sja1105: Add a global sja1105_tagger_data structure
This will be used to keep state for RX timestamping. It is global because the switch serializes timestampable and meta frames when trapping them towards the CPU port (lower port indices have higher priority) and therefore having one state machine per port would create unnecessary complications. Signed-off-by: Vladimir Oltean <olteanv@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
e53e18a6fe
commit
844d7edc6a
@@ -1828,6 +1828,7 @@ static int sja1105_check_device_id(struct sja1105_private *priv)
|
||||
|
||||
static int sja1105_probe(struct spi_device *spi)
|
||||
{
|
||||
struct sja1105_tagger_data *tagger_data;
|
||||
struct device *dev = &spi->dev;
|
||||
struct sja1105_private *priv;
|
||||
struct dsa_switch *ds;
|
||||
@@ -1882,12 +1883,16 @@ static int sja1105_probe(struct spi_device *spi)
|
||||
ds->priv = priv;
|
||||
priv->ds = ds;
|
||||
|
||||
tagger_data = &priv->tagger_data;
|
||||
skb_queue_head_init(&tagger_data->skb_rxtstamp_queue);
|
||||
|
||||
/* Connections between dsa_port and sja1105_port */
|
||||
for (i = 0; i < SJA1105_NUM_PORTS; i++) {
|
||||
struct sja1105_port *sp = &priv->ports[i];
|
||||
|
||||
ds->ports[i].priv = sp;
|
||||
sp->dp = &ds->ports[i];
|
||||
sp->data = tagger_data;
|
||||
}
|
||||
mutex_init(&priv->mgmt_lock);
|
||||
|
||||
|
Reference in New Issue
Block a user