]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - drivers/net/dsa/qca8k.c
Merge tag 'please-pull-misc-5.5' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux.git] / drivers / net / dsa / qca8k.c
index b00274caae4fb0f6557f8e50b2d6432d38abc7ae..e548289df31eec11cff3b95c87e37a4c755280d1 100644 (file)
@@ -639,7 +639,8 @@ static int
 qca8k_setup(struct dsa_switch *ds)
 {
        struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv;
-       int ret, i, phy_mode = -1;
+       phy_interface_t phy_mode = PHY_INTERFACE_MODE_NA;
+       int ret, i;
        u32 mask;
 
        /* Make sure that port 0 is the cpu port */
@@ -661,10 +662,10 @@ qca8k_setup(struct dsa_switch *ds)
                return ret;
 
        /* Initialize CPU port pad mode (xMII type, delays...) */
-       phy_mode = of_get_phy_mode(ds->ports[QCA8K_CPU_PORT].dn);
-       if (phy_mode < 0) {
+       ret = of_get_phy_mode(dsa_to_port(ds, QCA8K_CPU_PORT)->dn, &phy_mode);
+       if (ret) {
                pr_err("Can't find phy-mode for master device\n");
-               return phy_mode;
+               return ret;
        }
        ret = qca8k_set_pad_ctrl(priv, QCA8K_CPU_PORT, phy_mode);
        if (ret < 0)
@@ -1077,10 +1078,13 @@ qca8k_sw_probe(struct mdio_device *mdiodev)
        if (id != QCA8K_ID_QCA8337)
                return -ENODEV;
 
-       priv->ds = dsa_switch_alloc(&mdiodev->dev, QCA8K_NUM_PORTS);
+       priv->ds = devm_kzalloc(&mdiodev->dev, sizeof(*priv->ds),
+                               QCA8K_NUM_PORTS);
        if (!priv->ds)
                return -ENOMEM;
 
+       priv->ds->dev = &mdiodev->dev;
+       priv->ds->num_ports = QCA8K_NUM_PORTS;
        priv->ds->priv = priv;
        priv->ops = qca8k_switch_ops;
        priv->ds->ops = &priv->ops;