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

Jerome Forissier jerome.forissier at linaro.org
Thu Aug 29 18:40:06 CEST 2024



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);
+	}
 
 #ifdef CONFIG_PHYLIB
 #ifdef CONFIG_DM_MDIO


???

Thanks,
-- 
Jerome


More information about the U-Boot mailing list