[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20220705181226.jcnwjqcmfsypr4q6@soft-dev3-1.localhost>
Date: Tue, 5 Jul 2022 20:12:26 +0200
From: Horatiu Vultur <horatiu.vultur@...rochip.com>
To: Michael Walle <michael@...le.cc>
CC: "David S . Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Vladimir Oltean <olteanv@...il.com>, <netdev@...r.kernel.org>,
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH net v2] net: lan966x: hardcode the number of external
ports
The 07/04/2022 17:36, Michael Walle wrote:
>
> Instead of counting the child nodes in the device tree, hardcode the
> number of ports in the driver itself. The counting won't work at all
> if an ethernet port is marked as disabled, e.g. because it is not
> connected on the board at all.
>
> It turns out that the LAN9662 and LAN9668 use the same switching IP
> with the same synthesis parameters. The only difference is that the
> output ports are not connected. Thus, we can just hardcode the
> number of physical ports to 8.
>
> Fixes: db8bcaad5393 ("net: lan966x: add the basic lan966x driver")
> Signed-off-by: Michael Walle <michael@...le.cc>
Reviewed-by: Horatiu Vultur <horatiu.vultur@...rochip.com>
> ---
> changes since v1:
> - add fixes tag since the fix is simple
> - switch from new specific compatible to "just use 8 for all"
>
> drivers/net/ethernet/microchip/lan966x/lan966x_main.c | 8 ++------
> drivers/net/ethernet/microchip/lan966x/lan966x_main.h | 1 +
> 2 files changed, 3 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> index 5784c4161e5e..1d6e3b641b2e 100644
> --- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.c
> @@ -994,7 +994,7 @@ static int lan966x_probe(struct platform_device *pdev)
> struct fwnode_handle *ports, *portnp;
> struct lan966x *lan966x;
> u8 mac_addr[ETH_ALEN];
> - int err, i;
> + int err;
>
> lan966x = devm_kzalloc(&pdev->dev, sizeof(*lan966x), GFP_KERNEL);
> if (!lan966x)
> @@ -1025,11 +1025,7 @@ static int lan966x_probe(struct platform_device *pdev)
> if (err)
> return dev_err_probe(&pdev->dev, err, "Reset failed");
>
> - i = 0;
> - fwnode_for_each_available_child_node(ports, portnp)
> - ++i;
> -
> - lan966x->num_phys_ports = i;
> + lan966x->num_phys_ports = NUM_PHYS_PORTS;
> lan966x->ports = devm_kcalloc(&pdev->dev, lan966x->num_phys_ports,
> sizeof(struct lan966x_port *),
> GFP_KERNEL);
> diff --git a/drivers/net/ethernet/microchip/lan966x/lan966x_main.h b/drivers/net/ethernet/microchip/lan966x/lan966x_main.h
> index 3b86ddddc756..2787055c1847 100644
> --- a/drivers/net/ethernet/microchip/lan966x/lan966x_main.h
> +++ b/drivers/net/ethernet/microchip/lan966x/lan966x_main.h
> @@ -34,6 +34,7 @@
> /* Reserved amount for (SRC, PRIO) at index 8*SRC + PRIO */
> #define QSYS_Q_RSRV 95
>
> +#define NUM_PHYS_PORTS 8
> #define CPU_PORT 8
>
> /* Reserved PGIDs */
> --
> 2.30.2
>
--
/Horatiu
Powered by blists - more mailing lists