Hi Patrick

On 7/31/20 4:31 PM, Patrick Delaunay wrote:
> Use IS_ENABLED to prevent ifdef in stm32prog command.
>
> Signed-off-by: Patrick Delaunay <patrick.delau...@st.com>
> ---
>
>  .../cmd_stm32prog/cmd_stm32prog.c             |   5 +-
>  .../mach-stm32mp/cmd_stm32prog/stm32prog.c    | 100 ++++++++++--------
>  2 files changed, 58 insertions(+), 47 deletions(-)
>
> diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c 
> b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
> index cbf0120adc..49dd25b28f 100644
> --- a/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
> +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/cmd_stm32prog.c
> @@ -14,7 +14,6 @@ struct stm32prog_data *stm32prog_data;
>  
>  static void enable_vidconsole(void)
>  {
> -#ifdef CONFIG_DM_VIDEO
>       char *stdname;
>       char buf[64];
>  
> @@ -35,7 +34,6 @@ static void enable_vidconsole(void)
>                       snprintf(buf, sizeof(buf), "%s,vidconsole", stdname);
>               env_set("stderr", buf);
>       }
> -#endif
>  }
>  
>  static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, int argc,
> @@ -86,7 +84,8 @@ static int do_stm32prog(struct cmd_tbl *cmdtp, int flag, 
> int argc,
>                                                  "script@1");
>       }
>  
> -     enable_vidconsole();
> +     if (IS_ENABLED(CONFIG_DM_VIDEO))
> +             enable_vidconsole();
>  
>       data = (struct stm32prog_data *)malloc(sizeof(*data));
>  
> diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c 
> b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
> index e4199dbaa5..ec3355d816 100644
> --- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
> +++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog.c
> @@ -544,10 +544,8 @@ static int init_device(struct stm32prog_data *data,
>  {
>       struct mmc *mmc = NULL;
>       struct blk_desc *block_dev = NULL;
> -#ifdef CONFIG_MTD
>       struct mtd_info *mtd = NULL;
>       char mtd_id[16];
> -#endif
>       int part_id;
>       int ret;
>       u64 first_addr = 0, last_addr = 0;
> @@ -557,8 +555,11 @@ static int init_device(struct stm32prog_data *data,
>       const char *part_name;
>  
>       switch (dev->target) {
> -#ifdef CONFIG_MMC
>       case STM32PROG_MMC:
> +             if (!IS_ENABLED(CONFIG_MMC)) {
> +                     stm32prog_err("unknown device type = %d", dev->target);
> +                     return -ENODEV;
> +             }
>               mmc = find_mmc_device(dev->dev_id);
>               if (!mmc || mmc_init(mmc)) {
>                       stm32prog_err("mmc device %d not found", dev->dev_id);
> @@ -589,11 +590,13 @@ static int init_device(struct stm32prog_data *data,
>                        first_addr, last_addr);
>               pr_debug(" full_update = %d\n", dev->full_update);
>               break;
> -#endif
> -#ifdef CONFIG_MTD
>       case STM32PROG_NOR:
>       case STM32PROG_NAND:
>       case STM32PROG_SPI_NAND:
> +             if (!IS_ENABLED(CONFIG_MTD)) {
> +                     stm32prog_err("unknown device type = %d", dev->target);
> +                     return -ENODEV;
> +             }
>               get_mtd_by_target(mtd_id, dev->target, dev->dev_id);
>               pr_debug("%s\n", mtd_id);
>  
> @@ -612,7 +615,6 @@ static int init_device(struct stm32prog_data *data,
>                        first_addr, last_addr);
>               dev->mtd = mtd;
>               break;
> -#endif
>       case STM32PROG_RAM:
>               first_addr = gd->bd->bi_dram[0].start;
>               last_addr = first_addr + gd->bd->bi_dram[0].size;
> @@ -744,8 +746,7 @@ static int init_device(struct stm32prog_data *data,
>                       part_found = true;
>               }
>  
> -#ifdef CONFIG_MTD
> -             if (mtd) {
> +             if (IS_ENABLED(CONFIG_MTD) && mtd) {
>                       char mtd_part_id[32];
>                       struct part_info *mtd_part;
>                       struct mtd_device *mtd_dev;
> @@ -766,7 +767,7 @@ static int init_device(struct stm32prog_data *data,
>                       part_name = mtd_part->name;
>                       part_found = true;
>               }
> -#endif
> +
>               if (!part_found) {
>                       stm32prog_err("%s (0x%x): Invalid partition",
>                                     part->name, part->id);
> @@ -873,9 +874,8 @@ static int treat_partition_list(struct stm32prog_data 
> *data)
>       return 0;
>  }
>  
> -static int create_partitions(struct stm32prog_data *data)
> +static int create_gpt_partitions(struct stm32prog_data *data)
>  {
> -#ifdef CONFIG_MMC
>       int offset = 0;
>       const int buflen = SZ_8K;
>       char *buf;
> @@ -991,7 +991,6 @@ static int create_partitions(struct stm32prog_data *data)
>       run_command("mtd list", 0);
>  #endif
>       free(buf);
> -#endif
>  
>       return 0;
>  }
> @@ -1070,28 +1069,35 @@ static int stm32prog_alt_add(struct stm32prog_data 
> *data,
>               offset += snprintf(buf + offset, ALT_BUF_LEN - offset,
>                                  " %d;", part->part_id);
>       }
> +     ret = -ENODEV;
>       switch (part->target) {
> -#ifdef CONFIG_MMC
>       case STM32PROG_MMC:
> -             sprintf(dfustr, "mmc");
> -             sprintf(devstr, "%d", part->dev_id);
> +             if (IS_ENABLED(CONFIG_MMC)) {
> +                     ret = 0;
> +                     sprintf(dfustr, "mmc");
> +                     sprintf(devstr, "%d", part->dev_id);
> +             }
>               break;
> -#endif
> -#ifdef CONFIG_MTD
>       case STM32PROG_NAND:
>       case STM32PROG_NOR:
>       case STM32PROG_SPI_NAND:
> -             sprintf(dfustr, "mtd");
> -             get_mtd_by_target(devstr, part->target, part->dev_id);
> +             if (IS_ENABLED(CONFIG_MTD)) {
> +                     ret = 0;
> +                     sprintf(dfustr, "mtd");
> +                     get_mtd_by_target(devstr, part->target, part->dev_id);
> +             }
>               break;
> -#endif
>       case STM32PROG_RAM:
> +             ret = 0;
>               sprintf(dfustr, "ram");
>               sprintf(devstr, "0");
>               break;
>       default:
> +             break;
> +     }
> +     if (ret) {
>               stm32prog_err("invalid target: %d", part->target);
> -             return -ENODEV;
> +             return ret;
>       }
>       pr_debug("dfu_alt_add(%s,%s,%s)\n", dfustr, devstr, buf);
>       ret = dfu_alt_add(dfu, dfustr, devstr, buf);
> @@ -1213,13 +1219,14 @@ int stm32prog_otp_write(struct stm32prog_data *data, 
> u32 offset, u8 *buffer,
>  int stm32prog_otp_read(struct stm32prog_data *data, u32 offset, u8 *buffer,
>                      long *size)
>  {
> -#ifndef CONFIG_ARM_SMCCC
> -     stm32prog_err("OTP update not supported");
> -
> -     return -1;
> -#else
>       int result = 0;
>  
> +     if (!IS_ENABLED(CONFIG_ARM_SMCCC)) {
> +             stm32prog_err("OTP update not supported");
> +
> +             return -1;
> +     }
> +
>       pr_debug("%s: %x %lx\n", __func__, offset, *size);
>       /* alway read for first packet */
>       if (!offset) {
> @@ -1255,19 +1262,19 @@ end_otp_read:
>       pr_debug("%s: result %i\n", __func__, result);
>  
>       return result;
> -#endif
>  }
>  
>  int stm32prog_otp_start(struct stm32prog_data *data)
>  {
> -#ifndef CONFIG_ARM_SMCCC
> -     stm32prog_err("OTP update not supported");
> -
> -     return -1;
> -#else
>       int result = 0;
>       struct arm_smccc_res res;
>  
> +     if (!IS_ENABLED(CONFIG_ARM_SMCCC)) {
> +             stm32prog_err("OTP update not supported");
> +
> +             return -1;
> +     }
> +
>       if (!data->otp_part) {
>               stm32prog_err("start OTP without data");
>               return -1;
> @@ -1302,7 +1309,6 @@ int stm32prog_otp_start(struct stm32prog_data *data)
>       pr_debug("%s: result %i\n", __func__, result);
>  
>       return result;
> -#endif
>  }
>  
>  int stm32prog_pmic_write(struct stm32prog_data *data, u32 offset, u8 *buffer,
> @@ -1538,19 +1544,20 @@ static int part_delete(struct stm32prog_data *data,
>                      struct stm32prog_part_t *part)
>  {
>       int ret = 0;
> -#ifdef CONFIG_MMC
>       unsigned long blks, blks_offset, blks_size;
>       struct blk_desc *block_dev = NULL;
> - #endif
> -#ifdef CONFIG_MTD
>       char cmdbuf[40];
>       char devstr[10];
> -#endif
>  
>       printf("Erasing %s ", part->name);
>       switch (part->target) {
> -#ifdef CONFIG_MMC
>       case STM32PROG_MMC:
> +             if (!IS_ENABLED(CONFIG_MMC)) {
> +                     ret = -1;
> +                     stm32prog_err("%s (0x%x): erase invalid",
> +                                   part->name, part->id);
> +                     break;
> +             }
>               printf("on mmc %d: ", part->dev->dev_id);
>               block_dev = mmc_get_blk_desc(part->dev->mmc);
>               blks_offset = lldiv(part->addr, part->dev->mmc->read_bl_len);
> @@ -1576,11 +1583,15 @@ static int part_delete(struct stm32prog_data *data,
>                                     part->name, part->id);
>               }
>               break;
> -#endif
> -#ifdef CONFIG_MTD
>       case STM32PROG_NOR:
>       case STM32PROG_NAND:
>       case STM32PROG_SPI_NAND:
> +             if (!IS_ENABLED(CONFIG_MTD)) {
> +                     ret = -1;
> +                     stm32prog_err("%s (0x%x): erase invalid",
> +                                   part->name, part->id);
> +                     break;
> +             }
>               get_mtd_by_target(devstr, part->target, part->dev->dev_id);
>               printf("on %s: ", devstr);
>               sprintf(cmdbuf, "mtd erase %s 0x%llx 0x%llx",
> @@ -1591,7 +1602,6 @@ static int part_delete(struct stm32prog_data *data,
>                                     part->name, part->id, cmdbuf);
>               }
>               break;
> -#endif
>       case STM32PROG_RAM:
>               printf("on ram: ");
>               memset((void *)(uintptr_t)part->addr, 0, (size_t)part->size);
> @@ -1639,9 +1649,11 @@ static void stm32prog_devices_init(struct 
> stm32prog_data *data)
>                       goto error;
>       }
>  
> -     ret = create_partitions(data);
> -     if (ret)
> -             goto error;
> +     if (IS_ENABLED(CONFIG_MMC)) {
> +             ret = create_gpt_partitions(data);
> +             if (ret)
> +                     goto error;
> +     }
>  
>       /* delete partition GPT or MTD */
>       for (i = 0; i < data->part_nb; i++) {

Reviewed-by: Patrice Chotard <patrice.chot...@st.com>

Thanks

Patrice

Reply via email to