net: dsa: move cpu port probe to dsa_post_probe
In order to ensure that a DSA driver probe gets called before dsa_ops->port_probe move the port_probe of the cpu_port to a post-probe function. Signed-off-by: Tim Harvey <tharvey@gateworks.com> Reviewed-by: Ramon Fried <rfried.dev@gmail.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Reviewed-by: Fabio Estevam <festevam@denx.de>
This commit is contained in:
@@ -466,7 +466,6 @@ static int dsa_pre_probe(struct udevice *dev)
|
|||||||
{
|
{
|
||||||
struct dsa_pdata *pdata = dev_get_uclass_plat(dev);
|
struct dsa_pdata *pdata = dev_get_uclass_plat(dev);
|
||||||
struct dsa_priv *priv = dev_get_uclass_priv(dev);
|
struct dsa_priv *priv = dev_get_uclass_priv(dev);
|
||||||
struct dsa_ops *ops = dsa_get_ops(dev);
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
priv->num_ports = pdata->num_ports;
|
priv->num_ports = pdata->num_ports;
|
||||||
@@ -482,6 +481,15 @@ static int dsa_pre_probe(struct udevice *dev)
|
|||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int dsa_post_probe(struct udevice *dev)
|
||||||
|
{
|
||||||
|
struct dsa_priv *priv = dev_get_uclass_priv(dev);
|
||||||
|
struct dsa_ops *ops = dsa_get_ops(dev);
|
||||||
|
int err;
|
||||||
|
|
||||||
/* Simulate a probing event for the CPU port */
|
/* Simulate a probing event for the CPU port */
|
||||||
if (ops->port_probe) {
|
if (ops->port_probe) {
|
||||||
err = ops->port_probe(dev, priv->cpu_port,
|
err = ops->port_probe(dev, priv->cpu_port,
|
||||||
@@ -498,6 +506,7 @@ UCLASS_DRIVER(dsa) = {
|
|||||||
.name = "dsa",
|
.name = "dsa",
|
||||||
.post_bind = dsa_post_bind,
|
.post_bind = dsa_post_bind,
|
||||||
.pre_probe = dsa_pre_probe,
|
.pre_probe = dsa_pre_probe,
|
||||||
|
.post_probe = dsa_post_probe,
|
||||||
.per_device_auto = sizeof(struct dsa_priv),
|
.per_device_auto = sizeof(struct dsa_priv),
|
||||||
.per_device_plat_auto = sizeof(struct dsa_pdata),
|
.per_device_plat_auto = sizeof(struct dsa_pdata),
|
||||||
.per_child_plat_auto = sizeof(struct dsa_port_pdata),
|
.per_child_plat_auto = sizeof(struct dsa_port_pdata),
|
||||||
|
Reference in New Issue
Block a user