[PATCH net-next 1/6] net: stmmac: add platform library

Serge Semin fancer.lancer at gmail.com
Thu Sep 14 05:01:39 PDT 2023


On Thu, Sep 14, 2023 at 11:48:10AM +0100, Russell King (Oracle) wrote:
> On Thu, Sep 14, 2023 at 01:42:19PM +0300, Serge Semin wrote:
> > On Wed, Sep 13, 2023 at 03:21:10PM +0100, Russell King (Oracle) wrote:
> > > On Wed, Sep 13, 2023 at 03:14:47PM +0100, Russell King (Oracle) wrote:
> > > > On Wed, Sep 13, 2023 at 03:56:07AM +0300, Serge Semin wrote:
> > > > > On Tue, Sep 12, 2023 at 06:08:23PM +0100, Russell King (Oracle) wrote:
> > > > > > On Tue, Sep 12, 2023 at 12:32:40PM +0300, Serge Semin wrote:
> > > > > > > On Tue, Sep 12, 2023 at 07:59:49AM +0000, Jose Abreu wrote:
> > > > > > > > From: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
> > > > > > > > Date: Mon, Sep 11, 2023 at 16:28:40
> > > > > > > > 
> > > > > > > > > Add a platform library of helper functions for common traits in the
> > > > > > > > > platform drivers. Currently, this is setting the tx clock.
> > > > > > > > > 
> > > > > > > > > Signed-off-by: Russell King (Oracle) <rmk+kernel at armlinux.org.uk>
> > > > > > > > > ---
> > > > > > > 
> > > > > > > > >  drivers/net/ethernet/stmicro/stmmac/Makefile  |  2 +-
> > > > > > > > >  .../ethernet/stmicro/stmmac/stmmac_plat_lib.c | 29 +++++++++++++++++++
> > > > > > > > >  .../ethernet/stmicro/stmmac/stmmac_plat_lib.h |  8 +++++
> > > > > > > > 
> > > > > > > > Wouldn't it be better to just call it "stmmac_lib{.c,.h}" in case we need to add
> > > > > > > > more helpers on the future that are not only for platform-based drivers?
> > > > > > > 
> > > > > > > What is the difference between stmmac_platform.{c,h} and
> > > > > > > stmmac_plat_lib.{c,h} files? It isn't clear really. In perspective it
> > > > > > > may cause confusions like mixed definitions in both of these files.
> > > > > > > 
> > > > > > > Why not to use the stmmac_platform.{c,h} instead of adding one more
> > > > > > > file?
> > > > > > 
> > > > > 
> > > > > > Is stmmac_platform.{c,h} used by all the drivers that are making use of
> > > > > > this? I'm not entirely sure.
> > > > > > 
> > > > > > If it is, then yes, it can go in stmmac_platform.[ch]. If not, then I
> > > > > > don't think we'd want the bloat of forcing all of stmmac_platform.[ch]
> > > > > > onto drivers that only want to use this one function.
> > > > > 
> > > > > With a few exceptions almost all the STMMAC/DW*MAC glue drivers use
> > > > > the methods from the stmmac_platform.c module including the bits
> > > > > touched by your patchset. AFAICS semantically both stmmac_platform.c
> > > > > and stmmac_plat_lib.c look the same. They don't do anything on its own
> > > > > but provide some common methods utilized by the glue drivers for some
> > > > > platform-specific setups. So basically stmmac_platform.[ch] is already
> > > > > a library of the common platform methods. There is no need in creating
> > > > > another one.
> > > > 
> > > > I'm not questioning whether it should be merged, I'm questioning whether
> > > > all drivers that I'm touching make use of stmmac_platform.c, so your
> > > > long winded answer was entirely unnecessary. All you needed to do was
> > > > answer the question I asked, rather than teach me how to suck eggs.
> > > 
> > 
> > > So what about the name of the function? Are you happy that it's called
> > > "dwmac_set_tx_clk_gmii" rather than "stmmac_set_tx_clk_gmii" ?
> > 
> > Not really. I would suggest to preserve the local naming convention:
> > 1. Generic names have stmmac_ prefix.
> > 2. DW *MAC IP-core-specific names have dw(xg|xlg)?mac(100|1000|2|4|5)?_ prefixes.
> > Alas it was violated in some places (like norm_desc and enh_desc.c
> > files) but is still mainly preserved in the driver especially in the
> > stmmac_platform.c which is concerned in this case.
> 

> Thanks... so now I have you down as a single-issue reviewer - you spot
> something, you comment on it, and that's as far as you go. You don't
> seem to bother continuing the review and raising other points - which
> leads to lots of wasted time, and lots of patch set iterations, lots
> of email on mailing lists, etc.
> 
> Do you think you could review the other patches before I go to the
> trouble of spinning a v2 please?

Ok. One more note about this patch:

> --- /dev/null
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_plat_lib.c
> @@ -0,0 +1,29 @@
> +#include <linux/stmmac.h>
> +#include <linux/clk.h>
> +
> +#include "stmmac_plat_lib.h"
> +
> +int dwmac_set_tx_clk_gmii(struct clk *tx_clk, int speed)
> +{
> +       unsigned long rate;
> +
> +       switch (speed) {
> +       case SPEED_1000:
> +               rate = 125000000;
> +               break;

> +

It's not described in the kernel coding style, but normally the
switch-case operations are defined with no additional line separating
the cases (I guess it gets to be redundant due to the indentations
visually separating the parts anyway). I would have dropped the empty
lines here too especially seeing the stmmac core driver mainly follow
that implicit convention.

> +       case SPEED_100:
> +               rate = 25000000;
> +               break;

> +

ditto

> +       case SPEED_10:
> +               rate = 2500000;
> +               break;

> +

ditto

-Serge(y)

> +       default:
> +               return -ENOTSUPP;
> +       }
> +
> +       return clk_set_rate(tx_clk, rate);
> +}
> +EXPORT_SYMBOL_GPL(dwmac_set_tx_clk_gmii);

...

> 
> Thanks.
> 
> -- 
> RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
> FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!



More information about the linux-arm-kernel mailing list