linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: Michael Walle <michael@walle.cc>
Cc: Horatiu Vultur <horatiu.vultur@microchip.com>,
	Andy Shevchenko <andy.shevchenko@gmail.com>,
	Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Rob Herring <robh+dt@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: fwnode_for_each_child_node() and OF backend discrepancy
Date: Fri, 1 Jul 2022 00:21:20 +0300	[thread overview]
Message-ID: <20220630212120.t3in6i7s7chaqacr@skbuf> (raw)
In-Reply-To: <b0e3cd1f6b210943030a1e7a355d1a7f@walle.cc>

On Thu, Jun 30, 2022 at 11:00:37PM +0200, Michael Walle wrote:
> > > > It is not possible to have a defined for the MAX number of ports that
> > > > supported by lan966x. Which is 8. And assigned that define to
> > > > num_phys_ports instead of counting the entries in DT?
> > > 
> > > You mean also for the lan9662? I'm pretty sure that doesn't
> > > work. Have a look where num_phys_ports is used. One random
> > > example:
> > > https://elixir.bootlin.com/linux/latest/source/drivers/net/ethernet/microchip/lan966x/lan966x_main.c#L874
> > > 
> > > So if your switch only has 4 ports, then I'd guess you'll
> > > access a non-existing register.
> > 
> > Underneath lan662 and lan668 is the same chip. The HW people disable
> > some ports/features on each platform but from what I know you will still
> > be able to access the registers.
> 
> I noticed that there are still 8 ports in the register description and
> assumed that it was wrong [1]. But ok, that makes sense in some way.
> OTOH that means, we cannot do the guesswork Vladimir proposed.
> 
> -michael
> 
> [1] https://microchip-ung.github.io/lan9662_reginfo/reginfo_LAN9662.html

Are you 100% positive that the default values for the flooding PGIDs are
GENMASK(8, 0) for a 4-port switch? And that the packet buffer has the
same size for a switch with half as many ports? Ok...

But in that case, what exactly is the problem if the port count of 8 is
a synthesis time constant for lan966x, and if the CPU port module is
always at index 8 in the analyzer (with a gap between indices 4 and 7)?
Just hardcode lan966x->num_phys_ports to 8 and work with that throughout.
Allocate lan966x->ports as an array of 8 pointers to struct lan966x_port
(which they are already), and the pointers themselves are populated as
being the netdev_priv of the interfaces that are actually present and
used. Literally the only thing you need to fix is that you need to
hardcode num_phys_ports to 8, problem solved. It means that lan9662 is
nothing but a lan9668 where the last 4 ports have 'status = "disabled"'
in the device tree.

  reply	other threads:[~2022-06-30 21:21 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-27 12:49 fwnode_for_each_child_node() and OF backend discrepancy Michael Walle
2022-06-27 13:08 ` Krzysztof Kozlowski
2022-06-27 13:33   ` Rafael J. Wysocki
2022-06-28 10:32     ` Krzysztof Kozlowski
2022-06-28 14:41       ` Sakari Ailus
2022-06-29 10:50       ` Rafael J. Wysocki
2022-06-29 13:01         ` Grant Likely
2022-06-28 11:10 ` Andy Shevchenko
2022-06-28 11:36   ` Michael Walle
2022-06-28 13:11     ` Andy Shevchenko
2022-06-28 13:23       ` Michael Walle
2022-06-28 13:29         ` Andy Shevchenko
2022-06-28 13:47           ` Michael Walle
2022-06-28 13:51             ` Krzysztof Kozlowski
2022-06-28 14:22               ` Michael Walle
2022-06-28 14:36                 ` Krzysztof Kozlowski
2022-06-28 15:09                   ` Michael Walle
2022-06-28 15:17                     ` Krzysztof Kozlowski
2022-06-28 20:28                       ` Andy Shevchenko
2022-06-28 20:52                         ` Horatiu Vultur
2022-06-28 21:07                           ` Michael Walle
2022-06-30 20:16                             ` Horatiu Vultur
2022-06-30 21:00                               ` Michael Walle
2022-06-30 21:21                                 ` Vladimir Oltean [this message]
2022-06-30 21:32                                   ` Michael Walle
2022-06-28 21:59             ` Vladimir Oltean

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220630212120.t3in6i7s7chaqacr@skbuf \
    --to=olteanv@gmail.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=horatiu.vultur@microchip.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael@walle.cc \
    --cc=rafael@kernel.org \
    --cc=robh+dt@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).