bool fixed_link[SJA1105_MAX_NUM_PORTS];
        unsigned long ucast_egress_floods;
        unsigned long bcast_egress_floods;
+       unsigned long hwts_tx_en;
        const struct sja1105_info *info;
        size_t max_xfer_len;
        struct spi_device *spidev;
 
 
        switch (config.tx_type) {
        case HWTSTAMP_TX_OFF:
-               priv->ports[port].hwts_tx_en = false;
+               priv->hwts_tx_en &= ~BIT(port);
                break;
        case HWTSTAMP_TX_ON:
-               priv->ports[port].hwts_tx_en = true;
+               priv->hwts_tx_en |= BIT(port);
                break;
        default:
                return -ERANGE;
        struct hwtstamp_config config;
 
        config.flags = 0;
-       if (priv->ports[port].hwts_tx_en)
+       if (priv->hwts_tx_en & BIT(port))
                config.tx_type = HWTSTAMP_TX_ON;
        else
                config.tx_type = HWTSTAMP_TX_OFF;
 void sja1105_port_txtstamp(struct dsa_switch *ds, int port, struct sk_buff *skb)
 {
        struct sja1105_private *priv = ds->priv;
-       struct sja1105_port *sp = &priv->ports[port];
        struct sk_buff *clone;
 
-       if (!sp->hwts_tx_en)
+       if (!(priv->hwts_tx_en & BIT(port)))
                return;
 
        clone = skb_clone_sk(skb);