123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- From 01488a0ccd9abe15565bed50a45afcddbb0fe199 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <[email protected]>
- Date: Fri, 12 Mar 2021 11:41:07 +0100
- Subject: [PATCH] net: dsa: bcm_sf2: store PHY interface/mode in port structure
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- It's needed later for proper switch / crossbar setup.
- Signed-off-by: Rafał Miłecki <[email protected]>
- Acked-by: Florian Fainelli <[email protected]>
- Signed-off-by: David S. Miller <[email protected]>
- ---
- drivers/net/dsa/bcm_sf2.c | 16 ++++++++++++----
- drivers/net/dsa/bcm_sf2.h | 1 +
- 2 files changed, 13 insertions(+), 4 deletions(-)
- --- a/drivers/net/dsa/bcm_sf2.c
- +++ b/drivers/net/dsa/bcm_sf2.c
- @@ -380,8 +380,9 @@ static void bcm_sf2_intr_disable(struct
- static void bcm_sf2_identify_ports(struct bcm_sf2_priv *priv,
- struct device_node *dn)
- {
- + struct device *dev = priv->dev->ds->dev;
- + struct bcm_sf2_port_status *port_st;
- struct device_node *port;
- - int mode;
- unsigned int port_num;
-
- priv->moca_port = -1;
- @@ -390,19 +391,26 @@ static void bcm_sf2_identify_ports(struc
- if (of_property_read_u32(port, "reg", &port_num))
- continue;
-
- + if (port_num >= DSA_MAX_PORTS) {
- + dev_err(dev, "Invalid port number %d\n", port_num);
- + continue;
- + }
- +
- + port_st = &priv->port_sts[port_num];
- +
- /* Internal PHYs get assigned a specific 'phy-mode' property
- * value: "internal" to help flag them before MDIO probing
- * has completed, since they might be turned off at that
- * time
- */
- - mode = of_get_phy_mode(port);
- - if (mode < 0)
- + port_st->mode = of_get_phy_mode(port);
- + if (port_st->mode < 0)
- continue;
-
- - if (mode == PHY_INTERFACE_MODE_INTERNAL)
- + if (port_st->mode == PHY_INTERFACE_MODE_INTERNAL)
- priv->int_phy_mask |= 1 << port_num;
-
- - if (mode == PHY_INTERFACE_MODE_MOCA)
- + if (port_st->mode == PHY_INTERFACE_MODE_MOCA)
- priv->moca_port = port_num;
-
- if (of_property_read_bool(port, "brcm,use-bcm-hdr"))
- --- a/drivers/net/dsa/bcm_sf2.h
- +++ b/drivers/net/dsa/bcm_sf2.h
- @@ -43,6 +43,7 @@ struct bcm_sf2_hw_params {
- #define BCM_SF2_REGS_NUM 6
-
- struct bcm_sf2_port_status {
- + int mode;
- unsigned int link;
- };
-
|