lkml.org 
[lkml]   [2020]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.14 20/30] net: dsa: bcm_sf2: Ensure correct sub-node is parsed
    Date
    From: Florian Fainelli <f.fainelli@gmail.com>

    [ Upstream commit afa3b592953bfaecfb4f2f335ec5f935cff56804 ]

    When the bcm_sf2 was converted into a proper platform device driver and
    used the new dsa_register_switch() interface, we would still be parsing
    the legacy DSA node that contained all the port information since the
    platform firmware has intentionally maintained backward and forward
    compatibility to client programs. Ensure that we do parse the correct
    node, which is "ports" per the revised DSA binding.

    Fixes: d9338023fb8e ("net: dsa: bcm_sf2: Make it a real platform device driver")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/dsa/bcm_sf2.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c
    index 6bca42e34a53d..b40ebc27e1ece 100644
    --- a/drivers/net/dsa/bcm_sf2.c
    +++ b/drivers/net/dsa/bcm_sf2.c
    @@ -1112,6 +1112,7 @@ static int bcm_sf2_sw_probe(struct platform_device *pdev)
    const struct bcm_sf2_of_data *data;
    struct b53_platform_data *pdata;
    struct dsa_switch_ops *ops;
    + struct device_node *ports;
    struct bcm_sf2_priv *priv;
    struct b53_device *dev;
    struct dsa_switch *ds;
    @@ -1174,7 +1175,11 @@ static int bcm_sf2_sw_probe(struct platform_device *pdev)
    */
    set_bit(0, priv->cfp.used);

    - bcm_sf2_identify_ports(priv, dn->child);
    + ports = of_find_node_by_name(dn, "ports");
    + if (ports) {
    + bcm_sf2_identify_ports(priv, ports);
    + of_node_put(ports);
    + }

    priv->irq0 = irq_of_parse_and_map(dn, 0);
    priv->irq1 = irq_of_parse_and_map(dn, 1);
    --
    2.20.1
    \
     
     \ /
      Last update: 2020-04-15 14:09    [W:2.981 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site