lkml.org 
[lkml]   [2022]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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@walle.cc>

Reviewed-by: Horatiu Vultur <horatiu.vultur@microchip.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

\
 
 \ /
  Last update: 2022-07-05 20:08    [W:0.070 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site