From: Florian Fainelli <f.fainelli@gmail.com>
To: Grant Edwards <grant.b.edwards@gmail.com>, netdev@vger.kernel.org
Subject: Re: net: macb: fail when there's no PHY
Date: Fri, 4 Dec 2020 19:06:45 -0800 [thread overview]
Message-ID: <0740c897-4db9-47f7-3ac9-e9428e634589@gmail.com> (raw)
In-Reply-To: <rqeslr$qo6$1@ciao.gmane.io>
On 12/4/2020 6:52 PM, Grant Edwards wrote:
> On 2020-12-04, Florian Fainelli <f.fainelli@gmail.com> wrote:
>> On 12/2/2020 7:54 PM, Grant Edwards wrote:
>>> On 2020-12-03, Florian Fainelli <f.fainelli@gmail.com> wrote:
>>>
>>>> You would have to have a local hack that intercepts the macb_ioctl()
>>>> and instead of calling phylink_mii_ioctl() it would have to
>>>> implement a custom ioctl() that does what
>>>> drivers/net/phy/phy.c::phy_mii_ioctl does except the mdiobus should
>>>> be pointed to the MACB MDIO bus instance and not be derived from the
>>>> phy_device instance (because that one points to the fixed PHY).
>>>
>>> So I can avoid my local hack to macb_main.c by doing a doing a local
>>> hack to macb_main.c?
>>
>> There is value in having the macb driver support the scheme that was
>> just described which is to support a fixed PHY as far as the MAC link
>> parameters go, and also support registering the MACB internal MDIO bus
>> to interface with other devices. People using DSA would typically fall
>> under that category.
>
> My hack does support both a fixed PHY as far as the MAC link
> parameters go and allows interfacing with other devices via the mdio
> bus, so I assume you're saying that there's value in doing that in the
> "standard" way instead of the way I invented 10 years ago.
All I was doing was explaining how this can be done today, in a way that
is useful to you and other people. You want to keep doing things your
own way, go ahead.
>
> That would certainly be true if we were talking about something to be
> incorporated "upstream", but like you said: it would be a local
> hack. I see no intrinsic value in changing to the "standard" DSA
> scheme. Switching to a different API would actually create additional
> cost above and beyond the cost of writing and testing the new local
> hack, since all of the applications which need to access the mdio bus
> would also have to change.
I was not trying to convince you to switch to DSA, and if this is an
area of technical debt that has a low cost for your platform compared to
others, so be it. What could have been useful was to support the
standard fixed PHY plus the internal MDIO bus.
>
> If I could avoid the local hack completely by using a standard,
> existing feature and API, then I could make an arguement for modifying
> the applications. But proposing the writing of a new, more comlex
> local hack and modifying the applications just so that we can feel
> good about using a standard API would be laughed at.
Only you can be the judge of that, I have no visibility into what
constitutes an acceptable change and what does not.
>
>> [...]
>>
>> I don't have a dog in the fight, but dealing myself with cute little
>> hacks in our downstream Linux kernel, the better it fits with useful
>> functionality to other people, the better.
>
> I don't see why it makes any difference how well suited a local hack
> is to people who will never see it or use it. It would seem to me that
> the the most important attribute of a local hack would be simplicity
> and ease of understanding. My hack is 7 lines of code and one line of
> a static structure declaration and initializer, all
> enabled/disabled/controlled by a single preprocessor symbol.
A change can be 7 lines of code and be broken any time you update to a
newer version of the kernel, and that is probably even truer in your
case since you have such a big difference between 2.6.x and 5.4 that
anything in between could have been rewritten a dozen time.
Over the course of the past 6 years, we have managed to get our
downstream kernel from ~1300 patches downstream to only about 65 as of
5.10, but it took 6 years and counting and we only targeted LTS kernels.
Maybe I am overly sensitive to how maintainable a change is, who knows.
--
Florian
next prev parent reply other threads:[~2020-12-05 3:10 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-21 19:59 net: macb: fail when there's no PHY Grant Edwards
2017-09-21 20:05 ` Florian Fainelli
2017-09-21 20:36 ` Grant Edwards
2017-09-21 21:35 ` Brandon Streiff
2017-09-29 7:05 ` Harini Katakam
[not found] ` <CAK=1mW6Gti0QpUjirB6PfMCiQvnDjkbb56pVKkQmpCSkRU6wtA@mail.gmail.com>
2020-12-02 18:10 ` Florian Fainelli
2020-12-02 18:24 ` Grant Edwards
2020-12-02 18:35 ` Andrew Lunn
2020-12-02 19:16 ` Grant Edwards
2020-12-02 21:11 ` Andrew Lunn
2020-12-02 21:23 ` Grant Edwards
2020-12-03 2:39 ` Andrew Lunn
2020-12-03 3:03 ` Grant Edwards
2020-12-03 3:42 ` Florian Fainelli
2020-12-03 3:54 ` Grant Edwards
2020-12-03 4:07 ` Andrew Lunn
2020-12-03 15:07 ` Grant Edwards
2020-12-03 21:17 ` Andrew Lunn
2020-12-03 21:39 ` Grant Edwards
2020-12-03 21:49 ` Andrew Lunn
2020-12-03 22:20 ` Grant Edwards
2020-12-04 8:28 ` Alexander Dahl
2020-12-04 17:36 ` Andrew Lunn
2020-12-04 16:47 ` Florian Fainelli
2020-12-05 2:52 ` Grant Edwards
2020-12-05 3:06 ` Florian Fainelli [this message]
2020-12-03 4:00 ` Andrew Lunn
2020-12-02 18:10 ` Grant Edwards
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=0740c897-4db9-47f7-3ac9-e9428e634589@gmail.com \
--to=f.fainelli@gmail.com \
--cc=grant.b.edwards@gmail.com \
--cc=netdev@vger.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).