On 08/06/2019 08:10 AM, Vignesh Raghavendra wrote:
> +static int spi_nor_spimem_check_op(struct spi_nor *nor,
> +                                struct spi_mem_op *op)
> +{
> +     /*
> +      * First test with 4 address bytes. The opcode itself might
> +      * be a 3B addressing opcode but we don't care, because
> +      * SPI controller implementation should not check the opcode,
> +      * but just the sequence.
> +      */
> +     op->addr.nbytes = 4;
> +     if (!spi_mem_supports_op(nor->spimem, op)) {
> +             /* If flash size <16MB, 3 address bytes are sufficient */
> +             if (nor->mtd.size <= SZ_16M) {
> +                     op->addr.nbytes = 3;
> +                     if (!spi_mem_supports_op(nor->spimem, op))
> +                             return -ENOTSUPP;
> +                     return 0;
> +             }
> +             return -ENOTSUPP;
> +     }
> +
> +     return 0;
> +}

We can get rid of a level of indentation by writing it as:

static int spi_nor_spimem_check_op(struct spi_nor *nor,
                                   struct spi_mem_op *op)
{
        op->addr.nbytes = 4;
        if (!spi_mem_supports_op(nor->spimem, op)) {
                if (nor->mtd.size > SZ_16M)
                        return -ENOTSUPP;

                /* If flash size <16MB, 3 address bytes are sufficient */
                op->addr.nbytes = 3;
                if (!spi_mem_supports_op(nor->spimem, op))
                        return -ENOTSUPP;
        }

        return 0;
}

I'll do this by myself when applying, no need to resubmit.

Thanks, Vignesh!
ta

Reply via email to