On Tuesday 14 December 2021 10:45:15 Marek Behún wrote:
> On Tue, 14 Dec 2021 10:36:00 +0100
> Pali Rohár <[email protected]> wrote:
> 
> > On Friday 26 November 2021 15:37:37 Marek Behún wrote:
> > > @@ -340,17 +333,17 @@ void board_init_f(ulong dummy)
> > >   timer_init();
> > >  
> > >   /* Armada 375 does not support SerDes and DDR3 init yet */
> > > -#if !defined(CONFIG_ARMADA_375)
> > > - /* First init the serdes PHY's */
> > > - serdes_phy_config();
> > > -
> > > - /* Setup DDR */
> > > - ret = ddr3_init();
> > > - if (ret) {
> > > -         debug("ddr3_init() failed: %d\n", ret);
> > > -         hang();
> > > + if (!IS_ENABLED(CONFIG_ARMADA_375)) {
> > > +         /* First init the serdes PHY's */
> > > +         serdes_phy_config();
> > > +
> > > +         /* Setup DDR */
> > > +         ret = ddr3_init();
> > > +         if (ret) {
> > > +                 debug("ddr3_init() failed: %d\n", ret);
> > > +                 hang();
> > > +         }
> > >   }
> > > -#endif  
> > 
> > As written in comment above there is no SerDes and DDR3 support for
> > Armada 375 and therefore there is no serdes_phy_config() or ddr3_init()
> > function. So this code needs not to be compiled at all and usage of
> > #ifdef is correct here.
> 
> #ifdefs are almost never correct in C-files, for the parts of the code
> they guard isn't put through syntactic analysis, and can therefore
> contain bugs which we are not warned about.
> 
> Using if (IS_ENABLED()) almost never producess a different binary,
> because the code is optimized away.
> 
> Marek

There is no function serdes_phy_config() for Armada 375, so if you put
it outside of #ifdef you will get compile error.

Reply via email to