[PATCH 05/13] net: fm: call dtsec_init_phy() only when it is defined

Simon Glass sjg at chromium.org
Fri Aug 30 02:58:57 CEST 2024


Hi Jerome,

On Thu, 29 Aug 2024 at 10:40, Jerome Forissier
<jerome.forissier at linaro.org> wrote:
>
>
>
> On 8/29/24 16:04, Simon Glass wrote:
> > Hi Jerome,
> >
> > On Wed, 28 Aug 2024 at 06:11, Jerome Forissier
> > <jerome.forissier at linaro.org> wrote:
> >>
> >> dtsec_init_phy() is defined only with MII so add the proper conditional
> >> in the caller code.
> >>
> >> Signed-off-by: Jerome Forissier <jerome.forissier at linaro.org>
> >> ---
> >>  drivers/net/fm/eth.c | 2 ++
> >>  1 file changed, 2 insertions(+)
> >>
> >> diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c
> >> index 19f3f0fef0..e4ec769693 100644
> >> --- a/drivers/net/fm/eth.c
> >> +++ b/drivers/net/fm/eth.c
> >> @@ -701,8 +701,10 @@ static int init_phy(struct fm_eth *fm_eth)
> >>                 supported |= SUPPORTED_2500baseX_Full;
> >>  #endif
> >>
> >> +#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) && !defined(BITBANGMII)
> >>         if (fm_eth->type == FM_ETH_1G_E)
> >>                 dtsec_init_phy(fm_eth);
> >> +#endif
> >
> > We really want to avoid #ifdefs in the code as they create different
> > build paths. Can you use if (IS_ENABLED) ?
>
> Sure.
>
> > Also BITBANGMII seems liike
> > it needs a CONFIG_ prefix.
>
> I agree. I have copied the line verbatim from line 29 because the condition
> needs to be the same. And I suspect there is another issue with the operator
> precedence. Do we want "MII || (CMD_MII && !BITBANGMII)" or
> do we rather want "(MII || CMD_MII) && !BITBANGMII"? I guess the latter.
>
> So how about:
>
> diff --git a/drivers/net/fm/eth.c b/drivers/net/fm/eth.c
> index 19f3f0fef0..22025b6a27 100644
> --- a/drivers/net/fm/eth.c
> +++ b/drivers/net/fm/eth.c
> @@ -26,7 +26,8 @@
>
>  #include "fm.h"
>
> -#if defined(CONFIG_MII) || defined(CONFIG_CMD_MII) && !defined(BITBANGMII)
> +#if ((defined(CONFIG_MII) || defined(CONFIG_CMD_MII)) && \
> +     !defined(CONFIG_BITBANGMII))
>
>  #define TBIANA_SETTINGS (TBIANA_ASYMMETRIC_PAUSE | TBIANA_SYMMETRIC_PAUSE | \
>                          TBIANA_FULL_DUPLEX)
> @@ -701,8 +702,11 @@ static int init_phy(struct fm_eth *fm_eth)
>                 supported |= SUPPORTED_2500baseX_Full;
>  #endif
>
> -       if (fm_eth->type == FM_ETH_1G_E)
> -               dtsec_init_phy(fm_eth);
> +       if ((IS_ENABLED(CONFIG_MII) || IS_ENABLED(CONFIG_CMD_MII)) &&
> +           !IS_ENABLED(CONFIG_BITBANGMII)) {
> +               if (fm_eth->type == FM_ETH_1G_E)
> +                       dtsec_init_phy(fm_eth);
> +       }
>

That's good

>  #ifdef CONFIG_PHYLIB
>  #ifdef CONFIG_DM_MDIO
>
>
> ???

You don't have to fix every #ifdef in every file you touch...it's just
that if you are already touching code, you might as well bring it up
to newer standards.

Regards,
Simon


More information about the U-Boot mailing list