Hi Pratyush, p.yadav@xxxxxx wrote on Fri, 12 Mar 2021 00:42:13 +0530: > Once the flash is initialized tell the controller it can run > calibration procedures if needed. This can be useful when calibration is > needed to run at higher clock speeds. > > Signed-off-by: Pratyush Yadav <p.yadav@xxxxxx> > --- > drivers/mtd/spi-nor/core.c | 12 ++++++++++-- > 1 file changed, 10 insertions(+), 2 deletions(-) > > diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c > index 88888df009f0..e0cbcaf1be89 100644 > --- a/drivers/mtd/spi-nor/core.c > +++ b/drivers/mtd/spi-nor/core.c > @@ -3650,6 +3650,7 @@ static int spi_nor_probe(struct spi_mem *spimem) > * checking what's really supported using spi_mem_supports_op(). > */ > const struct spi_nor_hwcaps hwcaps = { .mask = SNOR_HWCAPS_ALL }; > + struct spi_mem_op op; > char *flash_name; > int ret; > > @@ -3709,8 +3710,15 @@ static int spi_nor_probe(struct spi_mem *spimem) > if (ret) > return ret; > > - return mtd_device_register(&nor->mtd, data ? data->parts : NULL, > - data ? data->nr_parts : 0); > + ret = mtd_device_register(&nor->mtd, data ? data->parts : NULL, > + data ? data->nr_parts : 0); > + if (ret) > + return ret; > + > + op = spi_nor_spimem_get_read_op(nor); Isn't this too specific? I really don't know much about spi-nors, but I find odd to have this op being created here, why not moving this into the _do_calibration() helper? > + spi_mem_do_calibration(nor->spimem, &op); A warning/info upon calibration error (not on the absence of the hook) would be nice? > + > + return 0; > } > > static int spi_nor_remove(struct spi_mem *spimem) Otherwise I like the overall idea. Thanks, Miquèl