struct mutex reg_mutex;
/* all fields below are cleared on reset */
- bool vlan;
- u16 vlan_id[PSB6970_MAX_VLANS];
- u8 vlan_table[PSB6970_MAX_VLANS];
- u8 vlan_tagged;
- u16 pvid[PSB6970_NUM_PORTS];
+ struct_group(psb6970_priv_volatile,
+ bool vlan;
+ u16 vlan_id[PSB6970_MAX_VLANS];
+ u8 vlan_table[PSB6970_MAX_VLANS];
+ u8 vlan_tagged;
+ u16 pvid[PSB6970_NUM_PORTS];
+ );
};
#define to_psb6970(_dev) container_of(_dev, struct psb6970_priv, dev)
mutex_lock(&priv->reg_mutex);
- memset(&priv->vlan, 0, sizeof(struct psb6970_priv) -
- offsetof(struct psb6970_priv, vlan));
+ memset(&priv->psb6970_priv_volatile, 0,
+ sizeof(priv->psb6970_priv_volatile));
for (i = 0; i < PSB6970_MAX_VLANS; i++)
priv->vlan_id[i] = i;
static int psb6970_config_init(struct phy_device *pdev)
{
struct psb6970_priv *priv;
- struct net_device *dev = pdev->attached_dev;
struct switch_dev *swdev;
int ret;
return 0;
}
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0)
linkmode_zero(pdev->supported);
linkmode_set_bit(ETHTOOL_LINK_MODE_100baseT_Full_BIT, pdev->supported);
linkmode_copy(pdev->advertising, pdev->supported);
-#else
- pdev->supported = pdev->advertising = SUPPORTED_100baseT_Full;
-#endif
mutex_init(&priv->reg_mutex);
priv->read = psb6970_mii_read;
goto done;
}
- dev->phy_ptr = priv;
-
done:
return ret;
}